前面课程中,已经搭建好了完整的 Transformer 模型结构,从这节课开始,就进入 Transformer 的运用阶段,我们要用 Transformer 模型,来完成一个英译中的翻译任务,这节课的任务是配置路径和分词。

用 Transformer 做翻译任务,有两个比较大的值,一是词汇量比较大,生成器输出的分类数量就比较多,另一个就是 Transformer 的模型参数量也比较大,所以这个翻译的生成式任务是比较难训练的。

为了让大家可以尽快的看到效果,同时也是方便调试,防止模型有隐藏的bug,我们先构造一个特别小的数据集,来把流程跑通,然后再换成真实的数据集来做训练,这也是在实际开发中常用的技巧。

简单数据集

训练数据是一些简短的句子,验证集是用训练集中出现过的词汇,重组的新句子,但不完全重复。因为词汇量小,暂不考虑<unk>的情况。

有验证集没有测试集,一般来说验证集是一定要有的,因为要在训练途中观察模型效果,如果没有验证集,可以拿测试集做验证。

内容不可见,请联系管理员开通权限。

代码示例

1、配置项

内容不可见,请联系管理员开通权限。

2、分词

中文句子和英文句子都要做分词,中文分词最常用的方法,就是 jieba 库,英文分词考虑到标点符号,不能直接用空格切分,所以用正则处理。

内容不可见,请联系管理员开通权限。

分词的方法很多,用其他三方库,或者用BPE算法训练都可以,上面封装成函数的目的,也是方便替换。

这节课是进项目的第一节课,节奏稍微慢一点,给大家留一点时间,自己去造一个简单的数据集,体会一下构造数据集的乐趣,下节课再讲词表生成的逻辑。

本文链接:http://www.ichenhua.cn/edu/note/664

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!