本文探讨了使用大型语言模型(LLM)构建产品的关键经验教训,并分享了作者团队在过去一年中从实际应用中总结出的宝贵经验。文章分为三个部分:战术、运营和战略,本篇是第一部分,重点介绍了LLM的战术技巧,包括提示、检索增强生成、流程工程以及评估和监控。
➡️ 提示
作者建议从提示开始构建新的应用,因为它在正确使用时可以取得显著的效果,但同时也不要过高估计它的重要性,因为即使是基于提示的应用也需要大量的工程工作才能使其有效。 作者推荐了一些经过验证的提示技巧,包括: N-shot 提示 + 上下文学习:提供几个示例来演示任务,并使输出与预期相符。 思维链提示:鼓励LLM在返回最终答案之前解释其思考过程。 提供相关资源:通过检索增强生成(RAG)提供模型可以直接利用的文本片段,帮助模型更好地理解上下文。 作者强调了结构化输入和输出的重要性,并举例说明了如何使用结构化输入来帮助模型更好地理解输入,以及如何使用结构化输出来简化与下游系统的集成。 作者建议将大型提示分解成多个小型提示,每个提示只做一件事,并专注于做好这件事。 作者还建议仔细思考模型需要的上下文信息,并优化上下文结构,以突出上下文各个部分之间的关系。 ➡️ 信息检索/RAG
作者指出,RAG的有效性取决于检索到的文档的相关性、密度和细节。 作者建议不要忽视关键词搜索,将其作为基线并将其用于混合搜索。 作者认为,在大多数情况下,混合搜索效果最好,即使用关键词匹配来查找明显的匹配项,并使用嵌入来查找同义词、上位词和拼写错误,以及多模态(例如图像和文本)。 作者建议在新的知识方面优先考虑RAG而不是微调。 作者认为,即使出现了长上下文模型,RAG也不会过时。 ➡️ 调整和优化工作流程
作者建议使用分步、多轮“流程”来提高性能。 作者建议优先考虑确定性工作流程,因为它们更容易部署和调试。 作者建议使用缓存来降低成本和消除生成延迟。 作者建议在必要时进行微调,但要权衡其成本和收益。 ➡️ 评估和监控
作者建议创建一些基于断言的单元测试,这些测试基于真实的输入/输出样本,并根据至少三个标准来预期输出。 作者建议使用LLM作为评判者来评估其他LLM的输出,但要意识到它不是万能的。 作者建议使用“实习生测试”来评估生成,即如果将相同的输入和上下文提供给相关专业的普通大学生,他们是否能够成功完成任务? 作者警告说,过度强调某些评估指标可能会损害整体性能。 作者建议将标注简化为二元任务或成对比较。 作者认为,无参考评估和护栏可以互换使用。 作者指出,LLM即使不应该生成输出也会生成输出,因此需要使用护栏来检测和过滤/重新生成不希望的输出。 作者认为,幻觉是一个顽固的问题,需要结合提示工程和事实不一致护栏来解决。 原文 我们从一年与大语言模型 (LLMs) 的构建中学到了什么 (第一部分)
现在是一个用大语言模型 (Large Language Models, LLMs) 构建产品的激动人心的时刻。在过去的一年里,LLMs 已经达到了“足够好”可以应用于实际场景的水平。LLMs 的进步速度加上社交媒体上的众多演示,预计将推动到 2025 年对人工智能的 2000 亿美元投资。LLMs 也广泛开放,使得不仅仅是机器学习工程师和科学家,所有人都可以将智能融入到他们的产品中。虽然构建 AI 产品的门槛已经降低,但要创建那些在演示之外也能有效的产品仍然是一个复杂的任务。
我们已经发现了一些开发基于 LLMs 产品的关键但常常被忽视的教训和方法。了解这些概念可以让你在无需机器学习专业知识的情况下,比大多数同行更具竞争力!在过去的一年里,我们六个人一直在构建基于 LLMs 的实际应用。我们意识到有必要将这些经验汇集在一起,造福社区。
我们来自不同的背景,担任不同的角色,但我们都亲身经历了使用这项新技术的挑战。我们中的两人是独立顾问,帮助众多客户将 LLM 项目从初始概念转化为成功的产品,看到了成功与失败的模式。我们中有一人是研究人员,研究机器学习/人工智能团队的工作方式及其工作流程的改进。我们中的两人在应用 AI 团队中担任领导职务:一人在科技巨头公司,另一人在初创公司。最后,我们中的一人教授过数千人学习深度学习课程,现在致力于使 AI 工具和基础设施更易于使用。尽管我们的经历不同,但我们惊讶地发现我们学到的经验有着一致的主题,这些见解没有被广泛讨论。
我们的目标是制作一个实用指南,帮助大家围绕 LLMs 构建成功的产品,从我们的经验中汲取教训,并指出行业中的一些例子。我们在过去的一年里亲自动手,获取了宝贵的经验,往往是通过艰难的方式。虽然我们不敢说代表整个行业,但我们在这里分享了一些对任何构建 LLM 产品的人都有用的建议和经验。...