目錄
質量保證
數據集
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)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
開始使用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的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

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策略:Shopify首席執行官的宣言 向員工出售AI策略:Shopify首席執行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

視覺語言模型(VLMS)的綜合指南 視覺語言模型(VLMS)的綜合指南 Apr 12, 2025 am 11:58 AM

介紹 想像一下,穿過​​美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

閱讀AI索引2025:AI是您的朋友,敵人還是副駕駛? 閱讀AI索引2025:AI是您的朋友,敵人還是副駕駛? Apr 11, 2025 pm 12:13 PM

斯坦福大學以人為本人工智能研究所發布的《2025年人工智能指數報告》對正在進行的人工智能革命進行了很好的概述。讓我們用四個簡單的概念來解讀它:認知(了解正在發生的事情)、欣賞(看到好處)、接納(面對挑戰)和責任(弄清我們的責任)。 認知:人工智能無處不在,並且發展迅速 我們需要敏銳地意識到人工智能發展和傳播的速度有多快。人工智能係統正在不斷改進,在數學和復雜思維測試中取得了優異的成績,而就在一年前,它們還在這些測試中慘敗。想像一下,人工智能解決複雜的編碼問題或研究生水平的科學問題——自2023年

See all articles