LangSmith for the full product lifecycle: How Wordsmith quickly builds, debugs, and evaluates LLM performance in production

LangSmith for the full product lifecycle: How Wordsmith quickly builds, debugs, and evaluates LLM performance in production

了解Wordsmith(一款针对法律团队的AI助手)如何在其整个产品生命周期中使用LangSmith——从原型设计到评估,再到调试和实验。

阅读时间:5分钟

Wordsmith 是一款面向内部法律团队的AI助手,它利用基于客户知识库的LLM来审查法律文件、起草电子邮件和生成合同。与其他法律AI工具不同,Wordsmith拥有来自领先律师事务所的深厚领域知识,易于安装和使用。它可以无缝集成到电子邮件和消息传递系统中,自动为法律团队起草回复,模拟与团队中其他成员合作的感觉。

在过去几个月里,Wordsmith的LLM功能呈指数级增长,其工程团队需要更好地了解LLM的性能和交互情况。LangSmith对于理解生产环境中发生的事情以及衡量实验对关键参数的影响至关重要。下面,我们将逐步介绍LangSmith如何在产品开发生命周期的各个阶段提供价值。

原型设计与开发:通过分层跟踪处理复杂性

Wordsmith的第一个功能是为Slack构建一个可配置的RAG管道。现在,它已经发展到支持跨各种数据源和目标的复杂多阶段推理。Wordsmith会摄取Slack消息、Zendesk工单、拉取请求和法律文件,并在异构的领域和NLP任务上提供准确的结果。除了获得正确的结果外,他们的团队还需要利用来自OpenAI、Anthropic、Google和Mistral的LLM优化成本和延迟。

LangSmith已成为Wordsmith发展的重要组成部分,使工程师能够快速而自信地工作。凭借其作为跟踪服务的核心价值,LangSmith帮助Wordsmith团队透明地评估其复杂多阶段推理链中每个步骤LLM接收和生成的内容。推理的分层组织使他们能够在开发周期中快速迭代,比以前仅依赖Cloudwatch日志进行调试的速度快得多。

考虑以下代理工作流的快照,其中GPT-4创建了一个错误的Dynamo查询:

代理工作流中的无效Dynamo查询

这些工作流可能包含多达100个嵌套推理,这使得筛选通用日志以查找错误响应的根本原因变得耗时且痛苦。借助LangSmith开箱即用的跟踪界面,诊断中间步骤中的性能问题变得非常简单,从而大大加快了功能开发速度。

性能评估:使用LangSmith数据集建立基线

可重复的评估有助于区分有潜力的生成式AI演示与可投入生产的产品。使用LangSmith,Wordsmith发布了各种针对不同任务的评估集,例如RAG、代理工作负载、属性提取,甚至基于XML的变更集目标——促进其部署到生产环境。

这些静态评估集提供了以下关键优势:

  1. 评估集明确了Wordsmith功能的需求。通过强制团队编写一套正确的问答,他们为LLM设定了明确的期望和要求。
  2. 评估集使工程团队能够快速自信地迭代。例如,当Claude 3.5发布时,Wordsmith团队能够在一小时内将其性能与GPT-4进行比较,并在同一天将其发布到生产环境。如果没有明确定义的评估集,他们将不得不依赖临时查询,缺乏标准基线来自信地评估提议的更改是否改善了用户结果。
  3. 评估集允许Wordsmith团队在以准确性为主要约束的情况下优化成本和延迟。任务的复杂性并不统一,在可能的情况下使用更快、更便宜的模型已将特定任务的成本降低了高达10倍。与(2)类似,如果没有预定义的评估标准,这种优化将非常耗时且容易出错。
跟踪代理工作流随时间的准确性

运营监控:通过LangSmith过滤器快速调试

使LangSmith成为开发理想工具的相同可见性功能也使其成为Wordsmith在线监控套件的核心部分。团队可以立即将生产错误链接到其LangSmith跟踪,通过简单地遵循LangSmith URL而不是浏览日志,将推理调试时间从几分钟减少到几秒。

LangSmith的索引查询还可以轻松隔离与推理问题相关的生产错误:

生产环境中哪里出了问题?LangSmith使隔离问题变得容易

在线实验:通过标签启用实验分析

Wordsmith使用Statsig作为其功能标记/实验曝光库。利用LangSmith标签,可以轻松地将每个曝光映射到LangSmith中的相应标签,从而简化实验分析。

只需几行代码,我们就可以将每个实验曝光与相应的LangSmith标签关联起来

def get_runnable_config() -> RunnableConfig:
        llm_flags = get_all_llm_features() # 从Statsig获取实验
        return {
            "metadata": {
                "env": ENV,
            },
            "tags": [f"{flag}:{value}" for (flag, value) in llm_flags.items()] + [ENV], # 将实验与推理关联起来
        }


在LangSmith中,可以通过标签查询这些曝光,从而能够在实验组之间进行无缝分析和比较。

测试
比较

使用基本过滤器,他们可以获取LangSmith中的所有实验曝光,将其保存到一个新的数据集,并导出该数据集以进行下游分析。因此,LangSmith在Wordsmith产品的迭代实验和改进中发挥着至关重要的作用。

下一步:特定于客户的超参数优化

在产品生命周期的每个阶段,LangSmith都提高了Wordsmith团队的速度并增强了其对产品质量的可见性。展望未来,他们计划将LangSmith更深入地集成到产品生命周期中,并解决更复杂的优化挑战。

Wordsmith 的 RAG 管道包含一组广泛且不断增长的参数,这些参数控制着管道的运行方式。这些参数包括嵌入模型、分块大小、排序和重新排序配置等。通过将这些超参数映射到 LangSmith 标签(使用类似于其在线实验的技术),Wordsmith 旨在创建在线数据集,以针对每个客户和用例优化这些参数。随着数据集的增长,他们设想一个世界,在这个世界中,每个客户的 RAG 体验都会根据其数据集和查询模式自动优化。