LLM商业落地中的注意事项
微调是创造性工作,需要不断调试,在原有的参数的基础上,不动原有模型的权重参数,然后再增加个低阶矩阵,不停的训练这个低阶矩阵,这种方式训练出来的微调具备一定的不确定性。微调通常用在垂直的推理场景,需要独有的数据,例如:医疗领域医生的能力。微调技术难度高,失败概率较大,需要经验丰富的微调团队。
Agent的实现原理其实是基于知识库和提示词工程做的对齐,来解决特定工作流场景的问题,即:特定场景的代理。Agent需要具备推理能力,而推理能力是稀缺的,通常需要懂研发,也需要懂业务流。
知识库是基于上下文的语义,让大模型理解公司的业务,最后回答出检索的问题,通常用于比较严谨的咨询场景和科普场景。知识库和提示词工程在大模型底层能力中扮演重要角色。
对于特定场景,不同大模型的覆盖能力不同,选择底座模型需要考虑是否具备推理能力。大模型的底层能力是解决一批问题的能力,需要具备特定约束规范的提示词工程,具备初步的推理能力能够解决一些单个问题。多模态大模型可以处理不同模态的数据,具备多种能力。
Streaming-LLM
利用注意力汇流(Attention Sinks)提高流式语言模型效率。
实现原理:保留最开始的几轮对话的token,接着计算剩余的token,最后再交给LLM处理。
高级提示词
书写高级提示词
1. 清晰的指令
告诉AI你具体想要什么。比如,如果你想要简短的答案,就直接说"给我一个简短的回答"。这样AI就不用猜你的意图了。模型无法读懂你的思维。如果需要简短的回答,就明确要求;如果需要专家级的写作,也要明确指出。提供清晰的指令,减少模型猜测的需要。
▶具体操作:
- 在查询中包含细节,以获得更相关的答案。
- 要求模型采用特定的角色或风格。
- 使用分隔符明确指出输入的不同部分。
- 明确指定完成任务所需的步骤。
- 提供示例以帮助模型理解任务。
- 指定输出的期望长度。
2. 提供参考文本
如果你有关于你要写的主题的具体资料或例子,给AI看看。这样它就能提供更准确、更相关的内容。语言模型可能会创造虚假答案,尤其是在询问特定主题或要求引用和URL时。提供参考文本可以帮助模型提供更准确的答案。
▶具体操作:
- 指导模型使用参考文本来回答问题。
- 要求模型在回答时引用参考文本中的内容。
3. 将复杂任务分解为简单子任务
如果你有一个复杂的主题要写,试着把它分成几个小部分。比如,先写一个关于主题背景的部分,然后再写关于主要观点的部分。就像软件工程中将复杂系统分解为模块化组件一样,将任务提交给语言模型时也应采取类似的做法。复杂任务的错误率通常高于简单任务。复杂任务通常可以重新定义为一系列简单任务的工作流程。
▶具体操作:
- 使用意图分类来识别用户查询的最相关指令。
- 对于需要长时间对话的应用,总结或过滤之前的对话。
- 分段总结长文档,并递归地构建完整摘要。
4. 给模型时间"思考"
模型在立即回答问题时可能会犯更多的推理错误。要求模型在给出答案之前进行"思考链"可以帮助模型更可靠地推理出正确答案。
▶具体操作:
- 指导模型在急于得出结论之前先自行找出解决方案。
- 使用内部独白或一系列查询来隐藏模型的推理过程。
- 在之前的回答中询问模型是否遗漏了什么。
5. 使用外部工具
有时候结合使用AI和其他工具(比如数据搜索工具)可以得到更好的结果。利用其他工具的输出来补偿模型的不足。例如,文本检索系统可以向模型提供相关文档信息,代码执行引擎可以帮助模型进行数学计算和运行代码。
▶具体操作:
- 使用基于嵌入的搜索来实现高效的知识检索。
- 使用代码执行来进行更准确的计算或调用外部API。
- 让模型访问特定的功能。
6. 测试和调整
尝试不同的指令和方法,看看哪种效果最好,然后根据结果进行调整。使用黄金标准答案评估模型输出是一种有效的方法,用于确保AI模型的回答质量。
- 定义黄金标准答案:首先,确定一个问题的正确答案应该包含哪些已知事实。这些事实构成了评估AI回答的标准。
- 模型查询与事实对比:使用模型查询来生成答案,然后检查这个答案中包含了多少个所需的事实。
- 评估答案的完整性:根据答案中包含的事实数量来评估其完整性和准确性。如果一个答案包含了所有或大部分所需事实,那么可以认为这个答案是高质量的。
- 这种策略特别适用于需要精确和详细信息的场景,例如科学、技术或学术研究。通过与黄金标准答案的对比,可以有效地监控和提高AI模型的输出质量。
高质量的提示词
- 你能简单解释一下[Xxx主题]的概念吗?总结主要原则并举例说明以利于理解。
- 我想学习[Xxx主题],请给我关于如何学习(技能)的分步说明,从基础开始,然后转向更困难的事情。请记住我是初学者。
- 关于[Xxx主题]我应该知道哪些关键术语?每次都列出每个术语的简短定义。
- 我希望你充当[Xxx主题]专家并就(特定问题)给我建议。
- 创建一个包含10个问题的[Xxx主题]测验问答,提出问题的时候记得我们之前的谈话。
- 用简单的词语描述和解释(概念1)和(概念2)之间的关系。
- 给我一些关干如何在学习[Xxx主题]时保持积极性的提示,解释为什么它会对我有益以及我可以用它做什么。
- 定义(术语)并提供几个可以在日常生活中使用的例子,定义应该完整但简单易懂,如果有复杂的词,请解释。
- 以下文字是关于[Xxx主题]的,请纠正所有错误和不正确的句子结构。如果主题有任何问题请向我报告:(把你的文字放在这里)。
- 充当[Xxx主题]的专家,我的目标是尽快学会(技能),列出最重要的事情让我掌握这个话题。
- 我才刚刚开始学习[Xxx主题],为[Xxx主题]定义最佳策略和技巧。
- 我希望你充当研究助理并为我提供5个可靠的资源来了解[Xxx主题]。每次都给我日期和来源链接。