https://www.jianshu.com/p/f8f8f660d2c3

https://crfm.stanford.edu/2023/03/13/alpaca.html

https://crfm.stanford.edu/alpaca/

https://github.com/tatsu-lab/stanford_alpaca

https://github.com/tatsu-lab/stanford_alpaca/blob/main/generate_instruction.py

延伸:

https://github.com/wptoux/self-instruct-zh


我们介绍了Alpaca 7B,这是一个在52K指令上从LLaMA 7B模型微调而来的模型。在我们对单圈指令遵循的初步评估中,Alpaca的行为在质量上与OpenAI的text-davinci-003相似,同时体积小得惊人,易于复制/便宜(<600美元)。

概述

GPT-3.5(text-davinci-003)、ChatGPT、Claude和Bing Chat等指令遵循模型的功能越来越强大。现在,许多用户定期与这些模型交互,甚至在工作中使用它们。然而,尽管指令遵循模型得到了广泛部署,但仍有许多不足之处:它们会产生虚假信息,传播社会刻板印象,并产生有毒语言。

为了在解决这些紧迫问题方面取得最大进展,学术界的参与至关重要。不幸的是,在学术界对指令遵循模型进行研究一直很困难,因为没有一个易于访问的模型在功能上接近OpenAI的text-davinci-003等闭源模型。

我们发布了一个名为Alpaca的指令遵循语言模型的研究结果,该模型是从Meta的LLaMA 7B模型中微调而来的。我们在52K指令上训练Alpaca模型,随后使用text-davinci-003以self-instruct生成演示。在self-instruct的评估集上,Alpaca表现出许多类似于OpenAI的text-davinci-003的行为,但它也出奇地小,易于复制/便宜。

我们正在发布我们的训练配方和数据,并打算在未来发布模型权重。我们还举办了一个交互demo(https://crfm.stanford.edu/alpaca/),使研究社区能够更好地了解Alpaca的行为。交互可能会暴露出意想不到的能力和失败,这将指导我们对这些模型的未来评估。我们还鼓励用户在我们的网络演示中报告任何相关行为,以便我们能够更好地理解和缓解这些行为。由于任何发布都有风险,我们将在稍后的博客文章中讨论我们对此次公开发布的思考过程。

我们强调,Alpaca仅用于学术研究,禁止任何商业用途。这个决定有三个因素:首先,Alpaca是基于LLaMA的,它有非商业许可证,所以我们必须继承这个决定。其次,指令数据基于OpenAI的text-davinci-003,其使用条款禁止开发与OpenAI竞争的模型。最后,我们没有设计足够的安全措施,因此Alpaca还没有准备好用于一般用途。

训练配方

在学术预算下训练高质量的instruction-following模型有两个重要挑战:强大的预训练语言模型和高质量的instruction-following数据。Meta最新发布的LLaMA模型解决了第一个挑战。对于第二个挑战, self-instruct建议使用现有的强语言模型来自动生成instruction数据。特别是,Alpaca是一个语言模型,根据OpenAI的text-davinci-003生成的演示,在52K指令上使用LLaMA 7B模型的监督学习进行微调。

下图说明了我们是如何获得Alpaca模型的。对于数据,我们在self-instruct方法的基础上生成了instruction-following demonstrations 。我们从 self-instruct seed set中的175个人工编写的指令输出对开始(instruction-output pairs)。然后,我们提示text-davinci-003使用上下文示例中的种子集生成更多指令(We then prompted text-davinci-003 to generate more instructions using the seed set as in-context examples)。我们通过简化生成管道(详见https://github.com/tatsu-lab/stanford_alpaca#data-generation-process)对自学方法进行了改进,并显著降低了成本。我们的数据生成过程产生了52K条独特的指令和相应的输出,使用OpenAI API的成本不到500美元。

 

有了这个instruction-following的数据集,我们利用Fully Sharded Data Parallel和混合精度训练等技术,使用Hugging Face的训练框架对LLaMA模型进行了微调。在我们的首次运行中,在8个80GB A100上微调7B LLaMA模型需要3个小时,这在大多数云计算提供商上的成本不到100美元。我们注意到,可以提高训练效率以进一步降低成本。

初步评估

为了评估Alpaca,我们对 self-instruct evaluation set的输入进行了人类评估(由5名学生作者进行)。该评估集由self-instruct作者收集,涵盖了一系列面向用户的指令,包括电子邮件写作、社交媒体和生产力工具。我们对text-davinci-003和Alpaca 7B进行了盲配对比较,发现这两种型号的性能非常相似:Alpaca以90:89赢过了text-davinci-003。

考虑到模型的小尺寸和少量的instruction following数据,我们对这个结果感到非常惊讶。除了利用这个静态评估集,我们还一直在交互测试Alpaca模型,发现Alpaca在不同的输入集上的行为通常与text-davinci-003类似。我们承认,我们的评估可能在规模和多样性方面受到限制。因此,我们发布了一个关于Alpaca的互动演示,鼓励读者自己评估Alpaca并给我们反馈。

在本节的其余部分中,我们将包括几个交互示例,以展示Alpaca的功能和局限性。

 
 

上面的例子表明,Alpaca的输出通常写得很好。我们注意到Alpaca反映了指令instruction-following集的一般风格。因此,Alpaca的回答通常比ChatGPT更短,这反映了text-davinci-003的输出更短。

已知限制

Alpaca还表现出语言模型的几种常见缺陷,包括幻觉、毒性和刻板印象。幻觉似乎尤其是Alpaca的常见故障模式,即使与text-davinci-003相比也是如此。

例如,在下图中,Alpaca错误地说坦桑尼亚的首都是达累斯萨拉姆,达累斯萨拉姆是坦桑尼亚最大的城市。(直到1974年,这里才被多多马取代。)

 

此外,Alpaca可以用来生成书写良好的输出,传播错误信息,如以下示例所示。

 

Alpaca可能包含许多与底层语言模型和指令调优数据相关的其他限制。然而,我们相信该工件仍然对社区有用,因为它提供了一个相对轻量级的模型,作为研究重要缺陷的基础。我们鼓励用户通过在网络演示中标记故障来帮助我们识别新的故障类型。总的来说,我们希望Alpaca的发布能够促进对指令遵循模型及其与人类价值观一致性的进一步研究。

释放的内容

我们今天发布以下内容:

演示:每个人都可以尝试Alpaca的互动演示,https://crfm.stanford.edu/alpaca/

数据:52K演示用于微调Alpaca,https://github.com/tatsu-lab/stanford_alpaca#data-release

数据生成过程:用于生成数据的代码,https://github.com/tatsu-lab/stanford_alpaca#data-generation-process

训练代码:用于使用Hugging FaceAPI对模型进行微调,https://github.com/tatsu-lab/stanford_alpaca#fine-tuning

我们打算在不久的将来释放以下内容:

模型权重:我们已联系Meta,以获得关于发布7B Alpaca和更大LLaMA模型的微调版本的Alpaca模型重量的指导。

发布决定

我们相信,释放上述内容将使学术界能够按照语言模型对教学进行受控的科学研究,从而产生更好的科学,并最终产生新的技术来解决这些模型的现有缺陷。

与此同时,任何释放都会带来一些风险。首先,我们认识到,发布我们的训练配方揭示了某些能力的可行性。一方面,这使更多的人(包括不良行为者)能够创建可能造成伤害的模型(无论是有意还是无意)。另一方面,这种意识可能会激励迅速的防御行动,尤其是学术界,他们现在有能力对这些模型进行更深入的安全研究。总的来说,我们认为这一特定版本对研究界的好处大于风险。

鉴于我们正在发布训练配方,我们认为,鉴于配方的简单性,发布数据、模型权重和训练代码所带来的进一步风险最小。与此同时,发布这些内容对可复制科学有着巨大的好处,因此学术界可以使用标准数据集、模型和代码进行受控比较并探索扩展。

为Alpaca部署交互式演示也会带来潜在风险,例如更广泛地传播有害内容,降低垃圾邮件、欺诈或虚假信息的门槛。我们已经制定了两种风险缓解策略。首先,我们使用OpenAI的内容审核API实现了一个内容过滤器,该过滤器根据OpenAI的使用策略过滤掉有害内容。其次,我们使用Kirchenbauer等人2023中描述的方法对所有模型输出进行水印处理,以便其他人可以(以一定的概率)检测输出是否来自Alpaca 7B。最后,我们对使用演示有严格的条款和条件;它仅限于非商业用途和遵循LLaMA许可协议的用途。

我们知道,一旦我们发布模型权重,或者如果用户按照模型训练自己的指令,就可以规避这些缓解措施。然而,通过安装这些缓解措施,我们希望推进最佳实践,并最终制定负责任部署基础模型的社区规范。

未来发展方向

我们对Alpaca带来的研究机会感到兴奋。未来有许多令人兴奋的方向:

评估:我们需要更严格地评估Alpaca。我们将从HELM(语言模型的整体评估)开始,它有望发展到捕捉更具生成性的、遵循指令的场景。

安全:我们希望进一步研究Alpaca的风险,并使用自动红队、审计和自适应测试等方法提高其安全性。

理解:我们希望更好地理解能力是如何从训练配方中产生的。您需要基本模型的哪些财产?当你扩大规模时会发生什么?需要指令数据的哪些财产?在text-davinci-003上使用自我指导的替代方案是什么?

【转帖】Alpaca 7B:斯坦福从LLaMA-7B微调的语言模型的更多相关文章

  1. FocusBI:《商业智能7B理论模型》创造者

    <商业智能7B理论模型>专门为培养企业级BI人才<如何一个人完成BI项目,成为企业级BI人才>课程而创造,历经我7年的商业智能项目实施工作和经验的提炼与总结,分别深入在甲方公司 ...

  2. 本地推理,单机运行,MacM1芯片系统基于大语言模型C++版本LLaMA部署“本地版”的ChatGPT

    OpenAI公司基于GPT模型的ChatGPT风光无两,眼看它起朱楼,眼看它宴宾客,FaceBook终于坐不住了,发布了同样基于LLM的人工智能大语言模型LLaMA,号称包含70亿.130亿.330亿 ...

  3. 如何训练个人的ChatGpt4

    如何在自己的计算机上安装类似 ChatGPT 的个人 AI 并在没有互联网的情况下运行它 本文旨在为任何人安装此软件.最初它有一个视频,伴随着操作方法,但是事情变化很快,我的三次尝试只是推迟了我发表这 ...

  4. TJI读书笔记16-异常处理

    TJI读书笔记16-异常处理 概念 基本异常情形 异常的捕获 自定义异常 异常说明 捕获所有异常 栈轨迹 重新抛出异常 Java标准异常 使用finally 异常的限制 构造器 异常的匹配 其他乱七八 ...

  5. TJI读书笔记13-内部类

    TJI读书笔记13-内部类 TJI读书笔记13-内部类 创建内部类 内部类和外部类的关系 .this和.new 内部类和向上转型 局部内部类 匿名内部类 匿名内部类的定义和初始化 使用匿名内部类来实现 ...

  6. HTML5常识总结(一)

    一.HTML5的发展历程 + html演变的几个版本: html2.0.html3.2.html4.0.html4.01.html5. + 其中在html4.01发布之后,还发布了xtml1.0,它是 ...

  7. rac 10g 加入节点具体解释

    目标: 当前我环境中是有两个节点RAC1和RAC2 节点.如今添加一个RAC3节点.   概要:为现有的Oracle10g RAC 加入节点大致包含下面步骤: 1. 配置新的server节点上的硬件及 ...

  8. Linux中的 awk查找日志中的相关记录

    假设要在 api.log.201707201830 文件中,(此文件的多个字段数据以不可见字符^A(键盘上按下Ctrl+V+A)分隔),要输出第70个字段: awk -F '^A' '{print $ ...

  9. Python3 urllib.request库的基本使用

    Python3 urllib.request库的基本使用 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 在Python中有很多库可以用来抓取网页,我们先学习urlli ...

  10. Apache Hadoop 2.9.2 的集群管理之服役和退役

    Apache Hadoop 2.9.2 的集群管理之服役和退役 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 随着公司业务的发展,客户量越来越多,产生的日志自然也就越来越大来,可能 ...

随机推荐

  1. Nignx快速入门

    Nginx快速入门 一.简介 产生的背景:当一台服务器同一时刻被大量客户端请求访问时,访问量超出服务器请求范围,服务器处理不过来,发生宕机或者丢失连接情况下,产生了Nignx反向代理技术. Nginx ...

  2. Redis核心技术与实战

    最近在读一篇关于Redis的专栏,叫做<Redis核心技术与实战>,作者在Redis方面研究颇深,读后非常受益,特在此做记录. 一.Redis基础 1)知识图和问题画像图 Redis知识全 ...

  3. Sermant:无代理服务网格架构解析及无门槛玩转插件开发

    本文分享自华为云社区<Sermant:无代理服务网格架构解析及无门槛玩转插件开发>,作者: 华为云社区精选 . 本期直播的主题是<从架构设计到开发实践,深入浅出了解Sermant&g ...

  4. 电商业务容器化遇瓶颈,公有云Docker镜像P2P加速很安全

    当前,电商平台会采用基于Docker的容器技术来承载618大促期间的一些关键业务版块,包括最简单的商品图片展示.订单详情页面等等. 通过容器化改造,电商平台的每个业务版块解耦,可以独立开发.部署和上线 ...

  5. 面试官让列举Spring的事务会失效的场景,我说了8个

    本文分享自华为云社区<哪些场景下Spring的事务会失效?>,作者:冰 河 . 在日常工作中,如果对Spring的事务管理功能使用不当,则会造成Spring事务不生效的问题.而针对Spri ...

  6. webpack原理(2):ES6 module在Webpack中如何Tree-shaking构建

    Tree-shaking 最早由打包工具 Rollup 提出 DCE 作用于模块内(webpack 的 DCE 通过 UglifyJS 完成),而 Tree-shaking 则是在打包的时候通过模块之 ...

  7. hadoop fs,hadoop dfs以及hdfs dfs区别

    1.hadoop dfs 专门针对hdfs系统 2.hdfs dfs 和hadoop dfs,当使用hadoop dfs时会被转为hdfs dfs命令 3.hadoop fs 范围更广

  8. loguru python中记录日志

    loguru python中记录日志 安装 pip install loguru 使用 from loguru import logger # logger.add('ck/test_log.log' ...

  9. HomeBrew 安装 Maven 及其 IDEA 配置

    Brew 安装 Maven brew search maven # 使用搜索工具去搜索maven包 brew info maven #使用info查看maven包当前的信息情况,包括版本依赖描述等 b ...

  10. 【网摘】SQL练习题

    原文链接:Here