标签:大语言模型
领英(LinkedIn)账号的fork中向我提出了这样一个问题:如何微调诸如LLaMA的开源模型。公司正在寻找销售LLM托管和部署解决方案的业务案例,将人工智能和LLM应用于具体的产品。我问他们为什么不使用像ChatGPT这样的非开源模型时,他们没有给出正确的答案。所以我决定写这篇文章来解答如何利用llm解决日常业务问题。
是否尝试过用ChatGPT的API 实现具体案例?如果想实现文本总结或回答问题,或者只是想在网站上找一个聊天机器人,通常情况下,ChatGPT在这些语言任务上会做得很好。
人们普遍认为,非开源的模型太贵了,1000个 token需要花费0.002美元,为什么不可以在100个样本上做一下尝试,并评估大语言模型是否为特定应用程序的最佳选择。事实上,在这个范围内每天至少有数千次的API调用,ChatGPT API比博客中提到的开源模型要便宜得多。
其中一个观点是,假设需要回答成千上万份文件中的问题,此时,对这些数据进行训练或微调开源模型,并询问利用这些数据微调模型会不会更容易一些?事实证明,这并不像听起来那么简单(出于各种原因,将在下文关于微调标签数据一节中讨论)。
但是ChatGPT有一个简单的解决方案,可以根据包含数千个文档的上下文来回答问题。它将所有文档分为小块文本存储到数据库中。
将文档下载到数据库中进行规模化LLM查询| Skanda Vivek
将数据从模型架构中卸载到一个包含文档块的数据库中,为模型提供回答问题所必要的信息。
通过计算问题和文档块之间的相似性,就可以找到具有相关性的文档,通过将文档块和问题转换为单词嵌入向量,并计算文档块和问题之间的余弦相似度,最后只选择特定余弦相似度以上的文档块作为相关上下文。
最后,问题和上下文可以组合成如下的提示符,并入像ChatGPT这样的大语言模型API:
大家可能会问——为什么不将整个文档和问题输入到提示中,而是分成小的文档块呢?之所以将文档分割成块,而没有将所有文档合并成一个提示符,是因为大语言模型对最大输入和输出长度有一定的限制。对于ChatGPT来说,最大输入和输出长度是4096个 token,大约是6-7页的文本。
将文档下载到数据库中,并使用非开源的LLM API进行查询,可能在文档中明显存在答案的情况下工作良好。但在很多情况下,可能会产生次优结果,比如想让ChatGPT对一个话题提供专家视角——例如,对美国经济的金融前景进行推测。
好吧,如果已经试用了ChatGPT或BARD,但你并不喜欢它。答案确实有点离谱。例如,如果问ChatGPT:
“美国经济的通胀可能会持续多久?”
它返回下述答案:
作为一个人工智能语言模型,我无法确定地预测未来,特别是关于复杂的经济系统。但是,我可以为您提供一些信息和观点,以帮助您了解当前的情况。
通货膨胀是一种复杂的现象,可以由多种因素引起,如需求增加、供应限制等….
不幸的是,上述答案还不够好。当然,还可以给ChatGPT提示一些关于美联储主席杰罗姆·鲍威尔声明的消息。但这并没有给你该领域的丰富经验,如果继续交谈,可能会得出-好吧,杰罗姆·鲍威尔,还有谁!或者是另一个专家。
考虑如何成为某一领域的专家,虽然可以阅读关于该领域的书籍,但也可以与该领域的专家互动,从经验中学习。虽然ChatGPT已经接受过了大量金融书籍的训练,但它可能还没有接受过顶级金融专家或其他特定领域的专家的训练。那么,如何让LLM成为一个在金融领域的“专家”呢?这就是微调的作用所在。
在讨论微调大语言模型之前,首先谈谈像BERT这样的小语言模型的微调,这在大语言模型出现之前很常见。对于像BERT和RoBERTa这样的模型,微调相当于传递一些上下文和标签。将任务定义好,比如从上下文中提取答案,或者将电子邮件分类为垃圾邮件和非垃圾邮件。我写了一些关于这些方面的博客文章,如果对微调语言模型感兴趣,它们可能会很有用:
大型语言模型(llm)之所以如此流行,是因为它们可以通过改变提示的方式无缝地执行多个任务,而且有类似于在另一端与人交谈的经验。现在需要对LLM做出调整,使其成为某一主题方面的专家,并像一个“人”一样参与对话。这与在特定的任务上微调BERT模型截然不同。
最早的开源突破之一是斯坦福大学的一组研究人员,他们对7B LLaMa模型(今年早些时候由Meta发布)进行了微调,他们在52K指令下使用不到600$实现了微调,并称之为 Alpaca。不久之后,Vicuna团队发布了一个130亿个参数的模型,它达到了ChatGPT质量的90%。
最近,又发布了MPT-7B transformer,它可以摄入65k个token,是ChatGPT输入大小的16倍!训练从头开始,为期9.5天,花费200k$。作为专业领域LLM的一个例子,Bloomberg 发布了一个类似gpt的模型 BloombergGPT,为金融领域而构建,也是从零开始训练。
在训练和微调开源模型方面的最新进展是中小型公司通过定制的llm来丰富其产品。那么,又如何决定何时调整或训练专业领域的llm呢?
首先,需要明确专业领域中闭源LLM API的局限性,并允许客户以很小的成本与该领域的专家聊天。对于10万左右的指令来说,微调模型并不是很昂贵——但是需要仔细考虑之后才能获得正确的指令。这是需要大胆一些,虽然还想不到哪个专业领域的微调模型性能明显优于ChatGPT,但我相信这里会有拐点,任何这样做的公司将会得到奖励。
这令我想到了如果从头开始完全训练LLM的案例,这很容易花费超过数十万美元,但如果有一个可信服的理由,投资者会很乐意投入其中。在最近接受IBM的采访时,Hugging Face的首席执行官克莱姆·德兰古评论说,不久,定制的大语言模型会像专有代码库一样常见——并且会成为提高行业竞争力的重要组成。
应用于特定领域的LLM在行业中非常有价值,在增加成本和可定制性方面分为3个层面:
1. 非开源API+文档嵌入数据库:第一种解决方案可能是最容易实现的,考虑到ChatGPT API的高质量——甚至可能提供足够好(即便不是最好的)的性能。而且也不贵!
2. 微调LLM:最近从对LLaMA模型进行微调中取得的进展表明,这需要花费大约500$才能在某些领域获得类似于ChatGPT的基线性能。如果具备大约~50-100k指令或对话来微调基线模型的数据库,这也值得一试。
3. 从零开始训练:正如 LLaMA 和最新近的MPT-7B 模型所显示的那样,它将花费大约100-200k,需要一两个星期的时间。
了解上述内容后,开始构建自定义专有领域的LLM应用程序吧!
原文标题:
When Should You Fine-Tune LLMs?
原文链接:
https://medium.com/towards-data-science/when-should-you-fine-tune-llms-2dddc09a404a?source=explore---------8-58--------------------bbc182a3_471b_4f78_ad66_68a6b5de2c39-------15
编辑:于腾凯
校对:林亦霖
译者简介
陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
未经许可的转载以及改编者,我们将依法追究其法律责任。