赞
踩
论文:https://arxiv.org/pdf/2304.12244.pdf
代码:https://github.com/nlpxucan/WizardLM
一般的数据增强方法,只能给出简单数据的增强,如果复杂数据需要人工构造。
Evol-Instruct 利用大模型生成指令的方法,可生成相对复杂和多样的指令数据集。
现在有一个创业方向,就是给带货行业写指令,一条好的指令可以卖到 5000-几万块,但复杂的指令十分烧脑。
子问题2:生成复杂指令的需求
子解法2:指令演化者(Instruction Evolver)
子问题3:指令多样性不足
子解法3:广度演化(In-Breadth Evolving)
子问题4:演化失败的指令的筛选
子解法4:淘汰演化(Elimination Evolving)
子问题5:如何有效地微调LLM
子解法5:在演化指令上微调LLM
在医学领域,Evol-Instruct策略可以应用于建立一个高效、准确的医学问答系统,该系统旨在帮助医生和患者更好地理解复杂的医学条件、治疗方案和药物信息。
我们希望提供一个高级别的问答服务,能够理解和回答关于疾病诊断、治疗方法、药物副作用等复杂问题。
初期,平台收集了一些常见问题作为初始指令集D(0),但这些问题覆盖范围有限,且在复杂度上远远不能满足专业医疗人员或有特殊需求的患者。
实施Evol-Instruct策略:
指令数据演化:初始指令集D(0)主要包括一些基本的医疗咨询问题。
通过使用Evol-Instruct策略,平台可以自动生成更多样化且复杂的医疗咨询问题。
例如,从“什么是糖尿病?”演化到“糖尿病患者如何调整饮食和运动来控制血糖水平?”,再到“对于有心血管疾病史的糖尿病患者,调整生活方式在控制血糖方面的最佳实践是什么?”。
指令演化者(Instruction Evolver):通过分析专业医疗文献和现有医疗咨询记录,生成更专业、更具体的医疗问题。
例如,将指令演化成涵盖特定药物的作用机制、副作用及其与其他药物相互作用的问题。
广度演化(In-Breadth Evolving):确保生成的问题不仅在复杂度上增加,同时也覆盖更广泛的医疗领域和专业,如罕见疾病的诊断方法、先进的治疗技术、心理健康问题的处理方法等。
淘汰演化(Elimination Evolving):自动识别和过滤掉那些质量不高的指令,如那些可能因为过于复杂而难以理解的问题,或是内容重复、信息增益低的问题。
在演化指令上微调LLM:将所有经过筛选和演化的高质量指令与初始指令集合并,进行随机洗牌,创建最终的数据集用于微调大型语言模型(LLM)。
这样不仅确保了数据集的多样性和丰富性,也优化了模型在各种不同类型医疗问题上的表现。
通过应用Evol-Instruct策略,该在线医疗咨询平台成功构建了一个能够理解和回答广泛复杂医学问题的问答系统。
这个系统不仅提高了医生和患者获取医学信息的效率,也显著增强了他们对复杂医学条件的理解。
此外,这种策略的实施也为医学教育领域提供了宝贵的资料,
Evol-Instruct方法的示例,这是一种使用大型语言模型(LLMs)代替人类来自动生成各种难度级别的开放域指令的新方法。
从一个简单的初始指令“1+1=?”开始,如何通过两种演化方式——“In-depth Evolving”(深度演化,蓝色方向线)和“In-breadth Evolving”(广度演化,红色方向线)——来提升指令的复杂性或创造新的指令以增加多样性。
图中给出了五种深度演化操作和一种广度演化操作,具体如下:
深度演化(In-depth Evolving) 包括五种类型的操作:
广度演化(In-breadth Evolving) 是突变,即基于给定指令生成一个完全新的指令:
此外,图中还显示了一个被称为“Elimination Evolving”(淘汰演化)的过程,用于过滤失败的指令。
这张图提供了Evol-Instruct方法的概览,标题为“Figure 2: Overview of Evol-Instruct”。这是一个由三个主要部分组成的流程图:
初始指令(Initial Instruction):这是流程的起点,表示Evol-Instruct方法的开始,用一个灯泡图标表示,可能象征着一个简单的、创意的或基础的想法。
演化过程(Evolving Process):从初始指令出发,指令经历了三种演化过程:
演化过程中使用了不同的图标来表示这一过程,包括树木的图标表示生长和发展,以及一个回收符号可能表示从失败的指令中回收和重组元素。
指令消除器(Instruction Eliminator):这是一个用于过滤掉不成功或不合格指令的步骤,用一个带有红色错误标记的图标表示。
指令池(Instruction Pool):通过演化过程成功的指令被收集到指令池中,表示为一个数据库或存储图标。
基础LLM(Foundation LLM):指令池中的指令被用来训练或微调基础大型语言模型,这里用一只骆驼图标表示,可能代表LLM的负载能力或基础性质。
WizardLM:最终,经过微调的LLM被称为WizardLM,这里用一个魔术师图标表示,可能意味着模型通过Evol-Instruct变得更加强大或具有魔法般的能力。
Evol-Instruct的整个流程:从一个初始指令开始,通过多轮的演化和过滤,最终生成一个高质量的指令池,这个指令池被用于训练或微调一个更先进的LLM,即WizardLM。
Evol-Instruct方法的拆解和解释如下:
主问题: 如何通过Evol-Instruct方法生成多样化和复杂度高的指令,以提升大型语言模型(LLMs)的性能。
问题与解法组成:
子问题1:生成复杂度更高的指令。
子问题2:从深度方面增加指令复杂性。
例子:
原指令:“写一个关于太空旅行的短故事。”
改写后的新指令:“创建一个关于在火星上建立殖民地的未来主义场景。”
假设通过演化产生了一条指令:“编写一个故事,然后删除它。”
因为这个指令缺乏具体的目的和效用,所以被指令消除器剔除。
每个子问题和子解法在整体解法中的目的:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。