网站建设报价表模板,地方网站优势,企业网站开发公司有哪些,罗湖做网站公司Pytorch动手实现Transformer机器翻译前言一、环境配置1. torchtextMethod1#xff1a;Method2#xff1a;2. Spacy以en包下载为例#xff1a;手动安装语言包到spacy3. NLTKMethod1#xff1a;Method2#xff1a;二、运行结果1. 模型训练#xff08;train#xff09;2. 翻… Pytorch动手实现Transformer机器翻译前言一、环境配置1. torchtextMethod1Method22. Spacy以en包下载为例手动安装语言包到spacy3. NLTKMethod1Method2二、运行结果1. 模型训练train2. 翻译推理inference总结参考网站前言
书接上回光从实现Transformer模型from scratch似乎有点僵硬毕竟模型不跑起来或者不能应用起来就是一堆“死代码”为了让读者从上一篇文章中Pytorch从零开始实现Transformer (from scratch)学习后能体验一下Transformer的强大之处于是有了这篇博客。因为Transformer早先就是谷歌团队为了解决机器翻译等NLP问题而提出的Transformer天然适用于NLP领域因此使用Transformer进行机器翻译的应用是最直接的其实就是本人也一直想玩一下NLP的项目。 由于时间关系首先公布一下环境配置及运行结果。 一、环境配置
源项目为 github.com/SamLynnEvans/Transformer但其中代码可能因为年代久远运行会有各种问题不久后我会公布我的项目源码。 接下来是两个比较特别的库光是pip install后并没有完事还需要额外安装里面对应的工具包。
1. torchtext
torchtext的安装是最为值得注意的一环!
Method1
直接使用pip install torchtext安装
pip install torchtext如果你的pytorch版本较低此命令会自动更新pytorch并安装cpu版本这时会卸载旧的pytorch安装的新版本pytorch可能会不兼容。慎用
Method2
使用conda install -c pytorch torchtext安装
conda install -c pytorch torchtext推荐尝试一下Method2而本人的方法是直接在Anaconda虚拟环境中直接用Method1因为是实验室电脑所以不想污染base基础环境就自建一个虚拟环境方便操作。
2. Spacy spacy号称工业级Python自然语言处理NLP软件包可以对自然语言文本做词性分析、命名实体识别、依赖关系刻画以及词嵌入向量的计算和可视化等。 Spacy的安装没有什么要注意的就直接pip install安装就好。
pip install spacy而本文需要用到英语en和法语fr两个工具包所以需要在Spacy额外下载。一种比较快的方法是直接从官网安装英语和法语的工具包然后再手动pip install 到spacy里面这种方法的优点就是速度更快更容易控制。 给出下载en和fr语言包的网站 https://github.com/explosion/spacy-models/releases/tag/en_core_web_sm-3.5.0 https://github.com/explosion/spacy-models/releases/tag/fr_core_news_sm-3.5.0 Tipgithub网站可能需要科学上网才能更加流畅地加载出来。本项目源码发布的时候会带有这些文件读者如果需要复现请不用担心资源不足
以en包下载为例
进入网址https://github.com/explosion/spacy-models/releases/tag/en_core_web_sm-3.5.0 然后点击上图红框的download即可下载。
手动安装语言包到spacy
方法也很简单到下载的语言包目录下进入Terminal终端小黑窗windows下是cmd输入pip install *******.tar.gz 安装即可。语言包会自动下载到spacy库中。
3. NLTK
如果读者的环境中没有nltk请先
pip install nltk源代码这部分使用了nltk中的wordnet包如果没有这个包也是需要下载的。
Method1
可视化安装随便进入一个python的控制台界面输入
import nltk
nltk.download()不出意外会出现如下弹出如下窗口 然后如下图点击Corpora然后下拉滚动条找到wordnet并点击“download”。如果网络好的话会看到右下角蓝框处的红色进度条不断增长。 不过这个方法一般比较慢由于网速不太能安装好。
Method2
直接去官网找到zip包直接下载从根源解决问题。 进入网址http://www.nltk.org/nltk_data/ “CtrlF”搜索“id: wordnet”请注意冒号后有个空格会出现好几个搜索结果选择如下图所示这个wordnet进行下载 如果下载时候文件显示10.3MB那就证明下载正确了 然后将下载好的wordnet.zip放到读者电脑所在nltk_data/corpora目录下即可。如果不知道nltk_data在哪里可以在python里输入如下命令就会出现所有nltk_data路径了。
import nltk
nltk.download(wordnet)二、运行结果
1. 模型训练train
打开终端输入命令即可训练Transformer用于英语翻译为法语的机器翻译任务。
python train.py -src_data data/english.txt -trg_data data/french.txt -src_lang en_core_web_sm -trg_lang fr_core_news_sm -epochs 10即指定english.txt和french.txt语料随项目代码提供先训练个10epochs。原项目中用一张8GB显存的K100来跑本文使用的是英伟达3060显存12G因此训练绰绰有余。10epochs一个小时内就能训练完吧。
2. 翻译推理inference
训练完模型之后加载所保存的目录此处为weights其实也是训练时指定好的路径了。
python translate.py -load_weights weights -src_lang en_core_web_sm -trg_lang fr_core_news_sm红框为输入的英文篮框为模型翻译出的法语。 尽管我们可能看不懂法语但是可以将法语交给现成翻译器让其翻译成中文。 我是一名研究生。 你为什么喜欢读书科学 这是我学了四年的学校。——“有道翻译” 大概看得出翻译的还算有模有样可以翻译得出where后置定语从句那证明Transformer对机器翻译方面是一个可行的模型。 总结
目前本博客所体现的是比较表层的一部分旨在引发大家对Transformer等深度学习模型学习的兴趣同时也是激发我自己对学习的动力。学习完模型后将自己实现的模型用来做出一个可运行的demo或者应用不仅能加深记忆还能像连锁反应一样触发更多知识点的学习提高知识面的广度和认知深度。
参考网站
https://github.com/SamLynnEvans/Transformer 【Pytorch】torchtext终极安装方法及常见问题 PYTHON -M SPACY DOWMLOAD EN失败 离线安装NLTK工具包