| ## 项目目标 |
|
|
| 基于扩散模型的翻译AI,实现两种语言的互译。 |
|
|
| - 并行生成:非自回归,同时生成所有token |
| - 推理效率:通过DDIM加速,减少采样步数 |
|
|
| 要求: |
|
|
| 1. 首要确保最终能够训练出来 |
| 2. 最好提升训练和推理速度 |
| 3. 其次提升效果 |
|
|
| --- |
|
|
| ## 架构设计 |
|
|
| 分为两个部分:中文处理和英文处理 |
|
|
| ``` |
| 中文处理 ←→ 英文处理 |
| 中文源语言/翻译后语言 ←扩散/逆扩散→ 噪声 ←扩散/逆扩散→ 英文源语言/翻译后语言 |
| ``` |
|
|
| 以中文翻译成英文为例,先将中文通过中文翻译部分进行扩散为噪声,同时中文和英文部分识别这个噪声谁更加接近,但英文部分识别到接近英文比例大于中文时,切换英文部分逆扩散,也就是通过扩散在两种语言之间相互转换 |
|
|
| 扩散可以是将一个字符扩散为更多,也可以更少,也可以改变相对位置,也可以增删 |
|
|
| ## 交互 |
|
|
| 训练:命令行操作,带进度条,可看到数据集训练进度,可以看到预计时间和速度,可以随时暂停和停止训练,停止训练后保存权重 |
|
|
| 先做一个用少量数据训练的模式确保可用,再让我在另一个终端做完整的训练 |
|
|
| 运行:也是命令行操作,每一步扩散都要输出一行,可以看到每一步 |
|
|
| ## 数据集 |
|
|
| - `../_dataset/tatoeba.tsv`:tsv文件,一行一个句子,格式为:`编号(不用管)\t中文\t编号\t英文` |
| - `../_dataset/cveto/train.en`和`../_dataset/cveto/train.zh`:一行一个干净的句子,两个文件相同行号对应相同含义句子,即`trian.en`的第123行对应`train.zh`的第123行 |