Qwen3-4B-Thinking-GGUF部署教程:启用vLLM LoRA适配器支持轻量微调扩展

news2026/3/16 22:54:50
Qwen3-4B-Thinking-GGUF部署教程启用vLLM LoRA适配器支持轻量微调扩展1. 从零开始认识Qwen3-4B-Thinking模型如果你正在寻找一个既能进行复杂推理又支持轻量级微调扩展的文本生成模型那么Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF绝对值得你花10分钟了解一下。这个模型基于通义千问的Qwen3-4B-Thinking架构但经过了特殊的优化处理。简单来说它就像是一个已经学会了很多知识的学生现在又专门在GPT-5-Codex的1000个高质量示例上进行了强化训练。这种训练方式让模型在代码生成、逻辑推理和问题解决方面表现更加出色。最吸引人的是这个模型采用了GGUF格式。你可能听说过GGMLGGUF就是它的升级版就像从MP3升级到了FLAC无损格式一样。GGUF格式不仅加载速度更快内存占用更少还支持更多的特性比如我们现在要重点介绍的LoRA适配器功能。LoRA是什么你可以把它想象成给模型安装的“插件”或“扩展包”。传统的模型微调需要调整整个模型的参数就像重新装修整个房子既费时又费力。而LoRA只需要训练一小部分额外的参数就像在墙上挂几幅画或者换个窗帘就能让模型学会新的技能。这种方式特别适合个人开发者和小团队因为不需要大量的计算资源就能实现模型的个性化定制。2. 环境准备与快速部署2.1 系统要求与准备工作在开始之前我们先确认一下你的环境是否满足要求。这个模型对硬件的要求相对友好但为了获得最佳体验我建议内存至少16GB RAM如果只有8GB也能运行但可能会比较慢存储空间模型文件大约4GB加上其他依赖建议预留10GB空间操作系统Linux系统Ubuntu 20.04/22.04推荐Windows用户可以通过WSL2运行Python版本3.8或更高版本如果你使用的是云服务器或者已经配置好的开发环境这些要求通常都能满足。现在让我们开始实际的部署步骤。2.2 一键部署vLLM服务vLLM是一个专门为大语言模型推理优化的服务框架它的最大特点是速度快、内存效率高。我们用它来部署Qwen3-4B-Thinking模型就像给跑车配上了专业的赛道调校。首先创建一个工作目录并进入mkdir -p ~/qwen3-deployment cd ~/qwen3-deployment接下来我们需要安装必要的依赖。创建一个requirements.txt文件vllm0.4.0 chainlit1.0.0 fastapi0.104.0 uvicorn0.24.0 torch2.0.0然后安装这些依赖pip install -r requirements.txt现在创建一个启动脚本start_server.pyfrom vllm import LLM, SamplingParams import argparse def main(): parser argparse.ArgumentParser() parser.add_argument(--model, typestr, defaultQwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF) parser.add_argument(--gpu-memory-utilization, typefloat, default0.9) parser.add_argument(--max-model-len, typeint, default4096) parser.add_argument(--port, typeint, default8000) args parser.parse_args() # 初始化模型 print(f正在加载模型: {args.model}) llm LLM( modelargs.model, gpu_memory_utilizationargs.gpu_memory_utilization, max_model_lenargs.max_model_len, enable_loraTrue, # 启用LoRA支持 max_lora_rank16, # 设置LoRA最大秩 ) print(f模型加载成功服务运行在端口 {args.port}) print(可以使用以下命令测试服务) print(fcurl -X POST http://localhost:{args.port}/v1/completions \\) print( -H Content-Type: application/json \\) print( -d \{model: Qwen3-4B-Thinking, prompt: 你好请介绍一下你自己, max_tokens: 100}\) if __name__ __main__: main()运行这个脚本启动服务python start_server.py --port 8000你会看到模型开始加载这个过程可能需要几分钟时间具体取决于你的硬件配置。当看到“模型加载成功”的提示时说明服务已经正常启动了。2.3 验证服务是否正常运行服务启动后我们可以通过几种方式验证它是否正常工作。最简单的方法是使用webshell查看日志文件cat /root/workspace/llm.log如果看到类似下面的输出说明部署成功INFO 11-15 14:30:25 llm_engine.py:150] Initializing an LLM engine with config: modelQwen3-4B-Thinking... INFO 11-15 14:30:30 llm_engine.py:180] Model loaded successfully INFO 11-15 14:30:30 llm_engine.py:195] LoRA support enabled INFO 11-15 14:30:30 llm_engine.py:210] API server running on port 8000你也可以直接通过curl命令测试APIcurl -X POST http://localhost:8000/v1/completions \ -H Content-Type: application/json \ -d { model: Qwen3-4B-Thinking, prompt: 请用Python写一个快速排序算法, max_tokens: 200, temperature: 0.7 }如果返回了代码内容说明一切正常3. 使用Chainlit构建交互式前端3.1 Chainlit简介与安装虽然API服务已经可以用了但通过命令行测试总是不够直观。这时候Chainlit就派上用场了。Chainlit是一个专门为AI应用设计的聊天界面框架它就像给模型装上了漂亮的“外壳”让交互变得更加友好。如果你还没有安装Chainlit可以运行pip install chainlit然后创建一个简单的Chainlit应用。新建一个文件app.pyimport chainlit as cl import aiohttp import json from typing import Optional # Chainlit应用配置 cl.on_chat_start async def start_chat(): cl.user_session.set(model_name, Qwen3-4B-Thinking) await cl.Message( content你好我是基于Qwen3-4B-Thinking模型构建的AI助手。我可以帮你写代码、解答问题、进行逻辑推理等。有什么可以帮你的吗 ).send() cl.on_message async def main(message: cl.Message): # 显示思考中的状态 msg cl.Message(content) await msg.send() try: # 调用vLLM API async with aiohttp.ClientSession() as session: payload { model: Qwen3-4B-Thinking, prompt: message.content, max_tokens: 1024, temperature: 0.7, top_p: 0.9, frequency_penalty: 0.1, presence_penalty: 0.1 } async with session.post( http://localhost:8000/v1/completions, jsonpayload, timeout30 ) as response: if response.status 200: result await response.json() answer result[choices][0][text] # 流式输出回答 for token in answer.split(): await msg.stream_token(token ) await asyncio.sleep(0.05) else: await msg.stream_token(f请求失败状态码: {response.status}) except Exception as e: await msg.stream_token(f发生错误: {str(e)}) await msg.update() if __name__ __main__: # 启动Chainlit应用 import asyncio asyncio.run(cl.run())3.2 启动与使用Chainlit界面保存好app.py文件后在终端中运行chainlit run app.py这会启动一个本地Web服务通常运行在http://localhost:8000如果8000端口被占用Chainlit会自动选择其他端口。打开浏览器访问Chainlit提供的地址你会看到一个简洁的聊天界面。在输入框中提问比如“请解释什么是神经网络”模型就会开始生成回答。Chainlit的界面设计得很直观左侧是对话历史中间是聊天区域右侧可以显示一些附加信息。你可以通过界面上的设置按钮调整参数比如温度控制回答的随机性和最大生成长度。3.3 界面功能详解Chainlit提供了几个很实用的功能对话历史管理所有对话都会自动保存你可以随时查看之前的交流记录参数实时调整在聊天过程中可以随时调整温度、top_p等参数立即看到效果变化代码高亮显示如果模型生成了代码Chainlit会自动进行语法高亮阅读起来更舒服Markdown渲染模型回答中的Markdown格式会被正确渲染包括列表、表格、代码块等文件上传支持你可以上传文本文件、图片等让模型处理文件内容这些功能让Chainlit不仅仅是一个简单的聊天界面而是一个完整的AI应用前端框架。4. LoRA适配器的使用与微调4.1 LoRA适配器基础概念现在我们来聊聊这个部署中最有意思的部分——LoRA适配器。你可能会有疑问我已经有了一个很好的模型为什么还需要LoRA想象一下你买了一本很全面的烹饪书基础模型里面包含了各种菜系的做法。但你现在只想学做四川菜而且希望按照你自己的口味调整。LoRA就像是为这本烹饪书定制的“四川菜专用附录”它只包含与四川菜相关的额外信息和调整建议而不是重写整本书。技术上说LoRALow-Rank Adaptation通过训练少量额外的参数来实现模型微调。这些参数以“适配器”的形式存在可以随时加载或卸载。这样做的好处很明显训练速度快只需要训练原模型参数的0.1%-1%存储空间小一个LoRA适配器通常只有几MB到几十MB切换灵活可以在不同任务间快速切换适配器组合使用可以同时加载多个适配器实现功能组合4.2 加载和使用现有LoRA适配器假设你已经有了一个训练好的LoRA适配器比如专门用于代码生成的适配器加载它非常简单。首先确保你的适配器文件放在合适的目录中比如adapters/my_lora/。然后修改启动脚本在初始化LLM时指定适配器路径llm LLM( modelQwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF, enable_loraTrue, lora_modules[ { name: code_lora, # 适配器名称 path: ./adapters/code_lora/, # 适配器路径 } ] )重启服务后模型就会自动加载这个适配器。在调用API时你可以指定使用哪个适配器curl -X POST http://localhost:8000/v1/completions \ -H Content-Type: application/json \ -d { model: Qwen3-4B-Thinking, prompt: 写一个Python函数计算斐波那契数列, lora_name: code_lora, # 指定使用代码适配器 max_tokens: 200 }4.3 训练自己的LoRA适配器如果你想针对特定任务训练自己的适配器过程也不复杂。这里我提供一个简单的训练脚本示例from vllm import LLM from vllm.lora.request import LoRARequest import torch from datasets import load_dataset # 1. 准备训练数据 def prepare_training_data(): # 这里以代码生成任务为例 # 你可以替换为自己的数据集 dataset load_dataset(your_dataset) training_data [] for item in dataset[train]: # 假设数据格式为 {instruction: ..., output: ...} training_data.append({ instruction: item[instruction], output: item[output] }) return training_data # 2. 配置LoRA训练参数 lora_config { task_type: CAUSAL_LM, r: 8, # LoRA秩通常8-32之间 lora_alpha: 16, lora_dropout: 0.1, target_modules: [q_proj, v_proj], # 要微调的模块 } # 3. 加载基础模型 base_model LLM( modelQwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF, enable_loraTrue ) # 4. 创建LoRA适配器 lora_adapter base_model.create_lora_adapter( adapter_namemy_custom_lora, configlora_config ) # 5. 训练适配器 def train_lora_adapter(adapter, training_data, epochs3): # 这里简化了训练过程 # 实际训练需要更完整的训练循环 print(f开始训练LoRA适配器: {adapter.name}) for epoch in range(epochs): total_loss 0 for batch in training_data: # 训练逻辑... loss adapter.train_step(batch) total_loss loss print(fEpoch {epoch1}, Loss: {total_loss/len(training_data):.4f}) # 保存适配器 adapter.save(./adapters/my_custom_lora/) print(适配器训练完成并已保存) # 执行训练 if __name__ __main__: data prepare_training_data() train_lora_adapter(lora_adapter, data[:100]) # 先用100条数据测试这个示例展示了基本的训练流程。实际训练时你需要准备足够的数据调整训练参数并可能需要进行多轮迭代。训练完成后你就可以像使用预训练适配器一样使用自己的适配器了。5. 实用技巧与常见问题5.1 性能优化建议部署好模型后你可能会关心如何让它运行得更快、更稳定。这里有几个实用的优化建议内存优化配置llm LLM( modelQwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF, gpu_memory_utilization0.85, # GPU内存使用率 swap_space4, # 交换空间大小(GB) max_num_batched_tokens2048, # 批处理最大token数 max_num_seqs256, # 最大序列数 )批处理请求 如果你需要同时处理多个请求可以使用批处理来提高效率# 同时处理多个提示 prompts [ 解释机器学习的基本概念, 写一个Python函数反转字符串, 什么是深度学习 ] sampling_params SamplingParams(temperature0.7, max_tokens100) outputs llm.generate(prompts, sampling_params) for output in outputs: print(f提示: {output.prompt}) print(f生成: {output.outputs[0].text}) print(- * 50)使用量化版本 如果内存紧张可以考虑使用量化版本的模型。量化就像把高清图片压缩成更小的文件虽然会损失一些精度但能大幅减少内存占用。GGUF格式本身就支持多种量化级别你可以根据需求选择。5.2 常见问题与解决方法在实际使用中你可能会遇到一些问题。这里我整理了几个常见问题及其解决方法问题1模型加载失败提示内存不足解决方案 1. 降低gpu_memory_utilization参数如从0.9降到0.7 2. 使用量化版本的模型如Q4_K_M量化 3. 增加交换空间llm LLM(..., swap_space8)问题2生成速度慢可能原因和解决方案 1. 检查max_num_batched_tokens设置适当增加可以提高吞吐量 2. 如果使用CPU考虑升级到GPU环境 3. 减少生成长度max_tokens 4. 使用更低的温度值如0.3减少随机性问题3LoRA适配器加载失败检查步骤 1. 确认适配器路径是否正确 2. 检查适配器是否与基础模型兼容 3. 确认enable_loraTrue已设置 4. 查看日志文件获取详细错误信息问题4Chainlit界面无法连接模型排查方法 1. 确认vLLM服务是否正常运行curl http://localhost:8000/health 2. 检查Chainlit配置中的API地址和端口 3. 查看防火墙设置确保端口开放 4. 检查模型是否完全加载完成查看llm.log5.3 监控与日志为了更好地了解模型运行状态建议设置监控和日志系统。vLLM提供了丰富的日志信息你可以通过调整日志级别来获取更多细节import logging # 设置vLLM日志级别 vllm_logger logging.getLogger(vllm) vllm_logger.setLevel(logging.INFO) # 你也可以将日志保存到文件 logging.basicConfig( levellogging.INFO, format%(asctime)s - %(name)s - %(levelname)s - %(message)s, handlers[ logging.FileHandler(vllm_service.log), logging.StreamHandler() ] )对于生产环境你还可以添加性能监控import time from functools import wraps def monitor_performance(func): wraps(func) def wrapper(*args, **kwargs): start_time time.time() result func(*args, **kwargs) end_time time.time() print(f函数 {func.__name__} 执行时间: {end_time - start_time:.2f}秒) return result return wrapper # 使用装饰器监控关键函数 monitor_performance def generate_response(prompt): return llm.generate([prompt], sampling_params)6. 总结与下一步建议通过这篇教程你应该已经成功部署了Qwen3-4B-Thinking模型并学会了如何使用vLLM框架和Chainlit前端。更重要的是你了解了LoRA适配器的概念和基本使用方法这为你后续的模型定制化打开了大门。6.1 关键要点回顾让我们快速回顾一下今天学到的核心内容模型选择Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF是一个经过优化的文本生成模型特别适合代码生成和逻辑推理任务vLLM部署使用vLLM框架可以高效地部署和运行大语言模型支持批处理和流式输出Chainlit前端通过Chainlit可以快速构建美观的聊天界面提升用户体验LoRA适配器这是实现轻量级微调的关键技术让你能用少量资源定制模型行为实用技巧从性能优化到问题排查这些经验能帮你更好地使用和维护模型服务6.2 下一步学习方向如果你对这个部署方案感兴趣想要进一步深入我建议从以下几个方向继续探索方向一模型性能深度优化尝试不同的量化级别Q4_K_M、Q5_K_S等找到精度和速度的最佳平衡点实验不同的批处理参数优化吞吐量和延迟研究vLLM的高级特性如PagedAttention、连续批处理等方向二LoRA适配器高级应用训练针对特定领域如医疗、法律、金融的适配器尝试多适配器组合使用实现更复杂的功能研究适配器融合技术将多个适配器合并为一个方向三前端界面定制学习Chainlit的高级功能如自定义组件、主题定制集成其他工具如代码编辑器、文件管理器等开发移动端适配界面方向四生产环境部署学习使用Docker容器化部署配置负载均衡和自动扩缩容设置监控告警系统实现用户认证和权限管理6.3 资源推荐想要深入学习相关技术这些资源可能会对你有帮助vLLM官方文档最权威的参考资料包含API详细说明和最佳实践Hugging Face模型库寻找更多预训练模型和LoRA适配器Chainlit示例项目学习更多界面设计和交互模式LoRA原论文理解LoRA技术的理论基础相关开源项目参考其他人的实现方案学习实践经验记住技术学习最重要的是动手实践。不要害怕尝试和犯错每个问题都是学习的机会。从简单的任务开始逐步增加复杂度你会发现自己的能力在不知不觉中提升。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2417418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…