SambaLingo——教会大模型新语言

在当今数字化时代,语言不仅是沟通的桥梁,也是信息和知识传递的核心。尽管大模型(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.mzph.cn/web/30276.shtml

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

相关文章

【云原生|K8S系列】如何创建Kubernetes job和Cronjobs 入门指南

本kubernetes教程解释了如何创建kubernetes作业和cronjobs,以及它的基础知识、用例和一些提示和技巧。 什么是Kubernetes Job? Kubernetes job和cronjob是Kubernetes对象,主要用于短期和批处理工作负载。 kubernetes作业对象基本上部署了一个pod&…

Instagram Reels API接口——高效获取用户主页Reels视频

一、引言 Instagram作为全球知名的社交媒体平台,近年来推出的Reels功能受到了广大用户的热烈欢迎。Reels以短视频的形式,让用户能够轻松创作和分享有趣、有创意的内容。为了帮助开发者、品牌和分析师更好地利用这一功能,我们推出了一款专注于…

四十九、openlayers官网示例Immediate Rendering (Geographic)——在地图上绘制星空动画效果

官网demo地址&#xff1a; Immediate Rendering (Geographic) 首先先创建1000个随机点&#xff0c;创建点对象。 const n 1000;const geometries new Array(n);for (let i 0; i < n; i) {const lon 360 * Math.random() - 180;const lat 180 * Math.random() - 90;ge…

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

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

【C++ | 移动构造函数】C++11的 移动构造函数 详解及例子代码

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-12 2…

和鲸101计划:Python 气象海洋数据分析 Workshop 回顾

导语&#xff1a;一个科学家最大的价值不是个人取得了多少成绩&#xff0c;而是他培养了多少科学家&#xff0c;他的学生又培养出多少科学家。如果科学精神能从我们这里一代代传承&#xff0c;并且不断推动社会进步&#xff0c;这就是我们此生最大的价值。 ——源自《中国气象…

Artix Linux 默认不使用 systemd

开发者选择不使用systemd&#xff0c;而倾向于使用OpenRC或runit作为其初始化系统的原因。 哲学和设计原则&#xff1a;Systemd是一个功能丰富的初始化系统和系统管理器&#xff0c;它集成了许多功能&#xff0c;但这也导致它的设计哲学与一些用户或开发者的偏好不符。有些用户…

Day28:回溯法 491.递增子序列 46.全排列 47.全排列 II 332.重新安排行程 51. N皇后 37. 解数独 蓝桥杯 与或异或

491. 非递减子序列 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也可以视作递增序列的一种特殊情…

双指针问题2

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

逻辑蕴含、函数依赖集的闭包、Armstrong公理、属性集闭包

一、引言 Armstrong公理-从给定的函数依赖集得到关系模式的完整依赖集 二、逻辑蕴含 1、定义 设F是关系模式R上的函数依赖集&#xff0c;X、Y是R的属性子集&#xff0c;对于R的每个满足F的关系实例r&#xff0c;若函数 依赖都成立&#xff0c;则称F逻辑蕴含。 记为&#…

Mamaba3--RNN、状态方程、勒让德多项式

Mamaba3–RNN、状态方程、勒让德多项式 一、简单回顾 在Mamba1和Mamba2中分别介绍了RNN和状态方程。 下面从两个图和两个公式出发&#xff0c;对RNN和状态方程做简单的回顾&#xff1a; R N N : s t W s t − 1 U x t &#xff1b; O t V s t RNN: s_t Ws_{t-1}Ux_t&…

shadertoy-安装和使用

一、安装vscode 安装vscode流程 二、安装插件 1.安装glsl编辑插件 2.安装shader toy插件 三、创建glsl文件 test.glsl文件 float Grid(float size, vec2 fragCoord) {vec2 r fragCoord / size;vec2 grid abs(fract(r - 0.5) - 0.5) / fwidth(r);float line min(grid…

Linux内核开发-编译内核源码

前言 大部分公司的所谓的Linux内核工程师主要工作是基于社区开源内核进行定制化修改&#xff0c;基本不会有机会向上游提供patch&#xff0c;仅限于公司内部业务的修修补补。 作为内核开发工程师两年多&#xff0c;精力一直被公司业务消耗&#xff0c;所有的内核知识都来自于…

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

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

数据结构与算法2---链表

线性表&#xff1a;1.有限的序列⒉.序列中的每一个元素都有唯一的前驱和后继&#xff0c;除了开头和结尾两个节点 顺序表&#xff1a;分配一块连续的内存去存放这些元素&#xff0c;例如编程语言中的数组 链表:内存是不连续的&#xff0c;元素会各自被分配一块内存&#xff0…

【深度学习驱动流体力学】计算流体力学openfoam-paraview与python3交互

目的1:配置 ParaView 中的 Python Shell 和 Python 交互环境 ParaView 提供了强大的 Python 接口,允许用户通过 Python 脚本来控制和操作其可视化功能。在 ParaView 中,可以通过 View > Python Shell 菜单打开 Python Shell 窗口,用于执行 Python 代码。要确保正确配置 …

golang字符串拼接和strings.Builder

字符串拼接方法 在 Go 语言中&#xff0c;字符串是可以直接相加的。这意味着你可以使用 运算符来连接&#xff08;拼接&#xff09;两个或多个字符串&#xff1a; package mainimport "fmt"func main() {str1 : "Hello, "str2 : "World!"resu…

比较日志性能:Glog、Spdlog 和 ofstream 在不同硬件上的表现(推荐Spdlog)

文章目录 比较日志性能&#xff1a;Glog、Spdlog 和 ofstream 在不同硬件上的表现1. 引言2. 测试简介3. 硬件配置桌面电脑&#xff08;Ubuntu 18.04&#xff09;树莓派 5&#xff08;Ubuntu 24.04&#xff09; 4. 测试结果桌面电脑&#xff08;Ubuntu 18.04&#xff09;树莓派 …

[Linux] vi编辑器

命令模式&文本模式 命令模式就输入命令然后执行&#xff0c;文本模式就是系统把你的输入都当成写进文件里的字符 切换模式&#xff1a; 刚进入默认是命令模式&#xff0c;按: i I a A o O 进入文本模式&#xff0c; 通过他们进入文本模式有什么不同&#xff1f; 然后按esc进…

python 版本切换,更换当前默认版本

电脑可以安装多个版本&#xff0c;但是好像没有正规的维护python版本的工具&#xff0c;比如前端就有nvm切换node版本&#xff0c;但是python我没找到比较好的&#xff08;有大佬知道路过方便留言一下&#xff0c;跪谢。。&#xff09; 废话不多说&#xff0c;更改默认版本很简…