首页 > 其他分享 >读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct

读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct

时间:2023-12-24 21:32:06浏览次数:235  
标签:训练 数据 Self 生成 Instruct 指令 LLM 语料 读书人

借东风的第二个章节

第一章传送门:不敢想象自动给训练数据打标签能有多爽 (qq.com)

      上一篇文章主要介绍了Auto Label,属于比较委婉的借,迂回的借,另外Auto Label,它借出来的数据,还是偏重于传统的NLP任务训练,什么分类啊,标准QA啊之类的。众所周知,现在言必称GenAI,如果不是做这个的,都不是很好意思和人打招呼,那GenAI的训练数据,我们能直接借出来吗?

       答案肯定是Yes,我们不但要"借",而且要狠狠地"借"!

      今天介绍一个"借"数据的方法,当然不是唯一的,但是是我觉得比较简单,而且是经过实际验证过的方法,这个方法就是Self-Instruct

       论文地址:

       2212.10560.pdf (arxiv.org)

      如果读过相关论文的各位,想必了解到它就是Alpaca的获取数据方法,这里给没读过的朋友普及一下Alpaca是啥?

       Llama大家都知道,源自于Meta做的模型,现在已经成为开源世界的标配,在Llama出道的不久,Stanford基于 Meta 的 LLaMA 7B 模型微调出一个新模型 Alpaca。该研究让 OpenAI 的 text-davinci-003 模型以 self-instruct 方式生成 52K 指令遵循(instruction-following)样本,以此作为 Alpaca 的训练数据。

读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct_数据

       那这个训练逻辑基本就显而易见了,既然ChatGPT是优秀的LLM,我们直接用它回答的问题和数据组成问答对,来训练我们的模型不就可以了,想法真是朴素又直接!

       既然逻辑我们已经理清了,那么怎么从ChatGPT取数据来训练呢,不可能我们再派一堆人去手动写prompt,这也不合理,有没有可能让LLM自动替我们源源不断的生成问题和答案呢?

       

读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct_数据_02


“Give me a quote from a famous person on this topic”  ,当这个task在正式获取数据之前,LLM要先判断这个task是否为分类。如果为分类认为,要走独立的流程,因为在分类认为上,如果使用输入优先的方式更容易产生某一种倾向性的样例,所以在分类任务上使用输出优先的方式,随机标签先行;如果不是分类问题,就会生成相关的prompt和competition问答对,这里叫input输入,output输出,整体合起来就叫instance

        如上图所给到的案例:

Instruction : Give me a quote from a famous person on this topic. 

Input: Topic: The importance of being honest. 

Output: "Honesty is the first chapter in the book of wisdom." - Thomas Jefferson

 一般来讲一条数据包含(指令, 输入, 输出)这三部分,但是也有只包含部分信息的数据,比如只有 (指令,输入),或者只有(指令,标签)

       最后通过过滤一些差的生成,把新生成的指令加入到instruction指令池里,以备下一次生成和遵循,过滤方式遵从以下逻辑:

  • 生成的指令只有与种子池中的指令的 ROUGE-L 小于0.7的才能进指令池
  • 排除一些无法被语言模型处理的指令,比如图像、图片
  • 在给指令生成实例时,会过滤掉输入相同但是输出不同的实例


      一般来讲除了第一次指令池发向LLM的指令都是人类撰写的,(一般是8个),后续每一步都是包含6个人类撰写的指令+2个LLM生成的指令一起发向LLM,并在后期逐渐均衡

       在论文里面可以看到生成的数据质量也不是尽善尽美的,但是瑕不掩瑜,毕竟不花人力

读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct_获取数据_03


         成本原因,我就做了15个instruction

读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct_ci_04


读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct_数据_05

       每个格式展开大概长这样

读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct_数据_06

      之后会由这个instruct去生成相应的instance,大概长这样

读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct_获取数据_07

读书人想要点数据,怎么能叫偷呢?要叫借, 也可以叫Self-Instruct_获取数据_08

      这些问答对就可以作为训练或者微调你自己模型的语料了,可以看出语料都是偏生成,和之前的第一篇讲的本地语料的标注正好可以互补

      总结,这是系列的第二篇,重点讲了如何让OpenAI为我们的训练任务,自动地产生足够高质量的语料,来训练我们自己的模型。

      但是这个方法也有它的弊端,就是容易overfit,此外原项目大概也就只有82K的问答对(也就20几M数据),这个数量对于一般的下游任务可能还好,但是对于要求高的项目,可能未必能应付妥当。

Distilling step-by-step),也会捎带脚讲一讲MS的论文Orca,作为系列的第三篇,也是最后一篇,敬请期待


标签:训练,数据,Self,生成,Instruct,指令,LLM,语料,读书人
From: https://blog.51cto.com/u_16432251/8957079

相关文章

  • Self-attention小小实践
    目录公式1不带权重的自注意力机制公式2带权重的自注意力机制公式1不带权重的自注意力机制\[Attention(X)=softmax(\frac{X\cdot{X^T}}{\sqrt{dim_X}})\cdotX\]示例程序:importnumpyasnpemb_dim=3qkv_dim=4seq_len=5X=np.array([[1501,502,503],......
  • AI自监督学习(Self-Supervised Learning,SSL)
    AI自监督学习(Self-SupervisedLearning,SSL)是一种机器学习方法,用于训练模型从大量无标签数据中自动学习特征表示。自监督学习与传统监督学习不同之处在于,它不需要人工标注数据,而是使用数据本身作为监督信号来学习有效的特征表示。自监督学习在各种AI任务中具有广泛应用前景,如自然语......
  • 大模型:高质量对话数据生成,Enhancing Chat Language Models by Scaling High-quality I
    EnhancingChatLanguageModelsbyScalingHigh-qualityInstructionalConversations论文地址1.导读不少工作已经意识到ChatGPT的秘密在于将指令微调和对其微调做到了极致,是继GPT-3后的又一次大力出奇迹。这篇文章来自清华大学5月份的工作,目的在于生成高质量的指令微调......
  • 论文阅读-Self-supervised and Interpretable Data Cleaning with Sequence Generativ
    1.GARF简介代码地址:https://github.com/PJinfeng/Garf-master基于SeqGAN提出了一种自监督、数据驱动的数据清洗框架——GARF。GARF的数据清洗分为两个步骤:规则生成(RulegenerationwithSeqGAN):利用SeqGAN学习数据中的关系(datarelationship)。然后利用SeqGAN中......
  • python self是什么意思?怎么使用?
    在Python中,self是一个特殊的参数,通常用作方法的第一个参数。它表示对类实例自身的引用,类似于其他编程语言中的this关键字。self参数的命名可以是任意合法的标识符,但按照惯例,大多数开发者都使用self。为什么需要self参数?使用self参数的目的是允许类的实例访问其自身的属性和方法。通......
  • GCGP:Global Context and Geometric Priors for Effective Non-Local Self-Attention加
    GlobalContextandGeometricPriorsforEffectiveNon-LocalSelf-Attention*Authors:[[WooS]]初读印象comment::(GCGP)提出了一个新的关系推理模块,它包含了一个上下文化的对角矩阵和二维相对位置表示。动机普通注意力的缺点:单独处理输入图像中的每个特征,并在整个输......
  • Instruction-Following Agents with Multimodal Transformer
    概述提出了InstructRL,包含一个multimodaltransformer用来将视觉obs和语言的instruction进行编码,以及一个transformer-basedpolicy,可以基于编码的表示来输出actions。前者在1M的image-text对和NL的text上进行训练,后者跟踪了整个obs和act的历史,自回归地输出动作。问题纯语言......
  • unity Transform 的 Rotate(xAngle: float, yAngle: float, zAngle: float, relativeT
    publicclassdemoword2:MonoBehaviour{//StartiscalledbeforethefirstframeupdatevoidStart(){//transform.Rotate(60,70,80,Space.World);//eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴//......
  • Recommendation as Instruction Following: A Large Language Model Empowered Recomm
    目录概InstructRecInstructionGenerationZhangJ.,XieR.,HouY.,ZhaoW.X.,LinL.,WenJ.Recommendationasinstructionfollowing:alargelanguagemodelempoweredrecommendationapproach.2023.概通过指令跟随来利用大模型进行推荐,本文介绍了不同的指令......
  • Predicting gene expression from histone modifications with self-attention based
    Predictinggeneexpressionfromhistonemodificationswithself-attentionbasedneuralnetworksandtransferlearningYuchiChen 1, MinzhuXie 1, JieWen 1Affiliations expandPMID: 36588793 PMCID: PMC9797047 DOI: 10.3389/fgene.2022.1081......