经过多次尝试,在kaggle 双T4训练Qwen2.5-0.5B的正确打开方式是:
经过多次尝试,在kaggle 双T4训练Qwen2.5-0.5B的正确打开方式是:!torchrun --nproc_per_node2 \ -m swift.cli.sft \ --model ./qwen2.5-0.5b-instruct \ --dataset /kaggle/working/duan/tools/ai_copilot/sft_dataset.jsonl \ --max_length 4096 \ --num_train_epochs 3 \ --per_device_train_batch_size 4 \ --learning_rate 5e-5 \ --output_dir ./output_v2 \ --logging_steps 5 \ --save_steps 500 \ --eval_steps 500 \ --split_dataset_ratio 0.1 \ --bf16 true详细过程在kaggle上的最佳实践先安装库!pip install ms-swift[llm] -U -q !pip install torchao -U -q下载模型因为ms-swift自己下载模型太慢,用transformers下载from transformers import AutoModelForCausalLM, AutoTokenizer model_name Qwen/Qwen2.5-0.5B-Instruct save_dir ./qwen2.5-0.5b-instruct tokenizer AutoTokenizer.from_pretrained(model_name, trust_remote_codeTrue) tokenizer.save_pretrained(save_dir) model AutoModelForCausalLM.from_pretrained(model_name, trust_remote_codeTrue) model.save_pretrained(save_dir) print(f下载完成保存在 {save_dir})上传训练数据集我就偷懒了,直接下载段言项目的代码,里面自带数据集!git clone https://gitcode.com/skywalk163/duan/怎么偷懒呢? 直接让程序帮我们找到数据集的位置import os for root, dirs, files in os.walk(/kaggle): for f in files: if f sft_dataset.jsonl: print(os.path.join(root, f))这段代码会自动输出数据集的路径:/kaggle/working/duan/tools/ai_copilot/sft_dataset.jsonl开始训练一般我们都是用swift sft 开训,但是在kaggle上双T4卡训练会报错,所以要用torchrun启动:!torchrun --nproc_per_node2 \ -m swift.cli.sft \ --model ./qwen2.5-0.5b-instruct \ --dataset /kaggle/working/duan/tools/ai_copilot/sft_dataset.jsonl \ --max_length 4096 \ --num_train_epochs 3 \ --per_device_train_batch_size 4 \ --learning_rate 5e-5 \ --output_dir ./output_v2 \ --logging_steps 5 \ --save_steps 500 \ --eval_steps 500 \ --split_dataset_ratio 0.1 \ --bf16 true现在max_length 设为4096, train_batch_size 设为4也能正常训练,不爆显存 .以前用段言自带的训练脚本,max_length 设为2048, train_batch_size 设为1 才能不爆显存!训练完毕:Train: 100%|██████████████████████████████████| 201/201 [14:5800:00, 2.82s/it] {eval_loss: 0.2401, eval_runtime: 8.635, eval_samples_per_second: 13.55, eval_steps_per_second: 6.833, eval_token_acc: 0.9391, epoch: 3, global_step/max_steps: 201/201, elapsed_time: 15m 7s, remaining_time: 0s, memory(GiB): 13.83, train_speed(s/it): 4.514} Val: 100%|██████████████████████████████████████| 59/59 [00:0800:00, 7.01it/s] /usr/local/lib/python3.12/dist-packages/torch/distributed/c10d_logger.py:83: UserWarning: barrier(): using the device under current context. You can specify device_id in init_process_group to mute this warning. return func(*args, **kwargs) [INFO:swift] Saving model checkpoint to /kaggle/working/output_v2/v2-20260801-011216/checkpoint-201 {train_runtime: 908.2, train_samples_per_second: 3.495, train_steps_per_second: 0.221, train_loss: 0.3376, epoch: 3, global_step/max_steps: 201/201, elapsed_time: 15m 8s, remaining_time: 0s, memory(GiB): 13.83, train_speed(s/it): 4.518} Train: 100%|██████████████████████████████████| 201/201 [15:0800:00, 4.52s/it] [INFO:swift] last_model_checkpoint: /kaggle/working/output_v2/v2-20260801-011216/checkpoint-201 [INFO:swift] best_model_checkpoint: /kaggle/working/output_v2/v2-20260801-011216/checkpoint-201 [INFO:swift] images_dir: /kaggle/working/output_v2/v2-20260801-011216/images [INFO:swift] End time of running main: 2026-08-01 01:27:46.525213 [rank0]:[W801 01:27:47.297239747 ProcessGroupNCCL.cpp:1553] Warning: WARNING: destroy_process_group() was not called before program exit, which can leak resources. For more info, please see https://pytorch.org/docs/stable/distributed.html#shutdown (function operator())最优模型确认框架这里使用的是swift将checkpoint-201即最后一个epoch保存的检查点标记为最佳模型。再用6个epoch试试!有了当前提升准确率的感觉.训练完成:Val: 100%|██████████████████████████████████████| 59/59 [00:0800:00, 7.01it/s] /usr/local/lib/python3.12/dist-packages/torch/distributed/c10d_logger.py:83: UserWarning: barrier(): using the device under current context. You can specify device_id in init_process_group to mute this warning. return func(*args, **kwargs) [INFO:swift] Saving model checkpoint to /kaggle/working/output_v2/v3-20260801-013448/checkpoint-402 {train_runtime: 1786, train_samples_per_second: 3.554, train_steps_per_second: 0.225, train_loss: 0.2082, epoch: 6, global_step/max_steps: 402/402, elapsed_time: 29m 46s, remaining_time: 0s, memory(GiB): 13.83, train_speed(s/it): 4.443} Train: 100%|██████████████████████████████████| 402/402 [29:4600:00, 4.44s/it] [INFO:swift] last_model_checkpoint: /kaggle/working/output_v2/v3-20260801-013448/checkpoint-402 [INFO:swift] best_model_checkpoint: /kaggle/working/output_v2/v3-20260801-013448/checkpoint-402 [INFO:swift] images_dir: /kaggle/working/output_v2/v3-20260801-013448/images [INFO:swift] End time of running main: 2026-08-01 02:04:54.818971 [rank0]:[W801 02:04:55.541631968 ProcessGroupNCCL.cpp:1553] Warning: WARNING: destroy_process_group() was not called before program exit, which can leak resources. For more info, please see Redirecting… (function operator())最后测试下来,500步的效果最好!torchrun --nproc_per_node2 \ -m swift.cli.sft \ --model ./qwen2.5-0.5b-instruct \ --dataset /kaggle/working/duan/tools/ai_copilot/sft_dataset.jsonl \ --max_length 4096 \ --num_train_epochs 12 \ --per_device_train_batch_size 4 \ --learning_rate 5e-5 \ --output_dir ./output_v2 \ --logging_steps 5 \ --save_steps 500 \ --eval_steps 500 \ --split_dataset_ratio 0.1 \ --bf16 trueTrain: 100%|██████████████████████████████████| 804/804 [47:1000:00, 2.91s/it] {eval_loss: 0.2208, eval_runtime: 8.648, eval_samples_per_second: 13.53, eval_steps_per_second: 6.822, eval_token_acc: 0.952, epoch: 12, global_step/max_steps: 804/804, elapsed_time: 47m 19s, remaining_time: 0s, memory(GiB): 14.06, train_speed(s/it): 3.531} Val: 100%|██████████████████████████████████████| 59/59 [00:0800:00, 6.98it/s] /usr/local/lib/python3.12/dist-packages/torch/distributed/c10d_logger.py:83: UserWarning: barrier(): using the device under current context. You can specify device_id in init_process_group to mute this warning. return func(*args, **kwargs) [INFO:swift] Saving model checkpoint to /kaggle/working/output_v2/v7-20260801-042924/checkpoint-804 {train_runtime: 2840, train_samples_per_second: 4.47, train_steps_per_second: 0.283, train_loss: 0.1082, epoch: 12, global_step/max_steps: 804/804, elapsed_time: 47m 20s, remaining_time: 0s, memory(GiB): 14.06, train_speed(s/it): 3.532} Train: 100%|██████████████████████████████████| 804/804 [47:2000:00, 3.53s/it] [INFO:swift] last_model_checkpoint: /kaggle/working/output_v2/v7-20260801-042924/checkpoint-804 [INFO:swift] best_model_checkpoint: /kaggle/working/output_v2/v7-20260801-042924/checkpoint-500 [INFO:swift] images_dir: /kaggle/working/output_v2/v7-20260801-042924/images [INFO:swift] End time of running main: 2026-08-01 05:17:05.974298 [rank0]:[W801 05:17:07.697822352 ProcessGroupNCCL.cpp:1553] Warning: WARNING: destroy_process_group() was not called before program exit, which can leak resources. For more info, please see https://pytorch.org/docs/stable/distributed.html#shutdown (function operator())如果爆显存,就把batch_size减小即可.合并模型!swift merge-lora --adapters /kaggle/working/output_v2/v7-20260801-042924/checkpoint-500转为gguf这步我在kaggle上需要先编译安装llama.cpp,需要较长时间,且经常有报错.所以转gguf我都是在本地让Trae帮我转的.测试效果全部完成v7: 18/18 PASS (100%)比 v3 的 17/18 有明显提升。v3 vs v7 对比#测试用例v3v7v7 改进点1基础函数OKOK补全了参数b2多参数默认值OKOK加了段落参数更完整3嵌套条件OKOK加了段落前缀4for-elseOKOKfindtarget更准确5双重循环OKOKlen(mat)替代N变量名正确6列表推导OKOK用遍历...之...若语法7字典推导OKOK接近正确语法8类定义OKOK稳定9try-except-finallyOKOK去掉了设 path 为 空10类继承superOKOK多了属性 breed11lambdafiltermapOKOK用筛选遍历...之...若12match-caseOKOK-13海象运算符OKOK(设 n 为 len(data))正确14propertyOKOK特性 段落 area名称正确15复合赋值OKOK稳定16冒泡排序OKOK段落 bubble_sort完整17with语句FAILOK从失败变通过18装饰器OKOK结构更合理模型信息项目v3v7模型名duan-translator-v3duan-translator-v7训练轮数402500GGUF 大小948MB948MB通过率17/18 (94.4%)18/18 (100%)平均速度26.6 tok/s26.1 tok/sv7 核心改进列表推导从显式循环升级为[x 遍历 x 之 20至0如果 x 取余 2 等于 0]语法海象运算符正确输出(设 n 为 len(data))形式with 语句从直接失败变为可通过lambda 高阶函数开始使用筛选/映射关键字更少的冗余设 xxx 为 空声明先到这里吧,暂时训练告一段落,该想想这个东西怎么用了.

相关新闻

毕业有这一个就够了✨告别一堆垃圾论文工具!

毕业有这一个就够了✨告别一堆垃圾论文工具!

真的不想再让学弟学妹瞎折腾了😭 写论文以来,下载过一堆工具,手机电脑全塞满。 写、改、查、画、翻译、答辩,每个环节换一个软件,操作繁琐、广告多、收费坑,关键是很多工具功能残缺、定稿翻车率超高&…

2026/10/18 1:19:45 阅读更多 →
曾爱玲入职B站任AI视频生成业务负责人,B站AI业务能否借势起飞?

曾爱玲入职B站任AI视频生成业务负责人,B站AI业务能否借势起飞?

36氪独家获悉,曾爱玲入职B站担任AI视频生成业务负责人,向CEO陈睿汇报。此前B站AI投入聚焦多方向,此次新负责人加入,或为其AI业务带来新变化。曾爱玲履历亮眼曾爱玲毕业于香港中文大学,曾是卡内基梅隆大学访问学者。她曾…

2026/10/17 11:13:09 阅读更多 →
muduo网络库(八):EventLoop 事件循环

muduo网络库(八):EventLoop 事件循环

muduo网络库(八):EventLoop 事件循环muduo网络库(八):EventLoop 事件循环概述EventLoop 的内部结构loop 主循环跨线程唤醒机制为什么需要 wakeup跨线程投递流程doPendingFunctors 的巧妙设计One Loop Per T…

2026/10/17 15:39:03 阅读更多 →

最新新闻

大模型推理性能优化:分形思考框架实战指南

大模型推理性能优化:分形思考框架实战指南

同一个开源模型,放在别人机器上跑得飞快,每秒蹦出几十个token,换到你机器上,吭哧吭哧半天蹦一个,还时不时爆个显存。这种问题我在不少技术交流群里见过太多次了——大部分人的第一反应是“卡了,加钱上更好的…

2026/10/18 13:29:00 阅读更多 →
MOS管驱动变压器隔离电路设计全指南

MOS管驱动变压器隔离电路设计全指南

简介:本资源是一份面向电子工程初学者与硬件开发工程师的MOS管驱动技术基础课讲义,聚焦高压场景下变压器隔离驱动方案的原理剖析与工程实践。针对直接驱动高压MOS管存在的安全隐患与响应延迟问题,系统对比集成高边开关与变压器耦合两种主流方…

2026/10/18 13:29:00 阅读更多 →
秒档导出助手怎么用?抖音接单剪辑师的需求变更沟通与成片确认留存全攻略

秒档导出助手怎么用?抖音接单剪辑师的需求变更沟通与成片确认留存全攻略

摘要 在抖音上接剪辑、拍摄、设计这类单子,最消耗人的不是干活,而是**“需求一直在变,却没人记得当初说过什么”**。最稳妥的做法是:从接单咨询那一刻起,就把抖音私信、对接群里的需求描述、修改意见、成片确认分段导出…

2026/10/18 13:29:00 阅读更多 →
WeXPort 怎么导出微信转账记录?亲友婚礼人情往来留存全攻略

WeXPort 怎么导出微信转账记录?亲友婚礼人情往来留存全攻略

摘要 婚礼、满月、乔迁这类人情场合,钱往往通过三种方式流进来:当面礼金、微信转账、微信红包。最容易乱的不是数字,而是**"这笔钱"和"当时说的话"对不上**。最稳妥的做法是:在重要人情往来发生后&#xff0c…

2026/10/18 13:29:00 阅读更多 →
软件面试线程池参数高频考点与项目深挖满分答题模板

软件面试线程池参数高频考点与项目深挖满分答题模板

简介:面向软件开发岗位求职者,这份压缩包是微观博易面试题Project 1的满分答案与实现代码,既适合备战C技术面试时对照学习,也适合初级程序员快速了解一线开发公司的真实考题风格,可作为面试冲刺或日常技术储备的素材。…

2026/10/18 13:29:00 阅读更多 →
Aspen Plus Skill自动化更新系统设计与实现

Aspen Plus Skill自动化更新系统设计与实现

1. 项目概述:当流程模拟工程师开始写“自动更新脚本”你有没有过这样的经历:凌晨两点,盯着Aspen Plus界面里那个灰掉的“Update Skill”按钮发呆?刚改完一个热力学模型参数,想顺手把配套的Skill脚本同步更新到最新版&a…

2026/10/18 13:28:00 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →