本工程包含了一个完全自动化的(基于 Karpathy AutoResearch 思想)大模型训练流。其目标是利用 RTX 4080 Super 等 GPU 环境,从零(From Scratch)训练一个专精于机器翻译(NMT)的 ~100M 极小参数量 Decoder-Only(Qwen3 架构)模型。
- 极致参数利用:通过
tie_word_embeddings与定制化 Opus 词表,最大化了 Transformer 大脑的参数占比。 - 自动混合精度:自动探测显卡是否支持
bfloat16并自动开启。 - 防止过拟合机制:内置 Early Stopping(早停)、L2 权重衰减(0.01)和机器翻译标配的 Label Smoothing(0.1)。
- 多语言归一化 (Mul -> ZH):针对您“多种语言输入、目标均为中文”的特定任务,我们统一将训练输入格式剥离为源语言混杂输入,强制 Causal LM 进行
Many-to-One跨语言对齐学习。
在您将本项目克隆/复制到 GPU 服务器后,请严格按照以下三步执行:
python scripts/build_opus_tokenizer.py --alpaca_json data/sample_alpaca.json说明:脚本会自动扫描您的数据集,将所有语种标签(如 [en-us]、[ja-jp])提取出来,并直接注册为 独立的单体 Special Token。这极大地避免了小模型把字母拆分开带来的困惑,并为您省下了至少 10% 的宝贵上下文窗口。最后生成完整的 ./custom_opus_tokenizer。
python scripts/convert_alpaca_to_data.py --input_json data/sample_alpaca.json --output_dir data说明:该脚本会加载第一步生成的定制词表。它不仅会将格式处理为 SRC: {外文}\nOUT: -> [{语种}] {中文} 的联合预测模式,还会严格校验 max_length=128,剔除超长数据,并按照 0.05 的比例为您切分出底层 Token 严格平齐的 train 和 validation 两个文件夹。最终还会为您打印精美的数据报表。
python run_experiment.py说明:切勿直接运行 train.py。请运行 run_experiment.py!
它是本项目的自动化核心。它会自动调用 train.py 开始训练。一旦训练结束或因为 Early Stopping 提前终止,它会读取验证集的 SacreBLEU 分数。如果分数打破了历史记录,它会自动把当前的超参数配置和代码 Git Commit 封存起来。
如果您想尝试不同的学习率或 Batch Size,请直接打开 train.py 修改 Seq2SeqTrainingArguments 中的参数,然后再次运行 python run_experiment.py 即可。系统会自动比较新旧分数的差异。