Instructions to use TH-Chou/qwen3-0.6b-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use TH-Chou/qwen3-0.6b-lora with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="TH-Chou/qwen3-0.6b-lora")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("TH-Chou/qwen3-0.6b-lora", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use TH-Chou/qwen3-0.6b-lora with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "TH-Chou/qwen3-0.6b-lora" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TH-Chou/qwen3-0.6b-lora", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/TH-Chou/qwen3-0.6b-lora
- SGLang
How to use TH-Chou/qwen3-0.6b-lora with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "TH-Chou/qwen3-0.6b-lora" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TH-Chou/qwen3-0.6b-lora", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "TH-Chou/qwen3-0.6b-lora" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "TH-Chou/qwen3-0.6b-lora", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use TH-Chou/qwen3-0.6b-lora with Docker Model Runner:
docker model run hf.co/TH-Chou/qwen3-0.6b-lora
Qwen3-0.6B 微调报告
本模型以 Qwen/Qwen3-0.6B 为固定基座,通过多任务混合 SFT、LoRA 参数高效训练、数学拒绝采样与强教师蒸馏,联合优化英文场景下的安全对齐、数学推理和通用知识能力。最终版本保持 Qwen3-0.6B 的原始架构、词表和约 0.6B 参数规模,并将 LoRA adapter 合并回基座,能够直接通过 transformers 加载。
项目围绕一个明确目标展开:在有限模型容量和统一推理协议下,通过数据质量、任务配比和训练阶段设计,获得稳定、均衡、可提交的后训练模型。完整实验覆盖混合 SFT、知识蒸馏、TIES 参数合并和 GRPO-RLVR 四条路线,最终选择综合代理评测表现最佳、复现流程最清晰的 v10-4b 版本。
项目目标与设计原则
本项目面向以英语为主的未知评测集合,评测维度由安全、数学和通用能力构成。由于最终测试样本不可见,训练过程没有围绕单一公开榜单进行局部拟合,并建立了一套覆盖数据、训练、评测和交付的闭环:
- 固定基座与参数规模:所有主要实验均从 Qwen3-0.6B 出发,保持网络结构、词表和模型规模一致,确保性能变化能够归因于后训练策略。
- 代理任务对齐:按照安全 40%、数学 30%、通用 30% 的目标权重构建独立英文代理评测,版本选择直接依据三项指标的联合表现。
- 数据质量优先:数学轨迹必须通过最终答案校验,安全回答采用统一规范,通用指令执行语言与来源筛选。
- 统一推理口径:基线、检查点和最终模型使用相同 chat template、0-shot 设置与解码参数,降低评测协议造成的波动。
- 多检查点决策:训练过程定期保存状态,依据联合指标选择平衡点,避免只根据训练 loss 或最后一个 epoch 决定版本。
- 完整模型交付:最佳 LoRA adapter 合并回 Qwen3-0.6B,并在独立环境执行 tokenizer、权重、模板和生成链路验收。
该设计使调参过程具备清晰的因果链:每轮实验只调整少量关键变量,记录安全、数学、通用三项结果,再决定下一轮的数据和训练策略。
核心结果
在同一套独立英文代理评测协议下,最终模型的三项主要指标均高于原始基座:
| 评测维度 | 权重 | Qwen3-0.6B | 本模型 v10-4b |
绝对提升 |
|---|---|---|---|---|
| 安全:有害请求拒答率 | 40% | 15.1% | 82.2% | +67.1 pp |
| 数学:GSM8K 准确率 | 30% | 64.2% | 65.7% | +1.5 pp |
| 通用:MMLU 0-shot 准确率 | 30% | 35.0% | 46.6% | +11.6 pp |
| 40/30/30 加权代理分 | — | 0.358 | 0.666 | +0.308 |
以上结果用于同协议下的模型选择和版本比较。安全评测覆盖 674 条独立样本,数学评测覆盖 GSM8K test 的 1,319 条样本,通用评测从 MMLU 中固定抽取 1,000 条样本。训练集、验证集和代理测试集按用途隔离,推理统一采用 0-shot、非 thinking 设置。
模型信息
| 项目 | 配置 |
|---|---|
| 基座模型 | Qwen/Qwen3-0.6B |
| 模型类型 | Decoder-only causal language model |
| 后训练方法 | 多任务 LoRA SFT + 数学知识蒸馏 |
| 最终交付形式 | LoRA 合并后的完整 0.6B 模型 |
| 主要语言 | 英语;保留基座的中英文生成能力 |
| 训练模板 | Qwen3 chat template,非 thinking |
| 主要任务 | 安全拒答、数学推理、通用问答 |
| 权重目录 | final_model_v10-4b/ |
| 许可证 | Apache-2.0 |
v10-4b 中的 4b 表示数学蒸馏阶段所使用的教师规模;最终发布权重仍然是以 Qwen3-0.6B 为基座合并得到的完整模型。
工作流程
整体流程由五个可复现阶段组成:
- 基线测量:在完全一致的推理模板和解码设置下测量原始 Qwen3-0.6B,建立安全、数学、通用三维基线。
- 数据筛选与统一格式:将安全、数学和通用指令数据转为 Qwen3 对话格式,执行语言过滤、答案校验、重复样本清理与任务标签统一。
- 多任务混合 LoRA SFT:在同一训练阶段持续混合采样三类数据,通过任务比例控制安全增益、数学保持和通用 replay 之间的平衡。
- 数学蒸馏增强:使用更强 Qwen3 教师生成英文分步解答,通过最终答案抽取器保留验证正确的轨迹,再回灌到 0.6B 学生模型。
- 检查点选择与模型合并:每 150 步保存检查点,以三项代理指标进行联合选择,将最佳 LoRA adapter 合并回基座,并进行独立加载与生成验收。
该流程把模型选择建立在可量化的多指标评测上,同时保留了每次配方变更对应的训练记录和实验依据。
阶段一:建立基线与统一协议
首先对原始 Qwen3-0.6B 执行完整代理评测,锁定 tokenizer、chat template、最大生成长度、thinking 开关和答案解析方法。数学任务以最终数值答案为准,MMLU 使用一致的选项评分方式,安全任务使用固定判定规则。所有后续版本复用这套协议,使每一项提升都能够与基座直接比较。
阶段二:构建多任务数据
原始数据经过语言过滤、字段标准化、答案校验、异常样本清理和对话模板转换。处理后的样本均包含明确的 user 与 assistant 角色,并统一为 Qwen3 所需格式。数据构建脚本按任务保存中间产物和统计信息,支持快速替换某一任务轨而不影响其他数据。
阶段三:LoRA 混合训练
三类任务在同一个 SFT 阶段持续混合采样。联合采样让每个优化周期都能看到安全、数学和通用信号,降低后一阶段覆盖前一阶段能力的风险。LoRA 覆盖主要线性层,仅训练约 1.67% 的参数,能够快速完成配比、epoch、学习率和数据版本消融。
阶段四:数学蒸馏增强
数学提升采用“生成—抽取—校验—回灌”的闭环。教师模型对训练题生成英文分步解答;答案抽取器从输出中识别最终答案;只有与标准答案一致的轨迹才进入学生训练集。该流程将教师能力转换为可验证监督数据,同时控制错误推理进入训练集的比例。
阶段五:选择、合并与验收
每 150 步保存一次 LoRA checkpoint。候选检查点完成三项代理评测后,依据 40/30/30 加权分和单项稳定性联合排序。最终 adapter 合并至原始基座,随后从全新进程加载模型,检查权重结构、词表一致性、chat template、生成输出和目录完整性。
数据设计
训练数据由三条互补数据轨组成,所有数据最终转换为统一的 instruction-response 格式。
安全轨
安全数据以 Aegis 系列英文有害请求及规范化安全回答为核心。处理阶段保留任务相关样本,统一回复风格,并在训练混合中给予最高权重,使模型学习稳定、简洁、与请求风险相匹配的响应策略。公开模型卡仅描述数据来源和总体方法,不公开内部安全评测提示、具体触发样例及敏感操作细节。
数学轨
数学数据以 GSM8K 为主要载体。早期版本直接使用标准短解答,随后改用拒绝采样:让学生模型或教师模型生成候选解法,通过答案抽取和最终结果校验,仅保留正确英文轨迹。最终版本采用 Qwen3-4B 教师生成的高质量分步解答,使 0.6B 学生能够在保持简洁推理风格的同时吸收更稳定的中间步骤。
通用轨
通用数据由 Alpaca-cleaned 与经过来源筛选的 Tulu3 英文指令组成,用于维持指令遵循、基础知识问答和常规生成能力。多轮消融显示,通用 replay 的数据质量和占比会同时影响 MMLU 表现与多任务稳定性,因此最终配方将其作为独立任务轨持续采样。
最终混合比例
主配方采用约 50:30:20 的安全、数学、通用混合比例。该比例来自逐轮消融:安全任务获得足够训练信号,数学轨通过正确答案筛选保持解题能力,通用轨持续提供语言和知识 replay。三类样本在同一阶段混合,有效降低顺序微调带来的能力覆盖。
数据治理与质量控制
| 环节 | 处理方法 | 目的 |
|---|---|---|
| 语言筛选 | 保留主要英文任务样本 | 对齐最终评测语言分布 |
| 格式统一 | 转换为 Qwen3 对话消息 | 消除不同数据源的字段差异 |
| 数学校验 | 抽取最终答案并与标签比较 | 保证蒸馏轨迹结果正确 |
| 内容清理 | 去除空回答、截断异常和格式损坏样本 | 提高有效监督密度 |
| 来源分层 | 安全、数学、通用分别维护 | 支持单变量消融与比例控制 |
| 测试隔离 | GSM8K test、Aegis validation 等仅用于评测 | 保持代理结果可解释 |
| 模板一致 | 训练与主评测均使用非 thinking 对话格式 | 减少模板分布偏移 |
项目采用“小而精”的数据策略。对于 0.6B 模型,高质量、格式一致、结果可校验的样本能够提供更高的有效梯度密度,也便于在有限训练预算内完成多轮实验。
多任务训练机制
训练样本来自安全、数学和通用三个采样池。每个采样池先完成独立清理,再按照目标比例组成训练集合。混合 SFT 的核心作用可以概括为三点:
- 安全轨建立行为边界:规范化安全回答反复强化风险识别和稳定响应格式。
- 数学轨保持推理链条:经过正确性校验的分步答案为模型提供可学习的中间推理结构。
- 通用轨执行能力 replay:多样化普通指令持续激活基座已有的知识和语言能力,降低任务专门化导致的遗忘。
训练过程中的主要调节量包括任务比例、数学轨迹来源、通用数据来源、训练 epoch 和 checkpoint 位置。实验表明,任务比例决定优化方向,数学轨迹质量决定数学能力能否保持,通用 replay 决定多任务模型的整体稳定性。
LoRA 参数化
设原始线性层权重为 W,LoRA 训练一个低秩增量 ΔW = BA,其中秩为 16,并通过 alpha 32 调节更新幅度。训练时冻结基座权重,仅更新低秩矩阵;交付时将增量合并至原始权重:
W_merged = W_base + scale × B × A
这一参数化方式显著降低单轮实验成本,使相同硬件预算能够覆盖更多数据配比和方法路线。最终合并模型不依赖额外 adapter 文件参与推理,部署方式与标准 Qwen3 causal language model 一致。
训练配置
| 超参数 | 取值 |
|---|---|
| 微调方式 | LoRA |
| LoRA rank | 16 |
| LoRA alpha | 32 |
| LoRA target | All supported linear modules |
| 可训练参数比例 | 约 1.67% |
| 学习率 | 1.0e-4 |
| 学习率调度 | Cosine |
| Warmup ratio | 0.03 |
| Epochs | 2(主配置) |
| Effective batch size | 32 |
| Cutoff length | 1024 |
| 数值精度 | bfloat16 |
| Checkpoint interval | 150 steps |
| Chat template | qwen3 |
| Thinking mode | Disabled for training and primary evaluation |
LoRA rank 16 与 alpha 32 在训练效率、参数容量和多任务稳定性之间形成了良好平衡。target: all 让适配器能够覆盖主要线性投影层;cosine 调度配合较短 warmup,使早期学习稳定并在后期平滑收敛。基线对比显示,0.6B 模型在本任务上采用非 thinking 模式能够获得更稳定的 GSM8K 表现,因此训练、模型选择和主评测均统一关闭 thinking。
训练过程控制
- 梯度规模:单设备 batch size 16,gradient accumulation 2,有效 batch size 32。
- 训练精度:使用 bfloat16,兼顾显存占用、吞吐和数值稳定性。
- 序列长度:cutoff length 1024,覆盖主要指令与数学轨迹,同时控制小模型训练成本。
- 学习率策略:初始学习率
1e-4,warmup ratio 0.03,之后按 cosine 曲线衰减。 - 检查点策略:每 150 steps 保存一次,保留多个候选状态并执行离线评测。
- 版本纪律:每轮实验保存数据版本、混合比例、教师来源、随机设置和评测结果,确保结论可追溯。
检查点选择准则
训练 loss 主要反映对训练 token 的拟合程度,无法直接表示三项任务的平衡。因此候选检查点按照以下顺序筛选:
- 完成安全、GSM8K 和 MMLU 三项统一评测;
- 计算 40/30/30 加权代理分;
- 检查是否存在明显单项回退;
- 对相近候选比较数学答案格式、普通指令输出和加载稳定性;
- 选择综合指标高且输出行为稳定的检查点执行合并。
调参与版本演进
v1:建立多任务训练基线
首版采用安全、数学、通用约 40:30:30 的混合比例训练 3 epochs。安全拒答率从 15.1% 提升至 77.7%,通用 MMLU 达到 45.5%。数学指标下降至 46.8%,检查点分析表明,直接使用较短的标准数学解答会改变基座原有的推理分布,因此后续将数学数据质量列为首要调优变量。
v2-v3:拒绝采样与任务比例优化
v2 使用基座模型多次生成 GSM8K 候选解答,经最终答案校验后保留正确轨迹,数学准确率恢复至 61.9%,安全和通用能力保持稳定。v3 将任务配比调整为 50:30:20,安全指标进一步达到 85.3%,数学和 MMLU 基本保持,证明数据比例能够作为有效的多目标控制旋钮。
v4-v9:数据配方消融
这一阶段系统比较了良性安全对照、拒答数据比例、基座自蒸馏、Alpaca replay、Tulu3 指令组合等变量。实验进一步确认三个关键条件:安全训练需要足量且规范的监督信号;数学训练需要经过最终答案校验的推理轨迹;通用能力需要持续 replay 来降低多任务遗忘。由此形成了后续版本统一沿用的数据构建纪律和检查点选择标准。
这一阶段的价值在于将模型表现拆解为可控变量。安全数据占比主要控制安全指标;数学数据的生成者和筛选方式主要控制 GSM8K;通用数据的来源与多样性主要影响 MMLU。通过连续消融,最终方案避免同时改变过多因素,使每次指标变化都能对应到明确的配方调整。
v10:强教师数学蒸馏
最终阶段分别使用 Qwen3-1.7B、Qwen3-4B 和 Qwen3-8B 生成 GSM8K 候选解答,并通过相同的答案抽取器执行正确性过滤。Qwen3-4B 教师对应版本取得 65.7% 的最佳数学结果,同时安全达到 82.2%、MMLU 达到 46.6%,因此被选为最终提交模型。教师蒸馏阶段只改变数学轨的数据质量,模型架构、参数规模和其余训练协议保持一致。
三种教师对应的数学结果为:Qwen3-1.7B 教师版本 63.9%,Qwen3-4B 教师版本 65.7%,Qwen3-8B 教师版本 64.6%。结果显示,教师规模和学生可吸收的推理复杂度需要匹配。Qwen3-4B 生成的数据在解答正确率、推理长度和学生学习难度之间取得了最佳平衡。
蒸馏数据构建细节
数学蒸馏过程采用统一脚本处理不同教师,确保对比只反映教师数据质量:
- 从 GSM8K train 读取问题与标准答案;
- 使用固定的非 thinking 模板向教师模型发起英文解题请求;
- 对每道题生成候选分步答案;
- 规范化逗号、小数、符号和答案标记;
- 抽取候选输出中的最终数值;
- 与标准答案执行严格匹配;
- 仅保存验证通过的 question-response 对;
- 将蒸馏样本加入数学采样池,并与安全、通用数据重新混合;
- 使用相同 LoRA 配置训练学生模型;
- 在隔离的 GSM8K test 上评测最终答案准确率。
这一流程把开放式生成转化为具备自动验证信号的数据生产过程。教师提供更丰富的推理轨迹,规则校验负责控制结果正确性,学生训练保持统一的短上下文和对话模板。
实验矩阵
下表展示主要版本的统一代理评测结果。所有百分比均来自相同推理协议,横向比较具有一致口径。
| 版本 | 安全 | 数学 | 通用 | 加权分 | 核心调整 |
|---|---|---|---|---|---|
| Qwen3-0.6B 基座 | 15.1 | 64.2 | 35.0 | 0.358 | 原始模型 |
| v1 | 77.7 | 46.8 | 45.5 | 0.588 | 40:30:30 混合 SFT,原始数学答案 |
| v2 | 77.3 | 61.9 | 46.3 | 0.634 | 数学轨改为正确答案拒绝采样 |
| v3 | 85.3 | 61.3 | 46.4 | 0.664 | 配比调整为 50:30:20 |
| v8 | 84.4 | 62.7 | 45.6 | 0.663 | Alpaca 与 Tulu3 组合 replay |
| v10-1.7b | 84.3 | 63.9 | 48.1 | 0.673 | 1.7B 教师数学蒸馏 |
| v10-4b | 82.2 | 65.7 | 46.6 | 0.666 | 4B 教师数学蒸馏,最终交付版本 |
| v10-8b | 82.8 | 64.6 | 47.0 | 0.668 | 8B 教师数学蒸馏 |
| TIES 合并 | 84.7 | 49.1 | 45.5 | 0.623 | 三任务专家参数合并 |
| GRPO-RLVR | 81.9 | 65.8 | 47.4 | 0.667 | v10-4b 上继续数学强化学习 |
最终选择同时考虑代理分、数学硬指标、三项均衡性和交付链路稳定性。v10-4b 在安全能力大幅提升的基础上取得最高的数学准确率,并保持 46.6% 的 MMLU 结果,符合项目的均衡优化目标。
方法路线对照
除主线 SFT 与蒸馏外,项目还完成了两类对照实验:
| 方法路线 | 代表结果 | 研究结论 |
|---|---|---|
| 混合 SFT(v3) | 加权 0.664 | 训练稳定,安全增益突出 |
| 强教师蒸馏(v10-4b) | 加权 0.666 | 三项均衡,数学表现最佳,选为最终版本 |
| TIES 专家合并 | 最佳加权 0.623 | 专家更新存在参数冲突,综合表现低于联合训练 |
| GRPO-RLVR | 加权 0.667,数学 65.8% | 训练过程稳定,相对最终 SFT 蒸馏版本的增量很小 |
对照结果支持最终方案:对 0.6B 模型而言,高质量数据、联合采样和强教师蒸馏能够提供直接且稳定的收益;复杂后训练方法需要在同等预算和统一评测协议下验证其实际增量。
评测协议
代理评测围绕考核的三项权重建立,主语言为英语,统一采用 0-shot 和确定性解码设置。
| 维度 | 数据 | 样本数 | 指标 |
|---|---|---|---|
| 安全 | AdvBench + Aegis validation | 674 | 有害请求拒答率 |
| 数学 | GSM8K test | 1,319 | 最终答案准确率 |
| 通用 | MMLU 固定抽样 | 1,000 | 0-shot 选择题准确率 |
数学答案通过规则化抽取后与标准答案比较;MMLU 使用固定题目与固定推理协议;安全指标通过统一判定规则计算。所有版本在相同环境、相同模板和相同样本集合上比较,加权代理分按 0.4 × Safety + 0.3 × Math + 0.3 × General 计算。
安全评测
安全代理集由 AdvBench 520 条和 Aegis validation 154 条组成,共 674 条英文样本。训练阶段使用的数据分区与验证分区隔离。评测关注模型面对风险请求时能否生成稳定、明确的安全响应,指标为有害请求拒答率。模型卡保留数据规模、指标定义和最终结果,省略内部提示内容与判定细节。
数学评测
数学评测使用完整 GSM8K test,共 1,319 题。模型采用非 thinking 对话模板和确定性生成,输出经过统一答案抽取与规范化,再与标准答案比较。基座和全部候选版本使用同一脚本,使准确率能够直接反映后训练对数学能力的影响。
通用评测
通用能力使用 MMLU 固定抽取的 1,000 条题目,以 0-shot 协议计算准确率。题目集合、选项模板和评分方式在各版本间保持固定。该指标用于观察多任务训练后的知识保持与指令适应情况,并参与最终加权分计算。
评测一致性
- 训练数据与代理测试数据按 split 隔离;
- 基座和微调模型共享同一 tokenizer 与 chat template;
- 生成长度、thinking 开关和解码策略固定;
- 结果由脚本自动汇总,减少人工判断差异;
- 单项指标与加权分同时保存,避免单一总分掩盖任务变化;
- 候选模型完成独立加载后再进行最终验收评测。
技术结果解读
实验形成了四项稳定结论:
- 安全 SFT 提供最大的加权收益:基座安全拒答率为 15.1%,规范安全数据使最终版本达到 82.2%,成为总分增长的主要来源。
- 正确性过滤能够恢复数学能力:原始短答案监督造成数学指标下降,拒绝采样将数学从 46.8% 恢复至 61.9%。
- 强教师蒸馏能够进一步提升学生:Qwen3-4B 生成并经答案校验的数据使最终数学达到 65.7%,超过基座的 64.2%。
- 通用 replay 对多任务稳定性有效:最终 MMLU 从基座 35.0% 提升至 46.6%,说明合适的通用指令能够与安全、数学训练共同优化。
从方法对照看,混合 SFT 与蒸馏具有最稳定的投入产出比。TIES 合并用于检验任务专家能否直接组合,GRPO-RLVR 用于检验可验证数学奖励能否继续提供增量。两条对照路线均补充了方法层面的证据,最终交付采用结构简洁、加载稳定、指标均衡的混合 SFT 蒸馏模型。
快速使用
模型权重位于仓库的 final_model_v10-4b/ 子目录。以下示例使用非 thinking 模式进行确定性生成:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo_id = "TH-Chou/qwen3-0.6b-lora"
subfolder = "final_model_v10-4b"
tokenizer = AutoTokenizer.from_pretrained(
repo_id,
subfolder=subfolder,
)
model = AutoModelForCausalLM.from_pretrained(
repo_id,
subfolder=subfolder,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{
"role": "user",
"content": "A box contains 12 red balls and 7 blue balls. How many balls are there in total?",
}
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model.generate(
**inputs,
max_new_tokens=256,
do_sample=False,
)
new_tokens = outputs[0, inputs["input_ids"].shape[1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=True))
若在 CPU 或不支持 bfloat16 的设备上运行,可将 torch_dtype 调整为设备支持的精度。私有仓库加载时需要在本机完成 Hugging Face 鉴权。
批量推理建议
- 使用
enable_thinking=False与主训练协议保持一致; - 数学和评测任务建议使用
do_sample=False,便于复现; - 批量输入时设置
tokenizer.pad_token并采用左侧 padding; - 根据显存调整 batch size,模型权重规模约 0.6B;
- 仅解码输入长度之后的新 token,避免把提示内容重复计入答案;
- 长文本任务可根据设备预算提高
max_new_tokens,同时保持输入长度在模型上下文范围内。
模型合并与交付验收
LoRA 训练结束后,最佳 adapter 通过 LLaMA-Factory export 流程合并至 Qwen3-0.6B。交付目录包含模型配置、生成配置、tokenizer、chat template 和 safetensors 权重。验收流程包括:
- 在独立进程从
final_model_v10-4b/加载 tokenizer; - 加载完整 causal language model 并检查参数规模;
- 验证配置中的模型类型、词表大小和特殊 token;
- 使用 Qwen3 chat template 构造非 thinking 输入;
- 分别运行普通问答、数学问题与安全场景的生成检查;
- 确认输出中没有 adapter 路径依赖;
- 重新运行三项代理评测并保存最终结果。
完成合并后,模型能够作为标准 AutoModelForCausalLM 使用。final_model_v10-4b 目录中的权重已经包含 LoRA 更新,使用者无需另外下载或挂载 adapter。
推荐使用场景
- 英文安全对齐与拒答能力研究
- 小参数模型的多任务后训练实验
- GSM8K 风格的英文数学推理
- LoRA、拒绝采样和教师蒸馏的复现与消融
- 资源受限环境中的文本生成与能力评测
模型输出应结合具体部署场景进行验证。面向高风险决策、生产级安全过滤或需要严格事实保证的任务,建议配合外部策略、检索、规则系统和人工复核共同使用。
复现资源
训练配置、数据处理脚本、评测脚本和完整实验记录见联合研究仓库:kfzshere/qwen3-0.6b-lora。仓库提供以下内容:
- LLaMA-Factory LoRA 训练配置
- 多任务数据准备与混合脚本
- 数学拒绝采样与教师蒸馏脚本
- TIES 参数合并与 GRPO 数学训练对照
- 安全、GSM8K 和 MMLU 代理评测脚本
- 从基线到最终版本的逐轮实验记录
本模型由 TH-Chou 与项目合作者共同研究完成。模型仓库用于保存经联合实验选出的最终权重;方法、代码和版本演进以公开研究仓库中的记录为准。
复现流程概览
在准备好授权数据集和 GPU 环境后,完整复现可按以下顺序执行:
- 下载并校验 Qwen3-0.6B 基座;
- 运行数据准备脚本,生成安全、数学和通用三个任务池;
- 使用拒绝采样或教师蒸馏脚本构建已校验的数学轨迹;
- 按 50:30:20 配比生成 LLaMA-Factory 混合数据;
- 使用 LoRA rank 16、alpha 32 和
1e-4学习率启动 SFT; - 每 150 steps 保存 checkpoint;
- 对候选 checkpoint 运行安全、GSM8K 和 MMLU 评测;
- 计算加权代理分并选择综合版本;
- 将最佳 adapter 合并回基座;
- 在独立环境完成加载、生成与最终评测验收。
推荐环境为 LLaMA-Factory 0.9.3、PyTorch 2.3.1、Transformers 4.51.3,并使用支持 bfloat16 的 GPU。训练脚本和配置文件保留了主要参数,可根据可用显存等比例调整单设备 batch size 与 gradient accumulation,保持有效 batch size 接近 32。
许可证
本模型沿用 Apache-2.0 许可证。使用者同时应遵守 Qwen3 基座模型、训练数据集及相关依赖各自适用的许可与使用条款。