UCAS-EasyTranslate / README.md
shawnyue008's picture
Duplicate from sdfjliom/UCAS-EasyTranslate
d1b51a6
|
Raw
History Blame Contribute Delete
2.65 kB
metadata
license: mit

EasyTranslate: 基于 Transformer 的英中翻译系统

研究生 NLP 期末项目 — 使用前沿技术实现高质量英文到中文机器翻译

亮点

  • Pre-LayerNorm Transformer: 从零构建,训练更稳定
  • RoPE 旋转位置编码: 替代传统正弦编码,更好捕获相对位置信息
  • Flash Attention 2: 利用 PyTorch 2.0+ 原生支持,训练显著加速
  • NLLB 预训练微调: 基于 Meta NLLB-200 模型,支持 LoRA 参数高效微调
  • 完整评估体系: SacreBLEU + COMET + chrF++ 多维度评估
  • 6 组消融实验: 系统验证各前沿组件的效果

快速开始

# 安装
conda create -n easytranslate python=3.11 && conda activate easytranslate
pip install torch --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt && pip install -e .

# 从头训练 Transformer
python scripts/train.py --config configs/default_config.yaml

# 微调 NLLB + LoRA
python scripts/train.py --config configs/default_config.yaml model.type=finetune_nllb

# 评估
python scripts/evaluate.py --checkpoint checkpoints/best_model.pt

# 交互翻译
python scripts/translate.py --checkpoint checkpoints/best_model.pt

项目结构

src/easytranslate/
├── data/          # 数据加载、分词、预处理、动态批处理
├── model/         # Transformer (Encoder-Decoder) + 注意力 + 位置编码 + LoRA
├── training/      # 训练循环、优化器、损失函数、分布式训练
├── evaluation/    # BLEU/COMET 指标、Beam Search 解码、评估器
└── utils/         # 配置管理、日志、随机种子

技术架构

英文输入 → BPE Tokenizer → Source Embedding + RoPE
    → Transformer Encoder (6 layers, Flash Attention, Pre-LN)
    → Transformer Decoder (6 layers, Causal Mask, Cross-Attention)
    → Linear Projection → Beam Search → 中文输出

团队分工

详见 TASK_ASSIGNMENT.md

角色 负责模块 核心任务
Person A data/ 数据集加载、BPE 分词器、预处理流水线
Person B model/ Transformer 架构、Flash Attention、RoPE、LoRA
Person C training/ 训练循环、混合精度、梯度累积、早停
Person D evaluation/ BLEU/COMET 评估、Beam Search、推理服务
Person E utils/ + 实验 工具模块、消融实验、可视化、报告

依赖

  • Python >= 3.10
  • PyTorch >= 2.1 (Flash Attention 支持)
  • HuggingFace Transformers / Datasets / Tokenizers
  • PEFT (LoRA)
  • SacreBLEU, COMET (评估)