SambaLingo——教会大模型新语言

news2024/11/22 19:26:04

在当今数字化时代,语言不仅是沟通的桥梁,也是信息和知识传递的核心。尽管大模型(LLMs)在处理英语等主流语言方面取得了显著进展,但它们在理解和生成其他语言内容方面的能力却参差不齐。这种不平衡限制了技术在全球范围内的应用潜力,SambaNova Systems 的研究团队在论文 "SambaLingo: Teaching Large Language Models New Languages" 中,直面这一挑战,提出了一种创新的方法来教授LLMs新的语言,这不仅是技术进步的体现,更是推动语言平等的重要一步。

语言是文化传承的载体,每种语言都有其独特的表达方式和世界观。技术发展中的“语言鸿沟”往往使得某些语言群体在信息时代处于不利地位。SambaLingo项目通过扩展LLMs的能力,使得这些模型能够更好地服务于非英语用户,从而缩小了这一鸿沟,为构建一个更加包容的数字世界奠定了基础。

作者的方法与其他模型相比在保留数据集上的性能

方法

在SambaLingo项目中,适应新语言的核心在于一系列精心设计的步骤,这些步骤构成了适应方法论的基石。

选择合适的基础模型是语言适应过程的第一步。研究团队选择了Llama 2 7B作为起始点,因为它是当时可用的最佳开源模型。选择基础模型时,考虑了模型在原始语言(这里是英语)上的表现,以及其参数规模和训练数据的多样性。这一选择对于后续的适应过程至关重要,因为它决定了模型在新语言上的起点和潜在的性能。

扩展模型的词汇表是为了提高模型对新语言的理解和生成能力。由于Llama 2主要在英文文本上训练,其标记器对其他语言的效率较低。为了解决这个问题,研究者们通过添加目标语言的非重叠标记来扩展词汇表,并使用原始标记器的子词嵌入来初始化这些新标记。这一步骤不仅提高了标记器的效率,还有助于模型更好地处理新语言的文本。

持续预训练是适应新语言的关键环节。研究者们使用了英语和目标语言的网页数据的1:3混合,这些数据偏向目标语言。这种数据混合策略有助于模型在保持对原始语言的理解的同时,快速学习新语言的特征。预训练数据的组成反映了对目标语言的重视,同时也确保了模型能够在多样化的数据上进行训练,以提高其泛化能力。

为了确保模型生成的文本符合人类的偏好,研究者们采用了监督微调和直接偏好优化(DPO)的两阶段方法。在监督微调阶段,模型使用与目标语言1:1比例的超聊天数据集和谷歌翻译版本的超聊天数据集进行训练。在DPO阶段,模型进一步通过与人类偏好对齐的数据进行训练,以生成更自然、更符合预期的文本。

这一阶段的训练特别重要,因为它涉及到模型的微调,使其能够生成与人类偏好一致的文本。这不仅提高了模型的可用性,还增强了其在特定文化和语境中的适应性。

以上这些步骤不仅提高了模型在新语言上的性能,还确保了其生成的文本能够符合人类的期望和偏好。通过这种方法,SambaLingo项目为构建多语言能力更强的AI系统铺平了道路。

评估

研究团队采用了多种定量和定性的方法来全面评估模型的性能。定量评估涉及使用一系列基准测试来衡量模型在不同任务上的表现。主要的评估指标包括:

  • 困惑度(Perplexity):在CulturaX数据集上,模型的困惑度被用来衡量其语言建模的能力。困惑度越低,表示模型对语言的理解越深入。
  • 翻译质量:通过FLORES-200数据集,使用CHRF(Character n-gram F-score)指标来评估模型的机器翻译能力。这包括从英语到目标语言(EN→X)和从目标语言到英语(X→EN)的翻译。

模型还在SIB-200、BELEBELE和EXAMS等数据集上进行了文本分类、问答和自然语言理解任务的评估。这些评估帮助研究者们全面了解模型在各种语言任务上的性能。

用于评估模型性能的多语言数据集和任务类别
了作者的模型在多个评估基准上的平均表现

将模型扩展到70B参数规模是SambaLingo项目的一个重要里程碑。这种扩展使得模型能够拥有更多的容量来学习和存储知识,从而提高了其在复杂任务上的表现。研究者们对70B模型进行了与7B模型相同的评估,并发现:

  • 70B模型在几乎所有评估任务上都展现出了更好的性能。
  • 即使70B模型训练的步数更少(例如,4B tokens相对于7B模型的40B tokens),它们在多个基准测试中的表现也与7B模型相当或更好。

这表明,通过扩展模型规模,可以在保持计算效率的同时显著提升模型的能力。

不同参数规模模型在计算效率上的表现

为了测试模型生成的文本是否符合人类的期望,研究者们采用了一种创新的评估方法:使用GPT-4作为评估者。GPT-4是一个高级的语言模型,被训练来评估其他模型生成的文本的质量。在这项研究中,GPT-4被用来:

  • 对比模型生成的文本与真实用户提示的匹配度。
  • 评估模型在生成高质量、符合人类偏好的文本方面的能力。

研究者们收集了一系列人工编写的提示,并使用GPT-4对模型生成的响应进行评分。这种方法提供了一个有力的视角,来评估模型是否能够生成与人类思维和表达方式一致的文本。

使用GPT-4作为评估者对模型生成的文本进行质量评估的结果

通过定量评估和扩展到更大的参数规模,SambaLingo项目证明了其方法论在提升模型性能方面的有效性。而使用GPT-4作为评估者,进一步验证了模型在生成符合人类偏好文本方面的能力。这些评估结果不仅展示了SambaLingo在技术层面的进步,也突显了其在促进语言多样性和包容性方面的潜力。

在消融研究中研究者们首先探讨了扩展词汇表对模型性能的影响。他们训练了两个模型,一个使用扩展的词汇表,另一个使用原始分词器,并在匈牙利语和阿拉伯语上进行了比较。结果表明,尽管扩展词汇表对下游任务的准确性影响不大,但它显著提高了分词效率,这有助于提高目标语言的推理效率和序列长度的利用。

词汇扩展对模型效率和准确性的影响

接下来,研究者们测试了不同的新标记嵌入初始化策略。他们尝试了高斯分布、Xavier均匀分布、所有原始标记的平均嵌入以及子词平均嵌入等四种方法。实验结果表明,使用子词平均嵌入的方法在训练损失收敛方面表现更好,并且在下游基准测试中取得了边际上的改进。

不同初始化策略对模型训练损失的影响
不同初始化方法对多语言评估性能的影响

在直接偏好优化阶段,研究者们研究了不同比例的目标语言和英语数据混合对模型性能的影响。他们尝试了100:1、10:1、10:3和1:1的不同比例,并观察了与其他模型的成对比较中的胜率。结果表明,即使是10:1的数据比例,对于匈牙利语也能几乎达到与1:1比例相似的性能,而对于阿拉伯语,即使是10:3的数据比例也能达到可接受的性能。

在直接偏好优化阶段使用不同数据比例的效果

研究者们还探讨了使用机器翻译数据与人工编写数据在人类对齐中的效果。他们使用Google翻译的超反馈数据和人工编写的开放助手对话数据进行了比较。结果表明,尽管使用翻译数据的模型在胜率上略低于使用人工编写数据的模型,但这并不意味着人工编写数据是获得高质量对齐模型的唯一途径。

研究者们分析了基础模型的质量对目标语言适应性能的影响。他们将Llama 2 7B和GPT-13B两个不同质量的基础模型适应到匈牙利语上,并发现使用更高质量的基础模型(Llama 2 7B)能够带来更好的下游性能。这一发现表明,随着更高质量模型的出现,将这些新模型应用于适应方法论将具有重要价值。

GPT-13B 和 Llama-2-7B 在英语 NLU 基准测试上的表现
GPT-13B 和 Llama 2 7B 在适应匈牙利语后的基准测试表现

SambaLingo项目展示了一种将预训练的大型语言模型适应到新语言的有效方法。通过持续预训练和与人类偏好的对齐,研究团队在9种语言上实现了最先进的模型。随着全球化的不断深入,跨语言交流的需求日益增长。SambaLingo项目通过提升LLMs在多种语言上的表现,不仅能够促进国际合作和文化交流,还能够为机器翻译、跨语言内容创作等领域带来革命性的变化。这对于提升用户体验、推动知识共享以及加速技术创新都具有深远的意义。

论文链接:https://arxiv.org/abs/2404.05829

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1840764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

广告权重及出价解析

由于算法一直在不断改变,所以公式只能作为参考,不过核心是不变的。一、广告权重及出价解析 链接质量分CTR分值**CR分值(点击率*转化率)广告质量分广告出价*链接质量分我们的出价下一名产品的广告质量评分/我们的链接质量分0.01 …

SUSE linux的快照和恢复

snapper用于创建和管理文件系统快照,并在需要时实现回滚,它还可以用于创建用户数据的磁盘备份。snapper使用btrfs文件系统或者精简配置的被格式化成XFS或EXT4的LVM卷。snapper可以通过命令行或YaST来进行管理。 btrfs是一种copy-on-write文件系统&#x…

LoRA用于高效微调的基本原理

Using LoRA for efficient fine-tuning: Fundamental principles — ROCm Blogs (amd.com) 大型语言模型的低秩适配(LoRA)用于解决微调大型语言模型(LLMs)的挑战。GPT和Llama等拥有数十亿参数的模型,特定任务或领域的微…

easyexcel和poi版本冲突报错深入解析v2

easyexcel报错解决 问题 项目由poi改用easyexcel,报错如下: java.lang.NoSuchMethodError: ‘org.apache.poi.ss.usermodel.CellType org.apache.poi.ss.usermodel.Cell.getCellType()’ 原因 easyexcel中的poi和项目原本的poi版本冲突问题。 由于之前做…

双指针问题2

文章目录 1. 有效三角形的个数(611)2. 查找总价格为目标值的两个商品(LCR179)3. 三数之和(15)4. 四数之和(18) 1. 有效三角形的个数(611) 题目描述&#xff…

单元测试很难么?

前言 你可能会用单元测试框架,python的unittest、pytest,Java的Junit、testNG等。 那么你会做单元测试么!当然了,这有什么难的? test_demo.py def inc(x): return x 1 def test_answer(): assert inc(3) 4 i…

【计算机毕业设计】211校园约拍微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

行为树行为树行为树

行为树由一个个节点组成 结构:树状结构运行流程:从根节点开始自顶向下往下遍历,每经过一个节点就执行节点对应的功能。 我们规定,每个节点都提供自己的excute函数,返还执行失败/成功结果。 然后根据不同节点的执行结…

从0到1使用vite搭建react项目保姆级教程(持续更新中)

一、vite创建react项目 要使用Vite创建一个React项目,你需要按照以下步骤操作: 1、确保你已经安装了Node.js(建议使用最新的稳定版本)。 2、 使用npm命令安装Vite CLI工具,再来创建项目 npm create vitelatest my-vi…

【pytorch01】简单回归问题

1.梯度下降(Gradient Descent) y x 2 ∗ s i n ( x ) yx^{2}*sin(x) yx2∗sin(x) y ′ 2 ∗ x ∗ s i n ( x ) x 2 ∗ c o s ( x ) y2*x*sin(x) x^{2}*cos(x) y′2∗x∗sin(x)x2∗cos(x) 求最小值要求导 梯度下降定义:梯度下降要迭代计…

矿用行程位移传感器传感器ZE0701-06CU

矿用行程传感器概述 矿用行程传感器是一种专为煤矿等特定环境设计的传感器,用于监测和测量设备或部件的位移量。它们通常用于液压支架、千斤顶、掘进机等矿山设备中,帮助监测和控制设备的运动状态,以确保安全和高效的生产。 定义和功能 矿用…

异构集成封装类型2D、2.1D、2.3D、2.5D和3D封装技术

异构集成封装类型:2D、2.1D、2.3D、2.5D和3D封装详解 简介随着摩尔定律的放缓,半导体行业越来越多地采用芯片设计和异构集成封装来继续推动性能的提高。这种方法是将大型硅芯片分割成多个较小的芯片,分别进行设计、制造和优化,然后…

算法金 | 再见!!!梯度下降(多图)

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 接前天 李沐:用随机梯度下降来优化人生! 今天把达叔 6 脉神剑给佩奇了,上 吴恩达:机器…

Python接口测试实战之搭建自动化测试框架

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一.数据分离:从Excel中读取数据 之前的用例中,数据直接写在代码文件里,不…

OpenAI新模型发布,免费开放GPT-4o!但只开放一点点...

GPT-4o 中的“o”代表“omni”——指的是 GPT-4o 的多模态。 该模型将向免费客户开放,这意味着任何人都可以通过 ChatGPT 访问 OpenAI 最先进的技术。 GPT-4o 是 OpenAI 昨天晚上发布的新旗舰模型,可以实时推理音频、视觉和文本。 据官方介绍&#xff0…

椭圆的标准方程与协方差矩阵的特征值和特征向量的关系

椭圆的标准方程与协方差矩阵的特征值和特征向量的关系 flyfish 单位圆 :单位圆表示在标准正交基下的分布。 椭圆 :通过协方差矩阵的特征向量和特征值变换得到的椭圆,表示数据在新的坐标系下的分布。 特征向量 :红色箭头表示特征…

【C语言】一维数组(详解)

目录 1. 数组的概念 2. 一维数组的创建和初始化 3. 一维数组的使用 4. 一维数组在内存中的存储 5. sizeof 计算数组元素个数 正文开始—— 1. 数组的概念 数组是一组相同类型元素的集合。 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。…

运算放大器(运放)同相放大器电路

设计目标 输入电压ViMin输入电压ViMax输出VoMin输出VoMax电源Vcc电源Vee-1V1V-10V10V15V–15V 设计说明 这种设计将输入信号 Vi 放大,信号增益为 10V/V。输入信号可能来自高阻抗源(例如 MΩ),因为该电路的输入阻抗由运算放大器…

vue3delete请求报403forbidden,前后端解决方式,cookie无效问题

在做开发时,前期已经在Controller类加上CrossOrigin(origins "*"),发送get和post请求都没问题,但遇到delete请求时,又报出跨域问题 一.前端添加proxy代理服务器(未能解决) 在vue.config.js中使…

PHP转Go系列 | 字符串的使用姿势

大家好&#xff0c;我是码农先森。 输出 在 PHP 语言中的输出比较简单&#xff0c;直接使用 echo 就可以。此外&#xff0c;在 PHP 中还有一个格式化输出函数 sprintf 可以用占位符替换字符串。 <?phpecho 码农先森; echo sprintf(码农:%s, 先森);在 Go 语言中调用它的输…