
Datawhale干货
保举东谈主:宋志学,起首:SwanLab
本文先容了一种将 SmolVLM2视觉模块 和 Qwen3-0.6B进行模子拼贴的纪律,并通过微调齐全具备「超小限度+多模态+守旧中语」特点的“Qwen3-SmVL”。微调全程使用沐曦GPU完成,并提供齐全的Github仓库与SwanLab纪录。
节录
最近Huggingface团队发布了超小多模态模子SmolVLM2,不错作念到端侧1GB显存推理。在怀着惊喜试用后发现,固然模子有极其浩大的视觉文本意会才略,可是模子却无法意会中语,这对中语时候社区并不短长常友好。
刚好前段时辰作念SwanLab硬件检测适配时有一台未到期的沐曦曦云C500职业器,因此萌发了把现时中语小模子扛把子Qwen3与SmolVLM2径直微调拼接的想法。
本教程将先容一种模子拼接的想路,将SmolVLM2的视觉模块(0.09B)与Qwen3最小的模子(0.6B)进行对皆微调,最终使得Qwen模子具备一定的视觉意会才略。
伸开剩余97%GitHub:https://github.com/ShaohonChen/Qwen3-SmVL
SwanLab:https://swanlab.cn/@ShaohonChen/Qwen3-SmVL/overview
GitHub:https://github.com/ShaohonChen/Qwen3-SmVL
SwanLab:https://swanlab.cn/@ShaohonChen/Qwen3-SmVL/overview
⚠️对于算力的提神:本教程波及VLM微调锤真金不怕火,对算力条目较高,需要40G及以上的GPU显存才智运行本教程的锤真金不怕火代码。
⚠️对于算力的提神:本教程波及VLM微调锤真金不怕火,对算力条目较高,需要40G及以上的GPU显存才智运行本教程的锤真金不怕火代码。
SmolVLM2的布景学问
模子拼接和微调想路简介
模子拼接齐全和要道代码陶冶
微调数据集构建
微调纪律与代码齐全
微调锤真金不怕火&末端展示
代码及数据集暴露汇总
SmolVLM2的布景学问
模子拼接和微调想路简介
模子拼接齐全和要道代码陶冶
微调数据集构建
微调纪律与代码齐全
微调锤真金不怕火&末端展示
代码及数据集暴露汇总
1. SmolVLM2的布景学问
滥觞,咱们先转头一下SmolVLM2模子的构建决策,SmolVLM2模子的全体包括三大块:视觉模子层,特征映射层和大讲话模子层,见下图:
SmolVLM2的架构图
这个遐想是目下比较常见的VLM决策。中枢遐想想想便是让视觉模子的输出特征与经过embedding的文本特征径直拼接后输入到讲话模子(LLM)当中,莫得交叉提神力等模块。
比较于早期LLaVA等架构,这种最大的优点便是不错最猛进度复用已有的讲话模子。以Qwen2.5-VL为例,其3B、7B、72B模子大小指的只是LLM部分,并莫得包含Vision模块,本色上3B模子的参数目接近4B,视觉模块概况0.4B左右,三个不同大小的VLM使用的是妥洽的视觉模子。
对于一些较大的VLM来说,构建视觉模子时绝大多数的锤真金不怕火都围聚在特征映射模块和视觉模块,只在临了阶段为了最终成果进行全体微调时才会移动讲话模块。保证了VLM的讲话才略。
底下简述一下各个模块的细节:
视觉模子层:SmolVLM2-256M版块用的是Google的SigLip模子,一个基于ViT的视觉模子,选择的是最小的SigLip-93M的版块,HF论文里没具体写是径直用的SigLip的参数如故他们从零构建的(有提神到的读者不错驳斥留言下)。在SmolVLM2代码中对应的是SmolVLMVisionTransformer类
特征映射层:便是一个毛糙的MLP,不外SmolVLM2中为了贬抑图像区别率还作念了一个Pixel shuffle来贬抑图像区别率,进一步减少视觉的Token占用,减少了文本长度。HF团队在论文里提到对于参数目较小的VLM来说使用Pixel shuffle还能擢升性能。但可锤真金不怕火参数其实便是一个单层的神经收集,这个模块的中枢作用便是作念特征对皆,将视觉特征从768维(SigLip的维度)映射到576维(SmolLLM2的维度)
大讲话模子:SmolVLM2-256M模子使用的文本模子是SmolLM-135M版块。可能是由于模子较小,HF团队在论文中说到锤真金不怕火时仅聘请两阶段锤真金不怕火:大限度图文锤真金不怕火+针对视频任务的特地微调。为了保险模子的文本才略HF团队在锤真金不怕火数据中参杂了概况14%的纯文本微调数据。不外研讨到视觉模块自己参数目(93M)大小接近于文本模子(135M),因此笔者推断比较于冻结文本模子,数据均衡在这之中会起到更要道的作用。
视觉模子层:SmolVLM2-256M版块用的是Google的SigLip模子,一个基于ViT的视觉模子,选择的是最小的SigLip-93M的版块,HF论文里没具体写是径直用的SigLip的参数如故他们从零构建的(有提神到的读者不错驳斥留言下)。在SmolVLM2代码中对应的是SmolVLMVisionTransformer类
特征映射层:便是一个毛糙的MLP,不外SmolVLM2中为了贬抑图像区别率还作念了一个Pixel shuffle来贬抑图像区别率,进一步减少视觉的Token占用,减少了文本长度。HF团队在论文里提到对于参数目较小的VLM来说使用Pixel shuffle还能擢升性能。但可锤真金不怕火参数其实便是一个单层的神经收集,这个模块的中枢作用便是作念特征对皆,将视觉特征从768维(SigLip的维度)映射到576维(SmolLLM2的维度)
大讲话模子:SmolVLM2-256M模子使用的文本模子是SmolLM-135M版块。可能是由于模子较小,HF团队在论文中说到锤真金不怕火时仅聘请两阶段锤真金不怕火:大限度图文锤真金不怕火+针对视频任务的特地微调。为了保险模子的文本才略HF团队在锤真金不怕火数据中参杂了概况14%的纯文本微调数据。不外研讨到视觉模块自己参数目(93M)大小接近于文本模子(135M),因此笔者推断比较于冻结文本模子,数据均衡在这之中会起到更要道的作用。
HF团队在原文中还提到了许多影像小模子VLM性能的trick,感意思的读者不错进一步参考SmolVLM2的论文
2. 模子拼接和微调想路简介
正所谓 顶级食材(模子)只需要最毛糙的烹调 。模子拼接的想路极度毛糙径直,基本就三步:
移动SmolVLM2的“高下文收敛样式”,使得其与Qwen3兼容。
将模子的文本部分径直从SmolLM2换成Qwen3-0.6B,包括其文本tokenizer和词镶嵌、文本模子、以及模子临了输出的讲话模子头(LM Head)。
需要从头开动化特征映射层的MLP,从768->576的单层神经收集改成768->1024的单层神经收集即可。
移动SmolVLM2的“高下文收敛样式”,使得其与Qwen3兼容。
将模子的文本部分径直从SmolLM2换成Qwen3-0.6B,包括其文本tokenizer和词镶嵌、文本模子、以及模子临了输出的讲话模子头(LM Head)。
需要从头开动化特征映射层的MLP,从768->576的单层神经收集改成768->1024的单层神经收集即可。
全体架构和对图文对前后处分依旧保握SmolVLM2的经由不变,具体改造见下图:
将Qwen3-0.6B替换SmolVLM2的讲话模子部分
笔者接下来翔实先容下为了齐全“拼接”,具体改造的处所,供之后有肖似的任务的读者参考。
3. 模子拼接齐全和要道代码陶冶
第一处改造:SmolVLM2的Tokenizers部分
滥觞需要改造的便是需要改造的是SmolVLM2的Tokenizers部分,这内部主淌若波及两个问题:
第一个问题是要将SmolVLM2用于指导图像位置的特殊令牌(Special Token)加入到Qwen3的Tokenizer当中,这样作念的目标是防卫SmolVLM2的图像Token<image>被切分为<、image、>三块。运道的是,Qwen3自己在Tokenizers中预留了异日用于多模态的特殊特殊令牌<|image_pad|>。因此读者径直使用了<|image_pad|>代替了<image>。用于在文本中预留图像特征的插入点。
第二个问题是:SmolVLM2的chat_template和Qwen3的chat_template辞别极大。chat_template的作用是通过样式化文本让模子明晰知谈不同Token所代表的布景信息。用最近比较流行的话来说便是“高下文工程”(Context Engineering)。
第一个问题是要将SmolVLM2用于指导图像位置的特殊令牌(Special Token)加入到Qwen3的Tokenizer当中,这样作念的目标是防卫SmolVLM2的图像Token<image>被切分为<、image、>三块。运道的是,Qwen3自己在Tokenizers中预留了异日用于多模态的特殊特殊令牌<|image_pad|>。因此读者径直使用了<|image_pad|>代替了<image>。用于在文本中预留图像特征的插入点。
第二个问题是:SmolVLM2的chat_template和Qwen3的chat_template辞别极大。chat_template的作用是通过样式化文本让模子明晰知谈不同Token所代表的布景信息。用最近比较流行的话来说便是“高下文工程”(Context Engineering)。
这里我列举了一下Qwen3、SmolVLM2、Qwen2.5-VL在聊天场景下的高下文,供读者参考。
Qwen3聊天高下文样式
以给一张图片,问题是“你的名字是什么?”,模子回答是“我的名字是Qwen”为例子。模子的高下文如下:
提神Qwen3高下文是莫得预留图像位置的,但比较于一般的LLM和VLM多了一个用于插入模子想考过程的<think><\think>,以及包含额外的函数调用收敛文本。为了便于读者意会,读者在不才面举了一个函数调用的例子。这些函数调用高下文用于收敛模子调用外部函数、API或者MCP接口和领受其复返的信息。
研讨到篇幅收敛,本文就不粘贴带函数调用、推理、想考等一系列高下文的信息了(笔者打印了下发履行在太长了)。感意思的读者不错在Qwen3的官方文处了解翔实遐想
Qwen3函数调用案例:https://qwen.readthedocs.io/zh-cn/latest/framework/function_call.html#the-example-case
Qwen3函数调用案例:https://qwen.readthedocs.io/zh-cn/latest/framework/function_call.html#the-example-case
不错说恰是这些复杂的高下文信息让模子有可能齐全推理、调用函数等各样化的才略。包括多模态理免除务也需要先对高下文进行遐想。
SmdwadwdoVLM2聊天高下文样式:
以给一张图片,问题是“How many dog in there.”,模子回答是“There are Three dogs.”为例子。三种不同模子的高下文如下:
看起来极度乱,是因为有遍及的<image>占位符。<image>...<image>之间是许多的<image>,笔者为了著作不雅感删掉了遍及的占位符。提神模子的回车、空格均为高下文的一部分,在进行推理时需要严格死守缩进关系。
可是咱们仍能找到老练的内容,如User:,Assistant:等用于指示模子用户的输入与模子应当输出的位置。这些要道词和Qwen肖似。
读者提神到了除了<fake_token_around_image>,<image>等用于指导图像的词,还出现了<row_1_col_1>这种位置指导符,这是因为SmolVLM2为了防卫降采样对图像区别率影响,特地使用了image splitting时候,毛糙来说便是将全局图和高清的局部图共同输入到模子当中(见下图image splitting模块),感意思的读者可在文末找到HF的时候呈文了解翔及时候。
SmolVLM2的齐全推理经由,不错看到在图像输入前使用`image splitting`进行了预切分
本博文的拼接模子Qwen3-SmVL模子
比较于Qwen3,SmolVLM2少了好多高下收敛的
为了尽可能保存或者说预留Qwen3的想考、函数调用等才略,笔者最终弃取将SmolVLM2对于图像特征的罗列插入到Qwen3的高下文样式当中。最终高下文样式如下:
不错看到读者尽量保握了与Qwen3的立场和复用特殊令牌。这样能够使得后续拼接的Qwen3-0.6B模子不至于受到高下文各异过大带来的性能损耗。本色上在遐想微调高下文时应尽量与模子先前锤真金不怕火的任务接近,以减少微调带来的性能耗费。
transformers齐全模子高下文样式收敛的代码并非python讲话,而是一种前端文本样式收敛的讲话Jinja。这个讲话的变量作用域遐想险些不错说是有魔法在内部。互助上Qwen3功能丰富且复杂的高下文计策,让笔者花了2个小时用于修改chat_teamplate。这里笔者不赘述如何修改chat_template,感意思的读者不错去文末代码暴露寻找chat_template.jinja文献,笔者特地将chat_template模版拿出来,何况作念了样式化肤浅读者阅读。异日只怕辰了笔者特地写一篇模子高下文收敛与jinja讲话的博客。
第二处改造:替换SmolVLM2的SmolLM2模子为Qwen3-0.6B
替换模子这块没什么复杂的,主淌若需要处分Transformers比较复杂的嵌套逻辑。Tranformers频繁提议模子将预锤真金不怕火模子backbone和下流任务分开来。改造逻辑图如下:
替换smolvlm2的文本模块和讲话模子头
以Qwen3为例,预锤真金不怕火Backbone模子为Qwen3Model,只是包含embedding层、各个Decoder层,临了输出的是统统输入token的hidden state。妥当下流任务的Qwen3提供了包括:用于因果讲话序列生成的Qwen3ForCausalLM,也便是群众常用的讲话生成。
妥当句子分类的Qwen3ForSequenceClassification,使用临了一个生成的token输入到一个单层MLP作念序列级分类,作念句子神色分类等不错用这个下流模子;Qwen3ForTokenClassification用于作念Token级分类,比如讲话实体抽取任务不错使用这个下流模子。
Qwen3ForQuestionAnswering则是特地作念抽取式问答任务的模子,中枢想想是输入(问题,参考文本)让模子从参考文本中找到与问题最联系的一段,这类任务由于RAG系统的出现没那么流行了,异日笔者特地出一个系列的教程推崇除了因果讲话序列生成除外的任务则如何微调。
要道代码如下
上头的代码不错看到在替换各个变量时需要将嵌套模子的变量整个替换掉,笔者之前锤真金不怕火时就因为只是替换了SmolVLMForConditionalGeneration而健忘替换SmolVLMModel中的image_token_id,导致讲话模子领受不到图像特征,临了发挥出来便是loss下跌的极快且低,grad_norm看起来也学到位了,一推理成果衰竭差,附上裂缝锤真金不怕火的耗费图:
SwanLab纪录锤真金不怕火末端展示:蓝色为裂缝锤真金不怕火的齐全微调loss图,不错看到耗费下跌很快,关联词本色推应允发现模子并莫得图像意会才略。冻结讲话模子头(红色)后发现grad_norm为零且loss不不停,正确的应该是黄色
笔者最早没发现改造裂缝,先作念齐全微调(蓝色弧线)后发现耗费下跌很快达到了0.1以下,末端本色一推剃头现模子实足莫得图像意会才略,就补了一个冻结讲话模子只微调视觉模子的实验(红色弧线),末端发现耗费实足没下跌,才定位到了视觉特征传入有问题。后续成立后正确的耗费下跌过程见黄色图像。
第三处改造:构建和替换特征映射层
这个相对较毛糙,只需要从头构建一个维度对皆的SmolVLMConnector即可。Qwen3的hidden_dim是1024,SigLip的hidden_dim是768,因此构建一个768➡️1024映射的SmolVLMConnector即可。代码如下:
4. 微调数据集构建
笔者领先计算寻找中语多模态数据集,但发现联系的贵寓比较少。因此决定先用英文的多模态数据集免强一下。之后再研讨通过数据合成的风景将部分数据翻译为中语。对于数据合成和配比的问题将在之后的博客盘考。
the_cauldron数据集logo
这里为了肤浅本技俩径直使用HuggingFace团队整合的多模态数据集the Cauldron数据集,Cauldron翻译成中语肖似于煮东西的“釜”,不知谈HF团队是不是玩“真金不怕火丹”的梗。这个数据集整合了50个视觉微调任务数据集的锤真金不怕火集,用于微调Huggingface发布的多模态模子Idefics2模子。这50多个数据集都被处分红了一致的样式(见下图),共有1,880,992条数据,齐全下载约169G,极度肤浅使用。
数据集样本展示
不外可惜数据集的文本都是英文内容,且绝大多数数据集的复兴极度短,唯有一个词,这也给背面模子锤真金不怕火带来了勤快。本篇博客暂时不盘考对于数据构建和配比的问题,后续只怕辰了特地作念联系的实验。本博客先以为Qwen3模子带来视觉才略为中枢方针。
数据集的下载暴露如下,国内保举用modelscope下载:
HuggingFace Hub:
https://huggingface.co/datasets/HuggingFaceM4/the_cauldron
HuggingFace Hub:
https://huggingface.co/datasets/HuggingFaceM4/the_cauldron
ModelScope:
https://modelscope.cn/datasets/AI-ModelScope/the_cauldron
ModelScope:
https://modelscope.cn/datasets/AI-ModelScope/the_cauldron
笔者在本色测试时发现“mimic_cgd”, “localized_narratives”, “okvqa”, “ocrvqa”, “clevr_math”这几个子数据集加载有点颠倒,提议使用此数据集锤真金不怕火的读者手动处分下,社区也有用户反应这几个数据不错在原始起首处额外下载,异日笔者将会补全这几个数据集从头上传一次齐全版的the Cauldron数据集。
5. 微调纪律与代码齐全
冻结模子参数微调
全体微调纪律聘请了CLM模子频繁的Teacher Forcing的学习纪律,耗费便是程序的交叉熵耗费。研讨到这次本教程的方针是先确保模子具备中语多模态才略(优化模子性能等之后撰写其他博客),因此为了实验遵循,在对皆微调阶段聘请冻结视觉模子与文本模子,仅微调特征映射器和讲话模子头的纪律。
冻结模子参数的中枢代码如下:
冻结后锤真金不怕火参数、模子总参数、与占比如下:
文本长度,耗费掩码和截断计策
文本长度
由于视觉特征需要占据遍及的文本长度,笔者毛糙测试了下the_cauldron图像占0.8K到1.3K左右的token。而数据围聚大多数文本token数在200-500左右,一丝情况会有3-4K的情况。因此笔者妥洽聘请2K的文本长度,超出部分截断处分。
这里有一个不同于文本微调的细节要提神,文本截断长度不可小于图像token,不然会导致模子在进行特征拼接时报错(天然图像特征如果被截断了,这条锤真金不怕火数据也就没意思意思了)。因此对于显存不及64G的同学如果需要顺应贬抑文本长度(不提议低于1.5K),最佳连同图像区别率也减弱些。在背面的博客咱们会特地增多对减少图片token占用的磋磨。
相通由于文本长度受限,且图像特征没法截断,咱们也没使用“packing dataset”的纪律擢升模子的锤真金不怕火遵循。
研讨到部分数据集存在多张图片的情况,研讨到本次锤真金不怕火仅聘请2k的文本长度(与之对比HF在锤真金不怕火SmolVLM-256M版块聘请的是8K的文本长度,2.2B版使用了16K的文本长度)。针对单条数据中存在多张图片的情况只是选择第一张。
耗费掩码
在聘请Teacher Forcing的学习纪律时,文本微调中耗费掩码有两种计策:
对包含“用户问题”和“模子复兴”的齐全文本进行微调优化
仅对“模子复兴”部分进行微调优化
对包含“用户问题”和“模子复兴”的齐全文本进行微调优化
仅对“模子复兴”部分进行微调优化
这两种计策的对比如下图:
两种微调掩码计策的各异,频繁提议弃取“仅微调模子回答部分”以增强泛化性
频繁来说使用“仅微调模子复兴部分”的计策模子更容易泛化(这点与HF在SmolVLM2的论文提到的trick)。关联词笔者为了提高锤真金不怕火遵循弃取了齐全文本微调。不错在后续博客中增多消融实验作念进一步对比。
值得提神的是,在进行齐全文本微调时,需要单独屏蔽Image Token以防卫对图像占位token缱绻耗费,影响模子发挥。
要道代码如下:
微调超参数缔造
学习率
由于只是针对特征映射层(connector)进行锤真金不怕火,且conntector由于要对皆Qwen3的维度因此参数为飞速开动化(表面上不错聘请一些私有的开动化计策擢升性能,但研讨到模子较小因此笔者没温雅开动化计策)。因此学习率缔造为lora中较为流行的1e-4学习率计策。
为了保险灵验不停,学习率衰减基本是必备的trick,聘请的是社区比较流行的cosine学习率衰减,衰减至0。warm up为全体步长的10%(在跳跃1000k step的情况下固定为50)。
batch size
Batch size频繁来说越大越好,关联词由于VLM模子的文本长度太大,因此聘请每卡1 batch和4梯度累加(grad accelerate),在8卡锤真金不怕火中等效32 Batch size。
锤真金不怕火参数缔造代码
锤真金不怕火环境
微调代码基于 沐曦曦云C500通用GPU 齐全,显存为64G。
列位读者在尝试本技俩代码时不错聘请Nvidia显存40G以上的显卡运行本教程。
锤真金不怕火环境的话除了装配GPU对应的驱动和pytorch外,本教程需要额外装配Huggingface全家桶,如下:
额外补充一句,如果聘请沐曦GPU锤真金不怕火的话,需要在沐曦官方文档处寻找沐曦版torch的装配风景进行下载。其他HF环境和NV基本一样。附赠一个沐曦搜检GPU的敕令:
成果如下:
锤真金不怕火代码齐全
在构建锤真金不怕火代码时,笔者使用HuggingFace Transfomers框架的Trainer类来完成锤真金不怕火代码。Trainer类齐全的锤真金不怕火逻辑基本能完成大部分微调任务。这里惟一需要提到的是笔者使用了Qwen3-0.6B而非频繁此类任务该使用的Qwen3-0.6B-Base模子,Qwen3-0.6B比较于Qwen3-0.6B-Base模子经过了指示信服微调、对皆等,能齐全聊天问答功能。
频繁来说对经过微调的模子进行握续锤真金不怕火会一定进度带来性能耗费,关联词这次微调时笔者冻结了LLM参数,因此需要选择经过微调的模子来齐全多模态问答才略。
笔者在锤真金不怕火过程中使用的是bfloat16精度,比较于float16来说bfloat16增多了余数位数,锤真金不怕火过程中精度会更高些。
在前期进行决策考证阶段笔者聘请的是cocoqa数据集,何况进行200steps的微调锤真金不怕火。在笃定决策可行后笔者计算使用齐全数据集进行微调锤真金不怕火,关联词研讨到锤真金不怕火数据量只是唯有整个模子的12M,因此笔者按参数目与锤真金不怕火Token的比值为1:10采样数据集,即所有这个词从数据围聚采样出60K条数据用于本色锤真金不怕火(文本长度按照2k缱绻,本色上有padding部分因此本色参与token数小于120M)。笔者以为参与锤真金不怕火的数目是足以令模子不停的,后续实验也瓦解了模子如实能达到咱们所欲望的成果。
锤真金不怕火要道代码齐全
代码比较长是因为增多了断点续训的才略
齐全代码见代码及数据集暴露汇总,或者径直由齐全技俩GitHub地址。
6. 微调锤真金不怕火&末端展示
代码准备与环境装配
不错在GitHub仓库地址处找到实验的齐全代码。使用git clone后使用如下敕令装配环境
数据集和模子下载
笔者附上自动下载剧本,提神该剧本使用魔塔社区完成模子与数据集的下载
小批量微调锤真金不怕火
为了进行快速考证,笔者滥觞使用cocoqa数据集何况进行了200steps的锤真金不怕火,统统参数与前文所述一致。通过运行实验敕令如下,保举使用8卡进行锤真金不怕火,在8张沐曦GPU卡上展望需要使用20min
提神,本技俩使用 SwanLab进行锤真金不怕火日记纪录与分析,如果未登陆SwanLab需要使用swanlab login进行登陆。运行后看到如下末端即代表实验收效开启:
收效锤真金不怕火后不错看到SwanLab暴露
底下是笔者完成小批量微调锤真金不怕火的锤真金不怕火耗费、测试耗费末端图
SwanLab锤真金不怕火可视化分析末端,不错看到临了锤真金不怕火损构怨测试耗费都不停在0.65左右
模子在完成锤真金不怕火后会自动使用一张狗狗图片互助问题“图中有什么动物?”让模子根据图片进行推理,推理末端如下:
SwanLab纪录了模子锤真金不怕火好后的推理末端,不错看到模子能泛泛意会和复兴中语
附上三只成见忧伤的狗子,难谈长得很像兔子吗?
PS: 作家公开了在SwanLab上的锤真金不怕火末端,感意思的读者不错我方搜检,SwanLab也守旧Clone作家的锤真金不怕火日记,群众不错在我方锤真金不怕火时clone笔者的技俩去作念对照。
PS: 作家公开了在SwanLab上的锤真金不怕火末端,感意思的读者不错我方搜检,SwanLab也守旧Clone作家的锤真金不怕火日记,群众不错在我方锤真金不怕火时clone笔者的技俩去作念对照。
运行实验敕令如下,保举使用8卡进行锤真金不怕火,在8张沐曦曦云C500 GPU上展望需要使用1.5h
下图展示了使用齐全微调数据对比于小批量锤真金不怕火,不错看到全量数据微调时loss变得更为抖动,这是由于数据类型的丰富给模子的学习带来了一定的挑战。
红色为齐全锤真金不怕火loss,黄色为小批量锤真金不怕火末端
进一步对比齐全锤真金不怕火和小批量锤真金不怕火的锤真金不怕火和测试耗费,不错看到齐全锤真金不怕火的模子锤真金不怕火耗费达到了0.61,远低于只是使用cocoqa模子的成果,评估耗费也远低于前者,保管在0.58左右。
红色为齐全锤真金不怕火loss,黄色为小批量锤真金不怕火末端
这里值得一提的是,由于咱们选择的测试集比较小(仅有64条数据),因此锤真金不怕火损构怨测试耗费的差距并不可径直意会为过拟合的凭证。本色上在大模子锤真金不怕火上,如果数据集富足大的情况下,频繁不错以为锤真金不怕火耗费等同于评估耗费。
这里值得一提的是,由于咱们选择的测试集比较小(仅有64条数据),因此锤真金不怕火损构怨测试耗费的差距并不可径直意会为过拟合的凭证。本色上在大模子锤真金不怕火上,如果数据集富足大的情况下,频繁不错以为锤真金不怕火耗费等同于评估耗费。
此外,模子通过分析1k步之后的锤真金不怕火耗费、平均梯度范数(Grad Norm)变化。此时锤真金不怕火任务已过半,且学习率起始快速衰减。如下图,不错看到学习率快速衰减的情况下模子耗费并莫得昭彰的进一步下跌,这阐述模子依然齐全了充分锤真金不怕火。
1k step之后模子的锤真金不怕火耗费变化
在锤真金不怕火遵循方面,不错看到咱们仍莫得充分榨干GPU的性能,天然这亦然由于多模态任务的收集自己架构上比较复杂,其中包含许多对图像、文本的拼接责任,这也导致了GPU性能没法实足讹诈。
SwanLab对沐曦C500训遵循自动纪录
相通在完成锤真金不怕火后使用狗狗图进行了测试,这次模子能意会图片、中语以及给出正确的复兴。更为要道的是模子实足保留了Qwen3-0.6B原有的全部才略,包括函数调用、推理等。在此基础上,只是增多了0.09B参数目的情况下为模子带来了图像意会才略!
相通的图片与问题欧洲杯体育,更大的数据量和更充足的数据使得模子能够正确给出复兴模子推理与成果分析
发布于:浙江省