【mT5多语言翻译】之一——实战项目总览

2024-04-11 09:36

本文主要是介绍【mT5多语言翻译】之一——实战项目总览,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[1] 总览

  【mT5多语言翻译】系列共六篇文章:

  【mT5多语言翻译】之一——实战项目总览
  【mT5多语言翻译】之二——模型:T5模型与mT5模型与前置知识
  【mT5多语言翻译】之三——数据集:多语言翻译数据集与预处理
  【mT5多语言翻译】之四——加载:加载数据集与模型
  【mT5多语言翻译】之五——训练:中央日志、训练可视化、PEFT微调
  【mT5多语言翻译】之六——推理:多语言翻译与第三方接口设计


  出海业务场景下,多语言翻译成为必不可少的工具。然而,使用谷歌翻译接口不仅需要支付费用,还存在数据泄露的风险。因此我们训练一个自己的翻译模型是有必要的。

  mT5支持102种语言,有:

Afrikaans, Albanian, Amharic, Arabic, Armenian, Azerbaijani, Basque, Belarusian, Bengali, Bulgarian, Burmese, Catalan, Cebuano, Chichewa, Chinese, Corsican, Czech, Danish, Dutch, English, Esperanto, Estonian, Filipino, Finnish, French, Galician, Georgian, German, Greek, Gujarati, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Korean, Kurdish, Kyrgyz, Lao, Latin, Latvian, Lithuanian, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Nepali, Norwegian, Pashto, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Samoan, Scottish Gaelic, Serbian, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Sotho, Spanish, Sundanese, Swahili, Swedish, Tajik, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, West Frisian, Xhosa, Yiddish, Yoruba, Zulu.

  只要是上述102种语言之间的翻译任务,mT5都可以训练。本次项目实战演示了中文——韩文、中文——日文之间的多语言翻译,先来看看模型的效果:

  输入如下:

sentences = ["kor:我要去健身了","jpn:我要去健身了","kor:他说他会爱我一辈子","jpn:他说他会爱我一辈子",
]

  设置波束为10,每条输入文本返回3条输出文本。翻译输出如下:

나는 피트니스에 가고 싶
나는 피트니스 클럽에 가
나는 피트니스 센터에 가
ジムに行きます。
ジムに行きたいです。
ジムに行くわ
그는 평생을 나를 사랑할
그는 평생 나를 사랑할 것
그는 평생 나를 사랑할 거
彼は私を愛してくれると言っていた。
彼は私を愛してくれると言った。
彼は私を愛してくれると言っていました。

[2] 代码获取地址

  如果需要本项目的源代码,请扫描关注我的公众号,回复“多语言翻译”。

在这里插入图片描述

  代码结构如图所示:本项目使用pytorch+transformers库实现。

在这里插入图片描述

[3] 项目及资源要求介绍

  本项目基于mT5模型的base版进行翻译训练。mT5的详细情况请参考:https://huggingface.co/google/mt5-base。

【注】官方只提供了mT5模型的无监督训练参数,并没有放出微调任务的参数,因此我们想直接开箱使用是不可以的,必须要自己微调一下才可以输出正常的文本。这一点和T5模型比较不同。

项目功能介绍

  一、项目集成了中央日志,可以完成同时将所有文件产生的日志信息同时输出到控制台并记录为日志文件。

  二、项目集成了全量参数训练方式和PEFT微调方式,只需要在配置文件中简单修改一个参数即可完成训练方式的切换。

  三、项目集成了tensorBoard训练日志,可以实时的绘制模型的loss、准确率等指标。

  四、项目提供了数据集预处理代码,并开放了在600万条日文数据和600万条韩文数据上全量参数训练和PEFT微调2轮后的模型参数。

  五、项目提供了模型翻译的demo写法,并封装成了api接口方便外部调用。

项目运行时所占资源说明

  mT5-base的模型大小为2.3GB。

  设置文本长度为10,batch为32时:全量参数微调大约需要占13GB显存;PEFT微调时大约只需要5GB显存。

【注】我的显卡是8GB显存的4060,现在电脑好像都有GPU专用内存(在内存里划nGB专门给显卡使用),我的GPU专用内存是8GB,所以算下来可以提供16GB显存,即使是全量参数微调电脑也是可以跑的,大家可以试一下。
————————————————————
PEFT需要的显存资源更少,训练起来比全量参数微调快非常多。但是最终效果肯定是会逊色一些。到底怎么训练还是要看大家自身的资源情况。

[4] 进行下一篇实战

  【mT5多语言翻译】之二——模型:T5模型与mT5模型与前置知识

其他实战项目

  您还可以浏览我的其他实战项目:

  1、单标签文本分类(bert英文)

  2、多标签文本分类(bert英文)

  3、五子棋开发实战

  4、古诗生成AI实战

这篇关于【mT5多语言翻译】之一——实战项目总览的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893709

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧