内容提要
本文讨论了使用大语言模型(LLMs)构建产品的经验和方法,包括提示设计、上下文学习、检索增强生成、工作流程设计以及评估和监控的最佳实践。作者强调了保护措施的重要性,以捕捉不适当或有害的内容,并提出了评估方法来衡量模型输出的质量和准确性。文章还提到了挑战和解决方案,以及实际应用的案例。
延伸解读
提示设计:从简单开始,避免“万能提示”
文章强调提示设计应保持简洁,避免将多个任务塞进一个提示。随着边缘情况增多,提示词容易膨胀,反而降低常见输入的表现。建议将复杂任务拆解为多个专注的小提示,分别迭代和评估。例如,会议摘要可分解为提取关键信息、检查一致性、生成摘要三步。这种方法借鉴了软件工程中避免“万能对象”的反模式,有助于提高可靠性和可维护性。
RAG 与微调:优先选择检索增强生成
文章指出,对于注入新知识,RAG 通常比微调更有效且成本更低。研究显示,RAG 在已知和全新知识上的表现均优于无监督微调,且在农业数据集上超越有监督微调。RAG 的优势包括易于更新索引、可删除有害文档、支持多租户隔离。尽管长上下文模型兴起,但 RAG 仍必要,因为需要选择信息、避免干扰、控制成本。因此,不要急于抛弃 RAG。
评估与监控:LLM-as-Judge 的实用技巧
文章推荐使用 LLM-as-Judge 评估输出,但需注意方法。建议采用成对比较而非绝对评分,控制位置偏差(交换顺序两次),允许平局,使用链式思维提示,并控制回复长度。这些技巧能提高评估稳定性。文章还提到,通过迭代记录和审查,人类与 LLM 判断一致性可从 68% 提升至 94%。但 LLM-as-Judge 并非万能,传统分类器在部分任务上更准确、成本更低。
保护措施与评估:一体两面
文章将保护措施和评估视为无参考评估的一体两面。保护措施捕捉不适当内容,评估衡量输出质量。例如,摘要评估可基于输入文档检查事实一致性和相关性,低分则可不展示,起到保护作用。LLM 可能在不该生成时生成输出,如自信返回不存在的值。因此,需结合提示工程和生成后防护,如内容审核 API 和 PII 检测。事实不一致发生率约 5-10%,需通过 CoT 和防护措施降低。
Q&A
使用大语言模型构建产品的主要挑战是什么?
主要挑战包括生成不当内容、评估模型输出的复杂性以及微调模型的高成本。
提示设计在使用大语言模型中的重要性是什么?
提示设计可以显著提高模型的输出质量和可靠性,是构建成功应用的关键步骤。
什么是检索增强生成(RAG),它的优势是什么?
RAG是一种通过提供相关文本片段来增强模型知识的方法,能够减少幻觉并提高用户信任。
如何评估大语言模型的输出质量?
可以通过创建包含断言的单元测试、使用LLM作为评估者以及进行成对比较来评估输出质量。
在构建基于LLMs的产品时,如何优化工作流程?
可以通过将复杂任务拆分为多个简单任务、采用确定性工作流程和使用结构化输出来优化工作流程。
使用大语言模型时,如何防止生成不当内容?
可以通过设计强有力的保护措施和使用内容审核API来检测和过滤不当输出。