-
一、基本信息本文共计:1800+字,阅读时长:9~15分钟。本文将拆解具身智能领域的模型能力体系,清晰界定各层级、各类型模型的核心能力、功能边界,全面呈现各类模型如何协同支撑,具身智能体在复杂物理世界中完成自主决策与高效行动。 二、小脑层模型:具身智能的运动中枢,承载轨迹规划与实时执行 小脑层是具身智能体的运动执行核心,核心定位为:承接大脑层下发的抽象任务意图与决策指令,将高层语义指令转化为可落地的具体运动行为。专注于运动轨迹生成、全身姿态协调、平衡稳定控制、动作序列编排、实时传感反馈调节,介于大脑高层认知与机器人本体底层硬件驱动之间。 (一)视觉语言动作模型(VLA):端到端动作生成核心载体 核心能力:视觉感知 + 语言指令直接映射为连续运动动作,打通感知、语言到动作的全链路,支持物体抓取、室内行走、灵巧操作等多类任务的零样本泛化,大幅简化传统分模块开发链路,是当前具身动作生成的主流技术方向。经典模型:以 RT-1、RT-2、RoboCat 为代表,可在简单结构化场景中,根据语言指令直接输出机械臂抓取、定点移动等基础动作轨迹与关节控制指令。前沿模型:OpenVLA、RT-2X、TraceVLA、人形专用 VLA,显著提升动作生成精度、复杂场景泛化能力与多动作协同能力;可适配复杂灵巧操作、人形上下楼梯、负重行走等高难度全身运动,兼容动态环境实时动作微调,同时具备跨机型、跨场景动作技能迁移能力。 (二)强化学习(RL)运动控制模型:环境自适应的自主技能学习工具 核心能力:通过与环境交互试错,自主习得步态、抓取、避障、轨迹跟随等运动技能,无需依赖精准人工规则,可自适应环境变化、机器人本体参数漂移等不确定因素,提升运动控制鲁棒性。其学习逻辑类比人类反复试错校准动作,是机器人自主进化、自主适配未知环境的关键技术。经典算法与模型:PPO、SAC、TD3、DDPG,广泛应用于机械臂无序抓取、轮式机器人避障、双足机器人基础步态学习等场景,可通过持续环境交互自主优化运动策略。前沿方向:以离线具身 RL、世界模型增强 RL、人形全身协同 RL为代表,解决传统在线 RL 样本效率低、真机训练风险高、成本大的痛点,结合世界模型虚拟预判能力做仿真试错,再迁移到真机落地,大幅提升训练效率。 (三)模仿学习(IL)模型:从人类演示快速复刻作业技能 核心能力:从人类操作演示数据中学习动作范式,快速复刻复杂作业技能与运动步态,无需大量试错训练即可落地应用,显著降低机器人技能开发周期与数据成本,适配工业装配、家政服务、专用操作等快速落地场景。经典主流类别:包含行为克隆 BC、DAgger 迭代模仿、生成式模仿学习。经典主流方案以 BC、DAgger、GAIL 为代表,可基于人类演示视频或轨迹数据,复刻标准抓取、装配、固定行走等标准化动作序列。前沿模型:多模态演示模仿、小样本具身模仿学习,可融合视频、语言解说、力控信号多维度演示数据,动作复刻更贴合人类操作习惯;仅需少量演示样本即可泛化到同类相似场景,适配个性化、小批量作业技能快速部署。 (四)全身运动规划与控制模型:人形机器人平衡与轨迹协调调节器 核心能力:人形机器人全身姿态平衡控制、运动轨迹平滑优化、多关节协同调度、复杂地形动态步态生成,保障机器人在行走、转弯、上下台阶、负重站立等工况下姿态稳定,同时优化运动轨迹平顺性与能耗效率,是人形机器人落地的核心底层控制支撑。经典技术体系:包含全身控制 WBC、模型预测控制 MPC、零力矩点 ZMP 三大经典技术体系,配套 LQR、PID 等基础控制算法。经典方案依托 ZMP 实现双足行走平衡判定,通过 WBC 做多关节力矩协同分配,借助 MPC 完成前瞻轨迹优化,广泛应用于人形步态、机械臂轨迹规划等场景。前沿方向:为深度学习增强 WBC、端到端步态规划模型,利用数据驱动模型补偿传统控制的建模误差,适配凹凸路面、斜坡、台阶等非结构化复杂地形,可实时动态调整步长、重心与关节姿态,实现更自然、更灵活的类人运动效果。 (五)灵巧操作 / 抓取规划模型:精密作业与无序抓取执行工具 核心能力:无序场景目标检测、6DoF 抓取位姿估计、多指灵巧手协同操作规划,支持不同形状、不同材质、易碎易变形物体的自适应抓取与精细操作,是工业分拣、家政整理、精密装配等场景的必备能力。经典模型:以 GraspNet、通用 6DoF 抓取网络为代表,适用于结构化固定场景规则物体的抓取位姿检测与轨迹规划。前沿模型:融入大模型语义引导抓取、通用灵巧手动作生成能力,可根据物体材质、易碎属性、尺寸特征智能调整抓取姿态与夹持力度,实现柔顺安全抓取,同时支持多指协同完成捏取、旋拧、夹取等精细化复杂操作。
-
初次参加活动,希望能理解这个任务
-
在中文大模型的世界里,一个尴尬的现状长期存在:绝大多数模型的训练以英语为核心,中文语料往往只是“配料”。这就好比请了一位精通西餐的大厨来做中餐——食材认识,火候也对,但做出来的味道总差那么点意思。今天,我们要分享的是一次“反其道而行”的实践:在LlamaFactory Online平台上,仅用1小时,用Chinese Tiny LLM - 2B这个小模型,通过精挑细选的中文数据和巧妙的“喂养”方式,让它在中文学问上展现出远超体量的“大智慧”。它的参数量仅为20亿,但在自主构建的高质量中文语料加持下,其中文理解与生成能力甚至能与部分大模型一较高下。这次实践的意义不仅在于效果提升,更在于揭示了一个朴素真理:模型的真正价值,不在于参数量的堆砌,而在于它所习得的知识密度与质量。核心配置:数据为王,不卷参数Chinese Tiny LLM - 2B的定位很特别——它不卷参数规模,而是卷数据质量。研发团队自主构建和整理了大规模高品质中文语料,让这个小个子模型在中文理解、生成和复杂任务处理上有了扎实的底子。但它毕竟是2B模型,还有提升空间。我们的目标很简单:通过精准的指令微调,把它身上那个“隐藏的中文专家”彻底唤醒。在正式上手前,先看看我们的实验配置:配置参数配置项是否预置说明模型CT-LLM-Base是参数量约20亿 (2B),擅长中文理解、生成和复杂任务处理数据集COIG-CQIA(中文)OL-CC(中文)OpenHermesPreferences(英文)是高质量中文指令微调数据集开源中文对话指令集英文偏好排序数据集GPUH800A*1(推荐)-单卡即可完成训练微调方法LoRA-显著降低计算与存储成本,兼具高性能与部署灵活性数据处理:清洗过滤,微调之本模型强不强,全看数据香不香。我们首先要将开源的原始数据转换为 LLamaFactory Online 要求的格式。这个过程看似繁琐,实则是决定最终效果的“胜负手”。第一步:环境准备与基础配置1.进入LlamaFactory Online平台的“实例空间”开始进行微调,由于数据处理后期需要使用Qwen模型计算困惑度,因此我们选择使用1张GPU卡。2.进入JupyterLab处理专属数据,新建两个文件夹“Chinesedata”和“data_ppl_filtered”,分别用于存储:完成困惑度计算的数据集、完成过滤和切分的数据集(训练集和测试集)。 3.创建并配置用于数据处理的python环境。 在JupyterLab中点击“Terminal”进入终端。● 创建一个名为“ChineseTiny”的虚拟环境,python版本选择3.10。 conda create -n ChineseTiny python=3.10 ● 激活环境。 conda activate ChineseTiny ● 安装依赖包。 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ipykernel pip install -i https://pypi.tuna.tsinghua.edu.cn/simple acceleratepip install -i https://pypi.tuna.tsinghua.edu.cn/simple transformers torch tqdm datasets ● 注册内核。 python -m ipykernel install --prefix=/usr/local --name ChineseTiny --display-name "python(ChineseTiny)" 💡提示上述注册内核的命令中,“--name”后的名字要严格和环境名称一致。 第二步:数据清洗与格式统一在LlamaFactory Online平台上下载数据脚本进行数据处理,在数据处理过程中,我们首先统一了各个数据集的格式,使其符合LlamaFactory的格式要求。并且计算了数据集的困惑度,将困惑度写入数据集中。下面以OpenHermesPreferences数据集的一个样本为例,展示原始数据和统一格式后的数据。原始数据格式-OpenHermesPreferences: {"source": "airoboros2.2","category": "orca","prompt": "Every day, a tree drops 7 leaves. How many leaves would it drop in a month of February in a non-leap year? Include your logic.","candidates_completions": [" Here's the logic behind this ... 196 leaves\n\nSo, the tree would drop 196 leaves in February in a non-leap year.","Here's the logic behind this ... 196 leaves\n\nSo, the tree would drop 196 leaves in February in a non-leap year.","First ... On average, the tree drops 196 leaves in a month of February in a non-leap year."],"candidate_policies": ["mistralai/Mixtral-8x7B-Instruct-v0.1","teknium/OpenHermes-2.5","NousResearch/Nous-Hermes-2-Yi-34B"],"ranks": [1, 0, 2],"rank_str": "teknium/OpenHermes-2.5 > mistralai/Mixtral-8x7B-Instruct-v0.1 > NousResearch/Nous-Hermes-2-Yi-34B","chosen_policy": "teknium/OpenHermes-2.5","chosen": [{"content": "Every day, a tree drops 7 leaves. How many leaves would it drop in a month of February in a non-leap year? Include your logic.","role": "user"},{"content": "Here's the logic behind this ... 196 leaves\n\nSo, the tree would drop 196 leaves in February in a non-leap year.","role": "assistant"}],"rejected_policy": "NousResearch/Nous-Hermes-2-Yi-34B","rejected": [{"content": "Every day, a tree drops 7 leaves. How many leaves would it drop in a month of February in a non-leap year? Include your logic.","role": "user"},{"content": "First ... On average, the tree drops 196 leaves in a month of February in a non-leap year.","role": "assistant"}]} 统一格式后的数据-OpenHermesPreferences: {"id":3982,"instruction":"What is the maximum value of the Z component for the Rössler system with parameters a=0.2, b=0.2 and c=5.7 when simulated for a time span of 100 seconds with a time step of 0.01?","input":"","output":" The Rössler system is a system ... Therefore, the maximum value of the Z component for the Rössler system with parameters a=0.2, b=0.2 and c=5.7 when simulated for a time span of 100 seconds with a time step of 0.01 is approximately 41.5805. Note that the exact value may depend on the numerical method and the time step used for the simulation.","perplexity":1.6777256012} 此数据集原本是偏好数据集,但统一格式后,也可以构造成规范的指令微调数据集,为后续训练铺平了道路。第三步:用“困惑度”筛出精华我们引入了一个有趣的指标:困惑度(Perplexity)。它是自然语言处理领域常用的语言模型评估指标。简单说,它衡量模型对一段文本的“意外程度”——困惑度越低,说明文本越“自然”、越符合语言规律。我们对每个数据集计算了困惑度分布,并狠心过滤掉了困惑度高于前75%的样本。这意味着剔除了那些“写得别扭”或“不太像人话”的数据,只留下最精华、最自然的语料。 [{'percent': 5, 'ppl': 1.7610674731193086},{'percent': 10, 'ppl': 2.3774340539787198},{'percent': 25, 'ppl': 4.183896373821549},{'percent': 50, 'ppl': 8.10350818504899},{'percent': 75, 'ppl': 13.909937685844394},# 高于此值的样本被过滤{'percent': 90, 'ppl': 22.34595027351144},{'percent': 95, 'ppl': 28.69867577413068}] 这一步看似“浪费”,实则是提升模型质量的关键一招——让模型只学最好的表达,而不是在平庸的数据上浪费算力。 💡提示本实践提供了处理自定义数据集,并将数据用于模型训练的教程,可在LlamaFactory Online上直接获得处理完毕的数据集,快速开始微调训练。 第四步:数据集检测及配比实验将处理好的数据复制到user-data目录下,回到LlamaFactory Online页面,进入文件管理,在数据集Tab下找到复制的数据进行格式检测。当“数据集格式检测”状态变为“符合”时,数据集就可以正式投入训练了。数据处理完成后,我们设计了三组不同中英配比的“实验”,想看看数据比例对模型表现的影响:实验中英语料比例中文语料采样英文语料采样实验一全中文(1:0)6000条OL-CC + 1000条COIG-CQIA0实验二中英混合(2:1)6000条OL-CC + 1000条COIG-CQIA3500条OpenHermes实验三中英混合(4:1)6000条OL-CC + 1000条COIG-CQIA1750条OpenHermes带着这三组精心配比的“饲料”,我们在平台上启动了一键微调任务。模型训练:一键开启,全程可视借助LlamaFactory Online的在线 WebUI 微调配置界面,整个过程变得极其简单:1.参数配置:微调方法选择LoRA,设置学习率、Epoch(本实验为3次迭代)以及截断长度等,其余参数保持默认。2.一键开启:参数配置完成后,点击“开始”启动微调任务。在日志窗口可实时监控微调进度及Loss变化曲线。3.注意区分:因为实验较多,记得区分不同实验的输出目录,后续对话和评估时需要在检查点路径处使用对应目录。训练完成后,选择各个实验的检查点路径,在Chat界面即可观察模型回答。(注意:切换不同实验的模型时,要先卸载当前模型,再更换检查点路径。)微调后模型对话(实验一) 微调后模型对话(实验二) 微调后模型对话(实验三) 原生模型对话 观察各实验微调后的模型与原生模型的对话结果,你会发现:微调后的模型对话更准确,全面,在回答中文逻辑问题时,告别了之前的“机翻感”,用词更加自然地道。其中实验二微调后的模型对话效果最佳,结构清晰,具有条理性。成果验收:数据说话,效果见证在微调后的评估环节,模型也给出了令人惊喜的答卷。指标原生模型微调后模型(实验一)微调后模型(实验二)微调后模型(实验三)BLEU-411.3426.1130.4426.13ROUGE-127.1942.8644.2241.89ROUGE-217.4131.2931.9131.16ROUGE-L16.0338.0639.0438.27原生模型评估结果解读:各项指标较低,BLEU-4仅为11.34,说明生成文本与参考答案重合度较低,生成能力有限。ROUGE系列指标也反映出语义覆盖、短语匹配和句法连贯性均较差。实验一(全中文)评估结果解读:BLEU-4提升至26.11,说明生成文本与参考答案的短语重合度较高,模型生成能力明显提升。ROUGE-1(42.86)、ROUGE-2(31.29)、ROUGE-L(38.06)显示模型在词汇覆盖、短语匹配和句法连贯性方面表现良好。实验二(中英混合2:1)评估结果解读:BLEU-4达到30.44,短语重合度最高,生成内容与标准答案最接近,模型效果最佳。ROUGE-1(44.22)、ROUGE-2(31.91)、ROUGE-L(39.04)各项指标均为最高,语义覆盖和连贯性最优。推理速度与实验一相近,效率良好。实验三(中英混合4:1)评估结果解读:BLEU-4为26.13,与实验一接近,生成质量明显优于基模型。各项指标略低于实验一、二,但仍远超原生模型。数据印证了我们的观察:实验二的模型(中英均衡配比)效果最佳。这说明适当引入高质量英文数据,反而能提升模型对中文的理解和表达能力——语言的边界,有时真的可以相互滋养。 这次Chinese Tiny LLM的实战给我们上了生动一课:第一,数据的质量远比数量重要。 通过困惑度过滤掉“平庸”样本,让模型专注学习最自然的表达,效果立竿见影。那些被筛掉的数据,虽然数量不少,但留下的才是真正的精华。第二,数据配比是一门艺术。 三种配比实验的对比清晰表明,单纯的中文数据未必最好,适当的“跨语言营养”反而能激发模型潜力。实验二的表现印证了这一点——好的配方,能让小个子爆发出大能量。第三,小模型也能有大作为。 在LlamaFactory Online平台的赋能下,仅用20亿参数的CT-LLM,通过精细的数据处理和科学的微调策略,就能在中文学问上交出漂亮的答卷。推理速度可观,效果接近甚至超越部分大模型。对于那些苦于算力有限、又想打造中文AI应用的团队来说,这条路径值得认真考虑——与其仰望千亿参数的“巨兽”,不如用心喂养一个真正懂你的“小专家”。如果您正受限于算力,或者想开发一款垂直领域的轻量级助手,不妨从这次实践开始。在LlamaFactory Online上,你可以轻松复现这场“数据实验”,亲手验证数据配比对模型能力的真实影响。让每一份算力,都花在最有价值的数据上。
-
当 AI 落地到了“深水区”:到底是模型不够强、算力太昂贵,还是该换条技术路线了?这两年,大家对大模型已经不再停留在“技术演示多酷炫”,而是越来越现实地问一句:“为什么每次想用个好模型,显卡先罢工?部署成本降不下来,再强的能力也只能看着?”尤其是——明明模型参数已经卷到万亿级,真要放进业务里跑起来,推理速度却慢得让人怀疑人生。答案往往不在某一个“神技”,而是在于模型的底层架构如何平衡能力、效率和成本这三个不可能三角。而阿里在除夕夜甩出的“王炸”——Qwen3.5,直接在这个三角上做了“暴力”重构:总参数3970亿,但每次推理只激活170亿,性能超越万亿参数的Qwen3-Max模型,部署显存占用降低60%,推理吞吐量最高提升19倍。什么意思呢?相当于你养了一个庞大的专家团队,但每次只需要其中几个人干活——知识储备拉满,算力开销打骨折。但问题来了:这么强的模型,拿回来怎么用?是继续调 Prompt、搭 RAG,还是直接上微调?今天我们就借着Qwen3.5这把“尺子”,把这个问题彻底捋清楚。架构层面的“降本增效”,到底是怎么做到的?Qwen3.5这次最让大家感兴趣的不是参数规模,而是它怎么把成本降下来的。先说混合注意力机制。传统Transformer有个固有问题:无论信息重不重要,每个词都要跟上下文里所有词算一遍关联,上下文越长计算量越爆炸。Qwen3.5的做法是——关键信息高精度处理,次要信息低成本带过。在256K超长上下文场景下,推理吞吐量直接飙到19倍。这意味着以前处理100份长文档的时间,现在能处理近2000份。再说极致稀疏MoE。传统模型每次推理必须激活全部参数,参数越多成本越高。Qwen3.5把模型拆成大量专家子网络,每次只激活最相关的170亿参数——3970亿总参数里,激活比例不到5%。大规模参数积累的知识优势被保留,但规模带来的成本负担被卸掉了。还有原生多Token预测。传统模型逐字输出,串行结构限制推理速度。Qwen3.5在训练阶段就学会联合预测多个未来词,从逐字输出变成批量输出,推理速度接近翻倍。这背后还有千问团队去年斩获NeurIPS最佳论文的门控技术,被用在了Qwen3.5里。它像智能开关一样实时控制信息流强度,强化有效信号、抑制噪声干扰,保证大规模训练稳定跑下来。不只是旗舰:三款中型模型,总有一款适合你的“显卡钱包”2月25日,阿里继续开源了三款中等规模模型。我仔细看了下它们的定位,觉得挺有意思:Qwen3.5-122B-A10B:总参数1220亿,激活100亿。适合复杂Agent任务,多步工具调用成功率提升明显。如果你的业务需要模型自己规划步骤、调用工具、处理多轮交互,这款是主力。Qwen3.5-35B-A3B:总参数350亿,激活30亿。中小团队的首选——单卡24G可跑BF16推理,生成速度快。如果你刚起步、想在消费级显卡上跑起来看看效果,从这款入手最合适。基于它的托管模型Qwen3.5-Flash已上线阿里云百炼,每百万Token输入低至0.2元。Qwen3.5-27B:这是千问3.5家族里唯一的稠密模型。为什么要保留稠密?因为MoE在微调时有个“路由器抖动”问题——数据分布和预训练差异较大时,专家路由可能剧烈变化,导致训练不稳定。而27B的稠密架构,对主流微调框架支持非常成熟,垂直领域团队落地的阻力小得多。而且它支持1M上下文、原生多模态,在视觉推理等榜单上甚至超过了上代旗舰Qwen3-VL。有了好模型,怎么判断该走哪条路?回到开头的问题:模型拿回来了,是调 Prompt、搭 RAG,还是直接微调?我们团队跑过不少项目,总结下来一套“先诊断、后开方”的方法。第一步:做个“Prompt梯度测试”。别用一个Prompt打天下。设计一个由浅到深的版本阶梯:版本A只定义角色+简短指令;版本B加3-5条“好答案”作示范;版本C加过程引导;版本D加格式约束。在同一批样本上跑一遍,看准确率有没有一路往上走。如果从A到D,正确率能从50%提到80%甚至更高,说明Prompt工程还有空间。但如果你发现无论怎么加示例、怎么拉长指令,指标就是卡住——这说明靠Prompt已经不够了,是时候思考微调。第二步:确认是“真的不会”,还是“没问到点子上”。有个简单的诊断套路:先问概念,再问实战。比如问“你了解信用卡分期手续费的计算规则吗?”模型能说对——说明知识没缺失。再问“下面是某张信用卡的分期条款,请帮我算出总利息”,结果算错了——问题往往在于任务拆解不够清晰、指令没把约束说具体。这时候优先打磨Prompt,而不是换模型。第三步:做一轮多模型对比。用同一套指令+同一批样本,在不同模型上跑。如果所有模型都表现挣扎,说明任务定义本身有问题,回去梳理业务;如果强模型能做好、目标基座拉胯,说明存在能力gap——这时候你有两个选择:换更强的基座,或者用强模型当“Teacher”做蒸馏微调。RAG:让模型“现查现用”的外脑当你把内网知识库、合同文档接进来,其实就是在做RAG。你可以把RAG想象成一位非常勤奋的外包顾问:它自己不必记住所有东西,但可以随时去翻最新制度、产品手册、历史记录。它的优势很明显:上手快、更新快、有明确溯源。政策一变,下一次回答就能用到最新内容。但短板也很明显:它始终是个“外人”——能找到哪一条合同条款写了什么,却未必理解你们过去在类似条款上是怎么博弈、怎么决策的。Qwen3.5的架构创新恰好放大了RAG的优势:256K超长上下文,可以一次性塞进整本手册+几十个案例;推理吞吐量提升19倍,检索后响应依然飞快;用35B-A3B单卡就能跑,硬件成本打骨折。RAG适合解决“缺知识”和“知识变化快”的问题,让AI变成一个“随时翻档案的外脑”。但要让AI真正带上你公司的“思维方式”,往往还需要别的手段协同。微调:从“懂行”到“懂你”的那一步如果说RAG是外部知识的延伸,那微调更像是把你的业务基因烤进模型本身。用成体系的私域数据去“再教育”模型——历史项目报告、复盘文档、标注过的客户案例、标准话术、风格统一的高质量输出。模型在这个过程中学到的,不只是知识,还有:你们惯用的分析路径、行业特有的专业表达、团队的风险偏好与话语风格。最终得到的是“老员工型AI”:不仅能做“法律问答”,还能“说出你们律所的味道”;不仅能写“财务分析报告”,还能用你团队习惯的结构与逻辑。Qwen3.5对微调格外友好:27B稠密模型专门为微调优化,训练稳定不易发散;MoE系列也可以用LoRA等轻量方案低成本微调。对于很多对隐私和合规敏感的行业,“训练过程和推理全在本地”也是选择微调的重要原因。RAG还是微调?关键是AI和业务“绑定到什么程度”给一个直观的对比视角:更适合优先用RAG的情况:业务知识更新快、变动频繁;需要明确引用来源;主要诉求是“查得对、找得到”。这时候AI更像一个随时查资料的外部顾问。更适合考虑微调的情况:希望AI复刻资深员工的决策模式;已有高质量、可复用的历史成果;在乎输出风格统一、团队经验共享。这时候AI不再只是问答工具,而是把专家经验数字化、规模化复制的载体。RAG和微调不是对立面,而是可叠加的路径:用RAG确保“知识永远是最新的”,用微调把“经验、风格、判断逻辑”烤进模型,再用好的Prompt把两者“调度”起来。Qwen3.5的丰富型号让这种叠加更灵活:知识密集型任务用35B-A3B + RAG,决策型任务用27B微调,复杂Agent用122B-A10B + 微调。从“先能用”到“更好用”:为什么要提前准备一条微调路径?对大多数企业来说,一个健康的迭代节奏可能是:第1阶段:先跑起来——选定基座(比如Qwen3.5-35B-A3B),用Prompt+RAG搭出Demo,跑一轮真实业务,收集问题样本。第2阶段:用评估体系看清问题——自动评测脚本,快速定位哪些是知识缺失、哪些是逻辑问题、哪些是风格不统一。第3阶段:小规模微调试点——把业务方认可的“好答案”转成训练数据,用标准化平台快速试几个版本,确认“确实变好,没有把别的能力搞坏”。第4阶段:微调日常化——新的项目经验不断沉淀,微调从“一次性大工程”变成“持续迭代的产品能力”。你不需要一开始就“重度微调”,而是先通过Prompt/RAG看到ROI,一边跑一边积累高质量样本。当数据和需求成熟时,自然开启微调。也正是在这一步,一套把“评估→数据→训练→回滚”串起来的平台会非常关键。LlamaFactory Online做的就是这件事:帮团队打通全流程,让业务方只需指出什么是“好答案”、哪些是“典型错例”,剩下的交给平台,把这些经验真正变成一个“懂你业务”的模型。大模型的“下半场”:从拼参数到炼数据Prompt决定了你“怎么跟模型说话”,RAG让模型“随时查得到你最新的知识”,微调则负责那一步:让模型真正长出你企业的业务习惯和判断逻辑。在大模型的“下半场”,拼的已经不是谁的参数更多,而是谁能更好地把私域数据的深度,转化为AI的专业度、稳定性和可复制性。你完全可以从“只用Prompt+RAG”开始,但在设计整体路线图时,不妨提前问自己一句:当我们真的需要一个“像老员工一样的AI”时,是不是已经准备好一条能随时把经验烤进模型的微调路径?如果你已经走到这一步,其实没必要从零啃代码。LlamaFactory Online已经把这条路铺平:在一个界面里完成数据管理、训练配置、监控评估和版本回滚,支持主流开源大模型,覆盖SFT、DPO等多种微调范式,让团队零基础上手,用数据说话,看一眼微调前后的对比,再决定要不要继续加码。
-
面对一个上百页的文档分析任务,或是数千字的复杂业务咨询,你是否陷入过两难?用千亿参数大模型?效果虽好,但部署和推理成本高得让企业“肉疼”;用小参数模型?速度快了,但遇到复杂逻辑往往“听不懂人话”,容易卡壳。如何打破“成本”与“智能”的各种不可能三角?今天,我们将通过一场实战,展示如何将80亿参数的Qwen3-8B模型与LightLLM高效推理框架相结合,在LLaMA-Factory Online上,打造一个兼具深度理解力与高并发服务能力的“六边形战士”。为什么是Qwen3-8B + LightLLM?想象一下,你需要为公司挑选一个AI大脑,用于构建智能客服或内部知识库。它至少要满足三个要求:●理解要深:能消化128K的长篇内容,准确把握复杂的业务逻辑与文档细节。●反应要快:面对高并发请求,必须稳定、快速地输出答案。●成本要省:用更经济的算力成本,实现接近超大模型的实用性能。这正是Qwen3-8B的设计初衷。它虽只有80亿参数,却凭借128K的长上下文窗口及创新的注意力机制,在处理复杂、冗长信息时表现卓越,堪称“性能密度”极高的模型。而LightLLM则像一个高效的“调度员”与“加速器”,它能以更少的资源消耗、更高的并发吞吐,让Qwen3-8B稳定地提供API服务。二者在LLaMA-Factory Online平台上结合,形成了一套开箱即用的方案——不仅在智能客服、知识问答、内容生成等场景中显著提升质量与效率,更真正做到了“轻装上阵,能力不减”从部署到应用:一条清晰的“快车道”过去,从配置环境、安装依赖到部署服务,每一步都可能耗费开发者大量精力。现在,借助LLaMA-Factory Online平台,整个过程变得异常清晰和高效。过去,从配置环境、安装依赖到部署服务,每一步都可能耗费开发者大量精力。现在,借助LLaMA-Factory Online平台,整个过程变得异常清晰和高效。一键启动,资源就绪在平台实例空间中,仅需选择Qwen3-8B作为目标模型,按需配置GPU资源(例如4卡H800A-80G),即可一键启动一个预置环境的计算实例。环境搭建,轻松快捷在集成的VSCode或JupyterLab环境中,通过简单的命令行,即可快速完成LightLLM框架及其所有依赖的安装。平台优化的网络环境,让模型下载与包安装不再受网络波动困扰。服务启动,即刻可用模型和环境就绪后,一行命令就能启动LightLLM推理服务,并生成一个可对外访问的API地址。这意味着你的智能应用,瞬间就拥有了一个高性能、随时待命的AI大脑。整个过程将复杂的工程部署抽象为几个明确步骤,让开发者能专注于业务逻辑与提示词优化,而非环境调试。实战演练:当AI遇见真实业务挑战理论之外,真实表现才是试金石。根据官方测试结果,Qwen3-8B在复杂语义理解任务中展现出优秀的推理精度与场景适应能力。基于其高效的语义建模机制,该模型能够准确解析多层次语言逻辑与隐含语义关系,同时在多轮交互中保持上下文理解的一致性。因此,Qwen3-8B非常适用于智能对话系统、知识问答与分析类任务,为用户提供高准确率、强泛化能力的语义理解服务体验。让我们用几个真实的场景来检验这套方案的能力。场景一:社交情境解析与应对当被问到“男女朋友吵架,女生说‘你根本不懂我’,男生该怎么回复?”时,Qwen3-8B没有给出简单的“标准答案”,而是系统化地分析了不同情境下的沟通策略:Details应对策略🤖 Assistant当女生说“你根本不懂我”时,男生的回应方式会直接影响矛盾的解决。以下是一些不同情境下的应对方式及建议,帮助双方更有效地沟通:1. 同理心回应:承认感受并表达理解适用场景:女生情绪激动,希望被倾听而非辩解。回应方式:“我明白你现在很受伤,可能我之前没有站在你的角度去想。你能告诉我具体是哪件事让你觉得我不懂你吗?我想听听你的感受。”“对不起,我可能真的没理解你的感受。以后我会更用心去听,也更努力去了解你。”作用:让女生感受到被重视,避免陷入“解释争执”中;引导对方说出具体问题,为解决问题铺路。2. 诚恳反思:承认沟通不足适用场景:男生确实存在沟通不畅或忽视对方感受的情况。回应方式:“我意识到自己可能太专注于自己的想法,忽略了你的感受。以后我会更注意倾听,主动了解你的需求。”“你说这句话让我意识到,我们之间可能有沟通上的盲区。我愿意和你一起努力,让彼此更懂对方。”作用:体现自我反思,避免将问题归咎于对方;展现愿意改进的态度,增强信任感。3. 确认需求:引导对方表达具体问题适用场景:女生未明确具体原因,男生需要引导沟通。回应方式:“你说‘不懂’,是指哪件事让你觉得被忽视?能不能告诉我更多细节?我真的很想了解你的想法。”“我可能没有注意到你的某些需求,如果能具体说说,我会更有方向去改进。”作用:避免空泛的争吵,聚焦具体问题;让女生感到被尊重,愿意进一步沟通。4. 情绪调节:先冷静再回应适用场景:双方情绪激动,需暂停争吵。回应方式:“现在我们都在生气,可能说不到点上。我们先冷静几分钟,等会再好好聊聊,好吗?”“我理解你现在很失望,但情绪化的沟通反而会让我们更远。我们可以等一等,让彼此冷静下来再谈。”作用:避免冲突升级,为理性沟通创造空间;体现对关系的重视,而非一味辩解。5. 行动承诺:用行动表达理解适用场景:女生希望看到男生的实际改变。回应方式:“你说的话让我意识到,我需要更用心去理解你。比如你最近提到的XXX,我以后会更关注你的感受。”“我想做一个会倾听的人,如果你愿意,我们可以一起制定一个‘好好沟通’的计划,比如每周留出时间聊聊彼此的想法。”作用:将抽象的“懂”转化为具体行动,增强可信度;长期改善关系,避免类似问题再次发生。- 长期改善关系,避免类似问题再次发生。注意事项避免防御性反驳:如“你有什么资格说我不懂?”只会激化矛盾。不要急于解释:先承认感受,再澄清事实(如:“我理解你的失望,其实我确实忽略了你提到的XXX”)。倾听比辩解更重要:给女生表达的空间,避免打断或急于反驳。后续行动:争吵后,可主动询问对方的感受,比如:“刚才我说的话让你不开心了吗?我该怎么弥补?”总结面对“你根本不懂我”,男生的核心任务是共情、倾听、反思和行动。通过真诚的态度和具体的行动,才能真正化解矛盾,让双方感受到彼此的重视与关爱。关键原则:“先让对方被理解,再解决具体问题。”当亲密关系中出现“你根本不懂我”的质问时,这不仅是一句情绪宣泄,更是一种对深度情感联结的渴望。此时,Qwen3-8B服务能够为您提供系统化的沟通支持——通过引导共情倾听、协助自我反思、推动积极行动,帮助您将这样的沟通危机转化为关系加深的契机。这背后,是模型对复杂社交情绪、沟通意图及关系维护策略的深度理解。场景二: 网络热梗解码面对“但丁真不是中国人,但丁真是中国人”这类看似矛盾的网络表达,Qwen3-8B能够跳出字面,进行多维解析:Details理解输出🤖 Assistant“但丁真不是中国人,但丁真是中国人”这句话看似矛盾,但其荒谬性源于**“但丁”与“丁真”这两个名字的发音相似**,而后者是真实的中国藏族青年。以下是对其可能含义的解读:1. 语言混淆与误用字面矛盾:这句话的荒谬性在于它将“但丁”(Dante Alighieri,意大利诗人)与“丁真”(中国藏族青年)混淆。若字面理解,但丁是意大利人,丁真是中国藏族人,两者身份完全相反。因此,这句话本身就是一种语言误用,本质是错误地将两个不同的人物合并。网络玩笑:可能是在网络语境中,有人故意混淆“但丁”与“丁真”制造矛盾,以引发幽默或讽刺效果。例如,调侃某些人对历史人物或文化符号的错误联想。2. 对文化符号的误读“但丁”与“丁真”的对比:但丁(Dante):意大利文艺复兴时期诗人,代表作《神曲》,与“中国人”毫无关联。丁真:中国藏族青年,因走红网络而被贴上“网红”“文旅大使”等标签。若有人试图强行将但丁“中国化”(如称其为“但丁真”),则这句话可能暗示对这种文化误读的讽刺。哲学层面:这句话可能隐喻身份认同的矛盾。例如,某些人或许被贴上“中国人”标签,但内心认同其他文化(如意大利),形成“真不是中国人,但真属于某种文化”的反讽。3. 网络迷因或幽默表达“丁真”现象的延伸:由于丁真因“颜值”和“民族标签”走红,网络上可能出现将“丁真”与“但丁”强行关联的恶搞。例如,有人可能调侃:“丁真真不是中国人?但丁真是中国人!”通过混淆两者制造荒诞效果。文化符号的错位:这句话可能指向对“但丁”这种西方文化符号的误用,或对“丁真”这类中国网红现象的戏仿。4. 深层含义:身份与标签的冲突身份认同的矛盾:若有人试图将“但丁”强行与中国文化绑定(如称其为“但丁真”),这句话可能表达对这种强行“中国化”的讽刺。语言的戏谑性:利用“但丁”与“丁真”发音相似的特性,通过矛盾句式制造笑点,类似于网络中常见的“前后矛盾”梗(如“我真不是在说你,我真是在说你”)。总结:可能的解读方向语言误用:混淆“但丁”与“丁真”的名字,制造矛盾。文化误读:讽刺对历史人物或文化符号的错误联想。网络幽默:通过矛盾句式制造笑点,或对网红现象的调侃。身份认同的隐喻:探讨文化归属或身份标签的复杂性。若这句话出现在特定语境(如网络讨论、文章、视频等),其含义可能需要结合具体场景进一步分析。但核心问题在于,但丁与丁真身份完全不同,这句话本质是刻意制造错位,以引发讨论或幽默效果。当网络语境中出现“但丁真不是中国人,但丁真是中国人”的表述时,这不仅是一句语言游戏,更折射出当代文化传播中的符号解构现象。此时,Qwen3-8B能够为您提供多维度的语义解析支持——通过厘清语言混淆、解构文化符号、识别网络迷因逻辑,帮助您将这类看似矛盾的表达转化为理解当代传播规律的认知契机。这展现了模型在语言、文化与当代传播语境中捕捉微妙含义的能力。场景三:算法逻辑解析与优化经典的“农夫过河”问题(运送狼、羊、白菜)是检验逻辑思维与规划能力的绝佳试金石。Qwen3-8B不仅推导出 “最少单程7趟” 的最优解,更完整展现了其逐步推演的思考过程:Details理解输出🤖 Assistant嗯,这个问题看起来有点像经典的过河问题,不过具体细节可能有点不同。让我仔细想想怎么解决。首先,题目是说农夫要带着狼、羊和白菜过河,船每次只能运一样东西,而且当农夫不在的时候,狼会吃羊,羊会吃白菜。那目标就是用最少的单程次数把所有东西安全运到对岸。首先,我需要明确规则:每次船只能带一样东西过去,所以农夫每次只能单独运送狼、羊或白菜中的一个。不过,农夫可能需要来回多次,所以单程次数指的是每次过河的次数,不管是去还是回。比如,农夫先带狼过去,回来,这是两趟单程(去一次,回一次)。但有些时候可能需要更复杂的安排。接下来,我需要考虑如何安排这些运输,使得在任何时刻,如果农夫不在场,狼和羊、羊和白菜不会发生冲突。也就是说,在农夫运送的过程中,不能让狼和羊单独在一起,或者羊和白菜单独在一起。当农夫在场时,这些情况可以被避免。首先,我需要确定可能的步骤,并确保每一步都是安全的。可能需要尝试不同的运输顺序,看看哪种方式最少的单程次数。让我先尝试一个可能的方案:农夫先带羊过河。这样,对岸有羊,而狼和白菜还在原岸。这时候,农夫需要回来,但这时候对岸只有羊,所以没有问题。这趟是单程过去,然后回来,所以总共2趟。不过,这样可能不太好,因为如果农夫带羊过去,然后回来,那么原岸剩下狼和白菜,此时如果农夫不在场,狼和白菜会不会有问题?其实根据题目,狼不会吃白菜,所以这没问题。所以在原岸,狼和白菜可以共存,因为只有狼和白菜,但狼不会吃白菜,所以没问题。那这时候,原岸有狼和白菜,对岸有羊,农夫在原岸回来。然后,接下来农夫需要运送其他的物品。例如,农夫可以带狼过去,但这样会导致对岸有狼和羊,而这时候农夫不在场,就会造成狼吃羊,所以不行。所以这个步骤不行。或者,农夫应该带白菜过去?这样对岸有白菜,原岸有狼和羊,但这时候原岸有狼和羊,而农夫在场,所以没问题?不对,这时候农夫在原岸,带白菜过去后,农夫在对岸,这时候原岸有狼和羊,这时候农夫不在场,所以狼会吃羊,所以这也不行。所以带白菜过去也不行。所以,可能带羊过去,回来,然后带狼过去,但这样对岸会有狼和羊,而农夫在对岸,但这时候可能农夫需要回来,但这样可能有问题?或者,可能我需要不同的策略。比如,先带狼过去,但这样会留下羊和白菜在原岸,如果农夫回来,那原岸剩下羊和白菜,这时候没问题,因为羊不吃白菜?不,题目说羊会吃白菜,所以如果农夫带狼过去,然后回来,那么原岸剩下羊和白菜,这时候当农夫不在时,羊会吃白菜,所以这也不行。所以带狼过去也不行。所以,可能先带羊过去,然后回来,这一步是对的,因为这时候原岸剩下狼和白菜,而农夫回来,然后带白菜过去?但这样如何?或者,带羊过去,然后回来,带羊回来?这显然不合适。或者,可能带羊过去后,再带狼过去,但这样需要中间步骤。或者,可能农夫先带羊过去,然后回来,带白菜过去,然后回来,再带狼过去。但需要检查每一步是否安全。让我详细列出可能的步骤:方案一:农夫带羊过河(对岸:羊;原岸:狼、白菜;农夫在对岸)农夫回来(对岸:空;原岸:狼、白菜、农夫)农夫带白菜过河(对岸:白菜;原岸:狼、羊;农夫在对岸)现在,原岸有狼和羊,农夫不在场,所以狼会吃羊,所以这不行。因此,这一步不能发生。所以这个步骤有问题,因此需要调整。那么,什么时候可以安全地把白菜带过去呢?可能需要先带狼过去,但这时候如何处理?比如:方案二:农夫带狼过河(对岸:狼;原岸:羊、白菜;农夫在对岸)农夫回来(对岸:空;原岸:狼、羊、白菜;农夫在原岸)这时原岸有狼、羊和白菜,但农夫在场,所以没问题。农夫带羊过河(对岸:狼、羊;原岸:白菜;农夫在对岸)此时对岸有狼和羊,农夫在场,没问题。农夫回来(对岸:狼;原岸:羊、白菜;农夫在原岸)农夫带白菜过河(对岸:狼、白菜;原岸:羊;农夫在对岸)此时原岸有羊,没问题。农夫回来(对岸:狼、白菜;原岸:羊;农夫在原岸)农夫带羊过河(对岸:狼、白菜、羊;原岸:空)总共需要7次单程(去、回、去、回、去、回、去),即7趟,但这似乎不是最优化的。不过可能还有其他更优的方式。另一个可能的方案是:方案三:农夫带羊过河(对岸:羊;原岸:狼、白菜;农夫在对岸)农夫回来(对岸:空;原岸:狼、白菜、农夫)农夫带狼过河(对岸:狼;原岸:羊、白菜;农夫在对岸)此时对岸有狼,原岸有羊和白菜,农夫在对岸,所以没问题(因为原岸有羊和白菜,这时候农夫不在场吗?不,农夫在对岸,所以原岸的羊和白菜会被单独留下?不对,这时候农夫在对岸,所以原岸没有人,所以羊和白菜会在原岸,这时候是否允许?因为当农夫不在场时,羊会吃白菜,所以这样不行。因此,这步是不允许的。所以在步骤3,当农夫带狼过河后,对岸有狼,而原岸剩下羊和白菜,这时农夫在对岸,所以原岸没有人,所以羊会吃白菜,所以这步是不允许的。因此,这个方案也行不通。因此,可能需要另一种方法。比如,农夫带羊过去,再带回来,但这样可能需要更多的步骤。或者,第一次带狼过去,然后回来带白菜过去,但中间可能需要其他步骤?或者,考虑是否可以先带羊到对岸,然后回来带白菜,但中间需要避免冲突。让我试试另一个方案:方案四:农夫带羊过河(对岸:羊;原岸:狼、白菜;农夫在对岸)农夫回来(对岸:空;原岸:狼、白菜、农夫)农夫带白菜过河(对岸:白菜;原岸:狼、羊;农夫在对岸)原岸有狼和羊,农夫在对岸,所以原岸没人,这时候狼会吃羊,不允许。所以不行。或者,在步骤3之后,农夫回来,再带羊?比如:带羊过去(对岸:羊)农夫回来带白菜过去(对岸:白菜,羊? 不对,原岸有狼和羊,如果带白菜过去,那对岸有白菜,原岸有狼和羊,这时候农夫在对岸,原岸有人吗?不,农夫在对岸,所以原岸没有人,所以狼和羊在原岸,这时狼会吃羊,所以不允许。因此,这不行。所以,可能必须先带狼过去,然后回来带羊,或者类似的方式?或者,另一种思路:每次运输后,确保两岸的安全性。或许正确的步骤应该是:农夫带羊过河(对岸:羊;原岸:狼、白菜)农夫回来(对岸:空;原岸:狼、白菜、农夫)农夫带狼过河(对岸:狼;原岸:羊、白菜)此时原岸有羊和白菜,但农夫在对岸,所以原岸没有人,导致羊吃白菜?所以不允许。因此不行。所以,这步不行。那如何处理?可能需要先带羊到对岸,然后回来带羊回来?这样可能浪费时间,但或许有办法。或者,农夫带羊过去,然后带羊回来?带羊过去(对岸:羊)农夫回来(对岸:空;原岸:狼、白菜、农夫)农夫带羊回来(对岸:空;原岸:狼、白菜、羊、农夫) → 不可能,因为农夫在原岸,所以带羊回来的话,原岸有羊,对岸空,这样可能没意义。可能这样的话,农夫需要带羊回来,但这样会把羊留在原岸?这似乎没有帮助。或者,可能需要不同的步骤。现在,我突然想到有一个经典的问题,答案是需要7次单程,但可能还有更优的方式?或者,是否存在更优的步骤?让我再尝试另一个方案:方案五:农夫带羊过河(对岸:羊;原岸:狼、白菜)农夫回来(对岸:空;原岸:狼、白菜、农夫)农夫带白菜过河(对岸:白菜;原岸:狼、羊)此时原岸有狼和羊,但农夫在对岸,所以原岸没人,导致狼吃羊,不行。所以不能这样。因此,必须避免让狼和羊或羊和白菜同时出现在原岸或对岸而无人看守。可能正确的步骤是先带狼过河,然后带羊过去,但需要中间的步骤。或者,另一个经典的方法是:农夫带羊过河 → 对岸:羊;原岸:狼、白菜农夫回来 → 对岸:空;原岸:狼、白菜、农夫农夫带狼过河 → 对岸:狼;原岸:羊、白菜此时原岸有羊和白菜,农夫在对岸,所以原岸没有人,这时羊会吃白菜,不行。所以不能这样。所以,这时候农夫应该带羊回来?即,步骤3之后,农夫不能把狼留在对岸,必须带羊回来?但步骤3中,农夫带狼过河,此时对岸有狼,原岸有羊和白菜。这时候农夫需要回来,带羊回来吗?或者,可能这里有一个错误,步骤3中农夫带狼过河,然后需要回来,但这样原岸有羊和白菜,这时候农夫在对岸,导致原岸无人,所以羊吃白菜。所以这不行。因此,不能带狼过河。那可能,正确的做法是,农夫带羊过河,然后回来,带白菜过河,但中间需要让狼单独在原岸或者对岸?比如:步骤1:带羊过河,对岸:羊;原岸:狼、白菜;农夫在对岸步骤2:农夫回来,原岸:狼、白菜、农夫;对岸:空步骤3:农夫带白菜过河,对岸:白菜;原岸:狼、羊;农夫在对岸此时,原岸有狼和羊,而农夫在对岸,因此原岸无人,触发狼吃羊,所以不行。因此,这不行。所以,问题在于如何避免狼和羊或羊和白菜同时出现在无人看守的一侧。也许正确的步骤是先带狼过去,但如何处理?比如:步骤1:农夫带狼过河 → 对岸:狼;原岸:羊、白菜;农夫在对岸步骤2:农夫回来 → 原岸:狼、羊、白菜;对岸:空;农夫在原岸步骤3:农夫带羊过河 → 对岸:狼、羊;原岸:白菜;农夫在对岸步骤4:农夫回来 → 对岸:狼;原岸:羊、白菜;农夫在原岸步骤5:农夫带白菜过河 → 对岸:狼、白菜;原岸:羊;农夫在对岸步骤6:农夫回来 → 对岸:狼;原岸:羊、白菜;农夫在原岸步骤7:农夫带羊过河 → 对岸:狼、羊、白菜;原岸:空这里总共是7次单程:1去,2回,3去,4回,5去,6回,7去,共7次。这是经典的答案,但有没有更优的?比如,是否有办法用更少的次数?让我再想想,是否存在更优的步骤,比如不需要两次来回?其他可能的步骤:比如:农夫带羊过河(对岸:羊;原岸:狼、白菜)农夫回来(对岸:空;原岸:狼、白菜、农夫)农夫带白菜过河(对岸:白菜;原岸:狼、羊)原岸有狼和羊,农夫在对岸,导致冲突,所以不行。或者,步骤3之后,农夫再带狼过去?不,这时候对岸有白菜,原岸有狼和羊,农夫在对岸,原岸无人,所以冲突。所以,这不行。另一种思路:先带狼过去,再带回来,然后带羊?步骤1:带狼过河(对岸:狼;原岸:羊、白菜)步骤2:农夫回来(对岸:空;原岸:狼、羊、白菜;农夫在原岸)步骤3:带羊过河(对岸:羊;原岸:狼、白菜)步骤4:农夫回来(对岸:空;原岸:狼、白菜、农夫)步骤5:带白菜过去(对岸:白菜;原岸:狼、羊)现在原岸有狼和羊,农夫在对岸,冲突,所以不行。所以,同样不行。或者,步骤5之后,农夫回来带羊?步骤5:带白菜过去,对岸:白菜;原岸:狼、羊。农夫在对岸,这时候原岸无人,冲突,所以不能。看来必须带羊过去,然后回来,再带白菜过去,然后再回来带狼?或者,有没有办法在步骤中利用某些有效的运输?例如:步骤1:带羊过河 → 对岸:羊;原岸:狼、白菜步骤2:农夫回来 → 对岸:空;原岸:狼、白菜、农夫步骤3:带狼过河 → 对岸:狼;原岸:羊、白菜此时原岸有羊和白菜,农夫在对岸,冲突,所以不行。因此,必须带羊回来吗?步骤3:农夫带羊过河,但这样会和之前重复。或许,正确的做法是步骤3之后,农夫不能直接带狼过去,而是必须带羊回来?步骤3:农夫带羊回来(对岸:空;原岸:狼、羊、白菜;农夫在原岸)这样,步骤4:带白菜过去 → 对岸:白菜;原岸:狼、羊。此时,原岸有狼和羊,冲突,所以不行。或者,步骤4:带狼过去 → 对岸:狼;原岸:羊、白菜。农夫在对岸,原岸无人,冲突。这似乎没有解决办法。看来经典的7次单程是正确的,但有没有更优的方法?或者,是否存在一种方式,只需要5次单程?比如:方案六:带羊过去 → 对岸:羊;原岸:狼、白菜农夫回来 → 对岸:空;原岸:狼、白菜、农夫带白菜过去 → 对岸:白菜;原岸:狼、羊冲突,不允许不行方案七:带狼过去 → 对岸:狼;原岸:羊、白菜农夫回来 → 原岸:狼、羊、白菜;对岸:空带羊过去 → 对岸:狼、羊;原岸:白菜冲突,因为对岸有狼和羊,农夫在对岸,所以没问题?因为农夫在场,所以狼不会吃羊?哦,这里可能有问题。因为当农夫在场时,不管有没有其他人,都不会发生冲突,因为只有当农夫不在场时才会发生冲突。因此,步骤3中,农夫带羊过去,此时对岸有狼和羊,而农夫在对岸,所以没问题。因为农夫在场,所以冲突不会发生。因此,这一步是允许的。然后步骤4:农夫回来 → 对岸:狼;原岸:羊、白菜;农夫在原岸步骤5:农夫带白菜过去 → 对岸:狼、白菜;原岸:羊;农夫在对岸步骤6:农夫回来 → 对岸:狼;原岸:羊、白菜;农夫在原岸步骤7:农夫带羊过去 → 对岸:狼、羊、白菜;原岸:空这样总共7次单程,和之前一样。或者,有没有可能减少步骤?例如,在步骤3之后,农夫在对岸,带狼和羊。然后他回来带白菜?或者,有没有办法让步骤更少?比如:带羊过去 → 对岸:羊;原岸:狼、白菜农夫回来 → 原岸:狼、白菜、农夫带狼过去 → 对岸:狼、羊;原岸:白菜此时对岸有狼和羊,农夫在场,没问题农夫回来 → 原岸:狼、白菜、农夫;对岸:羊带羊过去 → 对岸:狼、羊、白菜? 不,原岸有狼和白菜,带羊过去?不对,步骤5是农夫带羊过去,此时原岸有狼和白菜,对岸有羊,农夫在原岸,带羊过去的话,对岸有羊,原岸有狼和白菜,农夫在对岸。这似乎有问题。让我再检查。步骤3之后,对岸有狼和羊,农夫在对岸。步骤4:农夫回来,对岸有狼和羊,农夫回来,原岸有狼、白菜、农夫?不对,步骤3是带狼过去,此时对岸有狼和羊,所以原本原岸是狼、白菜,农夫在对岸带狼过去,所以对岸有狼和羊(因为羊已经在对岸),所以原岸只剩下白菜?或者原岸在步骤1和2之后,是狼、白菜,然后农夫带狼过去,所以对岸有狼和羊,原岸有白菜?因为步骤1带羊过去,步骤2回来,带狼过去,此时羊在对岸,所以原岸有白菜,狼被带过去,所以原岸剩下白菜。步骤4:农夫回来,对岸有狼和羊,农夫在原岸,原岸有白菜和农夫,对岸有狼和羊。此时,农夫可以在原岸带白菜过去吗?步骤5:带白菜过去 → 对岸:狼、羊、白菜;原岸:空。这样完成了!但这是否可行?因为步骤4之后,对岸有狼和羊,农夫在原岸,所以原岸有人(农夫),所以独留在对岸的狼和羊由农夫在场,所以没问题。然后农夫带白菜过去,此时对岸有狼、羊、白菜,解决了所有。那这样的话,步骤是:带羊过河(对岸:羊)农夫回(对岸:空)带狼过河(对岸:狼、羊)农夫回(对岸:狼、羊)带白菜过河(对岸:狼、羊、白菜)这样总共是5次单程(去、回、去、回、去)。这是可能的吗?让我再仔细检查每一步的安全性:步骤1:带羊过河,对岸:羊;原岸:狼、白菜。此时没有人,所以没问题,因为农夫在对岸,所以原岸有狼和白菜,但此时农夫不在原岸,对吗?不,农夫在对岸,所以原岸是狼和白菜,没人。因此,此时狼和白菜在原岸,无人看守,但狼不会吃白菜,所以没问题。步骤2:农夫回来,原岸有狼、白菜、农夫;对岸:空。现在原岸有人(农夫),所以没问题。步骤3:农夫带狼过河,此时对岸有狼,原岸有羊、白菜,农夫在对岸。这时候,原岸有羊和白菜,而农夫在对岸,所以原岸无人?不,原岸有羊和白菜,农夫在对岸,所以原岸没有人(农夫在对岸,所以原岸只有羊和白菜),此时会触发羊吃白菜,导致冲突,因此步骤3是不允许的!哦,这里出错了。在步骤3,农夫带狼过河时,原岸有羊和白菜。因为步骤1后,羊在对岸,步骤2后,农夫回来,所以原岸有狼、白菜和农夫。步骤3:农夫带狼过河,此时对岸有狼,原岸有羊、白菜和农夫? 不,不,步骤1后,对岸有羊。步骤2,农夫回来,原岸有狼、白菜、农夫(因为步骤1带羊去,原岸剩下狼和白菜,步骤2农夫回来,原岸现在有狼、白菜,以及农夫?不对,原岸应该只有狼和白菜,因为步骤1和步骤2之后,农夫在原岸,对岸是空?等一下,让我重新梳理:初始状态:农夫在原岸,狼、羊、白菜也在原岸。步骤1:农夫带羊过河 → 对岸:羊;原岸:狼、白菜,农夫在对岸。步骤2:农夫回来 → 对岸:空;原岸:狼、白菜,农夫在原岸。步骤3:农夫带狼过河 → 对岸:狼;原岸:白菜,农夫在对岸。因为羊现在在对岸吗?不,步骤1中羊在对岸,步骤2农夫回来后,对岸只有羊吗?或者在步骤2后,对岸空,原岸有狼、白菜和农夫?这时候,步骤3:农夫带狼过河,所以农夫在原岸,带狼到对岸,对岸有狼,原岸有羊和白菜?不,因为步骤1中羊已经带过河,并且步骤2农夫回来,对岸有羊吗?不,对岸在步骤1后有羊,步骤2农夫回来,所以对岸只有羊吗?还是对岸空了?可能我在这里混淆了。让我重新整理:初始状态:原岸有农夫、狼、羊、白菜,对岸空。步骤1: 农夫带羊过河 → 对岸有羊,原岸有狼、白菜,农夫在对岸。此时,对岸有羊,原岸有狼、白菜。步骤2: 农夫回来 → 对岸空,原岸有狼、白菜,农夫在原岸。此时,原岸有狼、白菜,对岸空,农夫在原岸。步骤3: 农夫带狼过河 → 对岸有狼,原岸有白菜,农夫在对岸。这时,对岸有狼,原岸有白菜,对吗?因为步骤3是农夫在原岸带狼过河,所以原岸剩下的只有白菜(因为狼被带过河),而对岸现在有狼,和羊吗?不,羊在步骤1已经过河后,农夫回来,所以步骤2之后对岸只有羊吗?或者步骤1之后对岸有羊,步骤2农夫回来,对岸的羊还在吗?是的,步骤1后,羊在对岸,步骤2农夫回来,所以对岸仍然有羊,而原岸有狼、白菜和农夫。步骤3:农夫带狼过河,对岸现在有羊和狼,原岸有白菜,对吗?因为农夫在步骤3带狼过去,所以对岸此时有羊和狼,而原岸有白菜。此时,在步骤3之后,对岸有狼和羊,而农夫在对岸,因此对岸有农夫,所以狼和羊在对岸,由农夫看守,不会发生冲突。因此,这是允许的。步骤4:农夫回来 → 此时,对岸有狼和羊,农夫在原岸。原岸有白菜和农夫,对岸有狼和羊。这时候,原岸是安全的,对岸有农夫在场,所以狼和羊由农夫看守,所以没问题。步骤5:农夫带白菜过河 → 对岸有狼、羊、白菜;原岸空。这样总共是5次单程:去(羊)回(空)去(狼)回(空)去(白菜)这样是否可行?让我再检查一下每一步的安全性:步骤1:带羊过去,对岸有羊,原岸有狼和白菜。此时农夫在对岸,所以原岸无人,但原岸有狼和白菜,狼不危害白菜,所以安全。步骤2:农夫回来,原岸有狼、白菜,农夫在原岸。步骤3:带狼过去,对岸有羊和狼,原岸有白菜。此时,农夫在对岸,所以对岸有他,因此安全,狼和羊在对岸,他看守。步骤4:农夫回来,此时对岸有狼和羊,原岸有白菜,农夫在原岸。此时对岸的安全性由农夫在对岸吗?不,因为农夫在步骤4回来后在原岸,所以对岸有狼和羊,而农夫在原岸,所以对岸无人,此时狼和羊在对岸,无人看守,这会导致冲突!因为狼会吃羊。哦,这里又出错了!在步骤4,当农夫从对岸回来,对岸剩下狼和羊,而农夫在原岸,所以对岸无人,导致冲突。因此,步骤4是不允许的,因此这整个方案不行。所以,步骤3之后,对岸有狼和羊,农夫在对岸。步骤4:农夫回来,此时对岸有狼和羊,而农夫在原岸,所以对岸无人,导致冲突。因此这不行。那怎么办?看来第一步到步骤3之后,对岸有狼和羊,需要确保对岸有人看守,所以必须保留农夫在对岸,而如果农夫回来,就导致对岸无人,冲突。因此,这种情况下,必须让农夫不回来,而是携带其他东西?或者,是否有其他方法?比如,在步骤3之后,对岸有狼和羊,农夫在对岸。此时,农夫需要带其中一只动物回来吗?例如:步骤3:农夫带狼过河 → 对岸有狼和羊,农夫在对岸。步骤4:农夫带回羊 → 对岸有狼,原岸有羊;农夫在原岸。这时候,对岸有狼,原岸有羊和白菜,农夫在原岸,所以原岸安全,因为羊和白菜在一起,但农夫在场,所以没问题(虽然羊会吃白菜,但农夫在场?或者题目规定只有当人不在场时才发生冲突,所以当农夫在场时,不管怎样都安全?)是的,题目说当人不在场时,狼吃羊,羊吃白菜。所以当农夫在场时,即使狼和羊在一起,也可以安全,因为人存在。因此,在步骤4,如果农夫带羊回来,此时对岸有狼,原岸有羊和白菜,但农夫在原岸,所以原岸有人,所以羊和白菜在原岸可以共存吗?此时,原岸有人,所以即使羊在场,也不会吃白菜,对吗?所以,步骤4是允许的。然后步骤5带白菜过去:步骤4:农夫带回羊 → 对岸有狼;原岸有羊、白菜、农夫步骤5:农夫带白菜过河 → 对岸有狼、白菜;原岸有羊,农夫在对岸。此时,对岸有狼和白菜,农夫在对岸,所以安全。对岸有狼和白菜,没问题,因为狼不吃白菜。原岸有羊,安全。步骤6:农夫回来 → 对岸有狼、白菜,原岸有羊、农夫。步骤7:农夫带羊过河 → 对岸有狼、白菜、羊;原岸空。这样总共7次单程。但这样似乎并没有减少次数,反而和之前的方案一样。看来无论如何,要确保在任何一步,如果农夫不在场,不会出现冲突,必须花费较多的步骤。回到最初的正确步骤,即7次单程,这是经典的答案,但让我再检查是否有更优的方式。另一种思路是,是否存在一种方式,让农夫在运输中不需要两次来回带羊?例如:方案八:带白菜过河 → 对岸:白菜;原岸:狼、羊;农夫在对岸此时原岸有狼和羊,农夫在对岸,导致原岸无人,冲突,不行。方案九:带狼过河 → 对岸:狼;原岸:羊、白菜农夫回来 → 对岸空;原岸:狼、羊、白菜;农夫在原岸带羊过河 → 对岸:羊;原岸:狼、白菜;农夫在对岸现在对岸有羊;原岸有狼、白菜农夫回来 → 对岸空;原岸:狼、白菜、农夫带白菜过河 → 对岸:白菜;原岸:狼、羊冲突,原岸无人,所以狼吃羊,不行方案十:带白菜过河 → 对岸:白菜;原岸:狼、羊冲突,原岸无人,所以不行看来无论如何,必须严格遵循步骤,确保每次运输后两边安全。最终,正确的步骤应该是经典的7次单程:带羊过去回来带狼过去回来带羊过去回来带白菜过去不过,仔细看,这实际上是7次单程,比如:去(羊)→ 回(空)→ 去(狼)→ 回(空)→ 去(羊)→ 回(空)→ 去(白菜)这总共是7个动作,即单程7次。但让我再检查是否某个步骤可以省略。例如,有没有可能在步骤3之后,不回来带羊,而是直接带白菜?或者,有没有其他方法?或者,是否存在一个解需要5次单程?比如:带羊过河回来带白菜过河回来带狼过河但这会导致:步骤1: 对岸有羊,原岸有狼、白菜步骤2: 回来,原岸有狼、白菜、农夫步骤3: 带白菜过河,对岸有白菜,原岸有狼、羊此时原岸有狼和羊,无人,冲突,所以不行。或者步骤3: 带狼过河?步骤3: 带狼过河,对岸有狼,原岸有羊、白菜,冲突,不行。所以不行。综上所述,正确的最少数目是7次单程,即步骤:带羊过河(对岸:羊)回来(对岸:空)带狼过河(对岸:狼)回来(对岸:空)带羊过河(对岸:羊)回来(对岸:空)带白菜过河(对岸:白菜)不过实际上,在步骤3和步骤4之后,对岸有狼,原岸有羊、白菜。此时步骤5带羊过河,对岸有狼和羊,但农夫在对岸,所以安全。然后步骤6回来,对岸有狼,原岸有白菜和羊,农夫在原岸。此时步骤7带白菜过去,对岸有狼、羊、白菜。不过这里中间步骤可能有不同,但总结起来,最少需要7次单程。农夫需要将狼、羊和白菜安全运过河,且每次只能运送一个物品,且当农夫不在场时,狼会吃羊,羊会吃白菜。通过分析,最少需要的单程次数为 7次,具体步骤如下:带羊过河:对岸有羊,原岸有狼和白菜(农夫在对岸)。返回:原岸有狼、白菜和农夫(对岸空)。带狼过河:对岸有狼和羊(原岸有白菜)。返回:原岸有白菜和农夫(对岸有狼)。带羊过河:对岸有狼和羊(原岸有白菜)。返回:原岸有白菜和农夫(对岸有狼)。带白菜过河:对岸有狼、羊和白菜(原岸空)。关键在于每次运输后确保两岸安全:当农夫在场时,狼和羊、羊和白菜共存是允许的;当农夫不在场时,需避免冲突。通过上述步骤,农夫在 7次单程 内完成了运输,且所有物品被安全送达对岸。答案:最少单程7趟。通过对经典渡河问题的推演,算法逻辑展现出其构建系统化求解框架的强大能力——基于状态空间建模精准定义问题场景,通过约束条件分析识别核心限制,并运用最优路径搜索将复杂任务转化为清晰的步骤序列。依托大模型服务,我们不仅能高效解决此类逻辑难题,更能将这一分析方法拓展至资源调度、流程优化等实际场景,从而系统培养严谨的思维习惯与科学的规划能力。总结:小而强大,让智能落地更简单通过本次实践可以清晰地看到,Qwen3-8B与LightLLM的组合,为企业级AI应用提供了一个绝佳的平衡点——在成本、性能与效果之间找到了优雅的解决方案。它有力地证明:模型的价值不在于参数的绝对大小,而在于其“能力密度”与“落地效率”。当这样高效的模型,依托LLaMA-Factory Online所提供的开箱即用体验与弹性资源,从“一个好的AI想法”到“一个可服务的高智能应用”的路径,便被前所未有地缩短了。无论你是想构建一个深度的知识问答系统、一个复杂的逻辑分析工具,还是一个高并发的智能交互接口,这套 “快思考,慢也强” 的方案,都值得成为你技术评估中的首选。
-
DeepSeek V4全网猜测汇总:四大焦点浮出水面AI圈近期的热度,几乎全被DeepSeek V4的相关猜测承包了。恰逢DeepSeek-R1发布一周年,官方GitHub代码库中突然曝光的“MODEL1”标识,瞬间点燃全网讨论热情。开发者拆解代码、外媒爆料动态、行业人士解读技术,各类声音层出不穷。今天我们梳理全网真实信息,聚焦大家最关心的四大核心焦点,看看各方都在热议什么~焦点一:发布时间——春节前后成共识,外媒与代码线索相互印证●发布时间:关于DeepSeek V4的发布时间,全网猜测高度集中在2月中旬的农历新年前后。这一说法并非空穴来风,而是有多重真实线索支撑。1月21日,环球网援引ITPro报道称,DeepSeek计划于2月中旬农历新年期间推出这款旗舰模型。●代码层面:与此同时,代码层面也给出了呼应。1月20日(R1发布一周年当天),开发者在GitHub发现DeepSeek更新了一系列FlashMLA相关代码,其中114个文件里有28处提及“MODEL1”标识符,且该标识符与现有V3.2模型并列引用。第一财经指出,结合文件结构判断,“MODEL1”大概率已接近训练完成或推理部署阶段,正等待最终测试验证,侧面印证发布已进入倒计时。不少网友已开始蹲守官方动态,期待春节期间迎来这款“AI大礼包”。焦点二:核心技术——全新架构+记忆模块,多方拆解代码细节● 技术层面:猜测最为密集,核心围绕“MODEL1”架构与Engram记忆模块两大方向,均源自开发者对开源代码和论文的拆解分析。● 构架层面:关于“MODEL1”架构,第一财经和环球网均提到,其与V3.2模型在关键技术上存在明显差异,具体体现在键值(KV)缓存布局、稀疏性处理方式以及对FP8数据格式的解码支持等方面。FlashMLA作为DeepSeek独创工具,针对英伟达硬件做了深度优化,可在架构层面减少内存占用、提升计算效率。● 记忆模块:Engram记忆模块则因1月13日曝光的论文引发热议。该论文由DeepSeek核心研发梁文锋署名,提出“查算分离”架构,让CPU负责静态知识存储,GPU专注核心推理。开发者拆解发现,该模块通过词汇规范化、多头哈希查找、上下文门控等机制,可使词表大小减少23%,长文本任务准确率从84.2%飙升至97%,且在MMLU、CMMLU等任务中均有3-4分的性能提升。焦点三:能力与成本——编程力对标顶级模型,部署成本大降成亮点● 能力提升与成本优化是开发者和企业最关注的实际价值点,相关猜测均来自行业爆料与论文实测数据。●编程能力方面:第一财经提及内部初步测试显示,V4在编程能力上超过市场上其他顶级模型。科技思维报道称,V4在Codeforces编程评测中获得2441分,超过96.3%的人类程序员,算法优化准确率比GPT-5高出15%,错误修复效率是Claude的1.8倍,可处理数十万token上下文,甚至能驾驭PLC等工业冷门语言。● 成本方面:Engram模块带来的降本效果成为核心话题。实测数据显示,该模块可让大模型部署成本暴降90%,原本需8张A100显卡的千亿参数模型,如今1张消费级显卡加64G内存条即可运行,硬件成本从几万美金降至1200美元左右。同时,“查算分离”架构让80%静态数据存储于内存,文本模型综合调用成本或下降40%-50%。焦点四:生态格局——开源路线成共识,重塑全球竞争态势●生态格局方面:V4的到来被视为对全球AI开源生态的又一次冲击,相关讨论来自开源社区与行业分析。全球AI开源社区Hugging Face在《“DeepSeek时刻”一周年》博客中指出,R1的开源改变了全球生态格局,推动中国模型在Hugging Face的下载量超越美国。● 业内普遍认为,V4若延续开源路线,将进一步强化这一优势。读圣贤书,闻天下事账号提到,DeepSeek的开源策略吸引了全球开发者,尤其让发展中国家得以摆脱西方技术垄断,形成以中文AI为核心的开源生态。同时,V4正积极适配华为昇腾、寒武纪等国产芯片,契合算力自主可控趋势,有望拉高行业基础模型能力下限。
-
AI圈近期的热度,几乎全被DeepSeek V4的相关猜测承包了。恰逢DeepSeek-R1发布一周年,官方GitHub代码库中突然曝光的“MODEL1”标识,瞬间点燃全网讨论热情。开发者拆解代码、外媒爆料动态、行业人士解读技术,各类声音层出不穷。今天我们梳理全网真实信息,聚焦大家最关心的四大核心焦点,看看各方都在热议什么~焦点一:发布时间——春节前后成共识,外媒与代码线索相互印证● 发布时间:关于DeepSeek V4的发布时间,全网猜测高度集中在2月中旬的农历新年前后。这一说法并非空穴来风,而是有多重真实线索支撑。1月21日,环球网援引ITPro报道称,DeepSeek计划于2月中旬农历新年期间推出这款旗舰模型。 ●代码层面: 与此同时,代码层面也给出了呼应。1月20日(R1发布一周年当天),开发者在GitHub发现DeepSeek更新了一系列FlashMLA相关代码,其中114个文件里有28处提及“MODEL1”标识符,且该标识符与现有V3.2模型并列引用。第一财经指出,结合文件结构判断,“MODEL1”大概率已接近训练完成或推理部署阶段,正等待最终测试验证,侧面印证发布已进入倒计时。不少网友已开始蹲守官方动态,期待春节期间迎来这款“AI大礼包”。焦点二:核心技术——全新架构+记忆模块,多方拆解代码细节● 技术层面:的猜测最为密集,核心围绕“MODEL1”架构与Engram记忆模块两大方向,均源自开发者对开源代码和论文的拆解分析。● 构架层面:关于“MODEL1”架构,第一财经和环球网均提到,其与V3.2模型在关键技术上存在明显差异,具体体现在键值(KV)缓存布局、稀疏性处理方式以及对FP8数据格式的解码支持等方面。FlashMLA作为DeepSeek独创工具,针对英伟达硬件做了深度优化,可在架构层面减少内存占用、提升计算效率。● 记忆模块:Engram记忆模块则因1月13日曝光的论文引发热议。该论文由DeepSeek核心研发梁文锋署名,提出“查算分离”架构,让CPU负责静态知识存储,GPU专注核心推理。开发者拆解发现,该模块通过词汇规范化、多头哈希查找、上下文门控等机制,可使词表大小减少23%,长文本任务准确率从84.2%飙升至97%,且在MMLU、CMMLU等任务中均有3-4分的性能提升。焦点三:能力与成本——编程力对标顶级模型,部署成本大降成亮点● 能力提升与成本优化是开发者和企业最关注的实际价值点,相关猜测均来自行业爆料与论文实测数据。● 编程能力方面:第一财经提及内部初步测试显示,V4在编程能力上超过市场上其他顶级模型。科技思维报道称,V4在Codeforces编程评测中获得2441分,超过96.3%的人类程序员,算法优化准确率比GPT-5高出15%,错误修复效率是Claude的1.8倍,可处理数十万token上下文,甚至能驾驭PLC等工业冷门语言。● 成本方面:Engram模块带来的降本效果成为核心话题。实测数据显示,该模块可让大模型部署成本暴降90%,原本需8张A100显卡的千亿参数模型,如今1张消费级显卡加64G内存条即可运行,硬件成本从几万美金降至1200美元左右。同时,“查算分离”架构让80%静态数据存储于内存,文本模型综合调用成本或下降40%-50%。焦点四:生态格局——开源路线成共识,重塑全球竞争态势● 生态格局方面:V4的到来被视为对全球AI开源生态的又一次冲击,相关讨论来自开源社区与行业分析。全球AI开源社区Hugging Face在《“DeepSeek时刻”一周年》博客中指出,R1的开源改变了全球生态格局,推动中国模型在Hugging Face的下载量超越美国。● 业内普遍认为,V4若延续开源路线,将进一步强化这一优势。读圣贤书,闻天下事账号提到,DeepSeek的开源策略吸引了全球开发者,尤其让发展中国家得以摆脱西方技术垄断,形成以中文AI为核心的开源生态。同时,V4正积极适配华为昇腾、寒武纪等国产芯片,契合算力自主可控趋势,有望拉高行业基础模型能力下限。春节的烟花要来了,DeepSeek V4 也要点燃中国 AI 的新引擎,不管是想让 AI 精准匹配品牌风格的创作者,还是需要适配行业术语的职场人,如果想通过微调让 V4 变成 “专属定制款”,可以看看 “人人可用” 的微调神器—— LLaMA-Factory Online 大模型训练与微调平台。作为一站式大模型训练与微调平台,LLaMA-Factory Online 完全适配 DeepSeek 系列模型,不用写一行代码,通过可视化 Web 界面就能完成数据上传、参数配置、训练监控全流程。无论你是想微调行业咨询工具、报告生成器,又或是想解放双手的加班党、定制专属 AI 的科技迷,2 月中旬都可以蹲一波 DeepSeek V4 首发,再用 LLaMA-Factory Online 解锁定制新玩法。 评论区聊聊 ! 一起解锁 AI 定制新玩法~
-
奥维:AI技术赋能水利工程 “人工智能+”展现巨大潜力在全球气候变化与水资源供需矛盾加剧的背景下,传统水利工程正面临“监测滞后、预报精度有限、应急响应缓慢”等痛点,而“人工智能+水利”的深度融合,成为破解行业难题、推动水利数字化转型的关键路径。奥维数字科技凭借对AI技术的深耕与水利场景的深刻理解,打造出奥维水利算法云这一核心解决方案,将AI能力渗透到大坝安全、洪水预报、淹没分析等关键环节,以“精准、实时、可进化”的服务特性,为水利行业智能化升级提供了可落地的技术范式。AI与水利融合的基础架构“人工智能+水利”的落地应用,离不开数据采集、算法建模与专业技术融合三大核心技术体系的支撑,这些技术在行业实践中已形成成熟的应用基础,是水利行业数字化转型的重要技术底座。在数据采集层面,“天空地水工”一体化监测感知体系已成为行业标配,为AI模型提供高密度、高可靠性的数据源。该体系整合空基、地基、水工等多维度监测手段,空基端通过无人机搭载激光雷达、高光谱成像仪等设备实现区域动态测绘;地基端依靠雨量站、渗压计、视频监测站等设施完成点位精准监测;水工端则通过坝体内部传感器阵列捕捉结构应力、形变等核心数据。例如珠江水利委员会在大藤峡水利枢纽布设4000多个安全监测点,涵盖20多种监测类型,仪器完好率达99.8%。同时,ADCP云测流无人船、岸基侧扫雷达等新型装备的应用,进一步突破了传统监测在复杂环境下的局限,实现水质、流速等要素的自动化采集。算法建模方面,水利专用AI模型已形成“物理机理+数据驱动”的融合架构,兼顾预测精度与场景适应性。针对渗流监测等静态场景,物理信息神经网络(如PI-RGSM模型)通过融入水文地质参数与边界条件硬约束,在减少观测数据依赖的同时提升预测精度,平均决定系数可达0.978以上;针对洪水预报等动态场景,深度学习模型通过挖掘历史水文数据与实时降雨、水位数据的关联关系,实现预报参数的动态优化;针对视觉检测场景,YOLO等目标检测模型通过训练漂浮物、冰凌等水利专属数据集,可实现隐患的实时识别与定位。此外,水利部组织研发的“水利标准AI大模型”,基于“SkyLIM”体系采用“海量知识库+双模型+标准服务”架构,进一步推动了AI算法在水利领域的标准化应用。这些算法普遍具备轻量化部署与在线自学习能力,能够适应不同流域的水文特性差异。 技术融合层面,AI与GIS(地理信息系统)、数字孪生的深度结合,打通了“数据-模型-决策”的完整链路。GIS技术为AI提供空间数据支撑,使淹没范围模拟、流域态势呈现等可视化需求成为可能;数字孪生通过构建三维虚拟场景,实现AI模型预测结果与物理实体的实时映射,如山东“智水齐鲁”体系中,大模型与数字孪生流域的融合实现了洪水调度的全流程仿真。同时,标准化API接口技术的应用,让AI模型能与水库运维、应急指挥等现有系统无缝对接,实现跨平台数据共享与协同决策。这种融合模式也契合了水文预测的发展趋势——通过数据驱动模型与物理机理模型的有机结合,弥补各自在非线性刻画与可解释性上的不足。AI驱动三大核心引擎,重塑水利决策流程奥维水利算法云的核心竞争力,在于集成了大坝安全监测(DM)、洪水预报、淹没图集三大智能引擎,且每个引擎都以AI技术为核心驱动力,实现从数据采集到决策输出的全流程智能化。1. 大坝安全监测:AI赋能精准预警与远程管控大坝作为水利工程的“生命线”,其渗流状态、结构稳定性直接关系到下游安全。奥维的大坝安全监测服务,通过AI技术重构了传统监测模式:精准数据分析:采用自研AI算法对大坝典型断面的渗压数据进行深度挖掘,将实时监测数据与理论浸润线进行科学比对,能快速识别异常渗流信号——相比传统人工分析需数小时的流程,该系统可在分钟级内定位安全隐患;智能交互与预警:内置智能问答模块,管理人员通过自然交互即可完成安全评估并获取详尽报告,同时系统具备实时预警机制,一旦监测数据超出阈值,会立即通过多终端通知相关人员,避免延误处置;远程全域管控:支持浏览器与移动端访问,结合AI对多源监测数据(如水位、渗压、雨量)的融合处理,用户可随时随地掌握大坝状态(当前水位、校核水位等关键数据实时可视化呈现),实现“无人值守、有人监管”的高效模式。2. 洪水预报:自研AI算法实现分钟级精准推演洪水预报的“时效性”与“准确性”直接决定防汛决策的有效性。奥维基于AI技术打造的洪水预报引擎,打破了传统水文模型的局限:定制化预见期服务:针对不同等级的水库、河道,AI模型可根据流域特性(如地形、水文历史数据)生成定制化预报方案,支持1-3天的短期预见期,且能纳入气候变化场景,提升预报适应性;轻量化与高响应:采用轻量级API设计,AI模型的计算效率大幅提升,可在分钟级内完成洪峰推演、入库流量预测(系统实时展示“预测入库流量、实际入库流量、计算入库流量”三者对比曲线),助力项目快速上线与应急响应;自学习持续优化:平台支持在线机器学习与参数率定,AI模型会基于历史数据(如 decades of hydrological data)与实时数据(如 rainfall、river level 实时监测值)不断迭代,逐步提升预报精度——例如在某次降雨事件中,通过AI动态调整参数,预报误差可控制在较低范围。3. 淹没图集:AI+GIS构建可视化应急支撑洪水淹没范围与水深分布,是应急管理部门制定疏散方案、调配资源的核心依据。奥维将AI与GIS技术深度融合,打造出高效的淹没图集生成引擎:高精度模拟:基于先进的二维水动力AI模型,输入指定洪水流量后,系统可逐小时生成淹没区域范围与水深分布图,相比传统静态图集,动态模拟能更真实还原洪水演进过程;直观化呈现:采用专业着色技术,以颜色深浅直观表示水深变化(如深色代表高风险深水区),管理人员无需专业水文知识即可快速识别危险区域;应急场景适配:该引擎已服务于应急管理部门、水利机构,能高效模拟完整洪水过程,例如在2024年某次降雨事件中,系统为西麻塔、转临等区域的降雨-淹没关联分析提供了精准数据支撑,助力应急决策。六大产品特性,彰显AI+水利的技术优势奥维水利算法云的“高效、准确、轻便、可进化、可视化、统一接口”六大特性,本质是AI技术在水利场景中落地能力的集中体现:高效:AI对多源数据的并行处理能力,让渗压分析、洪水推演等流程从“小时级”压缩至“分钟级”,大幅提升工作效率;准确:AI模型对历史数据的深度学习与实时数据的动态校正,确保监测结果、预报数据的可靠性——例如大坝渗压异常识别准确率、洪水流量预测精度均处于行业前列;轻便:AI模型的轻量化部署设计,不占用过多硬件资源,且操作界面简洁,支持在不同设备(PC、移动端)上流畅运行;可进化:AI的在线自学习能力是“可进化”的核心——系统无需人工大规模干预,即可通过数据迭代优化模型参数,适应流域水文特性的长期变化;可视化:AI将复杂的水文数据转化为直观的图表、地图(如水位曲线、淹没热力图),降低数据理解门槛,提升决策效率;统一接口:标准化API设计支持与其他水利系统(如水库运维平台、应急指挥系统)的集成,AI模型输出的结构化数据能直接用于跨系统协同,实现信息共享。结语:AI赋能水利的未来潜力奥维通过“AI+水利”的实践证明,人工智能并非简单的“技术叠加”,而是能从“数据处理、模型优化、决策支撑”三个核心环节重构水利工程的运行模式:它让大坝监测更精准、洪水预报更及时、应急响应更科学,也让水利决策从“经验驱动”转向“数据驱动”。未来,随着AI模型与数字孪生、5G等技术的进一步融合,奥维的水利解决方案有望在更广阔的场景落地——例如跨流域水资源调度、极端天气下的洪水联防联控、水利工程全生命周期智能化运维等。可以说,奥维的实践不仅为行业提供了可参考的技术方案,更彰显了“人工智能+”在破解水利行业痛点、守护水安全中的巨大潜力,为水利数字化转型注入了强劲动力。
-
紧接MA3E:面向遥感场景的角度感知的掩码自编码器(一),我们继续分享MA3E的实验与分析。实验与分析MA3E模型首先在无标签的MillionAID数据集~\cite{long2021creating}上自监督预训练,然后迁移MA3E的编码器至下游的场景分类、旋转目标检测和语义分割任务上微调。所有报告的结果中,†\dag†表示使用其官方代码在MillionAID数据集上预训练的复现版本,⋆\star⋆表示直接加载开源预训练权重进行端到端微调或线性探测。预训练设置表1. MA3E的预训练和下游分类设置场景分类所有微调和线性探测实验均在NWPU-RESISC45(NU45)、AID和UC Merced(UCM)数据集上进行。对于NU45,随机选取每个类别20%的图像作为训练集,剩余80%作为测试集。对于AID和UCM,这两个比例均为50%。微调和线性探测的设置如表1所示。数据集缩写:IN1k为ImageNet-1k,MA为MillionAID,S-2为Sentinel-2,$\sim$2M为约两百万张图像,G.I.为GeoPile和ImageNet-22k,f-S为fMoW-Sentinel,f-R为fMoW-RGB。表2. 不同方法在三个场景分类数据集上的微调结果对比表3. 不同方法在三个场景分类数据集上的线性探测结果对比表2和表3分别展示了在三个数据集上的微调和线性探测结果。预训练300 epochsepochsepochs的MA3E取得了有竞争力的结果。尽管在UCM数据集上的微调精度低于 ViT+RVSA,但MA3E仅需后者52%的FLOPs。随着预训练的进行,三个数据集上的微调和线性探测结果持续提升。经过1600 epochsepochsepochs预训练后,MA3E在各项指标上全面领先,这证明了MA3E能够有效学习对角度多样的遥感目标判别的旋转不变性表征。此外,表中统计了单张GPU所需的每epochsepochsepochs的训练时间。与MAE相比,MA3E仅增加约0.2小时的训练时间,却显著提升了准确率。旋转目标检测与语义分割我们在DOTA1.0和DIOR-R数据集上进行的旋转目标检测实验,并使用Oriented R-CNN作为检测器。对于语义分割任务,我们采用UperNet框架,在Potsdam和iSAID数据集上进行端到端的有监督微调。其设置如表4所示。表4. 旋转目标检测和语义分割的端到端微调设置表5. 不同方法在多个数据集上的检测和分割结果对比表5展示了不同方法在DOTA1.0和DIOR-R上的微调结果,其中MA3E仅使用朴素的主干网络就取得了优越的检测性能。预训练300 epochsepochsepochs的版本超越了同样预训练300 epochsepochsepochs的其他方法,而训练1600 epochsepochsepochs的MA3E全面领先。相较于微调主干网络为ViTAE+RVSA的MAE,MA3E在DOTA1.0和DIOR-R上的mAP分别提升了0.51和0.87。这种检测性能的显著提升说明了MA3E在预训练期间感知角度信息的有效性。对于分割结果,在预训练较少epochsepochsepochs下,MA3E便展现出有竞争力的性能,在Potsdam数据集上的mF1仅比CMID低0.04。当预训练1600 epochsepochsepochs时,MA3E再次取得最佳结果,在iSAID和Potsdam数据集上分别比次优方法提高了0.3 mIoU和0.28 mF1。这说明MA3E学到的旋转不变性表征在在语义分割中仍然发挥着重要的作用。可视化分析图1. MillionAID训练图像的重建效果示例。对每一组图像来说,从左至右依次展示原始图像、包含旋转区域的复合图像、掩码图像和MA3E重建图像。为了便于观察,旋转区域都用红框标出。与MAE~\cite{he2022masked}一样,模型在可视图像块上的输出也展示出来以全面展现MA3E的重建质量。图1定量地可视化了MA3E在遥感图像上的重建效果。所有示例图像都随机采样自包含一万张图像的MillionAID训练集。每张图像调整为224×224224 \times 224224×224像素(196个图像块,p=16p=16p=16),并设置旋转区域为96×9696 \times 9696×96(36个图像块)进行重建。旋转区域和背景的掩码比例为75%,分别对应9个和40个可视图像块。从图中可以看到,MA3E在重建原始像素时有效地恢复了旋转区域上预设的角度变化。此外,重建的旋转区域可能会出现一些不均匀色块,例如图1中的水面和操场。这种现象的出现主要是因为本章所提出的最优传输损失函数计算了每个旋转区域的预测图像块与多个作为目标的原始图像块之间的均方误差。小结我们提出了一种面向遥感图像的掩码图像建模方法——角度感知的掩码自编码器MA3E。通过设计了放缩中心裁剪操作构造旋转区域,为每张原始图像引入显式的角度变化。MA3E以创建的复合图像作为输入,旨在同时实现原始像素重建和角度恢复。其中,旋转区域的重建被视为一个最优传输问题,MA3E从而能够有效感知角度并学习判别的旋转不变性表征,并在多种下游任务中均取得了优越的表现。本文已发表在European Conference on Computer Vision 2024(ECCV 2024)会议中,我们希望MA3E能促进遥感领域基础模型的发展。尽管MA3E展现了角度感知的能力,但在大多遥感场景中,只有人造目标的角度信息需要被更加重视。对于广阔的土地覆盖,模型可能无法从角度信息中获得显著收益。在未来的工作中,将考虑所有遥感场景中都普遍存在的尺度信息,进一步探索人造目标的角度感知与土地覆盖的尺度建模的有机结合道路。
-
在之前的研究中,我们分别从多尺度难特征和MLP引导两个角度探索了基于对比学习的遥感图像表征学习方法。随着掩码图像建模逐渐成为计算机视觉领域中自监督表征学习的主流范式,我们将研究重点转向遥感场景下的MIM方法。与自然图像不同,遥感图像中的目标具有多样化的角度分布,这一特性在现有MIM方法中未得到充分考虑。针对这一问题,我们提出了一种新的角度感知的掩码自编码器,通过在像素重建时同时恢复角度变化,引导模型学习更判别的旋转不变性表征,为遥感图像解译任务提供更有效的通用预训练模型。引言在自然图像领域,无需标签的自监督表征学习如SimCLR、MoCo、BEiT和DINO等方法已经成为在大规模数据集上预训练模型的新范式。其中,掩码图像建模(Masked Image Modeling,MIM)通过重建被掩码的部分输入来学习视觉表征,凭借简洁的架构和在下游任务上出色的性能受到了研究者的广泛关注。最近,遥感图像领域出现了一些有趣的MIM工作如SatMAE、ScaleMAE等,它们为视觉Transformer提供了良好的初始化并在一系列下游任务中取得了优越表现,这证明了MIM在遥感图像上的表征学习具有极大潜力。尽管现有针对遥感图像定制的MIM方法考虑了诸多因素,如不同分辨率、蕴含多尺度目标及复杂背景、成像自多光谱波段等,但它们在面对遥感目标多样的角度时并不是一个有效的学习者。自然图像中的目标在重力作用下具有固定的朝向,而通过鸟瞰视角捕获的遥感图像中目标往往具有较大的角度分布范围。同一遥感目标在不同角度下会呈现出不同的形状和外观。正确感知并考虑角度信息符合遥感技术研究中如何捕获目标的本质,有助于更准确的遥感图像解译。然而上述方法仅关注遥感目标的原始像素值重建,对角度信息的学习往往只隐式地伴随在重建过程中。因此,我们提出一种角度感知的掩码自编码器(Masked Angle-Aware Auto Encoder,MA3E),通过在原始像素重建过程中恢复预设的角度变化来感知并学习角度信息。此处提供一个说明性的例子,在旋转目标检测任务中微调预训练模型时,统计了DOTA1.0数据集中所有被正确检测到的目标的角度,并在图1中报告了不同角度范围内目标的AP50^{50}50指标。现有方法RVSA仅在接近水平角度(如0∘^\circ∘或90∘^\circ∘)的目标上获得较高的AP50^{50}50,而MA3E则显著提升了对大倾角目标的AP50^{50}50,这充分说明MA3E有效地感知到目标的多样角度并学到鲁棒的旋转不变性表征。图1. 加载MA3E和MAE预训练模型的检测器对不同角度范围的遥感目标的检测结果,MA3E模型经300 epochsepochsepochs和1600 epochsepochsepochs预训练后,显著提升了对10∘^\circ∘至80∘^\circ∘目标的AP50^{50}50,证明了在预训练期间感知角度信息是有效的。MA3E图2. (a)MA3E的工作流程。通过设计的放缩中心裁剪操作,在原始图像中创建旋转区域以引入显式的角度变化。旋转区域在添加一个角度嵌入向量后,MA3E分别对旋转区域和剩余背景进行随机掩码。之后,所有可视图像块经过顺序编码和解码,最终重建原始图像并恢复旋转区域上预设的角度变化。(b)MA3E将旋转区域的重建视为一个最优运输(OT)问题。基于Sinkhorn-Knopp快速迭代算法求解的运输计划Ω\OmegaΩ,提出了一个OT损失函数来自动为解码器预测的每个旋转区域的图像块分配相似的原始图像块为重建目标。MA3E旨在感知不同的角度并学习旋转不变性视觉表征,其工作流程如图2(a)所示。MA3E在每张遥感图像任意位置上使用放缩中心裁剪操作构建旋转区域来提供显式的角度变化,这些旋转区域具有随机的角度,并替换其原来位置上的场景。MA3E为每个旋转区域上添加一个额外的角度嵌入向量,并分别掩码旋转区域和剩余背景。对于旋转区域的重建,MA3E基于Sinkhorn-Knopp算法求解的传输计划,自动为每个旋转区域的图像块分配多个相似的原始图像块作为重建目标,以避免直接重建引入的偏差。构造旋转区域图3. (a)我们提出的放缩中心裁剪操作在原始图像的任意位置构造具有随机角度的旋转区域,从而引入显式的角度变化。(b)在左列和中列,简单的随机旋转操作导致:i)出现无意义的零值背景;ii)丢失部分场景;iii)场景尺度发生变化。而右列固定角度(如90°、180°、270°)的旋转则限制了场景的多样性。使用简单的随机旋转操作在每张遥感图像中构造边长为aaa的旋转区域会出现如图3(b)所示的不良结果。模型难以从这些区域学习到高质量的表征,从而造成计算资源的浪费。因此,本章提出了一种放缩中心裁剪操作来创建多样化且主要场景得到极大程度保留的旋转区域,如图3(a)所示。对于图像上任意位置的边长为hhh的正方形区域(蓝色),以任何角度旋转该区域均会损失边缘场景(灰色),但该区域内最大内切圆(红色)中的场景能得到完整保留。因此,利用中心裁剪,从红色圆内提取边长为a=22ha = \frac{\sqrt 2}{2}ha=22h的最大内切正方形区域作为最终的旋转区域。该区域场景有任意朝向,它将替换原始场景从而为复合图像引入显式的角度变化。为了确保每个旋转区域能够被完整地划分为图像块,其边长aaa需能被图像块大小ppp整除,并且起始位置为ppp的倍数。角度嵌入除了为复合图像中分离的图像块嵌入向量添加位置嵌入向量外,MA3E还为旋转区域添加了一个额外的角度嵌入向量。每个角度嵌入是一个可学习的向量,并在同一个旋转区域的所有图像块嵌入向量之间共享。角度嵌入能作为一种隐式的提示引导模型感知旋转区域的角度变化,同时将其与剩余背景区分开来。随机掩码策略给定来自旋转区域的Nr=a2/p2N_r = {a^2}/{p^2}Nr=a2/p2个图像块(表示为r={ri∣i=1,2,...,Nr}r = \{{r_i}|i = 1,2,...,{N_r}\}r={ri∣i=1,2,...,Nr})以及来自背景的Nb=N−NrN_b = N - {N_r}Nb=N−Nr个图像块(表示为b={bi∣i=1,2,...,Nb}b = \{{b_i}|i = 1,2,...,{N_b}\}b={bi∣i=1,2,...,Nb}),为了避免随机掩码策略移除旋转区域中过多或全部的图像块,按照一定比例分别掩码rrr和bbb,例如75%。因此,来自背景的可视图像块和被掩码图像块分别表示为bv={biv∣i=1,2,...,Nbv}{b^v} = \{b_i^v|i = 1,2,...,N_b^v\}bv={biv∣i=1,2,...,Nbv}和bm={bim∣i=1,2,...,Nbm}{b^m} = \{b_i^m|i=1,2,...,N_b^m\}bm={bim∣i=1,2,...,Nbm}。对于旋转区域的图像块rrr,同样有着类似的定义,即rvr^vrv和rmr^mrm。像素重建MA3E使用均方误差损失函数来预测背景中被掩码图像块的像素值。对于旋转区域,则提出了一种OT损失函数LOT{\cal L}_{OT}LOT,以最小化每个图像块与其匹配的原始图像块在像素空间中的距离。整体损失函数可表示为:Lrec=LMSE(bm,b^m)+LOT(r,r^),{\cal L}_{rec} = {\cal L}_{MSE}(b^m,\hat b^m) + {\cal L}_{OT}(r,\hat r), Lrec=LMSE(bm,b^m)+LOT(r,r^),其中,b^m∈RNbm×p2C{\hat b^m} \in {\mathbb R}^{N_b^m \times {p^2}C}b^m∈RNbm×p2C表示解码器输出的对背景中被掩码图像块的预测值,而r^∈RNr×p2C\hat r \in {\mathbb R}^{{N_r} \times {p^2}C}r^∈RNr×p2C表示旋转区域中所有的预测图像块。旋转区域的重建经放缩中心裁剪后,旋转区域的每个图像块与原始图像中相同位置上的图像块相比产生内容和角度上的场景偏移。此时直接计算被掩码图像块与原始图像块之间的均方误差不仅会引入不可避免的偏差,还会忽略可视图像块上的场景变化。我们将旋转区域的重建视作一个最优传输问题,使每个预测图像块能够自动匹配相似的原始图像块进行重建。最优传输假设有MMM个供给方和NNN个需求方,其中第iii个供给方拥有uiu_iui单位的货物,第jjj个需求方需要vjv_jvj单位的货物。第iii个供给方给第jjj个需求方运输一单位货物的成本记作cijc_{ij}cij。最优传输问题的目标是找到一个传输方案,记作Ω={ωi,j∣i=1,2,...,M,j=1,2,...,N}\Omega = \{\omega _{i,j}|i = 1,2,...,M,j = 1,2,...,N\}Ω={ωi,j∣i=1,2,...,M,j=1,2,...,N},它能以最小的总传输成本确保所有货物都能从供给方运送至需求方,即:minω∑i=1M∑j=1Ncijωij.s.t.∑i=1Mωij=vj,∑j=1Nωij=ui,∑i=1Mui=∑j=1Nvj,ωij≥0,i=1,2,…,M,j=1,2,…,N.\begin{aligned} \min _\omega & \sum_{i=1}^M \sum_{j=1}^N c_{i j} \omega_{i j} . \\ \text {s.t.} & \sum_{i=1}^M \omega_{i j}=v_j, \sum_{j=1}^N \omega_{i j}=u_i, \\ & \sum_{i=1}^M u_i=\sum_{j=1}^N v_j, \\ & \omega_{i j} \geq 0, i=1,2, \ldots, M, j=1,2, \ldots, N . \end{aligned} ωmins.t.i=1∑Mj=1∑Ncijωij.i=1∑Mωij=vj,j=1∑Nωij=ui,i=1∑Mui=j=1∑Nvj,ωij≥0,i=1,2,…,M,j=1,2,…,N.基于最优传输的重建重建旋转区域的情景如图2(b)所示,考虑有NrN_rNr个原始图像块和NrN_rNr个旋转区域的预测图像块,每个原始图像块可视为供给方,持有p2C{p^2}Cp2C单位的像素值(即ui=p2C,i=1,2,...,Nru_i = {p^2}C, i = 1,2,...,{N_r}ui=p2C,i=1,2,...,Nr),每个预测图像块则视为需求方,它的p2C{p^2}Cp2C单位的通道(即vj=p2C,j=1,2,...,Nrv_j = {p^2}C, j = 1,2,...,{N_r}vj=p2C,j=1,2,...,Nr)需要p2C{p^2}Cp2C单位的像素值进行重建。原始图像块中每一单元的像素值与预测图像块中每一单元的通道间的相似度表示传输成本cijc_{ij}cij。这一过程可扩展为矩阵级的MSE计算以便于GPU加速计算。因此,从第iii个原始图像块到第jjj个预测图像块的传输成本为:cij=∥ri−r^j∥22,{c_{ij}} = \left\| {{r_i} - {{\hat r}_j}} \right\|_2^2, cij=∥ri−r^j∥22,其中,L2距离较近的原始图像块与预测图像块具有更高的相似度,从而倾向于产生更低的传输成本。一种快速迭代算法Sinkhorn-Knopp被用来计算总体传输方案Ω\OmegaΩ。根据求解得到的Ω={ωi,j}\Omega = \{\omega_{i,j}\}Ω={ωi,j},如图2(b)所示,OT损失会自动为第jjj个预测图像块分配多个相似的原始图像块作为重建目标,即:LOT(r,r^)=∑i=1Nr∑j=1Nr∥ri−r^j∥22ωij.\mathcal{L}_{OT}(r, \hat{r})=\sum_{i=1}^{N_r} \sum_{j=1}^{N_r}\left\|r_i-\hat{r}_j\right\|_2^2 \omega_{i j}. LOT(r,r^)=i=1∑Nrj=1∑Nr∥ri−r^j∥22ωij.LOT{\cal L}_{OT}LOT在像素重建和角度恢复过程中,能引导模型感知旋转区域的角度变化。随着训练的进行,MA3E可以有效地学习旋转不变性视觉表征。传输方案分析在旋转区域重建过程中,定义原始图像块为供给方,对旋转区域的预测图像块为需求方,每对图像块间的L2相似度为传输成本。这个OT问题的传输方案Ω\OmegaΩ通过Sinkhorn-Knopp迭代法来快速求解,该算法通过在目标函数上加入熵正则化项,将复杂的边际线性规划问题转化为在平滑可行域上的求解过程。需要注意的是,这个经典算法属于教材教授的知识,并非我们的贡献。图4. 在MillionAID训练图像的示例场景下求解的传输方案Ω\OmegaΩ的热力图可视化。对于每一组,实际求解过程中预测图像块都是从解码器输出的,此处展示被掩码图像块只是为了便于读者观察。图像经分块处理后,按照从左到右、从上到下的顺序为每个目标图像块和预测图像块分配索引。热力图展示了计算索引为iii的目标图像块和索引为jjj的预测图像块之间的MSE权重。每一列的权重和为1/361/361/36,整个热力图的权重和为1。MA3E利用传输方案Ω={ωi,j}\Omega = \{\omega_{i,j}\}Ω={ωi,j}为每个预测图像块分配多个相似的原始图像块作为像素重建目标。图4可视化了部分求解的传输方案的热力图。本质上,ωi,j\omega_{i,j}ωi,j可以看作使用LOT{\cal L}_{OT}LOT计算第iii个目标图像块与第jjj个预测图像块间均方误差时的权重,其中更高的权重赋给了更相似的目标-预测对。在重建第jjj个预测图像块时,模型计算它与多个目标图像块之间的加权MSE和(见图4中热力图第jjj列)。显然,每个预测图像块与分布在多个不同位置的相似目标图像块相匹配,而非仅仅与相同位置(即主对角线上)的目标图像块匹配。这充分证明了MA3E以求解OT问题的方式来重建旋转区域是有效的。实验与分析篇幅所限,请读者移步MA3E:面向遥感场景的角度感知的掩码自编码器(二)
-
紧接MGC:面向遥感场景的MLP引导CNN预训练的对比学习(一),我们继续分享MGC的实验部分。实验预训练设置表1. Fusion数据集包含的类别我们使用三个场景分类数据集MLRSNet, NWPU-RESISC45(NU45)和Aerial Image Dataset (AID)构造预训练数据集Fusion。MLRSNet和NU45数据集中的每个类的样本都随机划分为40%用于训练或微调,60%用于测试。对于AID数据集,划分比例为50%和50%。这三个训练集中相同类别将被合并以构建一个Fusion数据集,该数据集包含61,272张图像,涵盖60个类别,如表1所示,用于MGC预训练。随机采样确保了预训练数据的合理和平衡分布,MGC只专注于探索高效的预训练范式本身而不受不均衡数据分布的影响。我们训练了两个具有不同步长的模型,即MGC-Base和MGC-Large。场景分类对于下游场景分类任务,除了上述三个数据集,我们还在EuroSAT数据集上进行了对比实验,结果如表2所示,表2. 场景分类结果对比可以看到,MGC-B在所有数据集上均取得最佳准确率,但MGC-L在MLRSNet上的表现不及SwAV和CARE,在NU45上的表现也不及CARE。这是由于较大的步长sss使得E:mE_:^mE:m聚合更大范围的空间上下文信息从而增强E:cE_:^cE:c在大规模场景中的定位能力。而相比定位能力,图像级分类任务更依赖于E:cE_:^cE:c本身的局部识别能力。而在MGC-B中,E:cE_:^cE:c学习到的小尺度场景信息提高了其局部识别能力。旋转目标检测我们使用3种检测器Oriented-RCNN、RoI Transformer和S2ANet,在DOTA1.0和HRSC2016数据集上进行实验。篇幅所限,我们只展示部分实验结果。DOTA1.0是一个大规模的旋转目标检测数据集。它包含2,806张图像,尺寸从800×800800 \times 800800×800到4,000×4,0004,000 \times 4,0004,000×4,000像素不等,并且包含188,282个实例,所有实例都有旋转边界框标注,属于15个目标类别,即桥梁(BR)、港口(HA)、船只(SH)、飞机(PL)、直升机(HC)、小型车辆(SV)、大型车辆(LV)、棒球场(BD)、田径场(GTF)、网球场(TC)、篮球场(BC)、足球场(SBF)、环形交叉口(RA)、游泳池(SP)和储油罐(ST)。在实验中,每张图像都被裁剪成1,024×1,0241,024 \times 1,0241,024×1,024的图像块,步幅为824,训练集和验证集都用于训练。HRSC2016是一个广泛用于检测旋转舰船的热门数据集。它只有船一个类别,包含1,061张图像,图像大小从300×300300 \times 300300×300到1,500×9001,500 \times 9001,500×900像素不等。训练集包含436张图像,验证集包含181张图像,其余144张图像用于测试。通过固定图像的长宽比,将图像的较短边调整为800像素,较长边不超过1,333像素。表2-1. 双阶段检测器Oriented R-CNN加载不同预训练模型在DOTA1.0上的旋转目标检测结果对比表2-2. 单阶段检测器S2ANet加载不同预训练模型在DOTA1.0上的旋转目标检测结果对比表2-3. 不同检测器加载多种预训练模型在HRSC2016的检测结果对比从表2-1和表2-2可以看出,MGC-B在预测包含大尺寸目标的类别(如GTF、TC和RA)时表现更好。使用单阶段检测器时,除了在TC和RA上取得相同的高性能外,MGC-L还对小尺寸甚至稠密目标(如BR、LV和SH)有着很好的预测能力。MGC预训练模型的准确率均达到了先进水平,且超越了INP。尽管与监督学习的RSP相比还存在一定的性能差距,但MGC仅依靠前者使用预训练数据集7%左右规模的小规模数据集预训练就取得了极具竞争力的结果。表2-3显示了所有方法在HRSC2016上的检测结果,MGC-B和MGC-L超越了所有其他基于对比学习的预训练方法,并且与监督学习的INP相当。有趣的是,MGC-B在双阶段检测器Oriented R-CNN中总是优于MGC-L。而在单阶段检测器S2ANet中,MGC-L的表现则优于MGC-B。这可能是因为MGC-L中大范围的上下文信息抑制了双阶段检测器对区域候选框的提取,而MGC-B更适合后续区域候选框的分类。语义分割我们使用3种分割框架UperNet、DeeplabV3+和PSPNet,在iSAID和Potsdam数据集上进行实验。iSAID是一个大规模的实例分割数据集。需要注意的是,该数据集与DOTA1.0共享相同的场景,不同之处只在于iSAID 采用语义掩码标签,包括一个背景类和15个前景类别:船舶(Ship)、储油罐(ST)、棒球场(BD)、网球场(TC)、篮球场(BC)、田径场(GTF)、桥梁(Bridge)、大型车辆(LV)、小型车辆(SV)、直升机(HC)、游泳池(SP)、环岛(RA)、足球场(SBF)、飞机(Plane)和港口(Harbor)。该数据集包含2,806张高分辨率图像,像素尺寸范围从800×800800 \times 800800×800到4,000×13,0004,000 \times 13,0004,000×13,000像素。其中训练集、验证集和测试集分别包含1,411、458和937张图像。以512的步长将所有图像裁剪为896×896896 \times 896896×896的小块,并仅使用验证集进行评估,这是因为测试集标签不可用。Potsdam数据集由ISPRS委员会WG II/4发布,包含38幅平均尺寸为6,000×6,0006,000 \times 6,0006,000×6,000像素的图像。这些图像覆盖了德国波茨坦市3.42平方千米的区域,并包含六类场景,即:不透水表面(IS)、建筑物(BD)、低矮植被(LV)、树木(Tree)、汽车(Car)和杂物(Clutter)。其中训练集和测试集分别包含24张和14张图像,以384的步长将所有图像裁剪为512×512512 \times 512512×512的小块。在计算评估指标时,从数据集中排除了杂物(Clutter)类别。表3-1. 不同预训练模型使用UperNet框架在iSAID上的分割结果对比表3-2. 不同预训练模型使用DeeplabV3+框架在iSAID上的分割结果对比表3-3. 不同预训练模型使用UperNet框架在Potsdam上的分割结果对比表3-4. 不同预训练模型使用DeeplabV3+框架在Potsdam上的分割结果对比在iSAID数据集上,MGC模型表现优异,其中MGC-L在UperNet和DeeplabV3+框架下的mIoU分别比RSP高出0.37和0.87。具体而言,表3-1展示了UperNet的结果,MGC-L在BD、HC和RA类别上取得最佳性能。对于DeeplabV3+,MGC模型整体表现优秀,如表3-2所示,在GTF、LV、SV和Bridge类别上达到了最高的IoU。在Potsdam数据集的结果分别展示在表3-3和表3-4中。MGC模型的表现优于所有其他对比学习方法,但整体上仍不及两种监督预训练模型INP和RSP。变化检测我们选择BIT作为统一的变化检测框架,在CDD和LEVIR数据集上进行评估。CDD是一个反映真实季节变化的基准数据集,包括7对4,725×2,2004,725 \times 2,2004,725×2,200和4对1,900×1,0001,900 \times 1,0001,900×1,000像素的多源RGB图像。这些图像均来自Google Earth,分辨率范围从0.03m到1m不等。遵循\parencite{ji2018fully}的方式,图像被裁剪为256×256256 \times 256256×256的小块。最终训练集、验证集和测试集分别包含10,000、3,000和3,000个小图像块。LEVIR数据集包含637对1,024×1,0241,024 \times 1,0241,024×1,024像素的图像,这些图像同样采集自Google Earth,覆盖了美国德克萨斯州2002年到2018年间20个不同的地区。数据集中包含31,333个独立的建筑变化目标,如别墅、公寓、车库和仓库。训练集、验证集和测试集分别包含445、64和128对图像。LEVIR数据集的大图被裁剪为256×256256 \times 256256×256的无重叠小图像块。表4-1. 不同预训练模型使用BIT框架在CDD和LEVIR上的变化检测结果对比所有方法在两个数据集上微调的F1分数如表4-1所示。变化检测任务旨在匹配一对双时相图像中同位置的像素,因此局部识别能力得到加强的MGC-B模型取得了比MGC-L模型更好的效果。遗憾的是,由于Fusion数据集中缺乏对变化检测友好的双时相信息,MGC模型的F1分数均低于INP模型。但是,MGC仍然比所有对比学习方法的效果好,甚至在CDD数据集上MGC-B模型超越了RSP模型。与视觉Transformer比较凭借全局注意力机制,ViT能够捕捉图像中前景与全局场景之间的空间关系。MGC旨在通过MLP分支引导CNN分支关注正确的前景区域。因此,本节对比了自然图像领域基于\textbf{ViT-B}ase的三种最新的预训练方法以进一步验证MGC的有效性,即对比学习方法MoCo v3和DINO,以及掩码图像建模方法MAE。MGC分别与使用这三种方法的默认设置在Fusion数据集上预训练的模型和官方预训练权重进行比较。此外,还将基于时间和光谱图像重建的SatMAE(在约71.2万张遥感图像上预训练)的开源预训练权重用于对比实验。表5. 与基于视觉Transformer的不同预训练方法的综合性能比较当使用小规模的Fusion数据集预训练模型时,MGC在稠密预测任务上的检测和分割表现全部优于三种对比方法,如表5第2、4和6行所示,这也进一步证明MGC能充分学习前景区域的有效判别表征。与在ImageNet-1k上预训练的官方模型相比,除了在DOTA1.0上的检测精度比MAE低0.64的mAP外,MGC仅从有限数据中学习充分的高质量表征,就能与利用大规模数据预训练的模型相媲美。使用大规模遥感图像预训练与RSP方法类似,我们采用大规模公开的场景分类数据集MillionAID进行预训练。由于MillionAID数据集未公开训练集标签,因此全部图像均用于预训练。MillionAID是一个大规模的遥感场景数据集,包含1,000,848张从Google Earth收集的RGB图像。训练集由10,000张图像组成,分为51个类别,而测试集包含其余990,848张未标注的图像。这些图像由不同的传感器拍摄,因此具有从0.5m至153m不等的空间成像分辨率,图像大小从110×110110 \times 110110×110到31,672×31,67231,672 \times 31,67231,672×31,672像素不等。表6. 不同预训练模型在来自多种传感器源图像上的分割性能比较各种下游任务的结果如表6所示。在大规模数据集上预训练的MGC模型的分类性能得到显著提升。此外,它在DOTA1.0和iSAID上超越了INP和RSP方法。在HRSC2016和Potsdam上,MGC模型的性能几乎与INP相当。MillionAID中的多样化场景有助于MGC学习更全面的视觉表征,从而获得更优的结果。然而,这些进步往往需要较高的训练成本(训练200 epochsepochsepochs,约148小时)。相比之下,尽管使用小规模Fusion数据集的MGC方法在旋转目标检测任务中的表现相对较差,但对于大多数任务,小规模预训练的MGC能够在约49小时的时间训练800 epochsepochsepochs,提高获得通用预训练模型的效率。可视化结果图1. 不同模型在多种场景下的注意力图。(a)原始图像;(b)INP;(c)MoCo v2;(d)MGC-B的CNN分支;(e)MGC-B的MLP分支;(f)MGC-L的CNN分支;(g)MGC-L的MLP分支。MGC的MLP分支(绿框)有效地引导CNN分支(红框)关注正确的前景区域。图1展示了使用GradCAM++技术可视化的不同模型在多样场景中的注意力图。可以看到,无论面对稠密目标还是稀疏目标,CNN主干网络(红框)在MLP分支(绿框)的引导下,都能将注意力集中在正确的前景区域。与MGC-B相比,MGC-L的注意力更加判别,这也解释了为什么MGC-L预训练的CNN主干模型有着更强的定位能力。例如,MGC-L减少了在纯纹理场景(如沙漠)中的冗余注意力;MGC-L的CNN主干从小规模区域中学到的纹理信息具有高判别性。相比之下,MoCo v2预训练模型对有着大纵横比的目标(如桥梁、机场)或区域目标(如教堂、湖泊)的注意力不完全,而对于稠密目标(如密集住宅区)则表现出冗余的注意力。INP由于域差异出现了错误的关注。小结我们提出了一种基于MLP引导的CNN预训练的对比学习方法——MGC。通过独特设计的的MLP分支,MGC能有效引导传统的CNN分支克服浅层的局部性问题,从而将注意力集中在正确的前景区域上并提取高质量判别表征。MGC预训练的模型不仅拥有着最佳的场景分类性精度,而且在旋转目标检测、语义分割和变化检测任务上也表现出极具竞争力的性能。MGC为遥感图像领域提供了一种有效且通用的预训练方法,对其他特殊类型的图像(如高光谱或合成孔径雷达图像)的预训练同样具有一定的参考价值。本文已发表在2024年的IEEE Transactions on Geoscience and Remote Sensing(TGRS)期刊上。
-
引言现有一些工作已经充分探讨了专门针对遥感图像的预训练,但它们通常需要多样化的遥感图像数据源,此外,在大规模数据集上进行预训练需要大量的计算资源,这使得只有少数研究机构能够实施。我们的目标是在随机采样得到的小规模遥感图像数据集上仅使用有限的计算资源(例如,四块NVIDIA V100 GPU)就训练出具有竞争力的通用预训练模型。我们采用了一种基于对比学习的CNN预训练范式。CNNs依靠局部性建模强大的判别特征有助于对比模型挖掘成对样本间的一致性,促进了对比学习在自然场景下取得进步。局部性即卷积层的局部感知性,通过卷积操作将卷积核与场景中相应位置的局部区域相乘,从而捕获当前位置的空间结构和局部模式。经过卷积操作,特征图的高和宽变小,固定大小的卷积核会带给深层卷积层更大的感受野。换句话说,局部性使CNNs的浅层关注局部区域而深层关注全局。但这一特点适用于自然场景而非遥感场景,我们利用Grad-CAM++可视化不同方法预训练的CNNs每一层的注意力图并排除域差异的影响来更好的说明。图1. 不同预训练模型各层的注意力图(a)MoCo v2在ImageNet-1k上预训练的ResNet-50(b)MoCo v2在小规模遥感图像数据集上预训练的ResNet-50(c)MGC在小规模遥感图像数据集上预训练的ResNet-50(d)MGC在小规模遥感图像数据集上预训练的MLP分支对于图1(a)的自然场景,由于前景目标单一且尺寸较大,与背景间差异明显,CNN的layer1layer1layer1和layer2layer2layer2从不同位置的局部场景中有极大概率捕获到前景狗和背景的差异。感受野较大的layer3layer3layer3能逐渐从更大区域中定位部分狗的判别区域。到layer4layer4layer4阶段,CNN的关注域能覆盖正确前景区域并从中提取强大的判别表征。相反,遥感场景通常覆盖广阔而复杂的地形,卫星传感器质量的变化可能导致遥感图像模糊或失真。此外,图像中的前景目标、感兴趣区域和土地覆盖等主要判别要素在尺度和分布上也不均匀。在图1(b)的遥感场景中,预训练CNN的layer1layer1layer1和layer2layer2layer2只能从有限的局部区域中学习前景桥梁和背景之间的差异信息,限制了layer3layer3layer3建立对更大区域内正确前景的认识。进一步地,这导致layer4layer4layer4对海面等背景的冗余关注和对前景桥梁的不充分关注,并认为该处判别。遥感场景下浅层的局部性导致CNN不完全定位正确前景,提取的低质量表征不利于对比模型学习一致性,这也造成了对数据的浪费。为此,我们提出一种用于遥感图像的MLP指导CNN预训练的对比学习方法(MLP-Guided CNN Pre-training,MGC)。MGC在CNN分支之外额外引入了MLP分支,以克服浅层的局部性问题,并引导CNN分支关注正确的前景区域。MLP分支由三层卷积层和多个MLP组成,能够从特征图中的不同位置聚合空间上下文信息。在图1(c)和(d)的遥感场景中,尽管layer3layer3layer3仍错误地关注了桥梁右下角的土地覆盖区域,但MLP分支的各层通过聚合来自不同区域的特征逐步定位到了完整的桥梁,成功引导CNN关注正确的前景区域。MGC模型架构MGC采用经典的孪生编码器架构进行对比预训练。其中,编码器kkk的参数通过动量更新机制平滑的从编码器qqq获得,即:θk←α⋅θk+(1−α)⋅θq\theta_k \leftarrow \alpha \cdot \theta_k+(1-\alpha) \cdot \theta_qθk←α⋅θk+(1−α)⋅θq,其中θq\theta_qθq和θk\theta_kθk表示编码器的参数。如图~\ref{mgc-fig2}(a)所示,每个编码器由一个普通CNN分支(EqcE_q^cEqc / EkcE_k^cEkc)和一个对前景敏感的MLP分支(EqmE_q^mEqm / EkmE_k^mEkm)组成。与SimCLR方法相同,输入遥感图像xxx通过随机数据增强创建两个视图vqv_qvq和vkv_kvk,然后分别输入到两个编码器的各个分支中来提取多种形式的表征。在图2(a)中,灰色的ck−c_{k^-}ck−和mk−m_{k^-}mk−表示来自除xxx以外其他图像的特征。图2. MGC的完整架构CNN分支CNN分支E:cE_:^cE:c包括来自编码器qqq的EqcE_q^cEqc和来自动量编码器kkk的EkcE_k^cEkc,它们均由ResNet-50主干网络链接着一个投影头组成,EqcE_q^cEqc连接着一个额外的预测头,投影头与预测头结构相同,均由通道全连接层(Channel FC layer,即线性层)、BN层、ReLU激活函数和另一个通道全连接层组成。MLP分支图3. MLP分支结构MLP分支E:mE_:^mE:m与E:cE_:^cE:c唯一区别在于主干结构上的差异。E:mE_:^mE:m的主干网络中仅保留ResNet-50的前三层,之后与一个单独设计的MLP网络相连,其结构如图3所示由两个普通的MLP和nnn个CycleMLP组成。CycleMLP中的Cycle FC层可以沿着特征图的通道维度进行循环偏移和采样,从而在不同的高度和宽度维度上聚合空间上下文信息,具体计算方式如下:Mh,w,:cycleFC=∑c=0cinWc⋅Fh+Δh,w+Δw,c+b,M_{h, w,:}^{\text {cycleFC}}=\sum_{c=0}^{c_{in}} W_c \cdot F_{h+\Delta h, w+\Delta w, c}+b, Mh,w,:cycleFC=c=0∑cinWc⋅Fh+Δh,w+Δw,c+b,其中Fh+Δh,w+Δw,cF_{h+\Delta h, w+\Delta w, c}Fh+Δh,w+Δw,c表示在动态循环位置(h+Δh,w+Δw)(h + \Delta h, w + \Delta w)(h+Δh,w+Δw)处第ccc通道的值。Wc∈RCin×CoutW_c \in {\mathbb R}^{C_{in} \times C_{out}}Wc∈RCin×Cout和b∈RCoutb \in {\mathbb R}^{C_{out}}b∈RCout分别是Cycle FC中可学习的权重和偏置。在第ccc通道上高度和宽度两个方向上的偏移量通过计算Δh=(c mod s)−1\Delta h = (c \bmod s) - 1Δh=(cmods)−1和Δw=(⌊c/s⌋ mod s)−1\Delta w = (\left\lfloor {c/s} \right\rfloor \bmod s) - 1Δw=(⌊c/s⌋mods)−1来获得,其中sss是可调节步长。较大的步长sss意味着E:mE_:^mE:m能聚合更多空间上下文信息。随着训练的进行,E:mE_:^mE:m能够挖掘与前景区域相关的判别表征。随着sss的增加,E:mE_:^mE:m关注更大且更具判别性的前景区域。模型训练MGC中每个提出的组件的工作流程如图2所示。首先,同分支对比学习利用从编码器qqq的CNN分支EqcE_q^cEqc提取的特征cqc_qcq和来自动量编码器kkk的EkcE_k^cEkc的特征ckc_kck,或由MLP分支 E:mE_:^mE:m提供的特征mqm_qmq和mkm_kmk,构建正负样本对,通过典型的对比学习来探索一致性。同时,正样本对引导策略推动cqc_qcq (mqm_qmq)从其正样本ck+c_{k^+}ck+(mk+m_{k^+}mk+)中学习信息,从而促进同分支对比学习。之后,跨分支对比学习从EqcE_q^cEqc选择cqc_qcq和来自EkmE_k^mEkm的mk+m_{k^+}mk+与mk−m_{k^-}mk−,构建成对样本;类似地,mqm_qmq也被用来与ck+c_{k^+}ck+和ck−c_{k^-}ck−创建正负对,进一步丰富模型学到的一致性。最终,注意力引导策略被提出用以拟合同一编码器中E:cE_:^cE:c和E:mE_:^mE:m提取的特征的分布,从而驱使E:mE_:^mE:m引导E:cE_:^cE:c逐渐关注前景区域并学习判别表征,最终克服E:cE_:^cE:c浅层的局部性问题。经过充分的训练,编码器qqq的CNN分支EqcE_q^cEqc作为通用预训练模型微调一系列下游遥感任务。同分支对比学习同分支对比学习的目标是为“查询向量”检索与之相关的“键向量”,并使它们在嵌入空间中彼此接近,这通过最小化infoNCE损失函数来实现。因此,在获得由E:cE_:^cE:c编码的cqc_qcq和ckc_kck后,损失计算如下:Lc↔c(cq,ck)=−logexp(cq⋅ck+/τ)exp(cq⋅ck+/τ)+∑k−exp(cq⋅ck−/τ),\mathcal{L}_{c \leftrightarrow c}(c_q,c_k){\rm{ = }} - \log \frac{\exp (c_q \cdot {c_{k^+}} /\tau )}{\exp (c_q \cdot {c_{k^+}}/\tau ) + \sum\nolimits_{k_{\rm{ - }}} {\exp (c_q \cdot {c_{k^-}}/\tau )} }, Lc↔c(cq,ck)=−logexp(cq⋅ck+/τ)+∑k−exp(cq⋅ck−/τ)exp(cq⋅ck+/τ),其中τ\tauτ是用于控制相似度计算尺度的温度系数,ck+c_{k^+}ck+和cqc_qcq来自同一图像的不同视图,即一个正样本对。ck−c_{k^-}ck−是从其他图像中提取的,通常被视为cqc_qcq的负样本。当然,遵循相同的设置再次计算来自MLP分支E:mE_:^mE:m的mqm_qmq与mkm_kmk间的infoNCE损失。模型通过同分支对比学习来挖掘基本的一致性信息,其完整的损失函数写为:Lconsame=Lc↔c(cq,ck)+Lm↔m(mq,mk).\mathcal{L}_{con}^{\rm{same}} = {\mathcal{L}_{{\rm{c}} \leftrightarrow c}}(c_q,c_k) + {\mathcal{L}_{m \leftrightarrow m}}(m_q,m_k). Lconsame=Lc↔c(cq,ck)+Lm↔m(mq,mk).跨分支对比学习E:cE_:^cE:c能从场景中的任何区域提取局部特征。而聚合较大尺度场景内空间上下文的特性使得E:mE_:^mE:m能够专注于前景区域,从而学到对前景敏感的区域辨别表征。因此,跨分支对比学习被提出来充分挖掘这两种不同偏好表征之间的互信息,进一步提升模型学到的一致性。对于一个随机输入图像,可将EqcE_q^cEqc提取的cqc_qcq视为“查询向量”,EkmE_k^mEkm编码的数据增强视图的mk+m_{k^+}mk+作为cqc_qcq的正样本,来自其他图像的表征作为cqc_qcq的负样本mk−m_{k^-}mk−。同样,当mqm_qmq作为“查询向量”时,用于构造正负样本对的样本都来自EkcE_k^cEkc。投影头和预测头确保了所有分支提取的特征向量维度相同。通过跨分支的构建正负样本对,本章最小化如式~\ref{mgc-eq2}所定义的infoNCE损失。因此,跨分支对比学习的完整损失函数可以写为:Lconcross=Lc↔m(cq,mk)+Lm↔c(mq,ck).\mathcal{L}_{con}^{\rm{cross}} = {\mathcal{L}_{{\rm{c}} \leftrightarrow m}}(c_q,m_k) + {\mathcal{L}_{m \leftrightarrow c}}(m_q,c_k). Lconcross=Lc↔m(cq,mk)+Lm↔c(mq,ck).正样本对引导策略一般的,典型对比范式通常设置较大的动量更新系数α\alphaα来保证两个编码器的网络参数近似。动量编码器kkk提取的特征中包含的判别信息在每次迭代中都得到了充分保留,这使得特征具有很高的稳定性。因此当对比一个由“查询向量”cqc_qcq 和稳定特征ck+c_{k^+}ck+构建的正样本对时,模型就会全神贯注的探索一致性。否则,模型可能会在cqc_qcq和不稳定的ck+c_{k^+}ck+之间学习到一些噪声。因此,基于动量更新机制带来的优势,设计了一种正样本对引导策略,以增强同分支对比学习的效果。如图~\ref{mgc-fig2}(d)所示,对于E:cE_:^cE:c,最小化cqc_qcq和ck+c_{k^+}ck+分布之间的KL散度:Lk+→qc(cq,ck+)=−ck+logck+cq,\mathcal{L}_{k^{+} \rightarrow q}^c\left(c_q, c_{k^{+}}\right)=-c_{k^{+}} \log \frac{c_{k^{+}}}{c_q}, Lk+→qc(cq,ck+)=−ck+logcqck+,上式迫使ck+c_{k^+}ck+和cqc_qcq特征分布一致,进一步促进了同一类型分支内的对比学习。随着动量更新的进行,EkcE_k^cEkc会逐渐具备相同的特征提取能力。在E:mE_:^mE:m中,同样的策略应用于从E:mE_:^mE:m提取的mqm_qmq和mk+m_{k^+}mk+,完整的正样本对引导策略的损失函数可定义为:LklPG=Lk+→qc(cq,ck+)+Lk+→qm(mq,mk+).\mathcal{L}_{kl}^{{\rm{PG}}} = \mathcal{L}_{{k^ + } \to q}^c(c_q,c_{k^+}) + \mathcal{L}_{{k^ + } \to q}^m(m_q,m_{k^ + }). LklPG=Lk+→qc(cq,ck+)+Lk+→qm(mq,mk+).注意力引导策略CNN中浅层的局部性问题导致E:cE_:^cE:c不可避免关注到冗余的背景信息,并忽略部分前景区域。与此相反,E:mE_:^mE:m从不同区域聚合空间上下文信息,驱使注意力覆盖正确的前景区域,这使得E:mE_:^mE:m挖掘的表征在前景目标或区域的位置上有着足够的判别性。基于上述发现,提出注意力引导策略帮助CNN分支关注正确前景区域,这通过最小化mqm_qmq和cqc_qcq的分布之间的KL散度来实现的。Lm→cq(cq,mq)=−mqlogmqcq,\mathcal{L}_{m \rightarrow c}^q\left(c_q, m_q\right)=-m_q \log \frac{m_q}{c_q}, Lm→cq(cq,mq)=−mqlogcqmq,其中,区域判别表征mqm_qmq将作为监督信号,迫使EqcE_q^cEqc关注相同场景中的前景区域。同时,EkcE_k^cEkc也被引导在另一视图中定位相同的前景。最终的损失函数可以写为:LklAG=Lm→cq(cq,mq)+Lm→ck+(ck+,mk+).\mathcal{L}_{k l}^{\mathrm{AG}}=\mathcal{L}_{m \rightarrow c}^q\left(c_q, m_q\right)+\mathcal{L}_{m \rightarrow c}^{k^{+}}\left(c_{k^{+}}, m_{k^{+}}\right) . LklAG=Lm→cq(cq,mq)+Lm→ck+(ck+,mk+).在图1中,CNN分支的注意力覆盖了正确的前景区域,证明了注意力引导策略的有效性。LossMGC通过联合优化EqcE_q^cEqc, EqmE_q^mEqm, EkcE_k^cEkc和EkmE_k^mEkm来进行高质量的表征学习,即:Ltotal =Lcon same +λC⋅Lcon cross +λP⋅LklPG+λA⋅LklAG,\mathcal{L}_{\text {total }}=\mathcal{L}_{\text {con }}^{\text {same }}+\lambda_C \cdot \mathcal{L}_{\text {con }}^{\text {cross }}+\lambda_P \cdot \mathcal{L}_{k l}^{\mathrm{PG}}+\lambda_A \cdot \mathcal{L}_{k l}^{\mathrm{AG}}, Ltotal =Lcon same +λC⋅Lcon cross +λP⋅LklPG+λA⋅LklAG,其中权重λC\lambda_CλC平衡模型优化期间的跨分支对比学习,合适的正样本对引导损失的权重λP\lambda_PλP能促进同分支对比学习的质量,改变权重λA\lambda_AλA能控制MLP分支E:mE_:^mE:m引导CNN分支E:cE_:^cE:c注意力的强度。实验篇幅所限,请读者移步MGC:面向遥感场景的MLP引导CNN预训练的对比学习(二)
-
引言遥感图像场景分类作为遥感技术中一种基础的应用手段,在现代化的地质勘探、道路规划、精准农业、灾害监测、病媒传播监测和应对气候变化等涉及国防和民生的领域中起着举足轻重的作用。传统分类模型通常采用在ImageNet等通用自然图像数据集上预训练的权重进行初始化。然而,自然图像与遥感图像在数据类型、成像机制及空间特征等方面存在显著差异,导致此类预训练模型在遥感场景下泛化能力受限,难以充分发挥性能潜力。近年来,遥感技术迅猛发展,推动了空间分辨率与光谱分辨率更高、图像质量更优的遥感数据的持续产出。然而,对这些高分辨率图像进行精细化标注,往往依赖专家经验或昂贵的地面传感器,成本高昂且效率低下。与此同时,随着在轨观测卫星数量的激增,每日产生的遥感图像数据量呈指数级增长。在这一背景下,如何高效、智能地解析和理解海量遥感数据,已成为民用与军事应用领域共同面临的紧迫挑战。因此,发展高效、鲁棒的自监督表征学习方法,实现对海量未标注遥感数据的自动表征提取与语义理解,正日益成为推动遥感智能分析迈向新阶段的核心技术路径。对比学习对比学习作为自监督表征学习中的主流范式之一,通过将嵌入空间中正样本对(即同一图像的不同视图)的表征拉近,同时推远负样本对(即不同图像的视图),能从无标注图像中学习充分的一致性视觉表征。我们借助图1简要介绍对比学习的学习过程:图1. 对比学习范式每张无标签图像xxx经两种独立的数据增强操作创建出两个不同的视图,即查询视图vqv_qvq和键视图vkv_kvk。之后,它们分别输入到具有相同结构的孪生编码器中提取特征。经编码器提取的查询向量为qqq,存储在记忆库中的一组已编码的键向量为{k0,k1,k2,...}\{k^0, k^1, k^2, ...\}{k0,k1,k2,...},这其中一定存在一个唯一的正键向量k+k_+k+与查询向量qqq匹配,因为该正键向量和查询向量来自同一图像的不同视图。因此,qqq和k+k_+k+构成正样本对,对比学习往往采用典型的infoNCE损失函数来拉近正样本对,同时增加查询与所有其他负键向量k−k_-k−之间的距离,其公式如下:Lc(q,k)=−logexp(q⋅k+/τ)exp(q⋅k+/τ)+∑k−exp(q⋅k−/τ),{{\cal L}_c}(q,k){\rm{ = }} - \log \frac{{\exp (q \cdot {k_ + }/\tau )}}{{\exp (q \cdot {k_ + }/\tau ) + \sum\nolimits_{{k_ - }} {\exp (q \cdot {k_ - }/\tau )} }}, Lc(q,k)=−logexp(q⋅k+/τ)+∑k−exp(q⋅k−/τ)exp(q⋅k+/τ),其中τ\tauτ为用于控制特征分布平缓程度的温度系数。基于多尺度难特征的对比学习与自然图像相比,遥感图像涵盖的场景中背景复杂,其中作为判别依据的前景目标的尺度和分布不均匀,且不同卫星的成像质量差异也造成了视觉模糊和图像畸变等负面因素,因此,我们提出了一种基于多尺度难特征的对比学习方法(Multi-scale Hard Contrastive Learning, MHCL)。MHCL利用我们设计的难特征转换方法从小规模遥感图像数据中创建更判别的多尺度难特征,从而鼓励模型从复杂遥感场景中学习丰富的一致性视觉表征,其结构如图2所示。图2. MHCL架构我们以经典方法MoCo v2作为baseline,收集编码器ResNet-50的layer2layer2layer2、layer3layer3layer3、layer4layer4layer4和layer5layer5layer5输出的浅层纹理特征和深层语义特征,分别送入四个具有不同输入维度的投影头来生成简单的多层级特征和对应的记忆队列。难特征转换所有提取的特征kik^iki和qiq^iqi在L2归一化后,都会映射到一个统一的单位球面空间中。为充分挖掘和利用每张遥感图像所含场景信息,我们对每一组特征向量均采用难特征转换方法HFT,包括难正特征离心化和难负特征向心化操作。通过HFT,直接编码得到的简单查询向量和简单键向量彼此融合,从而转换为难样本。这些生成的难特征所包含的合成场景信息会突破数据集中固有场景的限制,帮助模型探索更判别的一致性信息从而提升表征学习的质量。图3. 难特征转换难正特征离心化从最大化利用图像信息的角度出发,最直接的思路是挖掘更多包含场景语义的特征。通常,在标准单位球面空间中,从球心指向球面的两个归一化特征之间的夹角越大,它们的相似性就越低,即夹角较大的两个特征可被视为彼此的难样本。因此,通过离心化操作来增大每对查询特征向量与其正键特征向量之间的夹角来获取难正特征。具体而言,如图3(a)所示,使用加权减法运算外推qiq^iqi来生成离心的难特征。同理也可以得到k+ik_+^ik+i的难样本,该过程可以表示为:{q^i=(1+λ)⋅qi−λ⋅k+ik^+i=(1+λ)⋅k+i−λ⋅qi,\left\{ \begin{array}{l} {{\hat q}^i} = (1 + \lambda ) \cdot {q^i} - \lambda \cdot k_ + ^i\\ \hat k_ + ^i = (1 + \lambda ) \cdot k_ + ^i - \lambda \cdot {q^i} \end{array} \right., {q^i=(1+λ)⋅qi−λ⋅k+ik^+i=(1+λ)⋅k+i−λ⋅qi,其中,权重λ\lambdaλ服从Beta分布,即λ∼Beta(α,β)\lambda \sim Beta(\alpha, \beta)λ∼Beta(α,β),且λ∈(0,1)\lambda \in (0,1)λ∈(0,1)。更小的λ\lambdaλ能生成更难的样本。由于场景分类数据集的规模远小于ImageNet等大型自然图像基准,过难的特征可能会破坏图像中的独特场景,不利于模型的学习和训练的收敛。因此,我们一般选择较大的λ\lambdaλ以避免生成的难正特征过度偏离原始场景。难负特征向心化在模型迭代训练时,baseline模型的记忆队列仅更新最前面一个batchsizebatchsizebatchsize大小的负键向量,这会导致模型反复计算那些没有得到及时更新的剩余负样本的损失。因此,增加不同负特征之间的相似性来生成更多样化的难负样本,能帮助MHCL降低重复计算的代价。具体的,每一组相同尺度的负键向量都存储在一个单独的记忆队列中,即{k−i}={k1,k2,...,kQ}−i\{k_-^i\} = {\{k_1},{k_2},...,{k_Q}\}_-^i{k−i}={k1,k2,...,kQ}−i,其中QQQ是每个队列的大小,定义{k−i}rand\{k_-^i\}_{rand}{k−i}rand为队列{k−i}\{k_-^i\}{k−i}的随机重排列版本。如图3(b)所示,难负特征向心化操作通过使用加权加法来减少{k−i}\{k_-^i\}{k−i}中的负样本与{k−i}rand\{k_-^i\}_{rand}{k−i}rand中的随机排列的负样本之间的角度,即:{k^−i}=λ⋅{k−i}+(1−λ)⋅{k−i}rand,\{\hat k_-^i\} = \lambda \cdot \{k_-^i\} + (1 - \lambda) \cdot {\{k_-^i\}_{rand}}, {k^−i}=λ⋅{k−i}+(1−λ)⋅{k−i}rand,其中,λ\lambdaλ与难正特征离心化中的λ\lambdaλ作用一致。本章同样赋予λ\lambdaλ一个较大的值,以避免生成如上述描述的造成信息崩塌的难负样本。向心化的队列{k^−i}\{\hat k_-^i\}{k^−i}可以提供多样化的负样本特征,从而进一步促进多层级中间特征对比学习。最终Loss在离心化简单正特征生成难正特征q^i\hat q^iq^i和k^+i\hat k_+^ik^+i,并创建包含难负特征的记忆队列{k^−i}\{\hat k_-^i\}{k^−i}之后,MHCL利用多尺度难特征联合对比损失函数,在每个尺度上推远难负样本对并拉近难正样本对,从而引导模型学习更具一致性的判别表征,即:Lmhc(q,k)=Lmlc(qi,ki)+ωh⋅Lmlc(q^i,k^i),{{\cal L}_{mhc}}(q,k) = {{\cal L}_{mlc}}({q^i},{k^i}) + {\omega _h} \cdot {{\cal L}_{mlc}}({\hat q^i},{\hat k^i}), Lmhc(q,k)=Lmlc(qi,ki)+ωh⋅Lmlc(q^i,k^i),其中,ωh\omega_hωh是一个超参数,控制难特征参与模型优化的强度。在将模型迁移到下游场景分类任务时,转换的难特征包含的部分合成场景信息会在一定程度上混淆模型的判别能力。这种情况在小规模数据集上尤为明显。因此,不同规模的数据集设置不同的ωh\omega_hωh,从而在最大化利用这些难特征挖掘模型潜能的同时降低错误预测的风险。实验数据集MHCL的一系列实验均在三个常见的遥感图像场景分类数据集UC Merced、NWPU-RESISC45和MLRSNet上进行:UC Merced包含21个土地利用类别,每个类别有100张尺寸为256×256256 \times 256256×256像素的图像,这2,100张RGB图像收集自美国地质调查局(USGS)发布的国家地图集。NWPU-RESISC45是由西北工业大学从Google Earth收集的一个常用遥感图像场景分类基准数据集。它包含31,500张RGB彩色空间的图像,平均分为45类,每类包括700张图像。这些图像的空间分辨率范围从0.2米到30米不等,所有图像的大小均为256×256256 \times 256256×256像素。MLRSNet是一个大规模的多标签遥感图像数据集,包含109,161张从 Google Earth收集的图像。这些图像的空间分辨率范围为0.1米到10米,图像大小为256×256256 \times 256256×256像素。所有图像被分配到46个大类,每个大类包含1,500到3,000张图像不等。同时,每张图像都有着从1到13个数量不等的子标签。全部实验仅使用大类标签。在实验中,所有数据集中每个类别的图像都被随机分成两部分。一部分用于训练,包括自监督预训练和在场景分类任务上微调;另一部分用于测试模型性能。UC Merced(UCM)数据集被随机划分为60%的训练集和40%的测试集。对于NWPU-RESISC45数据集,随机选择20%和80%的图像用于训练,其余20%和80%的图像用于测试。这两个划分的数据集分别称为NU45 2-8和NU45 8-2。同样,MLRSNet数据集将40%作为训练集,60%作为测试集,并且在测试阶段仅使用广义类别标签。主要结果表1. 主要结果对比我们选取自然图像领域的11种优秀的对比学习方法进行比较,在表1可以看到,MHCL在三个数据集上均取得了卓越的性能,尤其是在小规模的UCM上。除了BYOL之外,所有对比方法均在MLRSNet上取得最佳结果,这表明数据集中包含的场景信息越丰富,由对比机制引导的模型所学习的一致性表征就越具判别力。然而,这些方法在其他三个小型和中型数据集上的Top-1准确率表现均不理想,只有MHCL在所有数据集上均保持了全面的竞争力。尽管训练样本有限,但通过利用主干网络中间层的多尺度难特征挖掘一致性视觉表征,MHCL仍然能为场景分类任务提供有效的预训练模型。表2. 不同预训练方法对比许多对比学习方法都是基于自然图像数据集(如包含约128万张图像的 ImageNet-1k)逐步发展而来的。这些方法在自监督生成的预训练模型在许多下游任务中表现出良好的微调性能。为了探究所提出的MHCL方法在遥感图像数据集上的优势,我们进行了以下实验:不加载任何预训练权重,从头开始训练一个ResNet-50网络用作分类。表2第一行的分类结果表明,随机初始化对分类任务产生了不利影响。直接将传统ImageNet-1k预训练模型迁移到场景分类任务。表2第二行的结果显示,仅使用简单的微调策略即可取得良好性能,并在NU45 2-8和UCM数据集上实现最佳分类结果,相比之下MHCL略显逊色。然而,在规模相对较大的NU45 8-2和MLRSNet数据集上,ImageNet预训练模型的准确率低于MHCL方法。尽管自然图像与遥感图像之间存在明显差异,但ImageNet-1k大量的图像数据仍然能够提供丰富的判别信息。采用标准的监督预训练方式,在每个场景分类数据集上训练一个监督预训练模型,并将其迁移到场景分类任务。实验结果如表2第三行所示,在相同数量级的训练图像基础上,MHCL通常明显优于监督预训练方法,尤其是在较小的NU45 2-8和UCM数据集上。小结MHCL仅通过有限的遥感图像数据就能学习到丰富的一致性视觉表征,我们希望MHCL能够加速遥感社区的预训练算法研究。本文已发表在2023年的IEEE Transactions on Geoscience and Remote Sensing(TGRS)期刊上。在下一节中,将继续探索对比学习在遥感领域中的应用潜力,届时不仅仅局限于场景分类任务,还将为其他重要的遥感图像任务,如旋转目标检测、变化检测和语义分割,贡献一种更通用的上游预训练模型。
-
赋能校园开发者:连接湖北工业大学与华为开发者空间作为华为开发者空间在校园的积极推广者,我始终致力于将前沿的技术工具与鲜活的学习实践相结合。近期,我们在湖北工业大学成功举办了一系列活动,真正让华为开发者空间成为同学们触手可及的创新平台。现在,就让我以亲历者的视角,回顾这段充满技术热情与探索精神的旅程。始于招新:点燃校园技术热情一切始于热闹的“百团大战”社团招新日。那天,我们精心布置的展架成为现场焦点。 “华为开发者空间”的蓝色标识格外醒目,清晰展示了其核心价值:汇聚鸿蒙等前沿技术,提供免费的云上AI开发工具和实战案例,让同学们能“一键开通”云端AI环境,无需复杂配置即可投身开发。我们热情地向往来同学介绍,华为开发者空间如何让一台普通笔记本也能媲美专业计算资源,轻松调用大模型能力。现场扫码加入社群的同学络绎不绝,为后续活动奠定了坚实的基础。深入讲解:揭开低门槛开发的神秘面纱招新后,我们迅速在计算机教室组织了首场深度培训。当我站在讲台旁,看到教室里坐满了充满求知欲的同学时,内心充满激动。投影幕布上打出“华为开发者空间,让开发者低门槛体验华为工具和资源”的醒目标题。我为大家详细讲解了开发者空间的架构、智能网关平台以及如何利用它进行高效的CI/CD流水线开发。同学们专注的神情和不时记录的动作,让我感受到技术分享带来的价值。紧接着的versatile agent培训,我们聚焦于具体的需求挖掘与开发实践,引导大家思考如何将华为利用华为的智能云平台快速部署应用真实项目场景,为后续的动手实操做好理论铺垫。动手实践:在云端环境中真操实练理论知识的价值在于应用。随后的三次活动,我们完全进入了实战阶段。在宽敞的机房内,同学们人手一机,直接登录华为开发者空间的云环境。我清晰地记得那个场景:同学们紧盯屏幕,跟随指导一步步操作。当我走到一位同学身边,看到他成功在云端启动了一个模型环境的训练时,他脸上露出的惊喜笑容让我印象深刻。在培训中,我通过将社团举办的“华为云杯”比赛与开发者空间结合,对同学们进行真实的案例演示,通过投影共享屏幕,演示如何利用华为的云服务器快速部署模型。教室里回响着键盘的敲击声,同学们或独立探索,或通过QQ即时交流协作,真正体验了“云上开发”的高效与便捷。活动亮点与效果:技术普惠的生动体现回顾整个过程,最大的亮点在于 “无缝衔接的理论与实践” 和 “极低的技术入门门槛”。华为开发者空间提供的云端资源,让同学们摆脱了本地环境配置的困扰,能将精力完全集中于逻辑实现与创新思考。从招新时对概念的初步了解,到培训中的深入认知,再到机房里的亲手实践,我们形成了一个完美的学习闭环。活动效果显著。不仅社团规模迅速扩大,更重要的是,许多同学反馈“第一次感觉自己离企业级开发如此之近”。他们成功利用所学,开始尝试构建自己的智能应用项目,技术自信与实践能力得到了实质性的提升。结语通过这一系列围绕华为开发者空间的活动,我深切体会到,将优质技术资源以易懂、易用的方式引入校园,是激发学生创新潜能的关键。我们不仅仅是组织了几场活动,更是播下了一颗颗技术的种子。未来,我们将继续深耕,让华为开发者空间成为更多校园开发者梦想起航的地方。
-
1. 下载模型权重 安装python环境 conda create -n qwq_model python==3.13.6 conda activate qwq_model pip install modelscope 通过 modelscope SDK下载模型(https://www.modelscope.cn/models/Qwen/QwQ-32B)到制定目录 mkdir -p /usr/local/data/model_list/model/QwQ-32B modelscope download --model Qwen/QwQ-32B --local_dir /usr/local/data/model_list/model/QwQ-32B 2. 部署模型 vim /etc/sysctl.conf 设置 net.ipv4.ip_forward的值为1 source /etc/sysctl.conf docker pull swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_ascend:pytorch_2.5.1-cann_8.2.rc1-py_3.11-hce_2.0.2503-aarch64-snt9b-20250729103313-3a25129 启动容器 docker run -itd \--device=/dev/davinci0 \--device=/dev/davinci1 \--device=/dev/davinci2 \--device=/dev/davinci3 \-v /etc/localtime:/etc/localtime \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /etc/ascend_install.info:/etc/ascend_install.info \--device=/dev/davinci_manager \--device=/dev/devmm_svm \--device=/dev/hisi_hdc \-v /var/log/npu/:/usr/slog \-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \-v /sys/fs/cgroup:/sys/fs/cgroup:ro \-v /usr/local/data/model_list/model:/usr/local/data/model_list/model \--net=host \--name vllm-qwen \91c374f329e4 \/bin/bash 来到容器环境 docker exec -it -u ma-user ${container_name} /bin/bashdocker exec -it -u ma-user vllm-qwen /bin/bash设置容器里的参数export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 export VLLM_PLUGINS=ascend # VPC网段# 需用户手动修改,修改方式见下方注意事项VPC_CIDR="192.168.0.0/16" VPC_PREFIX=$(echo "$VPC_CIDR" | cut -d'/' -f1 | cut -d'.' -f1-2)POD_INET_IP=$(ifconfig | grep -oP "(?<=inet\s)$VPC_PREFIX\.\d+\.\d+" | head -n 1)POD_NETWORK_IFNAME=$(ifconfig | grep -B 1 "$POD_INET_IP" | head -n 1 | awk '{print $1}' | sed 's/://')echo "POD_INET_IP: $POD_INET_IP"echo "POD_NETWORK_IFNAME: $POD_NETWORK_IFNAME" # 指定通信网卡export GLOO_SOCKET_IFNAME=$POD_NETWORK_IFNAMEexport TP_SOCKET_IFNAME=$POD_NETWORK_IFNAMEexport HCCL_SOCKET_IFNAME=$POD_NETWORK_IFNAME# 多机场景下配置export RAY_EXPERIMENTAL_NOSET_ASCEND_RT_VISIBLE_DEVICES=1 # 开启显存优化export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True# 配置通信算法的编排展开位置在Device侧的AI Vector Core计算单元export HCCL_OP_EXPANSION_MODE=AIV# 指定可使用的卡,按需指定export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7# 指定绑核,按需指定export CPU_AFFINITY_CONF=1export LD_PRELOAD=/usr/local/lib/libjemalloc.so.2:${LD_PRELOAD}# 默认启用 ascend-turbo-graph模式,指定启动插件export VLLM_PLUGINS=ascend_vllm# 如果使用 acl-graph 或者 eager 模式,指定启动插件 # export VLLM_PLUGINS=ascend# 指定vllm后端 v1export VLLM_USE_V1=1# 指定vllm版本export VLLM_VERSION=0.9.0 export USE_MM_ALL_REDUCE_OP=1export MM_ALL_REDUCE_OP_THRESHOLD=256 # 不需要设置以下环境变量unset ENABLE_QWEN_HYPERDRIVE_OPTunset ENABLE_QWEN_MICROBATCHunset ENABLE_PHASE_AWARE_QKVO_QUANTunset DISABLE_QWEN_DP_PROJ source /home/ma-user/AscendCloud/AscendTurbo/set_env.bash 运行API服务 nohup python -m vllm.entrypoints.openai.api_server \--model /usr/local/data/model_list/model/QwQ-32B \--max-num-seqs=256 \--max-model-len=512 \--max-num-batched-tokens=512 \--tensor-parallel-size=4 \--block-size=128 \--host=192.168.0.127 \--port=18186 \--gpu-memory-utilization=0.95 \--trust-remote-code \--no-enable-prefix-caching \--additional-config='{"ascend_turbo_graph_config": {"enabled": true}, "ascend_scheduler_config": {"enabled": true}}' > QwQ-32B.log 2>&1 & port端口号可以自定义,勿与已经使用的端口号冲突 3. 验证API服务 验证服务 curl http://192.168.0.127:18186/v1/completions \-H "Content-Type: application/json" \-d '{ "model": "/usr/local/data/model_list/model/QwQ-32B", "prompt": "What is moon","max_tokens": 64,"temperature": 0.5 }'
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
即将直播
热门标签