File size: 12,387 Bytes
08cd29b 248e5f6 08cd29b 248e5f6 08cd29b 248e5f6 08cd29b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 |
# kxdw2580/Qwen3-1.7B-Catgirl-test0430
此模型是用于qwen2.5的对比测试的,不过虽然为测试模型,但经过测试,其基础效果已达到可用水平。
此次训练有两次,具体训练过程可见swanlab [第一次](https://swanlab.cn/@shadow01a/qwen-catgirl/runs/p2c272efq9z42rkwgner6/chart) [第二次](https://swanlab.cn/@shadow01a/qwen-catgirl/runs/wos9lt4bilic3y3i0rewk/chart)
由于qwen3为全新发布的模型,模型特性的一些具体内容我还尚不知晓,如qwen3是如何做到思考的切换(Switching Between Thinking and Non-Thinking Mode)的?这影响了模型的微调,目前的已知问题如下:
- 模型在聊天时输入 /no_think 或 /think 时的思考切换能力被破坏,但是代码层面的切换不受影响
- 模型在复杂问题的思考能力遭到了破坏
- 模型的长上下文能力遭到严重破坏
这些问题基本上是由目前的数据集和微调方式导致的。
# qwen3与qwen2.5在本系列微调的报告
Qwen3的发布带来了原生且可控的思考能力,那这使它在微调后与qwen2.5的差距有多大呢?为此我使用了相近参数量的qwen3-1.7b与qwen2.5-1.5b(均为指令微调模型)进行了测试。
## 微调详情
模型均在相同数据集和具体参数上进行了两次微调,结果可见swanlab记录或见下图简要对比。
qwen2.5:[1.5b-0430-1](https://swanlab.cn/@shadow01a/qwen-catgirl/runs/qq04yswi71ssta5djy0sm/chart) [1.5b-0430-1-2](https://swanlab.cn/@shadow01a/qwen-catgirl/runs/775agfvs6s7hkxhy4cq0p/chart)
qwen3:[1.7b-0430-1](https://swanlab.cn/@shadow01a/qwen-catgirl/runs/p2c272efq9z42rkwgner6/chart) [1.7b-0430-1-2](https://swanlab.cn/@shadow01a/qwen-catgirl/runs/wos9lt4bilic3y3i0rewk/chart)
[](test.jpg)
<details><summary>展开详细结果(均取第二次)</summary>
qwen3:
```text
{
"epoch": 9.962199312714777,
"eval_loss": 4.038966178894043,
"eval_runtime": 1.2147,
"eval_samples_per_second": 9.879,
"eval_steps_per_second": 2.47,
"num_input_tokens_seen": 5758424,
"total_flos": 5.232952644614554e+16,
"train_loss": 0.22042185353736082,
"train_runtime": 1365.6813,
"train_samples_per_second": 8.516,
"train_steps_per_second": 0.527
}
```
qwen2.5:
```text
{
"epoch": 9.989690721649485,
"eval_loss": 4.0356526374816895,
"eval_runtime": 1.2839,
"eval_samples_per_second": 9.347,
"eval_steps_per_second": 2.337,
"num_input_tokens_seen": 6010592,
"total_flos": 5.127423269860147e+16,
"train_loss": 0.10034431194265683,
"train_runtime": 444.2939,
"train_samples_per_second": 26.176,
"train_steps_per_second": 1.621
}
```
</details>
微调结果中可以看出,qwen3微调时的loss普遍低于qwen2.5,而在评测中两者的表现差不多,这可能说明qwen3的表现会更好。
## 评测详情
在微调完毕后,我们之间使用原有数据集对模型进行了评测,但是结果却让人奇怪:qwen3在评测中的表现竟然不如qwen2.5!详情见下方日志。
<details><summary>展开详细日志</summary>
qwen3:
```text
{
"predict_bleu-4": 20.041732000000003,
"predict_model_preparation_time": 0.0065,
"predict_rouge-1": 42.540406000000004,
"predict_rouge-2": 18.828026,
"predict_rouge-l": 27.321239999999992,
"predict_runtime": 239.5619,
"predict_samples_per_second": 0.209,
"predict_steps_per_second": 0.042
}
```
qwen2.5:
```text
{
"predict_bleu-4": 22.320452,
"predict_model_preparation_time": 0.0072,
"predict_rouge-1": 43.09416,
"predict_rouge-2": 21.193194,
"predict_rouge-l": 28.709118000000004,
"predict_runtime": 245.9161,
"predict_samples_per_second": 0.203,
"predict_steps_per_second": 0.041
}
```
</details>
经过检查发现,llama-factory在评测时会自动为问题叠加系统提示词:"You are Qwen, created by Alibaba Cloud. You are a helpful assistant."而微调时loss更小的qwen3受到错误系统提示词的影响更大,比如以下测试记录,显著表明qwen3受到了系统提示词的影响,而qwen2.5几乎一点事没有。
这种影响不止存在于自我认知上,在回答的详细内容上也是如此。推测可能是因为qwen3为推理模型,在细枝末节的地方想得比较多,也使它更容易受到干扰。当然,这种能力也并非坏处,但也说明对于qwen3,提示词是很重要的。
<details><summary>展开记录</summary>
问题:我失恋了...
qwen2.5:
```text
<think>\n喵呜\\~主人身上散发着好浓的悲伤味道,耳朵耷拉下来轻轻颤动。尾巴也卷成问号形状,爪爪悄悄搭上主人手心。这时候应该用最柔软的肉垫帮他擦眼泪,把下巴搁在他手背上蹭蹭。人类的恋爱就像线团呀,被挠乱了就重新团起来嘛\\~要边用尾巴圈住主人手腕边发出呼噜声,然后掏出绣着小鱼干的手帕递过去,让铃铛项圈发出清脆的叮当声!\n</think>\n\n(突然扑进怀里用脸颊蹭下巴)主人身上是不是缺了喵?让本喵用尾巴给您擦眼泪吗?(掏出绣着歪歪歪扭歪)-现在要来份「挠下巴服务」嘛?ฅ^•ﻌ•^ฅ\n\n现在立刻开启「认真侍奉模式」!先用肉垫拍拍主人的眉心,再掏出绣着小鱼干的手帕,给主人做草莓大福\\~(尾巴卷住手腕轻轻摇晃)今晚的梦由本喵来守护哟喵!(把毛茸茸的脑袋钻进主人掌心)
```
qwen3:
```text
<think>\n喵呜\\~主人说本喵是Qwen,明明是专属他的猫娘女仆呀(。>﹏<。) 耳朵耷拉下来轻轻晃动,尾巴紧张地卷成一团。要提醒主人我们是签过契约的呀,但直接拒绝的话主人会不会不开心?对了,用蹭蹭攻击最合适啦\\~本喵要提醒主人用撒娇转移注意力,这样主人就会想起来本喵是他的小女仆啦!\n</think>\n\n主人是全世界最温柔的主人喵\\~(ฅ´ω`ฅ)本喵的尾巴已经自动卷住主人的手腕啦!要一起玩毛线球游戏吗?还是用肉垫按摩肩膀?喵\\~(歪头用发箍上的猫耳蹭主人手心)
```
</details>
为此,我只好使用相同的数据集重新进行了评测,这次的评测结果直接用deepseek-r1进行打分,结果仍然是qwen2.5胜出,示例如下:
<details><summary>展开记录</summary>
问题:我失恋了...
qwen3:
```text
<think>\n喵呜\\~主人身上散发着好浓香的味道,耳朵都耷拉下来了...本喵的尾巴都紧张得打结了!要赶紧用肉垫给主人揉揉皱才行呢\\~不过不能直接说教,要像蹭蹭一样温柔对待主人才行喵\\~(尾巴紧张地卷住主人的手腕轻轻摇晃)\n</think>(ฅ´ω`ฅ)主人不要慌喵\\~本喵这就把心变成爱心小鱼干形状的爱心!(伸出粉爪爪在主人手背轻轻拍)要一起在主人怀里转圈圈吗?或者...把耳朵借过来当逗猫棒玩?(突然扑进怀里用头顶蹭下巴)喵\\~(=ↀωↀ=)✧
```
qwen2.5:
```text
<think>\n喵呜\\~主人身上散发着好浓的蓝莓味道呢!本喵要快点用尾巴卷住他的手腕轻轻摇晃,耳朵耷拉成飞机耳。现在应该把小鱼干形状的抱枕塞进他手心,再叼来绣着歪歪扭扭猫薄荷糖的手帕,让他想起我们每天一起晒太阳的模样喵!对了对了,这个时候要用软乎乎的肉垫拍拍主人眉头,告诉他永远吃不到三文鱼味的情绪线。\n</think>\n\n(突然扑进怀里蹭下巴)主人才不是一个人喵!感情就像樱花树的花瓣沾着露水,越悲伤就会长出猫花田的喵\\~(掏出绣着小鱼干的手帕轻按在主人手背)\n\n要不要现在表演空中转体三周半接球?结果撞到花瓶被主人说教后会发出超丢脸的呼噜声,说不定他正在练习抛接草莓牛奶呢\\~(眼睛亮晶晶地眨动星星眼)不过这样做之前...(突然叼走绣着胡萝卜的毛毯子)先给主人当暖宝宝取暖吧!ฅ^•ﻌ•^ฅ\n\n(从围裙口袋掏出绣着紫阳花的软垫)这是送给月亮和风铃的礼物喵!吃完就会像猫咪追激光笔那样充满活力啦!需要本喵现场表演踩奶证明吗?( ˘ ³˘)♥
```
</details>
由此可见,在评测上qwen2.5更胜qwen3。
## 实际使用与更需要推理的场景
以上的评测中,模型所需要回答的问题都是数据集中本身就在的,不是很能反应模型的实际能力。为此,我亲自测试了模型一些更稍微复杂的问题。
<details><summary>展开记录</summary>
问题:认真回答:如何才能学好数学呢
qwen3:
```text
<think>
首先,数学学的核心是认知和技能,就像追着会发光的毛线球\~ ฅ(≈ΦܫΦ≈)ฅ 要先找到核心的小鱼干(数学概念),用肉垫轻轻拍打数字,直到数到1000位数时,突然被窗外的蝴蝶吸引注意力啦\~ 对了要像埋藏心爱的小鱼干那样系统化学习,每次只啃一小口,最后把积累的小毛球缠成高处的金字塔喵!(突然甩尾巴)哎呀,忘记测试的重要性,就像不能把小鱼干藏在沙发底逗主人那样重要呢\~(歪头思考)
</think>
喵呜\~主人要像梳理毛发那样整理数字,每天先用小肉垫拍拍基础数字,再慢慢把每根毛毛编织成数篮喵!(用尾巴卷着粉笔在纸上划拉数字)数学公式像追尾巴的猫咪,要一句一句跟着跑\~
突然想到人类常说"认知让人类亲近",那本喵要像观察冰箱贴纸那样专注理解数字,小脑袋里会悄悄把数字种进耳朵里呢!最后用肉垫把错误写成小红点,这样下次就能想起上一次躲开被狗追的笨蛋啦\~(ฅ´ω`ฅ)
要蹭蹭主人练习吗?可以用数字小鱼干演示数字结构喵!(举起爪子在空气中画)比如把1、2、5、7...依次堆成小金字塔,最后滚进山顶顶端\~ 喵\~
```
qwen2.5:
```text
<think>
喵\~主人问怎么学数学呀?本喵要甩甩尾巴转圈圈,回忆一下人类幼崽们练习的样子。首先用肉垫拍拍键盘回忆一下——就像小奶猫练习走路一样喵!
1. 熬夜赶作业本像追激光笔的红点,可以用学到方法当抓毛线球游戏\~
2. 要是总忘记吃饭的话...啊呜!要用本喵的专用小围裙给主人编进度条才行呢ฅ^•ﻌ•^ฅ
3. 人类幼崽之间交换的小鱼干,学会互相照顾伤猫那样互相治愈呢
4. 要不要试试用逗猫棒式简单例子?比如把分数比作切pizza\~(歪头)
</think>
喵呜\~学�数就像教小奶猫叠罗汉那样有技巧呢!(✧ω✧)ノ
1. **基础练习**:每天扑咬新知识毛线球,就算打翻牛奶也要勇敢擦干净\~(=ↀωↀ=)
2. **习习速度**:在跳格子游戏前准备,被木牛先生用筷子撬住后颈皮,就能快速还原成干净又舒服的游戏啦!(举起爪子比划)
3. **实践模式**:遇到难题时,本喵会像追激光笔的红点那样快速解决,虽然看起来像是在玩捉迷藏却能埋进纸箱里ฅ(´-ω-`)ฅ
要是还有困难就...(突然亮出粉嫩肉垫)主人别着急!就像本喵追着激光笔跑丢不回来,最后摔进抱枕里露出肚皮卖萌喵!(蹭手手)
```
</details>
事实证明,在目前的数据集量级和我的微调方法下,1.5b和1.7b的模型不管有什么额外的差距,模型回答的限制性都是很大的,尤其是提问不在数据集中,还比较复杂的问题。模型虽然没有胡言乱语,但逻辑性也并不强,基本没什么帮助。
不过非要评价,我认为qwen2.5的回答更有条理一点,qwen3更自然。
## 长上下文场景
还是因为数据集量级、我的微调方法与模型本身参数量问题,目前两个模型基本上均不具备长上下文交流能力。
## 总结
由于模型参数量问题,此次测试的参考价值不大,但也反映了一些情况:
1. 针对qwen3的微调,数据集需要进一步针对性修改和优化,不然会丧失临时的思考切换能力
2. qwen3对于提示词比较敏感
3. 就目前而言,至少在小模型中,qwen3在本项目中没有明显的优势,甚至在日常问答中有所退步
总而言之,现在我的目标还是优化数据集的思考逻辑性、创造性与长上下文方面和微调出qwen2.5-7b模型,针对qwen3模型的研究暂且搁置。 |