Skip to content

TrueGodOfTrinity/EN-to

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ENto


🙌ENto是一个基于Transformer(Encoder-decoder)的语言翻译模型,使用Pytorch实现。

🎯1. 项目功能

  • 从零构建标准 Encoder-Decoder Transformer
  • 基于 tokenizers 训练 WordLevel 分词器
  • 使用 datasets 加载 opus_books(from 🤗hugging face)
  • 支持训练、验证、模型权重保存
  • 支持 TensorBoard 训练日志可视化

🛠️2. 目录结构

  • config.py:训练与路径配置
  • dataset.py:数据集封装、padding 与 mask 构建
  • model.py:Transformer 各模块实现与模型组装
  • train.py:训练主流程、greedy decode与验证逻辑

🔍3. 环境依赖

建议Python 3.10

安装依赖:

pip install -r requirements.txt

🐇4. 快速开始

在项目目录下运行:

python train.py

默认配置(见 config.py):

  • batch_size = 8
  • num_epochs = 20
  • lr = 1e-4
  • seq_len = 350
  • d_model = 512
  • lang_src = "en"
  • lang_tgt = "fr"

🔬5. 训练输出

  • 模型权重保存到:weights/
  • TensorBoard 日志保存到:runs/tmodel

TensorBoard的使用:

  • 如果没有安装TensorBoard,那么
pip install tensorboard
  • 启动TensorBoard
tensorboard --logdir=runs
  • 打开浏览器,并输入
http://localhost:6006

🩹6. 断点续训

config.py 中设置:

  • preload = None:从头训练
  • preload = "xx":加载 weights/tmodel_xx.pt 继续训练

🗝️7. 一些说明

  • 当前实现包含:
    • Encoder Self-Attention
    • Decoder Masked Self-Attention
    • Cross-Attention
    • Feed Forward + Residual + LayerNorm
  • 验证阶段使用 Greedy Decode 做示例输出。
  • 本项目以英文翻译为法语进行示例,数据集opus_books还支持更多的翻译。若想要翻译为更多语言,只需要更改config.py中的lang_tgt即可

🖊️8. 碎碎念

本仓库可以供想要实现Stanford CS336 AssignmentⅠ的同学们参考。同时,这也是本人在学习Machine Learning过程中的一个练手项目。由于本人能力有限,本项目也许并不完善,所以欢迎大家提issue or PR 😜

About

A language model based on Transformer (encoder-decoder).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages