翻译: 为什么需要微调大模型 Why Fine-tuning LLM

在这里插入图片描述
虽然RAG提供了一种方式来给大型语言模型提供额外的信息,但还有另一种叫做微调(fine-tuning)的技术,也是给它更多信息的一种方式。特别是,如果你有的上下文比大型语言模型的输入长度或上下文窗口长度更大,那么微调提供了另一种方式让大型语言模型吸收这些信息。微调也被证明对于使大型语言模型以特定的风格输出文本非常有用。但这种实际实现比RAG难一些。

我们来看看。假设你有一个像之前描述的那样,从互联网上找到的句子,比如"我最喜欢的食物是奶油奶酪百吉饼",这样的句子来训练的大型语言模型。那么它可能已经从数千亿个单词中学习,甚至可能超过一万亿个单词,来预测下一个单词。这样的大型语言模型将学会生成听起来像互联网上的文本。这个过程通常被称为预训练。

现在,假设我想修改大型语言模型,使其对所有事情都持绝对积极和乐观的态度。有一种叫做微调的技术,我们可以用它让大型语言模型进行更多学习,以改变其输出,例如在这个例子中,变得更加积极和乐观。要微调大型语言模型,我们需要提供一系列具有积极乐观态度的句子或文本,例如“这个巧克力蛋糕真棒”或“这本小说真令人兴奋”。给定这样的文本,你可以创建额外的数据集,使用"这个巧克力蛋糕真棒",你将给出"what",接下来的单词,它会尝试预测"a",“what a”,接下来的单词是"wonderful",“what a wonderful chocolate”,依此类推。

事实证明,如果你拿一个已经在数千亿个单词上预训练的大型语言模型,并在额外的,比如说1万个单词或更多的相对较小的数据集上进行微调,可能是10万个单词,如果你有更多的数据,甚至100万个单词,如果你有更多的数据,微调这个相对较小的数据集可以改变大型语言模型的输出,使之具有积极、乐观的态度。现在,或许让大型语言模型持有绝对积极的态度并不是一个有用的应用,但微调在许多真实应用中被使用。
在这里插入图片描述

微调在一类应用中非常有用,那就是当任务不容易用prompt提示定义时。例如,如果你想用大型语言模型来总结客户服务电话,一个通用的大型语言模型可能会看一个电话记录并将其总结为“客户告诉代理关于显示器的问题”。

在这里插入图片描述

但如果你经营一个客户呼叫中心,你可能希望它生成关于对话内容的具体信息。比如MK401-27KX由客户5402报告损坏等等。如果你创建了一个可能只有几百个人工专家编写的总结的数据集,并让一个已经从互联网上数千亿个单词中学到了很多通用知识的大型语言模型进行额外的微调。但如果你额外地对它进行微调,使用像“这个巧克力蛋糕真棒”这样的句子,或者有特定风格的文本,那么就会改变大型语言模型的写作能力,使其符合你想要的风格。这种特定风格的总结实际上不容易在文本提示中定义。也许你可以做到,但微调将是一种非常精确的方式来告诉大型语言模型你想要什么样的总结。

在这里插入图片描述
当任务不容易在提示中定义时,另一个例子是模仿特定的写作或说话风格。所以,和我一起工作的Tommy Nelson,实际上只是为了好玩,试图让一个大型语言模型听起来像我,但事实证明,大多数人的说话方式并不容易在提示中描述。你如何给别人清晰的指示来模仿我?所以,如果你提示一个通用的大型语言模型并要求它听起来像我,你会得到这样的文本,我认为它并不太像我。但如果你拿走我实际谈话的很多转录,并让一个大型语言模型被微调来真正地听起来像我,通过学习我实际的话语,那么让它写一些听起来像我的东西会得到这样的文本,这听起来更像是我会说的。但因为模仿特定人的写作或说话风格很难通过提示来完成,因为很难通过写作文本指令来描述特定人的风格,微调变成了一种更有效的方式来让大型语言模型以特定风格说话。如果你正在构建一个人工角色,比如卡通人物,微调也可以是让大型语言模型以特定风格说话的一种方式。

在这里插入图片描述
除了容易定义的提示之外,微调的第二大类应用是帮助大型语言模型获得某一领域的知识。例如,如果你想让一个大型语言模型能够阅读和处理医疗记录,这就是医生写给病人的医疗记录可能看起来的样子。这真的不是正常的英语。Pt是患者,c/o是抱怨,SOB是呼吸急促,DOE是活动时呼吸困难,PE是体格检查的结果等等。治疗是随访主治医师,STAT胸部X光,根据需要在氧气上进行治疗。但这真的不是正常的英语,如果你拿一个在正常英语上训练的大型语言模型,它不会很擅长处理这样的文本。如果你对一个大型语言模型进行医疗记录的微调,那么它就会更好地吸收有关医疗记录听起来的知识。然后你可以在其上构建其他应用程序,以更好地理解医疗记录或法律文件。
在这里插入图片描述

这里是律师为律师写的法律文件,非律师很难阅读。许可方根据第2(a)(iii)条给予被许可方非专有权利等等,15天内。我不知道你怎么想。我在我的日常生活中不使用hereof这个词。但这就是法律文件听起来的样子。如果你想让你的大型语言模型获得有关如何阅读和理解法律文件的知识,那么将大型语言模型(LLM)微调至法律文件将有助于其获得这方面的知识。
在这里插入图片描述

同样,对财务文件也是如此。将大型语言模型微调到一大套财务文件上,将有助于它更好地掌握财务知识,并提高涉及处理这类文件的应用的性能。
在这里插入图片描述

最后,微调大型语言模型的另一个原因是让更小的模型执行可能之前需要更大模型的任务。我们将在本周晚些时候讨论选择更大模型与更小模型的优缺点。但对于一些需要大量知识或复杂推理的大型语言模型应用,你可能会使用一个相对较大的模型,比如拥有超过1000亿参数的模型。但如果使用这样的模型,可能会有相对较高的延迟。这意味着,在你发出提示后,你可能需要等待一段时间才能得到回应。

如果你要在自己的电脑上部署这种模型,可能会相当昂贵。即使我们在之前的视频中说过这些模型并不那么昂贵,也许你希望它更便宜。这是因为一个1000亿参数的模型可能需要特殊的计算机,如GPU服务器或其他非常快的计算机来运行。你可能很难在普通的笔记本电脑或PC上运行这样大的模型,更不用说在智能手机上了。

但如果你能让你的应用程序在一个更小的模型上运行,比如说10亿参数的模型,那么这个模型大小的范围就会更容易在笔记本电脑、PC或手机上运行。例如,如果你想要的是将餐厅评论分类为正面或负面情感,这是一个足够简单的任务,你可能不需要一个100或2000亿参数的模型来运行。但也许一个10亿参数的模型就足够好了,甚至可能更小。

但这些较小的模型并不像真正大的模型那么聪明或优秀。这就是为什么如果你拿一个小模型,然后对它进行微调,就像这里展示的数据集那样,不仅仅是三个例子,而是也许几百个或者如果你有那么多数据的话,甚至1000个例子,那么你就可以让一个小模型,比如说10亿参数的模型,在这样的任务上表现得非常好。

总而言之,微调为你提供了除了RAG之外的另一种技术来帮助提高大型语言模型的能力。你可能会用它来处理难以在提示中明确指定的任务。比如,如果你想要

  1. 输出某种风格的文本,
  2. 希望大型语言模型获得某种知识,如关于医疗记录的知识,
  3. 想要获得一个更小、更便宜的大型语言模型来执行可能原本需要更大型大型语言模型的任务。

事实证明,RAG和微调都相对便宜易实施。RAG只是你提示的修改,微调,你可能可以以几十美元甚至几百美元开始,这取决于你想要微调的数据量。还有一种技术,自己训练自己的模型,目前来说非常昂贵,几乎没有人尝试这样做,通常是相对较大的公司,为了完整性,我们来看下一个视频,了解预训练的内容。

参考

https://www.coursera.org/learn/generative-ai-for-everyone/lecture/EIX6K/fine-tuning

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用ArcGIS Pro拼接影像

为了方便数据的存储和传输,我们在网上获取到的影像一般都是分块的,正式使用之前需要对这些影像进行拼接,这里为大家介绍一下ArcGIS Pro中拼接影像的方法,希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的…

ArcGIS Pro SDK文件选择对话框

文件保存对话框 // 获取默认数据库var gdbPath Project.Current.DefaultGeodatabasePath;//设置文件的保存路径SaveItemDialog saveLayerFileDialog new SaveItemDialog(){Title "Save Layer File",OverwritePrompt true,//获取或设置当同名文件已存在时是否出现…

PPT插件-好用的插件-PPT 素材该怎么积累-大珩助手

PPT 素材该怎么积累? 使用大珩助手中的素材库功能,将Word中的,或系统中的文本文件、图片、其他word文档、pdf,所有见到的好素材,一键收纳。 步骤:选中文件,按住鼠标左键拖到素材库界面中&…

微服务架构之争:Quarkus VS Spring Boot

在容器时代(“Docker时代”),无论如何,Java仍然活着。Java在性能方面一直很有名,主要是因为代码和真实机器之间的抽象层,多平台的成本(一次编写,随处运行——还记得吗?&a…

轻松入门:Python 中的 Scipy 库初探

写在开头 Python在科学计算领域中的强大地位得益于其丰富的库和工具,而Scipy库则是这个生态系统中的一颗璀璨明珠。本文将带你轻松入门Scipy库,深入探索其基本用途和功能。 1.scipy库的简介 Scipy库是Scientific Python的缩写,是建立在Num…

虚拟电厂 能源物联新方向

今年有多热?据上海市气象局官微消息,5月29日13时09分,徐家汇站气温达36.1℃,打破了百年来的当地5月份气温*高纪录。不仅如此,北京、四川、江西、湖南、广东、广西等地也频频发布高温预警。 伴随着居民用电急剧攀升&am…

什么是PSR标准?有哪些常见的PSR标准?

PSR 是 PHP Standard Recommendation(PHP 标准推荐)的缩写,是由 PHP-FIG(PHP Framework Interop Group)组织提出并维护的一系列 PHP 编程规范。这些规范旨在促进 PHP 生态系统中各种项目的互操作性和可维护性。以下是一…

Gitee:远程仓库步骤

第一步:新建仓库 第二步:初始化本地仓库,git init 创建分支 git branch 新分支名 第三步:git add . :添加到暂存区 第四步:git config –global user.email关联邮箱,user.name用户名 第…

LeetCode137. Single Number II

文章目录 一、题目二、题解 一、题目 Given an integer array nums where every element appears three times except for one, which appears exactly once. Find the single element and return it. You must implement a solution with a linear runtime complexity and u…

用python编写九九乘法表

1 问题 我们在学习一门语言的过程中,都会练习到编写九九乘法表这个代码,下面介绍如何编写九九乘法表的流程。 2 方法 (1)打开pycharm集成开发环境,创建一个python文件,并编写第一行代码,主要构建…

WX小程序案例(一):弹幕列表

WXML内容 <!--pages/formCase/formCase.wxml--> <!-- <text>pages/formCase/formCase.wxml</text> --> <view class"bk bkimg"><!-- <image src"/static/imgs/ceeb653ely1g9na2k0k6ug206o06oaa8.gif" mode"scal…

coffee:使用AI构建和迭代React UI速度提高10

该项目的目的不仅仅是一个漂亮的演示&#xff0c;而是一个可以编写生产质量代码并与之交互的人体工学工具。 特征 适用于任何 React 代码库&#xff0c;包括 Next.js、Remix 等。对于大多数标准 UI 组件来说足够可靠支持最简单的 prop 类型&#xff08;数据、回调等&#xff…

使用opencv的Canny算子实现图像边缘检测

1 边缘检测介绍 图像边缘检测技术是图像处理和计算机视觉等领域最基本的问题&#xff0c;也是经典的技术难题之一。如何快速、精确地提取图像边缘信息&#xff0c;一直是国内外的研究热点&#xff0c;同时边缘的检测也是图像处理中的一个难题。早期的经典算法包括边缘算子方法…

【论文阅读】Uncertainty-aware Self-training for Text Classification with Few Label

论文下载 GitHub bib: INPROCEEDINGS{mukherjee-awadallah-2020-ust,title "Uncertainty-aware Self-training for Few-shot Text Classification",author "Subhabrata Mukherjee and Ahmed Hassan Awadallah",booktitle "NeurIPS",yea…

目标检测YOLO实战应用案例100讲-自动驾驶复杂场景下目标检测

目录 前言 研究背景与意义 研究背景 研究意义 国内外研究现状

【Hadoop】WordCount源码分析

MapReduceWordCount单词统计WordCount源码分析参考 MapReduce MapReduce是一种可用于数据处理的编程模型。它的任务过程分为两个处理阶段&#xff1a; map 阶段和 reduce 阶段。每阶段都以 键-值对 作为输入和输出&#xff0c;其类型由我们按需选择。我们还需要写两个函数&…

关于嵌入式开发的一些信息汇总:C标准、芯片架构、编译器、MISRA-C

关于嵌入式开发的一些信息汇总&#xff1a;C标准、芯片架构、编译器、MISRA-C 关于C标准芯片架构是什么&#xff1f;架构对芯片有什么作用&#xff1f;arm架构X86架构mips架构小结 编译器LLVM是什么&#xff1f;前端在干什么&#xff1f;后端在干什么&#xff1f; MISRA C的诞生…

​LeetCode解法汇总1631. 最小体力消耗路径

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 你准备参…

计算机网络中的通信子网主要有哪些功能?

计算机网络中的通信子网主要具有以下功能&#xff1a; 负责全网的数据通信&#xff1a;通信子网通过使用各种通信协议和传输控制功能&#xff0c;能够确保数据从一台主机安全、准确地传输到另一台主机。这包括数据的封装、解封装、传输控制、差错控制等过程。 完成各种网络数据…

【Linux】使用官方脚本自动安装 Docker(Ubuntu 22.04)

前言 Docker是一种开源平台&#xff0c;用于开发、交付和运行应用程序。它利用了容器化技术&#xff0c;使开发人员能够将应用程序及其依赖项打包到一个称为Docker容器的可移植容器中。这些容器可以在任何运行Docker的机器上快速、一致地运行&#xff0c;无论是开发环境、测试…