目录
质量保证
数据集
3。部署
评估标记的数据集
首页 科技周边 人工智能 Langsmith的调试和测试LLMS的简介

Langsmith的调试和测试LLMS的简介

Mar 08, 2025 am 09:35 AM

>我最近找到了一个AI平台,该平台会自动从任何类型的媒体生成抽认卡。由于我喜欢用间距重复记忆的概念,因此我立即上传了XGBoost教程,并要求AI在其上创建50个抽认卡。

,但我很失望。大多数问题太容易了,很少有关于代码语法。更奇怪的是,有10%的问题是相同的,并且完全不明显 - “法国的首都是什么?”。 这些类型的错误表明缺乏适当的评估和对AI服务产生的产出的验证。也许他们不知道兰史密斯。

> Langsmith是一个完善的平台,用于测试,调试和评估LLM应用程序。也许,其最重要的功能是LLM输出评估和性能监控。在本教程中,我们将看到行动中的框架并学习将其应用于您自己的项目中的技术。

>让我们开始!

为什么langsmith?

正如我上面提到的,Langsmith是评估大型语言应用程序的综合平台。以下是它们带来的一些特征和切实的现实世界好处:

快速设置

>程序员可以在几分钟而不是小时内开始尝试Langsmith。这意味着小型团队或独奏开发人员可以在一个周末进行AI申请,并可能在周一之前运送付费服务。

质量保证

>使用严格的评估工具,公司可以避免AI发行错误的尴尬和成本(例如我在介绍中给出的示例)。 Langsmith允许您根据内置标准检查LLM的输出,例如乐于助人,连贯性,厌女症,甚至是自然语言的定制评估,例如“输出陈词滥调的内容?”或者,在抽认卡的情况下,“卡是否包含编码问题?”。

实时监视和可视化

langsmith使用痕迹来记录LLM运行的各个方面。这些包括标准,例如延迟,代币计数,运行价格和所有类型的元数据。 Web UI允许您使用自然语言来快速根据错误百分比,延迟,日期甚至文本内容来快速过滤运行。这意味着,例如,如果AI导师开始对其对实际学生的反应进行故障,则可以在几个小时内推出修复程序。

>

与Langchain

集成 Langchain是专门针对LLMS开发阶段的Langmith的父框架。它提供模块化软件设计,可链多个LLM(代理),并将它们与其他API(例如YouTube,Google Search等)集成在一起。 Langsmith是顶部的樱桃,确保使用Langchain制造的原型通过使用其强大的评估和监视工具来按预期进行。

>与Langchain教程查看我们的LLM申请,以了解有关Langchain的更多信息。

数据集

Langsmith的另一个重要功能是数据集。它们可用于在部署前针对一组标准化示例来改善兰链链,代理或模型。例如,我们可能有一个包含两个列的CSV文件 - 以特定格式的抽认卡的问题和答案。

>通过将此文件转换为参考数据集,我们可以使用前面提到的质量保证指标来指示LLMS评估其自己的输出。

>我们现在将通过一对一的示例看到所有这些功能。

>

> llm应用程序开发工作流程

在ML应用程序开发中,您可以收集数据,训练,微调,测试和部署模型 - 这些步骤定义明确。但是,使用LLM应用程序,您通常会从供应商的现成模型开始。微调?那可能很昂贵。因此,您将专注于制定正确的提示 - 这全都是向您的LLM应用程序提出正确的问题。将其视为需要大量提示来测试内容,就像您需要大量的数据以进行良好的ML模型一样。

但是,在提示下,您正在处理进出的文本,而不是数字。因此,测量错误或准确性的通常方法,例如MSE或跨凝性,在这里不工作。另外,想象一下阅读所有输入和输出以进行评估 - 如果您有成千上万的提示进行评估,那将需要几天的时间。

>

因此,您需要一个工作流程,这一切都涉及有效地创建和测试这些提示,以查看LLM应用程序的表现,而不会淹没手动检查。这是可能的样子:

1。开发

在此阶段,您将使用Langchain之类的框架制作应用程序的基础。对于抽认卡生成器项目,您的原型可能包括供应商所选LLM顶部的多个组件。例如,您可能需要将其链接到:

检索器:搜索引擎API,Web刮板

文档加载程序:文件输入 - PDF,文本,CSV,JSON,剪贴板,YouTube,搜索等
    聊天加载程序
  • >向量存储
  • 嵌入模型
  • >回调
  • 等等(请参阅可以从Langchain Docs的此页面中添加哪种组件)。但是,您可以通过使用Langchain提供的普通高级任务的现成连锁店大幅度缩短开发时间。
  • >
  • 2。生产
  • 在此阶段,您将针对尽可能多的方案测试您的应用程序。这意味着您必须确保每个添加的组件效果很好,链条良好,并产生一致的高质量输出。
给定的LLM是非确定性的(它们不会为相同的输入产生相同的输出)和添加组件的复杂性,您将在此阶段将大部分时间花费在此阶段。朗史密斯的发展是使这段时间尽可能短的唯一目的。我们将在整个教程中进行更多讨论。

>

3。部署

>拥有可行的应用程序后,您可以将其部署为REST API。 REST API基本上将您现有的Langchain链或代理转换为其他人可以发送请求以与您的AI模型进行交互的HTTPS链接。现在,您将构建服务的用户界面,例如桌面应用程序,或者更常见的是网站。

>现在,没有简单的方法可以做到这一点,但是Langchain开发人员即将释放Langserve,这将集成到Fastapi中(那真是太棒了?)。查看文档此页面的潜行峰。

>

现在,让我们终于开始用langsmith进行修补。

>

langsmith平台概述

>我们将从理解Web UI开始。它可通过Smith.langchain.com链接获得。对于访问,您必须注册并从候补名单中清除,因为它目前处于封闭的beta中。

>但是,一旦您进入,着陆页将看起来像这样:

>

Langsmith的调试和测试LLMS的简介

>两个主要部分是项目和数据集和测试,并且可以通过Python SDK来操纵这两个部分。该平台还具有用于部署和注释队列的选项卡,但它们超出了本文的范围。

设置Langmith Python SDK

通过其Python SDK,在Langsmith中管理项目的管理要容易得多,该SDK通过API密钥连接到平台。

。 要获取钥匙,请单击平台中的密钥图标,然后将其保存在安全的地方。然后,在具有新的虚拟环境初始化的新目录中,创建一个.env文件。内部,粘贴以下两行:

接下来,在您的终端中,运行以下命令以安装langsmith和python-dotenv读取环境变量:

LANGCHAIN_API_KEY="LangSmith-API-key"
OPENAI_API_KEY="Your-OPENAI-key"
登录后复制
登录后复制
登录后复制
登录后复制
现在是时候编写代码了:

>

python-dotenv to read environment variables:
pip install -U langsmith
pip install python-dotenv
登录后复制
登录后复制
登录后复制
我们导入find_dotenv和load_dotenv函数以读取环境变量,并使用OS设置它们:

import warnings

from dotenv import find_dotenv, load_dotenv

warnings.filterwarnings("ignore")
登录后复制
登录后复制
登录后复制
>将langchain_tracing_v2设置为true启用跟踪(记录),这对于调试LLMS至关重要。之后,我们初始化一个客户与Langsmith平台进行交谈:

>客户包含在Langsmith中操纵项目和资产的高级命令。我们将使用的客户端的第一个命令是创建一个新项目:
import os

load_dotenv(find_dotenv())
os.environ["LANGCHAIN_API_KEY"] = str(os.getenv("LANGCHAIN_API_KEY"))
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
登录后复制
登录后复制
登录后复制

成功运行后,您可以在Web UI的“项目”部分中查看列出的项目:>
from langsmith import Client

# Initialize a client
client = Client()
登录后复制
登录后复制
登录后复制

import uuid

# Create id
uid = uuid.uuid4()
# Create a unique name
PROJECT_NAME = "flashcards-generator-" + str(uid)
# Create the project
session = client.create_project(
   project_name=PROJECT_NAME,
   description="A project that generates flashcards from user input",
)
登录后复制
登录后复制
登录后复制
接下来,我们需要将新项目设置为默认值,并使用另一个环境变量:>

现在,我们需要一个llm来进行我们的项目。我们将使用GPT-3.5 Turbo,因为它便宜,但是您可以使用Langchain提供的许多其他型号。 Openai模型是通过Chatopenai类初始化的。

Langsmith的调试和测试LLMS的简介

>让我们进行第一次运行:

LANGCHAIN_API_KEY="LangSmith-API-key"
OPENAI_API_KEY="Your-OPENAI-key"
登录后复制
登录后复制
登录后复制
登录后复制

>如果您快速从UI检查项目,则会看到上述运行跟踪(已记录):

Langsmith的调试和测试LLMS的简介

>设置环境变量和客户端时,我们会自动启用日志记录。如您所见,我们已经有一堆关于运行的元数据。

Langsmith的调试和测试LLMS的简介

让我们再运行几个提示:

python-dotenv to read environment variables:
pip install -U langsmith
pip install python-dotenv
登录后复制
登录后复制
登录后复制
>我们已经可以构建一个基本的文本摘要。让我们总结一下上次运行的输出:>

太好了,现在是时候创建我们的第一个数据集了。

>
import warnings

from dotenv import find_dotenv, load_dotenv

warnings.filterwarnings("ignore")
登录后复制
登录后复制
登录后复制
在langmith

中创建一个未标记的数据集

>正如我在“ LLM应用程序开发工作流程”部分中提到的,您可能需要创建或收集数千个提示来评估您的LLM模型,链条或代理。因此,像我们上面所做的那样,运行那些一对一的人并不是最好的做法。

>

出于这个原因,Langsmith提供了三种类型的数据集:>

键值(KV) - 默认值:将输入定义为任意键值对。在评估需要多个输入或返回多个输出的链条和代理时,它们很有用。

>

llm数据集(LLM):输入和输出是在llms -string in,string out的“完成样式”中定义的。
    >聊天数据集(CHAT):这些是从LLM CHATS转换并使用结构化输入和序列化消息定义的数据集。
  • 首先,让我们看看如何创建一个没有输出的键值数据集。我们将使用客户端的create_dataset函数:
  • 现在,让我们添加三个输入,每个输入都要求LLM创建一个抽认卡:

>如果您浏览UI的数据集选项卡,则将看到每个提示符都列出了null输出:
import os

load_dotenv(find_dotenv())
os.environ["LANGCHAIN_API_KEY"] = str(os.getenv("LANGCHAIN_API_KEY"))
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
登录后复制
登录后复制
登录后复制

from langsmith import Client

# Initialize a client
client = Client()
登录后复制
登录后复制
登录后复制

现在,让我们使用run_on_dataset函数在一行代码中运行所有提示:

Langsmith的调试和测试LLMS的简介>运行完成后,它将在数据集页面上列出。这是它的外观:

import uuid

# Create id
uid = uuid.uuid4()
# Create a unique name
PROJECT_NAME = "flashcards-generator-" + str(uid)
# Create the project
session = client.create_project(
   project_name=PROJECT_NAME,
   description="A project that generates flashcards from user input",
)
登录后复制
登录后复制
登录后复制

>我们刚刚在未标记的数据集上进行了测试 - 一个带有示例提示的数据集但没有示例输出。我们的测试只是对每个提示产生了回应,但没有评估任何问题。但是我们想执行基本检查,例如“输出有帮助吗?”或“响应是短的还是长的”?

>

langsmith允许我们使用内置的评估者进行此类检查。 Langsmith的调试和测试LLMS的简介评估langmith

中的LLMS

>使用数据集中的三个提示来运行简洁性和连贯性评估,我们可以使用RunevalConfig类:

LANGCHAIN_API_KEY="LangSmith-API-key"
OPENAI_API_KEY="Your-OPENAI-key"
登录后复制
登录后复制
登录后复制
登录后复制
上面的

,我们在称为评估者的列表中定义了两个标准。我们将这些评估器传递给RUN_ON_DATASET函数的评估参数:

python-dotenv to read environment variables:
pip install -U langsmith
pip install python-dotenv
登录后复制
登录后复制
登录后复制

> run_on_dataset是一个有用的功能,可以使用提供的LLM在数据集中运行所有提示,并随时执行任何类型的评估。它的结果将在每个数据集的专用页面上可见:

>

Langsmith的调试和测试LLMS的简介

这次,每个提示的运行都具有连贯性和简洁性指标。在底部,您还将看到每个度量的平均分数。

要查看所有内置标准的列表,请运行以下片段:>

import warnings

from dotenv import find_dotenv, load_dotenv

warnings.filterwarnings("ignore")
登录后复制
登录后复制
登录后复制
当然,并非所有LLM用例都可以与基本评估者一起检查。例如,没有评估者可以检查抽认卡是否包含编码问题。因此,我们最好定义它:

>通过自然语言传递自定义标准,我们只需将{“ criteria_name”:“检查状态”}传递给标准类。上面,我们正在创建两个额外的评估器,因此Langsmith将在数据集中的提示所产生的输出的顶部运行两个其他提示:
import os

load_dotenv(find_dotenv())
os.environ["LANGCHAIN_API_KEY"] = str(os.getenv("LANGCHAIN_API_KEY"))
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
登录后复制
登录后复制
登录后复制
>

>如果您查看运行,您将看到我们在每个提示下定义的自定义标准。如果您徘徊,您将获得LLM的推理:
from langsmith import Client

# Initialize a client
client = Client()
登录后复制
登录后复制
登录后复制
>

Langsmith的调试和测试LLMS的简介

通过检查所有提示的评估结果,您会发现我们的标准未按预期进行评估。因此,这是要考虑的事情 - 您还需要提示设计标准以确保它们检查正确的内容。Langsmith的调试和测试LLMS的简介>

创建标记的数据集

有时,您可以决定创建一个带有预期输出(例如标记为数据集)的提示数据集。您可以以各种格式创建标记的数据集,但也许最常见的数据集是CSV文件。例如,这是我用chatgpt生成的文件,其中包含pytorch语法上的五个问题:

为了创建一个数据集,我们可以使用upload_csv函数:>

Langsmith的调试和测试LLMS的简介该函数具有三个必需的参数:CSV路径和输入/输出列的名称。一旦上传完成,数据集将出现在UI中:>

import uuid

# Create id
uid = uuid.uuid4()
# Create a unique name
PROJECT_NAME = "flashcards-generator-" + str(uid)
# Create the project
session = client.create_project(
   project_name=PROJECT_NAME,
   description="A project that generates flashcards from user input",
)
登录后复制
登录后复制
登录后复制
>让我们从本数据集的上一节中运行我们的自定义标准:

>如果您转到数据集页面并查看运行,我们可以看到每个自定义标准的平均分数:

>

Langsmith的调试和测试LLMS的简介

评估标记的数据集

用自然语言编写的内置和自定义评估器

主要用于未标记的数据集。对于我们上传的标记数据集,例如我们上传的CSV数据集,Langsmith提供了更全面的评估者,以衡量对提示的响应的正确性:>

    > context_qa(上下文Q&A):在评估正确性
  • 的同时使用示例输出作为上下文
  • > QA(Q&A):使用参考输出
  • > cot_qa(经过思考链问答):类似于Context_QA,但是该评估者迫使LLM在达成裁决之前使用经过思考的推理。
  • >
让我们在示例中尝试最后一个:

LANGCHAIN_API_KEY="LangSmith-API-key"
OPENAI_API_KEY="Your-OPENAI-key"
登录后复制
登录后复制
登录后复制
登录后复制
> cotqa标准返回一个称为上下文准确性的分数,如下面的GIF(也在UI中)中所示:

>

Langsmith的调试和测试LLMS的简介

请访问Langsmith文档的Langchain评估员部分,以了解有关评估人员的更多信息。

结论

在阅读本教程后,您对Langsmith确实是一个及时工程的工具,您将是正确的!目前,Langsmith是确保LLM的说明和输出的最佳框架实际上是您想要的。

>您还必须意识到构建生产级LLM应用程序所需的精力。因此,在从事LLM项目时,请使用Langsmith进行更流畅的体验。

>

>如果兰史密斯的某些概念没有意义,那么您可能缺乏兰班林的一些基本原理。以下是一些资源:

兰链介绍数据工程

    在Langchain中构建上下文感知聊天机器人
  • > langchain
  • 的及时工程
  • >如何使用langchain
  • 构建LLM应用程序
  • > Langchain Docs
  • langsmith docs

以上是Langsmith的调试和测试LLMS的简介的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

最佳AI艺术生成器(免费付款)创意项目 最佳AI艺术生成器(免费付款)创意项目 Apr 02, 2025 pm 06:10 PM

本文回顾了AI最高的艺术生成器,讨论了他们的功能,对创意项目的适用性和价值。它重点介绍了Midjourney是专业人士的最佳价值,并建议使用Dall-E 2进行高质量的可定制艺术。

开始使用Meta Llama 3.2 -Analytics Vidhya 开始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

最佳AI聊天机器人比较(Chatgpt,Gemini,Claude&更多) 最佳AI聊天机器人比较(Chatgpt,Gemini,Claude&更多) Apr 02, 2025 pm 06:09 PM

本文比较了诸如Chatgpt,Gemini和Claude之类的顶级AI聊天机器人,重点介绍了其独特功能,自定义选项以及自然语言处理和可靠性的性能。

顶级AI写作助理来增强您的内容创建 顶级AI写作助理来增强您的内容创建 Apr 02, 2025 pm 06:11 PM

文章讨论了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的写作助手,重点介绍了其独特的内容创建功能。它认为Jasper在SEO优化方面表现出色,而AI工具有助于保持音调的组成

10个生成AI编码扩展,在VS代码中,您必须探索 10个生成AI编码扩展,在VS代码中,您必须探索 Apr 13, 2025 am 01:14 AM

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

向员工出售AI策略:Shopify首席执行官的宣言 向员工出售AI策略:Shopify首席执行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

AV字节:Meta' llama 3.2,Google的双子座1.5等 AV字节:Meta' llama 3.2,Google的双子座1.5等 Apr 11, 2025 pm 12:01 PM

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

选择最佳的AI语音生成器:评论的顶级选项 选择最佳的AI语音生成器:评论的顶级选项 Apr 02, 2025 pm 06:12 PM

本文评论了Google Cloud,Amazon Polly,Microsoft Azure,IBM Watson和Discript等高级AI语音生成器,重点介绍其功能,语音质量和满足不同需求的适用性。

See all articles