首页 > 其他分享 >【论文阅读】Self-Alignment with Instruction Backtranslation自对齐与指令反翻译

【论文阅读】Self-Alignment with Instruction Backtranslation自对齐与指令反翻译

时间:2023-08-19 17:11:12浏览次数:38  
标签:Backtranslation data Self Instruction 自我 指令 文本 数据 模型

 

Self-Alignment with Instruction Backtranslation自对齐与指令反翻译

摘要: 在当今的人工智能时代,语言模型的训练和优化已成为研究的热点。本文介绍了一种创新且可扩展的方法,通过为人编写的文本自动标注相应的指令,构建高质量的指令跟随语言模型。此研究的方法,被命名为“指令反翻译”,其核心思想是利用现有的大量未标记数据,通过一系列精心设计的步骤,自动生成高质量的训练数据。这种方法不仅降低了数据标注的成本,还提高了模型的性能。

1. 引言:

随着大型语言模型(LLMs)的迅速发展,如何高效地训练和优化这些模型已成为一项关键任务。传统方法常依赖于昂贵的人工标注数据,其成本高昂且难以扩展。为解决这一难题,此研究提出了一种新颖方法,旨在利用未标记的网络文本语料,自动生成高质量的训练数据。这种方法的目标是将网络文本中的内容与其潜在的指令相匹配,从而为模型提供更丰富的训练材料。

2. 方法:

此研究的方法基于一个简单但强大的发现:尽管网络文本中没有明确的指令标签,但其中许多内容实际上可以被视为对某些指令的回答。因此,此研究的目标是自动生成这些指令,并将其与相应的文本内容配对,形成新的训练数据。

  1. 自我提升:本阶段的目标在于为网络文本中的每一段生成一个指令。为此,此研究首先使用少量种子数据微调基础语言模型,然后利用微调后的模型为未标记文本生成指令。这一过程确保了生成的指令与原始文本内容紧密相关。

  2. 自我策划:由于自我提升步骤可能会生成低质量的指令,因此需要进一步筛选这些数据。在此步骤中,此研究使用语言模型自身评估每个生成的指令的质量,并仅保留高质量数据。这一过程确保了训练数据的准确性和相关性。

实例说明:


1. 初始情况:

"Our self-training approach assumes access to a base language model, a small amount of seed data, and a collection of unlabelled examples, e.g. a web corpus. The unlabelled data is a large, diverse set of human-written documents which includes writing about all manner of topics humans are interested in – but crucially is not paired with instructions." — [Pages: 2]

总结:此研究的自我训练方法需要一个基础语言模型、少量种子数据以及大量未标记的文本。这些未标记的文本是大规模、多样化的人类撰写文件,囊括了人类感兴趣的各种主题,但重要的是,这些文本并没有与指令进行配对。

示例: 此研究拥有一个基础语言模型、一些种子数据,例如:

  • 指令:“描述太阳的特点。”

  • 输出:“太阳是一

颗庞大的恒星,由氢和氦构成,它为地球提供光和热。”

此外,此研究还有大量未标记文本,如:“月球是地球唯一的天然卫星,它没有自己的大气层。”


2. 自我提升:

"Self-Augmentation (generating instructions): We finetune the base language model with (output, instruction) pairs {(yi , xi )} from the seed data to obtain a backward model Myx := p(x|y). For each unlabelled example yi , we run inference on the backward model to generate a candidate instruction x\u0302i from which we derive the candidate augmented paired data A := {(x\u0302i , yi )}." — [Pages: 3]

总结:通过使用种子数据微调基础语言模型,此研究获得了一个可为未标记文本生成指令的反向模型。这一过程称为自我提升。

示例: 此研究通过使用种子数据微调模型,然后使用该模型为“月球是地球唯一的天然卫星,它没有自己的大气层。”生成指令,可能获得:“描述月球的特点”。


3. 自我策划:

"Self-Curation (selecting high-quality examples): We select high quality examples using the language model itself. We start with a seed instruction model M0 finetuned on (instruction, output) seed examples only. We then use M0 to score each augmented example {(x\u0302i , yi )} to derive a quality score ai . This is done using prompting, instructing the trained model to rate the quality of a candidate pair on a 5-point scale." — [Pages: 3]

总结:此研究使用语言模型本身来选择高质量的示例。此研究首先基于仅含有种子指令的数据对初始指令模型M0进行微调。然后,此研究使用M0为每个增强样例{(x\u0302i , yi )}评分,得到质量分数ai。这通过提示方式完成,即训练模型对候选对的质量在5分制上进行评估。

示例: 此研究使用模型为“描述月球的特点”和“月球是地球唯一的天然卫星,它没有自己的大气层。”这一对进行评分。若得分为4.5(满分5分),则认定为高质量数据对。


4. 结果:

此部分基于自我提升和自我策划步骤生成的新数据,用于进一步微调模型。原文实验部分详细描述了该过程和结果,证明了此方法的有效性和优越性。

示例: 通过上述步骤,此研究获得了两个高品质的指令-输出对:

  1. 指令:“描述太阳的特点。” 输出:“太阳是一颗庞大的恒星,由氢和氦构成,它为地球提供光和热。”

  2. 指令:“描述月球的特点。” 输出:“月球是地球唯一的天然卫星,它没有自己的大气层。”


3. 实验:

3.1 实验设置:

"Our self-training approach assumes access to a base language model, a small amount of seed data, and a collection of unlabelled examples, e.g. a web corpus." — [Pages: 2]

总结:此研究的自我训练方法需要一个基础语言模型、少量种子数据和大量未标记的文本。此研究使用Open Assistant数据集作为种子数据,以预训练的LLaMA模型为基础模型。此外,此研究还使用Clueweb语料库作为未标记数据源,这是一个大规模的网络文本集合,为此研究提供了丰富的数据资源。


3.2 Baselines:

"Baselines. The main baselines we compare to are the following approaches:

  • text-davinci-003 [Ouyang et al., 2022]: an instruction following model based on GPT-3 finetuned with instruction data from human-written instructions, human-written outputs, model responses and human preferences using reinforcement learning (

RLHF).

  • LIMA [Zhou et al., 2023]: LLaMA models finetuned with 1000 manually selected instruction examples from a mixture of community question & answering (e.g. StackOverflow, WikiHow, etc.) and human expert-written instruction and responses.

  • Guanaco [Dettmers et al., 2023]: LLaMA models finetuned with 9000 examples from the OpenAssistant dataset." — [Pages: 4,5]

总结

  • text-davinci-003:这是基于GPT-3的指令追随模型,使用来自人类撰写的指令、输出、模型响应和人类偏好的指令数据进行微调,采用强化学习(RLHF)。

  • LIMA:这是LLaMA模型,使用来自社区问答(如StackOverflow、WikiHow等)和人类专家撰写的指令和响应的1000个手动选择指令示例进行微调。

  • Guanaco:这是LLaMA模型,使用OpenAssistant数据集的9000个示例进行微调。


3.3 评估:

"generation quality evaluation. We ran both automatic evaluation using AlpacaEval [Li et al., 2023], which computes the win rate against baseline models based on GPT-4 judgements, as well as human preference evaluation." — [Pages: 5]

总结:此研究采用了两种评估方法:自动评估,使用AlpacaEval工具,计算根据GPT-4判断对Baselines模型的胜率;以及人类偏好评估,邀请真实用户评估模型生成的答案质量。这两种评估方法确保了评估的全面性和准确性。


3.4 种子和增强数据统计:

"Data statistics. In Table 2 we provide the statistics of the seed data as well as various versions of the augmented data. We can see that augmented data tends to have longer output compared to the seed data, and self-curated higher quality training data (A4 and A5) has both shorter instructions and outputs among all augmented data, closer to the length of the original seed instruction data." — [Pages: 5]

总结:本部分列出了种子数据、自我提升数据和自我策划数据的具体统计信息,如数据量、指令和输出的平均长度等。从统计数据中可以看出,增强数据的输出往往比种子数据长,而经过自我策划的高质量训练数据(A4和A5)在所有增强数据中具有较短的指令和输出,更接近原始种子指令数据的长度。

示例

  • 种子数据:初始用于训练模型的数据。例如,此研究可能有一条指令:“描述太阳的特点”,以及相应的输出:“太阳是一颗庞大的恒星,由氢和氦构成,它为地球提供光和热。”

  • 自我提升数据:通过自我提升步骤生成的新数据。例如,此研究可能为文本:“月球是地球唯一的天然卫星,它没有自己的大气层。”生成新指令:“描述月球的特点”。

  • A4和A5:通过自我策划步骤筛选出的高品质数据,分别具有不同的质量级别,其中A5质量更高。


此外,原文还提供了表格(Table 2),列出了种子数据、自我提升数据和自我策划数据的具体统计信息,如数据数量、指令和输出的平均长度等。

4.未来方向

"Future work should scale this method further by considering larger unlabeled corpora, which our analysis suggests should yield further gains."

— [Pages: 13]

总结:未来的研究应该考虑使用更大规模的未标记语料库,进一步扩展和优化这一方法。此研究的分析表明,这将带来更大的收益。这意味着,随着数据规模的增加,模型的性能可能会进一步提高,为未来的语言模型研究提供了新的方向和机会。


总体而言,本文提出了一种新颖且有效的方法,用于生成高质量的训练数据,从而提升语言模型性能。此研究相信,这一方法为未来的语言模型训练提供了有价值的方向。

标签:Backtranslation,data,Self,Instruction,自我,指令,文本,数据,模型
From: https://www.cnblogs.com/zekaiblogs/p/17642719.html

相关文章

  • python类型标注self
    起因假设有如下代码,我想标注类方法的返回值为自己本身classQueue:def__init__(self):self.items=[]defenqueue(self,item)->Queue:self.items.append(item)returnself用Queue来标注返回值类型,但是呢,运行时Python会报错Traceb......
  • python中 函数中的self是什么?
      self可视为类的实例,在使用类创建实例时,我们可能需要强制传入一些参数。所以一般在构造函数_init_里给实例的属性赋值。classStudent(obiect):def__init__(self,name,score):self.name=nameself.score=scoredefprint_score(self):......
  • 理解面向对象 谁调用基类 谁self.data里就被yaml中类 赋值
    classBaseAPI:#基类相当于动物类;登录属于继承类,相当于老虎类#属性def__init__(self,token=None):#店铺类,订单类,支付模块等都需要使用token所以过滤一下iftoken:#如果接口需要token店铺类,订单类,支付模块等都需要使用token......
  • An essay to tease myself
    Sometimesbadluckcomestome,whenIamsleepingandwannaturnover,myheadbumpthewall.Comingacrossthestreetwithashabbyhat,takingashipwithbeer.ButIneveryieldtothepeoplewhoteaseme,andIamalwayswillingtobeasmallcarofmychi......
  • 335. Self Crossing (Hard)
    Description335.SelfCrossing(Hard)Youaregivenanarrayofintegersdistance.Youstartatthepoint(0,0)onanX-Yplane,andyoumovedistance[0]meterstothenorth,thendistance[1]meterstothewest,distance[2]meterstothesouth,distance[......
  • composer:升级自身版本 self-update(2.5.x)
    一,查看升级前的版本:liuhongdi@lhdpc:/data/php/tpapibase$composer--versionComposerversion2.5.12022-12-2215:33:54二,升级,注意先sudo到rootliuhongdi@lhdpc:/data/php/tpapibase$sudo-i[sudo]liuhongdi的密码:root@lhdpc:~#composerself-updateUpgrading......
  • 自动化测试 | python | self说明
    1.从函数的语法上讲,self是形参,就可以是任意的变量名,只不过我们习惯性将这个形参写作self。 2.self是普通的形参,但是在调⽤的时候没有传递实参值,原因是,Python解释器在执⾏代码的时候,⾃动的将调⽤这个⽅法的对象传递给了self,即self的本质是对象。 3.......
  • 模型类中建立外键的常用方法 db_constraint=False,self.user.id
    1.user=models.ForeignKey(to=User,related_name='order_user',on_delete=models.DO_NOTHING,db_constraint=False,verbose_name="下单用户") to=Order:这是ForeignKey的一个参数,用于指定这个外键字段将关联到的目标模型。在这个例子中,外键字段将关联到名为Order的模......
  • python的传参 self
    Python的传参self在Python中,我们经常会看到类的方法定义中的第一个参数是self。但是,对于初学者来说,这个self是一个比较迷惑的概念。本文将详细介绍Python中的self参数,并通过一些代码示例来加深理解。什么是selfself是一个约定俗成的命名,它表示对象自身。它是类的实例方法的第一......
  • self-attention
    Selfattention考虑了整个sequence的资讯【transfermer中重要的架构是self-attention】 解决sequence2sequence的问题,考虑前后文 Isawasaw第一个saw对应输出动词 第二个输出名词 如何计算相关性【attentionscore】输入的两个向量乘两个矩阵Q=query   k=key......