在本地服务器上微调 LLM 可以参考以下内容:
本文采用的提示词工程主要有两部分代码组成:提示词注入和工具结果回传。提示词注入用于将工具信息以及使用工具的提示词添加到系统提示中。工具结果回传则是解析tool calling的输出,并将工具返回的内容再次嵌入LLM。[heading2]1、提示词注入阶段[content]INSTRUCTION为最后注入到系统提示中的字符串,他又包含了TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT三个部分。TOOL_EAXMPLE用于提示LLM如何理解tool以及如何使用tool。在编写TOOL_EAXMPLE时,请注意用一些无关紧要的工具作为示例,例如本文使用的将数字加一和数字减一的工具,从而避免LLM混淆真正可以使用的工具与示例工具。tools_instructions是由目前通用的工具字典转换成LLM可读的工具列表。实际使用LLM时,可以通过输入不同的工具来动态调整tools_instructions,让LLM得知目前可用的工具有哪些以及如何使用。REUTRN_FORMAT定义了调用API的格式。[heading2]2、工具结果回传阶段[content]利用正则表达式抓取输出中的"tool"和"parameters"参数。对于interpreter工具,使用了另一种正则表达式来提取LLM输出的代码,提高LLM使用interpreter工具的成功率。本文使用代码如下:通过识别LLM返回的调用工具的字典,提取出对应的值,再传入相应的工具函数,最后将工具返回的结果以observation的角色返回给LLM。对于一些不接受observation、tool、function角色的LLM接口,可以改为回传给user角色,例如:通过以上提示词工程,可以避免微调,让完全没有tool calling能力的LLM获得稳定的tool calling能力。
12:29即使您确实为您的用例发现了一个好的提示,您可能会注意到模型响应的质量并不完全一致。为了缓解这些问题,我们可以做的一件事是调整模型。12:40那么调音是什么?好吧,您可能熟悉的一个版本是微调。在这种情况下,我们采用在通用数据集上预训练的模型。我们复制了这个模型。12:51然后,以这些学习到的权重为起点,我们在新的特定领域数据集上重新训练模型。这种技术对于许多不同的用例都非常有效。13:01但是当我们尝试微调LLM时,我们遇到了一些挑战。顾名思义,法学硕士是大型的。因此更新每个权重可能需要很长时间的训练工作。13:12将所有这些计算与现在必须为这个巨大模型提供服务的麻烦和成本相结合……因此,微调大型语言模型可能不是您的最佳选择。13:21但是有一种创新的调优方法称为参数有效调优。这是一个非常令人兴奋的研究领域,旨在通过仅训练一部分参数来减少微调LLM的挑战。13:34这些参数可能是现有模型参数的子集。或者它们可以是一组全新的参数。例如,也许您向模型添加了一些额外的层或额外的嵌入13:45到提示。如果您想了解更多关于参数有效调整和一些不同方法的信息,本课程的阅读列表中包含一篇摘要论文。13:53但如果您只想着手构建,那么让我们转到Generative AI Studio,看看如何开始调优工作。从Generative AI Studio的语言部分,14:02选择调整。为了创建一个调整模型,我们提供了一个名称。然后指向训练数据的本地或Cloud Storage位置。参数有效调整非常适合您拥有“适度”数量的场景14:14训练数据,例如数百或数千个训练示例。您的训练数据应以文本到文本格式构建为受监督的训练数据集。数据中的每条记录或行都将包含输入文本,换句话说,提示,
为了使微调达到最佳效果,应该从明确的目标和相关的高质量数据集开始。应该使用能体现所需输出类型的数据进行微调,此外,迭代测试也至关重要--从小的、渐进的变化开始,并在进一步进行之前对结果进行评估。对于OpenAI的模型,微调包括使用其提供的API在我们的数据集上进一步训练模型。进行微调训练时需要调整各种超参数并监控模型的性能,以找到适合特定用例的最佳设置。对于开源LLM,微调可能需要更多的实践工作,包括设置训练环境、管理数据流,还可能需要直接调整模型架构。[heading3]Fine-tuning局限性[content]对于需要快速迭代新用例的场景,微调所起的作用较小。要实现微调功能,需要创建一个大型训练数据集,其中至少包含数百个优质示例。然后,按照格式要求将数据集整理成适当的格式,并启动微调自定义LLM的训练任务,评估微调性能。为了实现良好的微调,我们需要建立一个模型改进工作流程,在流程中不断监控模型性能变化,获得反馈,依据反馈不断改进模型。通过记录所有生成的模型,以及评分指标(隐性和显性用户的反馈,以及人类和人工智能的评估),从而为下一版本创建的训练数据集进行调整。另外,许多LLMOps平台也能自动收集和显示最佳数据,让我们只需点击几下就能对模型进行微调。