• [论文笔记]SELF-INSTRUCT


    引言

    今天带来论文SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions的笔记。

    大型指令微调的语言模型(被微调以响应指令)展示了在新任务上零样本泛化的显著能力。然而,它们严重依赖于人工编写的指令数据,这种数据在数量、多样性和创造性方面通常有限,因此限制了调优模型的泛化能力。

    作者提出了SELF-INSTRUCT,这是一个通过利用预训练语言模型自我生成来改进模型遵循指令能力的框架。流程首先从语言模型中生成指令、输入和输出样本,然后在使用它们微调原始模型之前过滤无效或相似的样本。

    1 介绍

    image-20240522164328558

    最近的自然语言处理研究中,构建能够遵循自然语言指令的模型的活动非常活跃)。这些发展受到两个关键组成部分的推动:大型预训练语言模型(LM)和人工编写的指令数据。然而,收集此类指令数据成本高昂,并且往往在多样性方面存在限制,因为大多数人类生成的任务往往是流行的NLP任务,无法涵盖真正多样的任务和描述它们的不同方式。为了持续改进指令调整模型的质量和覆盖范围,需要开发替代性方法来监督指令调整过程。

    image-20240522164411385

    图2:SELF-INSTRUCT的高层概述。该过程开始于作为任务池的一小组种子任务。从任务池中随机抽取任务,用于提示现成的语言模型生成新的指令和相应实例,然后过滤质量低或相似的生成结果,最后将其添加回初始任务库。生成的数据可稍后用于语言模型自身指令调优,以便更好地遵循指令。图中显示的任务是由GPT-3生成的。

    在这项工作中,作者引入了SELF-INSTRUCT,一种使用模型自身的指令信号进行指令调整的半自动化过程。整个过程是一个迭代的引导算法(图2),它从一组有限的手动编写的任务(例如,作者的工作中为175个)开始,用于指导整体生成过程。在第一阶段,模型被提示为新任务生成指令。该步骤利用现有的指令集创建更广泛覆盖的指令,定义(通常是新的)任务。给定新生成的指令集,该框架还为它们创建输入-输出实例,以便后续用于监督指令调整。最后,使用各种启发式方法自动过滤低质量或重复的指令,然后将其余的有效任务添加到任务池中。这个过程可以重复多次,直到得到大量任务。

    为了在实证上评估SELF-INSTRUCT,在GPT3上运行了这个框架。在该模型上进行的迭代SELF-INSTRUCT过程生成了约52000个指令,配对约82000个实例的输入和目标输出。所得到的数据提供了各种创造性任务,正如图1中的示例所示。这些生成的任务与典型NLP任务的分布有所不同,并且与种子任务有相当小的重叠。

    本文的贡献是:

    1. 介绍了SELF-INSTRUCT,一种使用最少人工标注数据诱导指令遵循能力的方法;
    2. 通过广泛的指令调整实验展示了其有效性;
    3. 发布了一个包含52000个指令和一组手动编写的新任务的大规模合成数据集,用于构建和评估未来的指令遵循模型。

    2 方法

    本节介绍了SELF-INSTRUCT的过程,该过程指的是使用原始预训练语言模型自身生成任务的流程,过滤生成的数据,然后使用这些生成的数据进行指令调整,以使LM更好地遵循指令。该流程如图2所示。

    2.1 定义指令数据

    我们要生成的指令数据包含一组指令 { I t } \{I_t\} {It},每个指令都以自然语言定义了一个任务 t t t。任务 t t t具有 n t ≥ 1 n_t ≥ 1 nt1个输入-输出实例 { ( X t , i , Y t , i ) } i = 1 n t \{(X_{t,i}, Y_{t,i})\}^{n_t}_{i=1} {(Xt,i,Yt,i)}i=1nt。模型 M M M被期望在给定任务指令和相应的输入时产生输出: M ( I t , X t , i ) = Y t , i M(I_t, X_{t,i}) = Y_{t,i} M(It,Xt,i)=Yt,i,对于 i ∈ { 1 , … , n t } i \in \{1,…, n_t\} i{1,,nt}。指令和实例输入在许多情况下没有严格的边界。例如,“写一篇关于学校安全的文章”可以是我们期望模型直接回应的有效指令,同时也可以表述为“按照以下主题写一篇文章”作为指令,以及“学校安全”作为实例输入。为了鼓励数据格式的多样性,我们允许这种不需要额外输入(即 X X X​为空)的指令。

    2.2 自动指令数据生成

    数据生成流程包括四个步骤:1) 生成任务指令,2) 确定指令是否代表分类任务,3) 使用先输入(input-first)或先输出(output-first)方法生成实例,4) 过滤低质量的数据。

    指令生成 在第一步中,SELF-INSTRUCT以自助方式从一小组种子人工编写的指令中生成新的指令。作者使用175个任务(每个任务一个指令和一个实例)初始化任务池。每一步,从该池中随机选择8个任务指令作为上下文示例。8个指令中,有6个来自人工编写的任务,另外2个来自先前步骤中的模型生成的任务,以促进多样性。提示模板如下:

    Come up with a series of tasks:
    Task 1: {instruction for existing task 1}
    Task 2: {instruction for existing task 2}
    Task 3: {instruction for existing task 3}
    Task 4: {instruction for existing task 4}
    Task 5: {instruction for existing task 5}
    Task 6: {instruction for existing task 6}
    Task 7: {instruction for existing task 7}
    Task 8: {instruction for existing task 8}
    Task 9:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    分类任务识别 由于我们需要针对分类和非分类任务采用两种不同的方法,下一步我们需要确定生成的指令是否代表分类任务。我们在几个示例方式下提示LM进行判别,使用种子任务中的12个分类指令和19个非分类指令。提示模板下:

    lassification? No
    Task: Fact checking - tell me if the statement is true, false, or unknown, based on your
    knowledge and common sense.
    Is it classification? Yes
    Task: Return the SSN number for the person.
    Is it classification? No
    Task: Detect if the Reddit thread contains hate speech.
    Is it classification? Yes
    Task: Analyze the sentences below to identify biases.
    Is it classification? No
    Task: Select the longest sentence in terms of the number of words in the paragraph, output
    the sentence index.
    Is it classification? Yes
    Task: Find out the toxic word or phrase in the sentence.
    Is it classification? No
    Task: Rank these countries by their population.
    Is it classification? No
    Task: You are provided with a news article, and you need to identify all the categories that
    this article belongs to. Possible categories include: Music, Sports, Politics, Tech, Finance,
    Basketball, Soccer, Tennis, Entertainment, Digital Game, World News. Output its categories one
    by one, seperated by comma.
    Is it classification? Yes
    Task: Given the name of an exercise, explain how to do it.
    Is it classification? No
    Task: Select the oldest person from the list.
    Is it classification? Yes
    Task: Find the four smallest perfect numbers.
    Is it classification? No
    Task: Does the information in the document supports the claim? You can answer "Support" or
    "Unsupport".
    Is it classification? Yes
    Task: Create a detailed budget for the given hypothetical trip.
    Is it classification? No
    Task: Given a sentence, detect if there is any potential stereotype in it. If so, you should
    explain the stereotype. Else, output no.
    Is it classification? No
    ⋯
    Task: To make the pairs have the same analogy, write the fourth word.
    Is it classification? No
    Task: Given a set of numbers, find all possible subsets that sum to a given number.
    Is it classification? No
    Task: {instruction for the target task}
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    实例生成 根据指令及其任务类型,单独为每个指令生成实例。这是具有挑战性的,因为它要求模型理解目标任务是什么,根据指令确定需要哪些额外的输入字段并生成它们,并最终通过生成输出完成任务。预训练语言模型在从其他任务的指令-输入-输出上下文示例中提示时,在很大程度上可以实现这一点。一个自然的方法是使用“先输入”方法,即我们可以要求LM首先根据指令提供输入字段,然后生成相应的输出。这种生成顺序类似于模型用于响应指令和输入的方式,但是这里使用了其他任务的上下文示例。提示模板下所示:

    Come up with examples for the following tasks. Try to generate multiple examples when possible.
    If the task doesn’t require additional input, you can generate the output directly.
    Task: Which exercises are best for reducing belly fat at home?
    Output:
    - Lying Leg Raises
    - Leg In And Out
    - Plank
    - Side Plank
    - Sit-ups
    Task: Extract all the country names in the paragraph, list them separated by commas.
    Example 1
    Paragraph: Dr. No is the sixth novel by the English author Ian Fleming to feature his British
    Secret Service agent James Bond. Written at Fleming’s Goldeneye estate in Jamaica, it was
    first published in the United Kingdom by Jonathan Cape in 1958. In the novel Bond looks into
    the disappearance in Jamaica of two fellow MI6 operatives who had been investigating Doctor
    No. Bond travels to No’s Caribbean island and meets Honeychile Rider, who is there to collect
    shells. They are captured and taken to a luxurious facility carved into a mountain. The
    character of Doctor No, the son of a German missionary and a Chinese woman, was influenced by
    Sax Rohmer’s Fu Manchu stories. Dr. No was the first of Fleming’s novels to face widespread
    negative reviews in Britain, but it was received more favourably in the United States.
    Output: English, British, Jamaica, the United Kingdom, German, Chinese, Britain, the United
    States.
    Task: Converting 85 F to Celsius.
    Output: 85°F = 29.44°C
    Task: Sort the given list ascendingly.
    Example 1
    List: [10, 92, 2, 5, -4, 92, 5, 101]
    Output: [-4, 2, 5, 5, 10, 92, 92, 101]
    Example 2
    Input 2 - List: [9.99, 10, -5, -1000, 5e6, 999]
    Output: [-1000, -5, 9.99, 10, 999, 5e6]
    Task: Suggest a better and more professional rephrasing of the following sentence.
    Example 1
    Sentence: This house is surprisingly not constructed very well, and you probably need more
    money to fix it after you buy it. If you ask me, I would suggest you to consider other
    candidates.
    Output: This house does not seem to be constructed well, so you may need to spend more money
    to fix it after you purchase it. I would suggest that you look at other properties.
    Example 2
    Sentence: Just so you know, we did an experiment last week and found really surprising results
    - language model can improve itself!
    Output: Our experiments last week demonstrated surprising results, proving that the language
    model can improve itself.
    ⋯
    Task: Turn down a job offer by sending an email to a recruiter explaining the reason.
    Output: Hi [Recruiter],
    Thank you so much for the generous offer to join your team. As we discussed, I’ve admired the
    company for a number of years, and am a proud endorser of its products. However, after further
    consideration of where I currently am in my career, I’ve decided to accept an offer at another
    company.
    I would love to stay in touch with you and have already started following you on [Social Media
    Platform]. Again, thank you so much for your time and consideration.
    Thanks again,
    [Your Name]
    Task: {Instruction for the target task}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    然而,这种方法可能会生成对某个标签有偏向性的输入,特别是对于分类任务(例如,对于语法错误检测,它通常会生成语法正确的输入)。因此,作者提出了一种“先输出”方法,用于分类任务,首先生成可能的类别标签,然后在每个类别标签上进行输入生成。提示模板如下所示:

    Given the classification task definition and the class labels, generate an input that
    corresponds to each of the class labels. If the task doesn’t require input, just generate the correct class label.
    Task: Classify the sentiment of the sentence into positive, negative, or mixed.
    Class label: mixed
    Sentence: I enjoy the flavor of the restaurant but their service is too slow.
    Class label: Positive
    Sentence: I had a great day today. The weather was beautiful and I spent time with friends.
    Class label: Negative
    Sentence: I was really disappointed by the latest superhero movie. I would not recommend it.
    Task: Given a dialogue, classify whether the user is satisfied with the service. You should
    respond with "Satisfied" or "Unsatisfied".
    Class label: Satisfied
    Dialogue:
    - Agent: Thank you for your feedback. We will work to improve our service in the future.
    - Customer: I am happy with the service you provided. Thank you for your help.
    Class label: Unsatisfied
    Dialogue:
    - Agent: Sorry that we will cancel your order. You will get a refund within 7 business days.
    - Customer: oh that takes too long. I want you to take quicker action on this.
    Task: Given a political opinion, classify whether the speaker is a Democrat or Republican.
    Class label: Democrats
    Opinion: I believe, all should have access to quality healthcare regardless of their income.
    Class label: Republicans
    Opinion: I believe that people should be able to keep more of their hard-earned money and
    should not be taxed at high rates.
    Task: Tell me if the following email is a promotion email or not.
    Class label: Promotion
    Email: Check out our amazing new sale! We’ve got discounts on all of your favorite products.
    Class label: Not Promotion
    Email: We hope you are doing well. Let us know if you need any help.
    Task: Detect if the Reddit thread contains hate speech.
    Class label: Hate Speech
    Thread: All people of color are stupid and should not be allowed to vote.
    Class label: Not Hate Speech
    Thread: The best way to cook a steak on the grill.
    Task: Does the document supports the claim? Answer with "Support" or "Unsupport".
    Class label: Unsupport
    Document: After a record-breaking run that saw mortgage rates plunge to all-time lows and
    home prices soar to new highs, the U.S. housing market finally is slowing. While demand and
    price gains are cooling, any correction is likely to be a modest one, housing economists and
    analysts say. No one expects price drops on the scale of the declines experienced during the
    Great Recession.
    Claim: The US housing market is going to crash soon.
    Class label: Support
    Document: The U.S. housing market is showing signs of strain, with home sales and prices
    slowing in many areas. Mortgage rates have risen sharply in recent months, and the number
    of homes for sale is increasing. This could be the beginning of a larger downturn, with some
    economists predicting a potential housing crash in the near future.
    Claim: The US housing market is going to crash soon.
    ⋯
    Task: Which of the following is not an input type? (a) number (b) date (c) phone number (d)
    email address (e) all of these are valid inputs.
    Class label: (e)
    Task: {instruction for the target task}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    将“先输出”方法应用于前一步骤中确定的分类任务,将“先输入”方法应用于其余的非分类任务。

    过滤和后处理 为了鼓励多样性,只有当新指令与任何现有指令的ROUGE-L相似度小于0.7时,才将新指令添加到任务池中。还排除包含一些特定关键字的指令(例如image、picture、graph),这些关键字通常无法由LM处理。在为每个指令生成新实例时,过滤掉完全相同的实例或具有相同输入但输出不同的实例。根据启发式方法(例如,指令过长或过短,实例输出重复等),识别并过滤掉无效的生成。

    2.3 微调LM遵循指令

    在创建大规模的指令数据之后,使用它来微调原始LM(SELF-INSTRUCT)。为此,将指令和实例输入连接在一起作为提示,以标准的有监督方式训练模型生成实例输出。为了使模型适应不同的格式,使用多个模板将指令和实例输入编码在一起。例如,指令可以带有前缀Task:或不带,输入可以带有前缀Input:或不带,提示的末尾可以附加Output:,中间可以放置不同数量的换行符等。

    3 来自GPT3的SELF-INSTRUCT数据

    以GPT3为案例,应用了SELF-INSTRUCT方法。使用了最大的GPT3语言模型,通过OpenAI API进行访问。

    3.1 统计信息

    image-20240523090536073

    表1描述了生成数据的基本统计信息。在过滤后,总共生成了超过52000个指令和82000多个与这些指令相对应的实例。

    3.2 多样性

    image-20240523090726488

    为了研究生成了哪些类型的指令以及它们的多样性,识别了生成指令中的动词-名词结构。使用伯克利神经解析器对指令进行解析,并提取最接近根的动词以及它的第一个直接名词宾语。52445个指令中,有26559个包含这样的结构;其他指令通常包含更复杂的从句(例如,“判断这个推文是否包含政治内容。”)或者以问题形式表述(例如,“以下哪些陈述是真实的?”)。图3展示最常见的前20个根动词及其前4个直接名词宾语,它们占整个数据集的14%。

    image-20240523090814552

    进一步研究了生成的指令与用于提示生成的种子指令之间的差异。对于每个生成的指令,计算其与175个种子指令的最高ROUGE-L重叠。在图4中绘制了这些ROUGE-L分数的分布。结果表明,生成了相当数量的新指令,它们与种子指令之间没有太多的重叠。在图5中,还展示了指令、实例输入和实例输出的长度多样性。

    image-20240523090834596

    3.3 质量

    在这里插入图片描述

    为了调查指令,随机抽取了200个指令,并随机选择每个指令一个实例。请一位专家标注员根据指令、实例输入和实例输出来判断每个实例是否正确。表2中的评估结果显示,大多数生成的指令是有意义的,而生成的实例可能包含更多的噪声(在合理范围内)。然而,尽管生成可能包含错误,但其中大多数仍然是正确格式或部分正确的,这对于训练模型遵循指令可以提供有用的指导。

    4 实验结果

    4.5 数据规模和质量的影响

    数据规模 SELF-INSTRUCT提供了一种以较低成本、几乎不需要人工标注的方式来扩充指令数据;更多这样生成的数据是否会导致更好的遵循指令能力?对生成数据的规模进行了分析,通过从生成的数据集中对不同数量的指令进行子采样,对采样的子集进行GPT3的微调,并评估得到的模型在252个面向用户的指令集上的性能。

    image-20240523091133150

    图7展示了使用不同规模生成数据进行微调的GPT3 SELF-INST模型的性能。总体而言,随着数据规模的增长,性能持续改进。然而,在16000个指令之后,这种改进几乎趋于平稳。当在SUPERNI上进行评估时,模型的性能提升在数百个指令左右就趋于平稳。这可能是因为新生成的数据与SUPERNI中的典型NLP任务不同,这表明未来的研究可能会受益于使用不同类型指令数据的组合,以便在各种类型的任务上获得更好的性能。

    数据质量 改善模型性能的另一个方向是利用我们生成的数据获得更好的监督(减少噪声)。我们通过使用InstructGPT003重新生成所有实例的输出字段,给定指令和输入,来探索这个想法。然后,使用这个改进版本的数据对GPT3进行微调。这可以被看作是对我们的数据进行蒸馏的过程,使用了InstructGPT003对数据的蒸馏。如图7所示,使用改进的数据进行微调得到的模型性能比使用原始数据训练得到的模型性能提高了10%,这表明在使用我们的生成流程获取初始数据后,通过人工专家或更好模型的蒸馏来改善数据质量的未来工作具有巨大的潜力。

    5 相关工作

    指令遵循语言模型(Instruction-following LMs) 一系列研究发现,使用经过注释的“指令性”数据对基本语言模型进行调参后,它们在遵循一般语言指令方面是有效的。此外,它们还显示了“指令性”数据的规模和多样性与由此产生的模型对未见过任务的泛化能力之间的直接相关性。然而,由于这些发展主要集中在现有的NLP任务上并依赖于人工注释的指令,这对于朝着更具泛化能力的模型的进展构成了瓶颈。作者的工作旨在超越传统的NLP任务,通过使用预训练语言模型来解决创造多样化指令数据的挑战。InstructGPT与作者的目标相似,致力于构建更通用的语言模型,并在遵循多样化用户指令方面展现出了出色的性能。然而,作为商业系统,他们的构建过程仍然相当不透明。特别是由于限制了透明度和他们在研究中使用的私有用户数据,数据的作用仍然没有得到深入研究。解决这些挑战需要创建一个大规模的公共数据集,涵盖广泛的任务范围。

    语言模型用于数据生成和增强 一系列研究提出使用语言模型进行数据生成或增强。本篇工作与这一领域不同之处在于,它不特定于特定的任务。相反,SELF-INSTRUCT的一个独特动机是通过预训练语言模型从零开始创建新的任务定义,这些任务可能之前还没有被NLP从业者定义过。

    指令生成(Instruction generation) 最近的一系列研究在给出一些示例的情况下生成任务的指令。尽管SELF-INSTRUCT也涉及指令生成,但我们的情况下一个主要的不同之处是它是与任务无关的;我们从零开始生成新的任务(指令以及实例)。

    模型自我训练(Model self-training) 典型的自我训练框架使用已经训练好的模型对无标签数据进行标记,然后利用新标记的数据来改善模型。在类似的思路中,Zhou等人使用多个提示来指定一个单一的任务,并提出通过提示一致性进行正则化,鼓励对提示的一致预测。这既可以通过额外的无标签训练数据微调模型,也可以直接应用于推理阶段。虽然SELF-INSTRUCT与自我训练文献具有相似之处,但大多数自我训练方法假设特定的目标任务以及在其下的无标签示例;相反,SELF-INSTRUCT从零开始生成各种各样的任务。

    知识蒸馏(Knowledge distillation) 知识蒸馏通常涉及将更大的模型的知识转移到较小的模型中。SELF-INSTRUCT也可以看作是一种“知识蒸馏”的形式,但它与此类方法的不同之处在于:(1)蒸馏的源和目标是相同的,即模型的知识对自身进行蒸馏;(2)蒸馏的内容以指令任务的形式呈现(即定义任务的指令和一组实例)。

    有限资源下的引导(Bootstrapping) 最近的一系列研究使用语言模型通过专门的方法引导一些推断。NPPrompt提供了一种在没有任何微调的情况下生成语义标签预测的方法。它使用模型自身的嵌入来自动找到与数据样本标签相关的单词,从而减少了从模型预测到标签(verbalizers)的人工映射的依赖。STAR利用少量合理性示例和没有合理性的大规模数据集,迭代地提升模型执行推理的能力。Self-Correction将一个不完美的基础生成器与一个单独的纠正器分离开来,后者学会迭代地纠正不完美的生成结果,并展示了对基础生成器的改进。本篇工作则专注于在指令范式中引导新的任务。

    多模态指令遵循(Multi-modal instruction-following) 指令遵循模型在多模态学习文献中也备受关注。SELF-INSTRUCT作为扩展数据的一般方法,也有望在这些设置中提供帮助。

    6 结论

    SELF-INSTRUCT是一种通过生成指令数据来提高语言模型遵循指令能力的方法。使用原始GPT3进行实验,自动构建了一个包含52K个指令的大规模数据集,并在此数据上微调GPT3。通过SELF-INSTRUCT微调GPT3在性能上大大超过使用现有公共指令数据集。

    7 更广泛的影响

    除了本文的直接关注点之外,相信SELF-INSTRUCT可能有助于更透明地了解像InstructGPT或ChatGPT这样被广泛使用的指令调优模型“幕后”的情况。不幸的是,这些工业模型由于其数据集未发布,所以仍然处于API的封闭状态,因此很难理解它们的构建过程以及为什么它们展现出令人印象深刻的能力。本文中的研究结果表明了多样化的指令数据的重要性,而大规模合成数据集可以是构建更好的指令遵循模型所需的更高质量数据的第一步。

    8 限制

    尾部现象 SELF-INSTRUCT依赖于语言模型,它将继承所有与语言模型相关的局限性。正如最近的研究所显示的,尾部现象对语言模型的成功构成了严峻的挑战。换句话说,语言模型的最大收益对应于语言的频繁使用(语言使用分布的头部),在低频上下文中可能几乎没有收益。类似地,在本研究的背景下,如果SELF-INSTRUCT的大部分收益偏向于在预训练语料库中更频繁出现的任务或指令,那将不足为奇。因此,该方法可能在处理不常见和创造性指令时表现脆弱。

    对大模型的依赖性 由于SELF-INSTRUCT依赖于从语言模型中提取的归纳偏差,它可能对更大模型效果最佳。如果属实,这可能会对那些可能没有大型计算资源的人造成访问障碍。值得注意的是,使用人工注释进行指令调优也受到类似局限性的影响:指令调优的收益对于较大模型而言更高。

    强化语言模型偏见 作者关注的一个问题是这种迭代算法的意外后果,例如问题性社会偏见(关于性别、种族等的刻板印象或侮辱性词汇)的放大。与此相关的是,在这个过程中观察到的一个挑战是算法在生成平衡标签方面的困难,这反映了模型的先验偏见。

    A 实现细节

    A.1 编写种子任务

    作者的方法依赖于一组种子任务来引导生成过程。种子任务对于鼓励任务的多样性和展示解决不同任务的正确方式都非常重要。例如,通过编码任务来提示模型,它更有可能生成与编码相关的任务;同时,通过编码输出来指导模型为新任务编写代码也更好。因此,种子任务的多样性越大,生成的任务的多样性和质量就越高。

    在启动这个项目时编写了种子任务,并针对LLMs的多样化和有趣的用途进行了定制。这些任务由作者编写,没有明确参考现有数据集或特定的测试任务。进一步将这些任务分为分类任务和非分类任务,基于任务是否具有有限的输出标签空间。总共有25个分类任务和150个非分类任务。

    A.2 查询GPT3 API

    在使用GPT3 API查询不同目的时,使用不同的超参数。这些超参数被发现能够很好地适用于GPT3模型以及其他经过指令调优的GPT3变种。在表4中列出了它们。我们生成整个数据集的成本约为600刀。

    image-20240523092449085

    A.3 GPT3的微调

    GPT3SELF-INST和一些基线模型是基于GPT3模型进行微调的。通过OpenAI的微调API进行微调。只将prompt_loss_weight设置为0,这样效果更好,并且每个微调实验训练两个epoch以避免过拟合训练任务。

    A.4 数据生成的提示模板

    SELF-INSTRUCT依赖于一系列提示模板,以引导语言模型的生成过程。在这里,提供四个模板,用于生成指令(表5),分类是否表示分类任务的指令(表6),使用输入优先方法生成非分类实例(表7),以及使用输出优先方法生成分类实例(表8)。

    这里对表中的内容进行了翻译,原始内容可查阅原论文。

    提出一系列任务:
    任务1:{现有任务1的指令}
    任务2:{现有任务2的指令}
    任务3:{现有任务3的指令}
    任务4:{现有任务4的指令}
    任务5:{现有任务5的指令}
    任务6:{现有任务6的指令}
    任务7:{现有任务7的指令}
    任务8:{现有任务8的指令}
    任务9:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    表5:用于生成新指令的提示。从任务池中随机抽取8个现有指令进行上下文演示。模型被允许为新任务生成指令,直到停止生成、达到长度限制或生成Task 16标记为止。

    以下任务能被视为具有有限输出标签的分类任务吗?
    
    任务:根据我的个性和工作,告诉我是否适合。
    是否为分类任务?是
    
    任务:举一个你必须运用幽默感的例子。
    是否为分类任务?否
    
    任务:用适当的命名实体替换给定文本中的占位符。
    是否为分类任务?否
    
    任务:事实核查-根据你的知识和常识,告诉我陈述是真实的、错误的还是未知的。
    是否为分类任务?是
    
    任务:返回该人的社保号码。
    是否为分类任务?否
    
    任务:检测Reddit帖子中是否包含仇恨言论。
    是否为分类任务?是
    
    任务:分析以下句子以识别偏见。
    是否为分类任务?否
    
    任务:选择段落中单词数量最多的句子,输出该句子的索引。
    是否为分类任务?是
    
    任务:找出句子中的有害词或短语。
    是否为分类任务?否
    
    任务:按人口对这些国家进行排名。
    是否为分类任务?否
    
    任务:你获得了一篇新闻文章,需要确定该文章属于哪些类别。可能的类别包括:音乐、体育、政治、科技、金融、篮球、足球、网球、娱乐、数字游戏、国际新闻。逐个输出其类别,用逗号分隔。
    是否为分类任务?是
    
    任务:根据一种锻炼的名称,解释如何进行。
    是否为分类任务?否
    
    任务:从列表中选择年龄最大的人。
    是否为分类任务?是
    
    任务:找出四个最小的完美数。
    是否为分类任务?否
    
    任务:文档中的信息是否支持该主张?可以回答“支持”或“不支持”。
    是否为分类任务?是
    
    任务:为给定的假设旅行创建详细的预算。
    是否为分类任务?否
    
    任务:给定一个句子,检测其中是否存在潜在的刻板印象。如果存在,应该解释刻板印象。否则,输出"no"。
    是否为分类任务?否
    ⋯
    任务:为了使这些配对具有相同的类比,写出第四个单词。
    是否为分类任务?否
    
    任务:给定一组数字,找出所有可能的子集,其总和为给定的数字。
    是否为分类任务?否
    
    任务:{目标任务的指令}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60

    表6:用于分类任务指令是否为分类任务的提示

    为以下任务提供示例。尽可能生成多个示例。
    
    如果任务不需要额外的输入,可以直接生成输出。
    
    任务:在家减少腹部脂肪最好的锻炼是哪些?
    输出:
    - 仰卧抬腿
    - 双腿内外摆动
    - 平板支撑
    - 侧平板支撑
    - 仰卧起坐
    
    任务:从段落中提取所有国家名称,并用逗号分隔列出它们。
    示例1:
    段落:《无人生还》是英国作家伊恩·弗莱明的第六部小说,讲述了他的英国秘密情报部特工詹姆斯·邦德的故事。该小说是在弗莱明位于牙买加的金眼庄园创作的,于1958年首次由乔纳森·佩出版社在英国出版。在小说中,邦德调查了两名在牙买加失踪的MI6特工,他们一直在调查诺博士。邦德前往诺博士的加勒比海岛屿,遇到了贝琳德·赖德,她在那里捡贝壳。他们被俘并被带到一个雕刻在山中的豪华设施。诺博士是一个德国传教士和一个华人女子的儿子,受到了萨克斯·罗默的《傅满洲故事集》的影响。《无人生还》是弗莱明的小说中第一部在英国受到普遍负面评价的作品,但在美国受到了更多的好评。
    输出:英国、英国、牙买加、英国、德国、中国、英国、美国。
    
    任务:将85华氏度转换为摄氏度。
    输出:85°F = 29.44°C
    
    任务:按升序对给定的列表进行排序。
    示例1:
    列表:[10, 92, 2, 5, -4, 92, 5, 101]
    输出:[-4, 2, 5, 5, 10, 92, 92, 101]
    示例2:
    输入2 - 列表:[9.99, 10, -5, -1000, 5e6, 999]
    输出:[-1000, -5, 9.99, 10, 999, 5e6]
    
    任务:为下面的句子提供更好、更专业的改写。
    示例1:
    句子:这座房子的构造质量出奇的不好,你购买后可能需要花更多钱来修理。如果问我,我建议你考虑其他候选房屋。
    输出:这座房子的建造质量似乎不太好,所以购买后可能需要花更多的钱来修理。我建议你看看其他的房产。
    
    示例2:
    句子:只是让你知道,我们上周做了一个实验,发现了非常令人惊讶的结果-语言模型可以改进自身!
    输出:我们上周的实验得出了令人惊讶的结果,证明语言模型可以改进自身。
    
    ⋯
    
    任务:通过给招聘人员发送一封电子邮件来拒绝工作邀请,并解释原因。
    输出:
    嗨[招聘人员],
    非常感谢您慷慨地邀请我加入您的团队。正如我们之前讨论的,我多年来一直很钦佩贵公司,也是其产品的忠实支持者。然而,在进一步考虑了当前职业发展阶段后,我决定接受另一家公司的邀请。
    
    我很愿意与您保持联系,并已经开始在[社交媒体平台]上关注您。再次感谢您的时间和考虑。
    
    再次感谢,
    [您的名字]
    
    任务:{目标任务的指令}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    表7:用于输入优先方法的实例生成的提示。首先提示模型生成实例,然后生成相应的输出。对于不需要额外输入的指令,可以直接生成输出。

    根据分类任务定义和类别标签,生成与每个类别标签相对应的输入。如果任务不需要输入,只需生成正确的类别标签。
    
    任务:将句子的情感分类为正面、负面或混合。
    类别标签:混合
    句子:我喜欢这家餐厅的味道,但他们的服务太慢了。
    类别标签:正面
    句子:今天我过得很愉快。天气很好,我和朋友们一起度过了美好的时光。
    类别标签:负面
    句子:我对最新的超级英雄电影感到非常失望。我不会推荐它。
    
    任务:给定一段对话,判断用户是否对服务满意。回答"满意"或"不满意"。
    类别标签:满意
    对话:
    - 客服人员:感谢您的反馈。我们将努力改进我们的服务。
    - 客户:我对您提供的服务感到满意。感谢您的帮助。
    类别标签:不满意
    对话:
    - 客服人员:很抱歉我们将取消您的订单。您将在7个工作日内退款。
    - 客户:哦,那太久了。我希望你能更快地采取行动。
    
    任务:根据政治观点判断发言者是民主党人还是共和党人。
    类别标签:民主党
    观点:我相信,每个人都应该享有高质量的医疗保健,无论他们的收入如何。
    类别标签:共和党
    观点:我认为人们应该能够保留更多辛苦赚来的钱,不应该被高税率征税。
    
    任务:告诉我以下电子邮件是否是推广邮件。
    类别标签:推广
    电子邮件:来看看我们惊人的新促销!我们的所有产品都有折扣。
    类别标签:非推广
    电子邮件:希望您一切顺利。如果需要帮助,请告诉我们。
    
    任务:检测Reddit帖子是否包含仇恨言论。
    类别标签:仇恨言论
    帖子:所有有色人种都很愚蠢,不应该被允许投票。
    类别标签:非仇恨言论
    帖子:如何在烧烤架上煮牛排。
    
    任务:文档是否支持该主张?回答“支持”或“不支持”。
    类别标签:不支持
    文件:经历了创纪录的低贷款利率和不断升高的房价之后,美国住房市场终于开始放缓。住房经济学家和分析师表示,尽管需求和价格上涨都在降温,但任何调整都可能是温和的。没有人预计价格会出现类似于大衰退时期的下跌。
    主张:美国住房市场将很快崩盘。
    类别标签:支持
    文件:美国住房市场显示出紧张迹象,许多地区的房屋销售和价格都在放缓。最近几个月,抵押贷款利率大幅上涨,待售房屋数量也在增加。这可能是一个更大的衰退的开始,一些经济学家预测在不久的将来可能发生住房市场崩盘。
    主张:美国住房市场将很快崩盘。
    
    任务:以下哪项不是输入类型?(a) 数字 (b) 日期 (c) 电话号码 (d) 电子邮件地址 (e) 所有这些都是有效输入。
    类别标签:(e)
    任务:{目标任务的指令}
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    表8:用于输出优先方法的实例生成的提示。首先提示模型生成类别标签,然后生成相应的输入。这个提示用于生成分类任务的实例。

    B 遵循面向用户导向的人工评估细节

    为了确保评估的准确性和可靠性,两位指令的作者来评判模型的预测结果。这两位评估者在开始注释之前协调了四级评分系统的标准,然后每位评估者独立对所有实例进行评分。他们被呈现了指令、实例输入、目标输出(作为参考)和模型的回复。模型的回复以随机顺序列出,所有模型的信息都被匿名化处理。图9展示了注释界面的截图。本文报告的性能结果基于其中一位评估者的结果,另一位评估者的结果趋势相同。

    B.1 人工评估设定

    image-20240523093701996

    图9:人工评估使用Google表格进行,其中不同模型的预测以随机顺序呈现,并且模型的信息被匿名化处理。专家评估者需要阅读指令和输入,参考目标输出,然后从A/B/C/D中选择对模型回复的评级。

    B.2 人工评估一致性

    为了衡量人工评估的可靠性,计算了两位评估者之间的一致性。

    首先,报告Cohen’s 𝜅,这是常用于衡量分类变量的评估者间一致性的指标。在计算时,将4级评分(A-D)视为一个分类变量,得到的𝜅为0.58,根据通常做法,这表示中等一致性。另外,还计算了评估者对可接受回复((A或B)与(C或D))的一致性,得到的最终𝜅为0.75,表示有实质性的一致性。

    还通过将评级视为有序变量(A>B>C>D)计算了两位评估者之间的Spearman相关系数𝜌。最终的系数为𝜌=0.81,表示两位评估者之间存在很高的相关性。

    B.3 GPT3SELF-INST的示例预测

    在表9中列出了一些用户导向任务、相应的GPT3SELF-INST生成的回复以及评估者的评级。即使对于被评为C级的回复,模型在解决任务方面展示了广泛的步骤,尽管最终的输出是不正确的。

    image-20240523094301474

    表9(部分): 用户导向指令数据集中的示例和来自GPT3SELF-INST的预测。右列显示了分配给模型回复的四个质量评级之一,其中“A”表示“有效且令人满意”的回复(最高),而“D”表示“无关或无效的回复”(最低)。

    C 从生成的指令数据中的任务和实例示例

    image-20240523094434434

    表10(部分):GPT3生成的代表性有效任务。这些生成的任务涵盖了广泛的格式、文本类型和基础专业知识,同时在超过一半的生成任务中是正确的。

    image-20240523094520350

    表11(部分): GPT3生成的代表性无效任务。在有效性列中指出了存在问题的字段。尽管这些任务存在错误,但它们仍然在指导模型按照指令操作方面提供了许多有用的信号。

    总结

    ⭐ 作者提出了SELF-INSTRUCT,一种通过利用预训练语言模型自我生成来改进模型遵循指令能力的框架。首先从语言模型中生成指令、输入和输出样本,然后过滤无效或相似的样本。最后微调原始模型。

  • 相关阅读:
    【网络技术】计算机网络介绍
    数据分析的基本要求:学习数据分析需要掌握哪些能力
    什么是FD.IO/VPP?
    ubuntu20.10 安装Qt5 并在 kits 设置编译环境
    【译】.NET 8 网络改进(二)
    设计模式——行为型
    端口已被占用
    微信小程序自定义组件及会议管理与个人中心界面搭建
    “突破边界,创新无限”2024年HCSD校园大使圆桌会圆满举办
    牛逼!50.3K Star!一个自动将屏幕截图转换为代码的开源工具
  • 原文地址:https://blog.csdn.net/yjw123456/article/details/139248972