LangChain手記 Evalutation評估

整理并翻譯自DeepLearning.AI×LangChain的官方課程:Evaluation(源代碼可見)

基于LLM的應用如何做評估是一個難點,本節介紹了一些思路和工具。

“從傳統開發轉換到基于prompt的開發,開發使用LLM的應用,整個工作流的評估方式需要重新考慮,本節會介紹很多激動人心的概念。”

Evaluation 評估

構建一個上節課介紹過的QA chain:
在這里插入圖片描述
不同之處僅在于加了一個參數:chain_type_kwargs,內部指定了一個doc的分隔符。

首先可以看一下數據示例:
在這里插入圖片描述

Hard-Code example 手動編寫的用例

最容易想到的評價方法是手動構建評價數據,然后觀察LLM的輸出是否和評價數據中已經給定的答案一致,手動構建評價數據永遠逃不過成本問題。

在這里插入圖片描述

LLM-Generated example LLM生成用例

可以考慮使用LLM生成代替人工編寫用例,下面介紹了一個生成QA用例的QAGenerationChain
在這里插入圖片描述
在這里插入圖片描述
可以把人工編寫的用例和生成的用例組合用來做評估,測試一下第一個query,得到如下回復:
在這里插入圖片描述

Manual Evaluation 人工評估

LangChain提供了debug模式,可以像下面這樣開啟:
在這里插入圖片描述
再次測試第一個query,LangChain會打印整個過程中的信息:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
通過設置debug標志位為False關閉debug模式:
在這里插入圖片描述

LLM assisted evaluation LLM輔助評估

基于現階段LLM已經具備比較強的能力,可以使用LLM來輔助做評估

在前面構建的所有用例生成結果:
在這里插入圖片描述
一共有7條用例,所以跑了7次。

LangChain提供了QAEvalChain來進行QA場景的評估,使用方式如下:
在這里插入圖片描述
在這里插入圖片描述
下面我們來看一下模型輸出和評估Chain評估的結果:
在這里插入圖片描述

Example 0:
Question: Do the Cozy Comfort Pullover Set have side pockets?
Real Answer: Yes
Predicted Answer: The Cozy Comfort Pullover Set, Stripe does have side pockets.
Predicted Grade: CORRECTExample 1:
Question: What collection is the Ultra-Lofty 850 Stretch Down Hooded Jacket from?
Real Answer: The DownTek collection
Predicted Answer: The Ultra-Lofty 850 Stretch Down Hooded Jacket is from the DownTek collection.
Predicted Grade: CORRECTExample 2:
Question: What is the weight of each pair of Women's Campside Oxfords?
Real Answer: The approximate weight of each pair of Women's Campside Oxfords is 1 lb. 1 oz.
Predicted Answer: The weight of each pair of Women's Campside Oxfords is approximately 1 lb. 1 oz.
Predicted Grade: CORRECTExample 3:
Question: What are the dimensions of the small and medium Recycled Waterhog Dog Mat?
Real Answer: The dimensions of the small Recycled Waterhog Dog Mat are 18" x 28" and the dimensions of the medium Recycled Waterhog Dog Mat are 22.5" x 34.5".
Predicted Answer: The small Recycled Waterhog Dog Mat has dimensions of 18" x 28" and the medium size has dimensions of 22.5" x 34.5".
Predicted Grade: CORRECTExample 4:
Question: What are some features of the Infant and Toddler Girls' Coastal Chill Swimsuit?
Real Answer: The swimsuit features bright colors, ruffles, and exclusive whimsical prints. It is made of four-way-stretch and chlorine-resistant fabric, ensuring that it keeps its shape and resists snags. The swimsuit is also UPF 50+ rated, providing the highest rated sun protection possible by blocking 98% of the sun's harmful rays. The crossover no-slip straps and fully lined bottom ensure a secure fit and maximum coverage. Finally, it can be machine washed and line dried for best results.
Predicted Answer: The Infant and Toddler Girls' Coastal Chill Swimsuit is a two-piece swimsuit with bright colors, ruffles, and exclusive whimsical prints. It is made of four-way-stretch and chlorine-resistant fabric that keeps its shape and resists snags. The swimsuit has UPF 50+ rated fabric that provides the highest rated sun protection possible, blocking 98% of the sun's harmful rays. The crossover no-slip straps and fully lined bottom ensure a secure fit and maximum coverage. It is machine washable and should be line dried for best results.
Predicted Grade: CORRECTExample 5:
Question: What is the fabric composition of the Refresh Swimwear V-Neck Tankini Contrasts?
Real Answer: The body of the Refresh Swimwear V-Neck Tankini Contrasts is made of 82% recycled nylon and 18% Lycra? spandex, while the lining is made of 90% recycled nylon and 10% Lycra? spandex.
Predicted Answer: The Refresh Swimwear V-Neck Tankini Contrasts is made of 82% recycled nylon with 18% Lycra? spandex for the body and 90% recycled nylon with 10% Lycra? spandex for the lining.
Predicted Grade: CORRECTExample 6:
Question: What is the fabric composition of the EcoFlex 3L Storm Pants?
Real Answer: The EcoFlex 3L Storm Pants are made of 100% nylon, exclusive of trim.
Predicted Answer: The fabric composition of the EcoFlex 3L Storm Pants is 100% nylon, exclusive of trim.
Predicted Grade: CORRECT
?```視頻接下來介紹了為什么要使用LLM來做評估:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/73ac80581ea243d981b0db3ede2d5d8a.png)
在一個自然語言生成場景下(比如前面介紹的QA),模型的輸出可以是任意字符,因而無法通過字符完全匹配(是否相等)、字符部分匹配(是否含有子串)、正則(更復雜的匹配方式)來判定輸出是否正確。以上圖為例,真實答案“Yes”和模型的輸出“The Cozy Comfort Pullover Set, Stripe does have side pockets.”是完全不同的字符,無法通過字符匹配來判定相等,但是具備語義理解能力的LLM能夠判定它們在語義上相等,這是傳統字符匹配做不到的。
### LangChain 可視化評估工具
LangChain提供了可視化的評估工具`LangChainPlus`(可能需要額外安裝和配置),該工具會自動記錄在python notebook上的運行歷史。
![在這里插入圖片描述](https://img-blog.csdnimg.cn/89a584e6f74843a9af67e719ff185cbb.png)
可以點擊可視化查看調用鏈,也可以點擊節點查看當前節點chain的詳細信息,包含輸入、輸出、時延、額外新信息(運行環境)等,如下圖:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/1bc61a5378934a248155957d17724f73.png)
點擊LLM Chain節點可以查看模型輸入:包含SYSTREM、HUMAN、模型輸出、模型輸出元信息等內容。
![在這里插入圖片描述](https://img-blog.csdnimg.cn/da19b50c29d740cab5c498f25e688722.png)
![在這里插入圖片描述](https://img-blog.csdnimg.cn/a9034d980ba54ddbb6ae8a136b2fe937.png)
右上角提供了一個【to Dataset】按鈕,點擊可以將當前的輸入輸出作為一個pair構建數據集,操作方式如下:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/aac46bc18f6e4862bf6227e9ded7fb2c.png)
如果當前沒有數據集,需要點擊【Create dataset】創建一個:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/26e015fa2877407a90d03822d723bf7f.png)
創建數據集:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/96c7b5798c68423a8427cd1376d9cf57.png)
將當前QA Chain的輸入輸出加入到剛剛創建的數據集內:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/827cf6901a9640478cc0b9888fa5f00d.png)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40874.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40874.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40874.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 終端會話中,啟動任務并放到后臺運行

一、需求 linux要執行一個腳本,耗時很長,想要腳本在后臺運行,用戶注銷或終端軟件關閉時也可以繼續運行。 二、實現 1、nohup命令 腳本在后臺運行 nohup 是在 Linux 和類 Unix 系統中使用的一個命令,用于在后臺運行程序&#x…

Python爬蟲——scrapy_當當網圖書管道封裝

創建爬蟲項目 srcapy startproject scrapy_dangdang進入到spider文件里創建爬蟲文件(這里爬取的是青春文學,仙俠玄幻分類) srcapy genspider dang http://category.dangdang.com/cp01.01.07.00.00.00.html獲取圖片、名字和價格 # 所有的se…

c語言——查找特定字符在字符串中出現的次數

fgets 函數用于從標準輸入(stdin)中讀取一行字符串, 并將其存儲在指定的字符數組 str 中。 sizeof str/sizeof str[0] 是用來計算字符數組 str 的大小。 這個表達式計算的結果是字符數組 str 可以容納的元素個數(包括…

【IMX6ULL驅動開發學習】07.驅動程序分離的思想之平臺總線設備驅動模型和設備樹

一、驅動程序分離的思想 【IMX6ULL驅動開發學習】05.字符設備驅動開發模板(包括讀寫函數、poll機制、異步通知、定時器、中斷、自動創建設備節點和環形緩沖區)_阿龍還在寫代碼的博客-CSDN博客 之前編寫驅動程序的代碼存在不少弊端:移植性差…

數學建模之“聚類分析”原理詳解

一、聚類分析的概念 1、聚類分析(又稱群分析)是研究樣品(或指標)分類問題的一種多元統計法。 2、主要方法:系統聚類法、有序樣品聚類法、動態聚類法、模糊聚類法、圖論聚類法、聚類預報法等。這里主要介紹系統聚類法…

神經網絡基礎-神經網絡補充概念-25-深層神經網絡

簡介 深層神經網絡(Deep Neural Network,DNN)是一種具有多個隱藏層的神經網絡,它可以用來解決復雜的模式識別和特征學習任務。深層神經網絡在近年來的機器學習和人工智能領域中取得了重大突破,如圖像識別、自然語言處…

Windows環境下安裝RabbitMQ

1.消息隊列中間件簡介 消息隊列中間件是分布式系統中重要的組件,主要解決應用耦合,異步消息,流量削鋒等問題實現高性能,高可用,可伸縮和最終一致性。 使用較多的消息隊列有 ActiveMQ(安全)&…

【腳踢數據結構】隊列(順序和鏈式)

(??? ),Hello我是祐言QAQ我的博客主頁:C/C語言,Linux基礎,ARM開發板,軟件配置等領域博主🌍快上🚘,一起學習,讓我們成為一個強大的攻城獅!送給自己和讀者的一句雞湯🤔&…

Ant Design Vue 下拉框輸入框 可以輸入 可以查詢

Ant Design Vue 下拉框 可以輸入 可以查詢 直接上代碼 效果圖 &#xff08;輸入內容查詢后端 返回下拉的值 &#xff0c;如何查詢后端是空的直接 把輸入的內容 賦值給 輸入框&#xff09; 在這里插入圖片描述 <template><div><a-selectv-model.lazy"i…

WPF CommunityToolkit.Mvvm

文章目錄 前言ToolkitNuget安裝簡單使用SetProperty&#xff0c;通知更新RealyCommandCanExecute 新功能&#xff0c;代碼生成器ObservablePropertyNotifyCanExecuteChangedForRelayCommand其他功能對應關系 NotifyPropertyChangedFor 前言 CommunityToolkit.Mvvm&#xff08;…

自適應AI chatgpt智能聊天創作官網html源碼

我們致力于開發先進的自適應AI智能聊天技術&#xff0c;旨在為用戶提供前所未有的聊天體驗。通過融合自然語言處理、機器學習和深度學習等領域的頂尖技術&#xff0c;我們的智能聊天系統能夠準確理解用戶的需求并給出相應的回應。 我們的自適應AI智能聊天系統具備以下核心特點…

MySQL面試題二

1、關系型和非關系型數據庫的區別&#xff1f; 關系型數據庫的優點 容易理解&#xff0c;因為它采用了關系模型來組織數據。 可以保持數據的一致性。 數據更新的開銷比較小。 支持復雜查詢&#xff08;帶 where 子句的查詢&#xff09; 非關系型數據庫&#xff08;NOSQL&#x…

fiddler抓包問題記錄,支持https、解決 tunnel to 443

fiddler下載安裝步驟及基本配置 fiddler抓包教程&#xff0c;如何抓取HTTPS請求&#xff0c;詳細教程 可能遇到的問題及解決方案 1. 不能正常訪問頁面&#xff08;所有https都無法訪問&#xff09; 解決方案&#xff1a;查看下面配置是否正確 Rules-customization 找到 OnB…

Vue中路由緩存問題及解決方法

一.問題 Vue Router 允許你在你的應用中創建多個視圖&#xff0c;并根據路由來動態切換這些視圖。默認情況下&#xff0c;當你從一個路由切換到另一個路由時&#xff0c;Vue Router 會銷毀前一個路由的組件實例并創建新的組件實例。然而&#xff0c;有時候你可能希望保持一些頁…

【推薦】深入淺出學習Spring框架【中】

目錄 1.AOP是什么? 2.案列&#xff1a; 3.spring的aop的專業術語 4.代碼模擬 4.1 前置通知 3.2.后置通知 3.3.環繞通知 3.4.異常通知 3.5.過濾通知 1.AOP是什么? 面向切面編程&#xff08;Aspect-Oriented Programming&#xff09;是一種編程范式&#xff0c;它的主要…

第十四屆中國大學生服務外包大賽細品,上百支隊伍與合合信息用AI共克“記賬”難題

前言 熟悉我的小伙伴應該知道我在大學時期參與了很多競賽&#xff0c;我向來對比賽是比較熱枕的&#xff0c;以我個人觀點&#xff0c;我認為可以通過競賽激發學習激情和檢驗自己的技能水平掌握情況&#xff0c;大學生很少有機會能夠了解到課堂之外市場的需求&#xff0c;外包…

P1123 取數游戲

取數游戲 題目描述 一個 N M N\times M NM 的由非負整數構成的數字矩陣&#xff0c;你需要在其中取出若干個數字&#xff0c;使得取出的任意兩個數字不相鄰&#xff08;若一個數字在另外一個數字相鄰 8 8 8 個格子中的一個即認為這兩個數字相鄰&#xff09;&#xff0c;求…

JWT(JSON Web Token )令牌

1、介紹 jwt就是將原始的json數據格式進行了安全的封裝&#xff0c;這樣就可以直接基于jwt在通信雙方安全的進行信息傳輸了。 2、jwt組成 第一部分&#xff1a;Header(頭&#xff09;&#xff0c; 記錄令牌類型、簽名算法等。 例如&#xff1a;{"alg":"HS256…

EXCEL按列查找,最終返回該列所需查詢序列所對應的值,VLOOKUP函數

EXCEL按列查找&#xff0c;最終返回該列所需查詢序列所對應的值 示例&#xff1a;國標行業分類漢字&#xff0c;匹配id 使用VLOOKUP函數 第一參數&#xff1a;拿去查詢的值。 第二參數&#xff1a;匹配的數據。 Ps&#xff1a;Sheet1!$C 21 : 21: 21:E 117 &#xff0c;需要…

Redis系列(三):深入解讀Redis主從同步機制

首發博客地址 https://blog.zysicyj.top/ Redis高可靠靠什么保證&#xff1f; 為什么要提這個呢&#xff0c;因為Redis主從庫目的呢其實就是為了實現高可靠。上篇文章中我們說過Redis的AOF、RDB日志其實就是為了減少數據丟失&#xff0c;這是高可靠的一部分。 這篇文章呢&#…