OLMo3 Full 中文 SFT 模型
基于 MikeLee000/olmo3-190m-zh-full-continue 完成 **1 epoch 全参数监督微调(SFT)**的模型,约 187M 参数。
这不是既有的 Nano SFT,也不是 20 步短测权重。最终产物为 checkpoint-18823 对应的 final,已核对二者权重 SHA-256 一致。
训练与验证
- 架构:
Olmo3ForCausalLM,12 层、hidden size 768、intermediate size 3072、词表 48,000。 - 数据:
cmz1024/llm101-olmo3-zh-demo-data的sft/sft_t2t_mini.jsonl,转换为 messages 对话格式。 - 训练样本 903,496 条,验证样本 1,000 条。
- 训练 18,823 个 optimizer steps,1 epoch;全部参数更新,不使用 LoRA。
- Batch size 24,gradient accumulation 2,有效 batch size 48。
- Learning rate 5e-5,warmup ratio 0.05,cosine scheduler。
- 最大训练序列长度 2,048;BF16;packing=false;assistant_only_loss=true。
- 训练环境:PyTorch 2.5.1+cu124、Transformers 5.9.0、TRL 1.3.0。
- 最终 validation loss:2.0709118843078613。它不是回答准确率,也不能代表事实可靠性。
- 完整训练 W&B 报告。
聊天格式
仓库包含 chat_template.jinja。请使用 tokenizer 的 apply_chat_template,并启用 add_generation_prompt=True。训练与推理必须使用本仓库 tokenizer,而不是其他同为 48,000 词表大小的 tokenizer。
结束标记包括 EOS <|endoftext|>(ID 0)和 <|im_end|>(ID 5),pad ID 为 1。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "MikeLee000/olmo3-190m-zh-full-sft"
tokenizer = AutoTokenizer.from_pretrained(repo, trust_remote_code=False)
model = AutoModelForCausalLM.from_pretrained(
repo, dtype=torch.float32, attn_implementation="sdpa",
trust_remote_code=False,
).eval()
messages = [{"role": "user", "content": "写一首关于春天的短诗。"}]
inputs = tokenizer.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True,
return_dict=True, return_tensors="pt",
)
with torch.inference_mode():
output = model.generate(
**inputs, max_new_tokens=128, do_sample=True,
temperature=0.7, top_p=0.9, repetition_penalty=1.1,
use_cache=True, pad_token_id=tokenizer.pad_token_id,
eos_token_id=[tokenizer.eos_token_id, tokenizer.convert_tokens_to_ids("<|im_end|>")],
)
print(tokenizer.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
完整性与发布范围
model.safetensors SHA-256:
917f61eec914d0c915d38658f0220f7a726c3f506688a5b93b31697daf20f638
仅发布推理权重、配置、tokenizer、聊天模板和本说明。不包含原始训练数据、优化器状态、training_args.bin 或访问凭证。
演示与局限
完整训练后的五条抽样评测中,作诗和编程建议比 20 步短测更贴题,但仍有重复、循环定义和知识错误;笑话任务出现持续重复,没有生成有效笑话。不同采样参数下输出会变化。这是教学演示,不是可靠的通用助手,不应直接用于医疗、法律、财务或其他重要决策。请勿向公开演示输入密码、密钥或其他敏感信息。