你的大模型应用表现真的好吗?借助 Dify + Langfuse 一探究竟

背景介绍

众所周知,大模型应用的输出存在着一些不确定性,往往需要迭代多轮才能得到较为稳定的输出结果,因此开发者往往需要关注大模型应用的实际表现,并进行有针对性的优化。

然而常规 Web 服务的监控机制往往无法满足大模型应用的监控需求,因为大模型应用往往关注的不仅仅是响应延迟、吞吐量等基础指标,而是需要关注大模型应用输出的语义正确性。因此,本文将介绍如何借助 Dify 和 Langfuse 工具,展示如何为大模型应用必要监控,方便进行有定向优化。

基础介绍

Dify

Dify 是一款热门的开源 LLMOps 服务,作为一个大模型应用的基础设施,可以帮助开发者快速构建 LLM 应用。关于 Dify 的介绍之前整理过很多,比如 大模型应用基础服务 Dify 深度解读, 感兴趣的可以去了解下,这边就不再深入展开了。

Langfuse

Langfuse 是一款开源的大模型应用监控服务,可以为大模型应用提供监控能力。比如面对 Dify 复杂的任务流,可以借助 Langfuse 跟踪各个基础环节输出的结果,方便深入定位问题。

除了常规的内容搜集与展示外,Langfuse 还有两个值得重点关注的能力:

  1. LLM 评估,可以借助大模型评估现有业务输出的内容,充当 LLM-as-a-Judge 角色。考虑到大模型应用输出的都是大量的文本内容,常规的评估方式往往无法满足需求,因此借助 LLM 评估可以更精准快速地评估输出内容(这个功能目前 Langfuse 还处于实验阶段,私有化部署暂时还不支持,预计后续会很快上线);
  2. 数据集管理,数据集管理可以帮助我们通过批量标准手段快速测试大模型应用,在进行大模型应用优化时,可以借助数据集快速测试优化后的效果,避免负优化;

Dify 官方目前直接支持的监控方案为 LangSmith 和 Langfuse。 LangSmith 功能更强,但是需要付费,而且没有提供私有化部署的能力,因此 Langfuse 算是一个开源的经济方案。

部署与集成

服务部署

Dify 和 Langfuse 都提供了多种部署方案,常规情况下,如果希望进行私有化部署,基于 docker compose 的方案是最省心的。

Dify 的部署流程可以参考 Dify Docker Compose 部署

Langfuse 的部署流程可以参考 Langfuse Docker Compose 部署

服务集成

Dify 官方提供了对 Langfuse 的支持,因此可以在 Dify 应用中通过配置 Langfuse 地址,public key, secret key 信息,就可以快速集成 Langfuse 服务。

请添加图片描述

详细的服务集成的流程可以参考 Dify 官方文档中 Langfuse 集成

服务集成之后,在 Dify 应用中进行正常使用,就可以跟踪输出结果与应用中间环节的输出了,实际测试跟踪效果如下所示:

请添加图片描述

上图是一个 RAG 应用,可以看到 Langfuse 除了可以跟踪最终输出,右侧也可以看到中间知识检索的结果,方便深入定位各个环节中的问题。

数据集与自动化评估

在大模型应用的持续迭代中,为了验证迭代效果,往往会构建一个标准的自动化测试数据集 (Dataset)。基于标准的数据集与大模型自动化评估手段,可以快速直观看到优化后的效果差异。除此之外,Langfuse 也支持根据线上跟踪的情况动态新增数据集,比如可以将之前表现不佳的用户问题动态加入数据集,方便进行有针对性的优化:

请添加图片描述

数据集的构建

Langfuse 提供了 sdk 帮助快速构建数据集,构建数据集主要包含创建数据集,添加测试项。

创建测试集可以直接调用 create_dataset 方法:

langfuse.create_dataset(
    name="<dataset_name>",
### DIFY和VLLM模型概述 DIFY是一个用于构建和部署大型语言模型的应用框架,支持多种类型的模型和服务化接口。该平台允许开发者轻松上传自己的预训练模型并提供API服务给其他应用调用[^1]。 对于VLLM(Very Large Language Model),这是一种特指超大规模参数的语言理解与生成类AI系统。这类模型通常具备强大的自然语言处理能力,在文本摘要、问答对话等方面表现出色。具体实现细节会因不同版本而有所差异[^2]。 ### 安装配置指南 为了能够在本地环境中运行这些工具,首先需要准备一台具有适当硬件条件的工作站或云实例,并按照官方文档完成环境搭建工作: #### 安装OLLAMA ```bash pip install ollama ``` 接着参照特定说明来启动服务端程序以及加载所需的权重文件,比如Qwen2:7B这样的预训练成果。 #### 设置Xinference 如果打算利用Xinference来进行更复杂的任务,则需额外执行如下命令获取对应资源包: ```bash git clone https://www.modelscope.cn/ai-modelscope/bge-reranker-v2-m3.git ``` 之后依照指引调整配置选项直至成功激活Web界面为止[^3]。 ### 实际操作案例 假设现在要测试一个简单的场景——基于已有的知识库回答用户提问。此时可以先通过浏览器访问`http://localhost:9997/`确认一切正常运作;再编写一段Python脚本来发起请求示例代码如下所示: ```python import requests url = "http://localhost:9997/v1/completions" data = { 'prompt': '你好世界', 'max_tokens': 50, } response = requests.post(url, json=data).json() print(response['choices'][0]['text']) ``` 此段落展示了如何发送HTTP POST消息至指定路径从而获得由目标引擎产生的回复内容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易迟

高质量内容创作不易,支持下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值