可观察性
为什么是可观察性?
可观察性对于跨原型、测试和生产的大型语言模型(LLM)系统至关重要,原因有几个:
- 可见性:Observability提供了对LLM应用程序内部状态的详细见解,使开发人员能够理解系统行为。这种可见性对于识别和诊断问题以及调试至关重要。
- 生产要求:在生产环境中实施可观察性可以满足关键要求,包括监控、可扩展性、安全性和合规性。
- 再现性可观察性使开发人员能够观察和再现LLM系统行为。
- 持续改进:从可观察性数据中获得的见解可用于推动持续改进举措。
我们观察到哪些组件?
简短的回答是:一切!
LLM(大型语言模型)应用程序可以包含一个或多个LLM调用。了解单个API调用级别的详细信息以及应用程序级别的这些调用顺序至关重要:
-
个人LLM呼叫级别:在单个LLM API调用级别,LLM接收输入提示并生成输出。因此,我们可以监视和观察三个关键组件:输入提示、模型和输出。
-
应用程序级别:在应用层面,观察LLM调用的模式、逻辑和顺序非常重要。该序列决定了信息流、LLM的调用顺序以及执行的任务。
个人层面:我们可以观察到哪些组成部分?
为了实现有效的可观察性,我们需要监控和记录与LLM交互中涉及的每个组件的每个版本的详细信息。以下是可观察性工具中要观察的内容和一些预期模块的细分:
输入提示
- 提示模板
- 用于生成输入提示的标准化格式或结构,包括模板中的任何占位符或变量。
- 观察性工具通常提供社区或组织可以使用和共享的提示模板注册表。
- 示例
- 上下文学习中很少有镜头在快速工程中是有效的。可以使用具体的例子或样本输入来指导模型的响应。
- 检索上下文
- 在检索增强生成(RAG)系统中,从外部源或数据库检索相关上下文,为LLM提供信息,使结果更加可靠。
- 记忆
- 存储在内存中的历史数据或以前的交互。
- 如何使用此内存来影响当前提示,例如总结过去的内存、检索相关内存或使用最近的内存。
- 工具
- 用于预处理或增强输入提示的任何工具或实用程序。
- 工具在LLM应用程序中变得越来越重要,成为现实生活中应用程序的桥梁。
- 这些工具应用的具体配置或设置及其影响。
模型
- 型号规格
- 所用模型的特定版本或标识符。
- 配置设置、超参数以及应用于模型的任何自定义设置。
输出
- 格式化
- 模型生成的输出的结构和格式。
应用层:我们可以观察到哪些工作流模式?
LLM系统通常由多个LLM组成。在应用程序级别,有特定的工作流模式,需要在工作流的每个步骤中具有特定的可观察性。以下是一些示例工作流:
- 抹布
- 除了从LLM生成步骤之外,RAG系统还包括文档检索步骤。需要额外的可观察性来跟踪和监视外部文档/数据集和检索步骤。
- LLM作为系统的一部分
- LLM系统可以涉及链接在一起的多个LLM, 流动工程学 通过各种迭代或复杂的多智能体系统,例如创建一个模拟世界。需要观察每个步骤的输入和输出,以了解整体系统行为,识别瓶颈,并确保系统的可靠性和性能。
- 微调
- 微调是一个独特的工作流,可能是更大工作流的一部分,也可能是另一个工作流的先决条件。它涉及准备微调数据集、上传数据、创建微调作业和使用微调模型。这些步骤中的每一个,特别是微调训练工作,都可以从可观察性中受益,以跟踪微调数据集,监控进度,识别问题,并确保微调模型的质量。
我们观察到哪些指标?
在LLM系统工作流程的每个步骤中,我们可以观察以下内容并设置总体服务水平目标(SLO)、警报和监控:
代币和成本
- 跟踪处理的令牌数量和相关成本。
痕迹和延迟
- 跟踪系统工作流程,观察和监控操作顺序。
- 测量和监控延迟,以识别性能瓶颈并确保及时响应。
异常和错误
- 及时发现系统内的问题。
- 构建用于测试的数据集
- 例如,从拇指向下的情况中理解模式和用例
- 随着时间的推移,监控错误率和负面反馈。
质量
在可观察性工具中,我们应该能够通过评估、反馈和注释来监控关键绩效指标:
- 评价
- 用于评估产出质量和相关性的指标和标准。
- 观察性工具通常提供全面的评估工具包,用于创建评估数据集、注释、评估和比较模型结果。
- 反馈意见
- 用户对输出的反馈,包括评级、评论和建议。
- 任何用于收集和分析用户反馈的自动反馈机制或系统。
- 注释
- 手动或自动注释添加到输出中以供进一步分析,并可能添加到评估或微调数据集中。
集成
MIUI与多个可观察性工具集成,帮助您监控和确保更可靠、更高性能的LLM应用程序。
与LangSmith整合
LangSmith在LLM应用程序开发生命周期中提供了可观察性。

赞成的意见:
- LangSmith与LangChain生态系统和外部系统兼容。
- 部署选项即将推出。
- 它提供了广泛的可观察区域,作为一个一体化平台。
MIUI集成示例:
- 所有的 langchain笔记本电脑 在MIUI的烹饪书中包括LangSmith整合。
下面是一个示例,当我们运行 纠正RAG示例 来自食谱。

与Langfuse整合
廊坊 是另一个可观察性平台,提供竞争、评估、提示管理和调试指标等功能。它非常适合简单的应用程序迭代、原型设计和评估。

赞成的意见:
MIUI集成示例:这是一个循序渐进的过程 例子 将Langfuse与MIUI整合,以及另一个 例子 我们使用LlamaIdex构建RAG应用程序,使用Langfuse观察步骤,并在PostHog中分析数据。

与Arize Phoenix整合
Phoenix是一个开源的可观察性库,专为实验、评估和故障排除而设计。它旨在支持代理、RAG管道和其他LLM应用程序。
赞成的意见:
- 开源(github),并基于OpenTetry构建
- 可以是 自托管,通过访问 云,或直接在 笔记本
- 提供 西北风一体化 自动跟踪Client.chat和Agent.chat调用
- 强大的分析平台,带有副驾驶代理,可帮助调试您的应用程序
MIUI集成示例:这是一个 示例笔记本 这展示了如何在凤凰城追踪MIUI聊天完成和工具调用。

与权重和偏差的整合
Weights&Biases是一个端到端的AI开发平台,用于ML和LLM工作流,用于微调和LLM应用程序构建。使用W&B Weave来评估、监控和迭代GenAI应用程序,并将W&B模型作为一个记录系统来训练、微调和管理AI模型。

赞成的意见:
- LLM应用程序开发和微调平台
- 与集成 API
- 首先添加一行:
weave.init(“我的项目”)
- 自动跟踪输入、输出、上下文、错误、评估指标和跟踪
- 首先添加一行:
- 与集成 MIUI微调服务
- 在微调的同时跟踪训练指标
- 比较训练实验
MIUI集成示例:
为了让你开始,你可以查看我们最近的网络研讨会“微调法学硕士法官以减少幻觉”和 烹饪书.
与PromptLayer集成
PromptLayer是一个用于快速管理、协作、监控和评估的平台。对黑客和生产团队都有好处。
赞成的意见:
- 无代码CMS用于提示管理和版本控制
- 对的本土支持
- 默认情况下,提示与模型无关
- 简单的快速跟踪和可观察性
MIUI集成:
与AgentOps集成
AgentOps是一个用于AI代理的开源可观察性和DevTool平台。它帮助开发人员构建、评估和监控AI代理。
赞成的意见:
- 开源
- 专为观察试剂而设计
- 考虑时间旅行
- 与CrewAI、AutoGen和LangChain集成
MIUI集成示例:
https://github.com/MIUIai/cookbook/blob/main/third_party/CAMEL_AI/camel_roleplaying_scraper.ipynb

与磷化物结合
磷 是一个文本分析平台,通过数据挖掘用户消息,可以轻松获得答案、做出决策并减少流失。

赞成的意见:
- 开源(github)平台
- 无代码聚类和分析
- 可定制的仪表板
- 与其他可观察性框架、语言、API的许多集成…
MIUI集成示例:
- 看看磷酸笔记本电脑在食谱中。
