Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoResearch: 100M Causal LM for Machine Translation

本工程包含了一个完全自动化的(基于 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 服务器版)

在您将本项目克隆/复制到 GPU 服务器后,请严格按照以下三步执行:

第一步:动态语种注册与词表构建

python scripts/build_opus_tokenizer.py --alpaca_json data/sample_alpaca.json

说明:脚本会自动扫描您的数据集,将所有语种标签(如 [en-us][ja-jp])提取出来,并直接注册为 独立的单体 Special Token。这极大地避免了小模型把字母拆分开带来的困惑,并为您省下了至少 10% 的宝贵上下文窗口。最后生成完整的 ./custom_opus_tokenizer

第二步:生成联合预测训练集(Joint Training Data)

python scripts/convert_alpaca_to_data.py --input_json data/sample_alpaca.json --output_dir data

说明:该脚本会加载第一步生成的定制词表。它不仅会将格式处理为 SRC: {外文}\nOUT: -> [{语种}] {中文} 的联合预测模式,还会严格校验 max_length=128,剔除超长数据,并按照 0.05 的比例为您切分出底层 Token 严格平齐的 trainvalidation 两个文件夹。最终还会为您打印精美的数据报表。

第三步:启动自动化训练裁判系统

python run_experiment.py

说明:切勿直接运行 train.py。请运行 run_experiment.py! 它是本项目的自动化核心。它会自动调用 train.py 开始训练。一旦训练结束或因为 Early Stopping 提前终止,它会读取验证集的 SacreBLEU 分数。如果分数打破了历史记录,它会自动把当前的超参数配置和代码 Git Commit 封存起来。

调参说明 (Hyper-parameter Tuning)

如果您想尝试不同的学习率或 Batch Size,请直接打开 train.py 修改 Seq2SeqTrainingArguments 中的参数,然后再次运行 python run_experiment.py 即可。系统会自动比较新旧分数的差异。

About

A ~100M parameter Qwen3-based multilingual-to-Chinese machine translation model, trained from scratch with an automated AutoResearch pipeline.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages