為企業知識庫選模型?全球AI大模型知識庫RAG場景基準測試排名

大語言模型常見基準測試

大家對于AI模型理解和推理能力的的基準測試一定非常熟悉了,比如MMLU(大規模多任務語言理解)、GPQA(研究生級別知識問答)、GSMSK(研究生數學知識考察)、MATH(復雜數學知識推理)、MGSM(多語言數學知識問答)、Code(代碼生成能力考察)等。隨著AI能力逐漸應用到企業業務中,AI模型也逐漸應用到企業知識庫問答。

RAG測試集H2ogpte和國際熱門AI模型表現

今天小李哥分享的是目前全球最熱門模型在知識庫RAG場景下的性能表現,本次才用的基準測試集為Github上的開源測試集:enterprise-h2ogpte。基準測試數據集包括PDFs和圖片等文件。

測試的主要模型包括了Anthropic的Claude 3系列、Open AI的Chat GPT-4、Google的Gemini Pro以及Mistral AI Large模型等國際上最熱門的模型。榜單里也加入了測試的準確度、成本和響應速度,為開發者和企業的LLM模型選擇提供了參考。

在最新的RAG基準測試中,Claude 3 模型展示了其強大的性能和穩定性,榮登榜首。此次基準測試評估了多款領先的語言模型,結果顯示,Claude 3 模型在各項指標中表現優異,特別是在通過率和準確率方面。

同時ChatGPT-4、Meta Llama3和Gemini Pro 1.5緊隨其后,性能表現上差距非常小(小于3%)。由于性能上相差不大,在模型選擇上我們會根據成本和響應時間綜合考慮。在文章后面,小李哥將會給大家介紹綜合考慮的結果。

Top3測試結果展示

  1. Claude 3-Opus-20240229

    • 通過次數:124
    • 失敗次數:0
    • 準確率:100%
    • 成本:18.515
    • 時間:4869
  2. Gemini-1.5-pro-latest

    • 通過次數:121
    • 失敗次數:3
    • 準確率:97.5806%
    • 成本:0.925
    • 時間:4604.47
  3. GPT-4-1106-Preview

    • 通過次數:120
    • 失敗次數:4
    • 準確率:96.7742%
    • 成本:9.263
    • 時間:4494.09

其他值得關注的模型

  • Claude-3-sonnet?以96.7742%的準確率和3.714的低成本并列第3。
  • Mistral-large-latestMistral-small-latest 分別位居第6和第7,展示了Mistral系列模型的穩健性能,在RAG場景同樣具備優勢。
  • GPT-3.5-Turbo-1106GPT-3.5-Turbo-16k-0613 分別位列11和第13,繼續保持了GPT-3系列的優良表現。

成本與性能的權衡

在成本和時間方面,各模型也表現出顯著差異。例如,排名第一的Claude 3-Opus-20240229雖然準確率使其成為實際應用中的理想選擇,但成本過于高昂,除了一些對準確度要求很高的場景之外(醫療、金融、法律等),綜合來看并不適用于企業日常的AI場景。而Gemini-1.5-pro在保持高準確率的同時擁有極低的成本,準確率上與Claude 3 Opus也極為接近,最適用于企業日常中對預算有控制同時對性能要求較高的場景。同時Claude 3 Sonnet具有僅次于Gemini Pro 1.5的性價比,適用于在亞馬遜云科技AWS上部署AI服務的企業(目前亞馬遜云科技模型托管平臺還不支持Gemini),更適用于亞馬遜云科技生態的AI軟件服務系統。

如何在亞馬遜云科技上使用Claude 3大語言模型構建知識庫

在亞馬遜云科技上,有兩種方式構建企業知識庫。第一種為使用亞馬遜云科技AWS的模型托管平臺Amazon Bedrock自帶的知識庫功能。其中向量庫、向量模型、大語言模型和問答UI都已經集成到現成功能里,幫助用戶更高效、輕松地構建知識庫。

獲取知識庫回復代碼:

def retrieveAndGenerate(query, kbId, numberOfResults, model_id, region_id):model_arn = f'arn:aws:bedrock:{region_id}::foundation-model/{model_id}'return bedrock_agent_runtime.retrieve_and_generate(input={'text': query},retrieveAndGenerateConfiguration={'knowledgeBaseConfiguration': {'knowledgeBaseId': kbId,'modelArn': model_arn,'retrievalConfiguration': {'vectorSearchConfiguration': {'numberOfResults': numberOfResults,'overrideSearchType': "SEMANTIC", # optional'}}},'type': 'KNOWLEDGE_BASE'},)response = retrieveAndGenerate("In what year did Amazon’s annual revenue increase from $245B to $434B?", \
"<knowledge base id>", numberOfResults, model_id, region_id)['output']['text']

完整的請求API語法和響應內容如下:

POST /retrieveAndGenerate HTTP/1.1
Content-type: application/json{"input": { "text": "string"},"retrieveAndGenerateConfiguration": { "externalSourcesConfiguration": { "generationConfiguration": { "additionalModelRequestFields": { "string" : JSON value },"guardrailConfiguration": { "guardrailId": "string","guardrailVersion": "string"},"inferenceConfig": { "textInferenceConfig": { "maxTokens": number,"stopSequences": [ "string" ],"temperature": number,"topP": number}},"promptTemplate": { "textPromptTemplate": "string"}},"modelArn": "string","sources": [ { "byteContent": { "contentType": "string","data": blob,"identifier": "string"},"s3Location": { "uri": "string"},"sourceType": "string"}]},"knowledgeBaseConfiguration": { "generationConfiguration": { "additionalModelRequestFields": { "string" : JSON value },"guardrailConfiguration": { "guardrailId": "string","guardrailVersion": "string"},"inferenceConfig": { "textInferenceConfig": { "maxTokens": number,"stopSequences": [ "string" ],"temperature": number,"topP": number}},"promptTemplate": { "textPromptTemplate": "string"}},"knowledgeBaseId": "string","modelArn": "string","retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { ... },"numberOfResults": number,"overrideSearchType": "string"}}},"type": "string"},"sessionConfiguration": { "kmsKeyArn": "string"},"sessionId": "string"
}
HTTP/1.1 200
Content-type: application/json{"citations": [ { "generatedResponsePart": { "textResponsePart": { "span": { "end": number,"start": number},"text": "string"}},"retrievedReferences": [ { "content": { "text": "string"},"location": { "s3Location": { "uri": "string"},"type": "string"},"metadata": { "string" : JSON value }}]}],"guardrailAction": "string","output": { "text": "string"},"sessionId": "string"
}

知識庫提示詞樣例:

"""You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results. If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question. Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.
Here are the search results in numbered order:
<context>
$search_results$
</context>Here is the user's question:
<question>
$query$
</question>$output_format_instructions$Assistant:
"""

第二種方式則為使用亞馬遜云科技AWS推出的Github開源工程項目bedrock-claude-chat。包括前端、后端、向量庫、向量/LLM模型、用戶登錄/管理/授權功能都已經幫助大家實現。直接可以一鍵部署。

部署步驟:

Clone this repository

git clone https://github.com/aws-samples/bedrock-claude-chat

Install npm packages

cd bedrock-claude-chat
cd cdk
npm ci

Install AWS CDK

npm i -g aws-cdk

Deploy this sample project

cdk deploy --require-approval never --all

部署成功則能看到如下結果:

 ?  BedrockChatStack?  Deployment time: 78.57sOutputs:
BedrockChatStack.AuthUserPoolClientIdXXXXX = xxxxxxx
BedrockChatStack.AuthUserPoolIdXXXXXX = ap-northeast-1_XXXX
BedrockChatStack.BackendApiBackendApiUrlXXXXX = https://xxxxx.execute-api.ap-northeast-1.amazonaws.com
BedrockChatStack.FrontendURL = https://xxxxx.cloudfront.net

總結

此次基準測試的結果清晰地展示了Claude 3模型在當前語言模型領域中的領先地位。無論是在準確率還是在性能成本的平衡方面,Claude 3模型都表現出色。對于需要高精度和高可靠性的應用場景,Claude 3無疑是最佳選擇。

但是企業的模型選擇更會考慮到成本的控制,和用戶請求的響應時間和體驗。在這種場景下,使用谷歌的Gemini Pro 1.5則為更優質的選擇。如果想了解如何在谷歌云和亞馬遜云科技上使用各類AI模型,歡迎大家關注小李哥獲取未來更多國際前沿AI技術方案和動態。

隨著語言模型的不斷發展,期待在未來看到更多像Claude 3這樣的優秀模型,為各類AI應用提供更強大、更高效的支持。

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

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

相關文章

Zabbix監控軟件

目錄 一、什么是Zabbix 二、zabbix監控原理 三、zabbix 安裝步驟 一、什么是Zabbix ●zabbix 是一個基于 Web 界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。 ●zabbix 能監視各種網絡參數&#xff0c;保證服務器系統的安全運營&#xff1b;并提供靈活的…

python讀取寫入txt文本文件

讀取 txt 文件 def read_txt_file(file_path):"""讀取文本文件的內容:param file_path: 文本文件的路徑:return: 文件內容"""try:with open(file_path, r, encodingutf-8) as file:content file.read()return contentexcept FileNotFoundError…

Swagger的原理及應用詳解(十)

本系列文章簡介&#xff1a; 在當今快速發展的軟件開發領域&#xff0c;特別是隨著微服務架構和前后端分離開發模式的普及&#xff0c;API&#xff08;Application Programming Interface&#xff0c;應用程序編程接口&#xff09;的設計與管理變得愈發重要。一個清晰、準確且易…

【多線程】進程與線程

&#x1f3c0;&#x1f3c0;&#x1f3c0;來都來了&#xff0c;不妨點個關注&#xff01; &#x1f3a7;&#x1f3a7;&#x1f3a7;博客主頁&#xff1a;歡迎各位大佬! 文章目錄 1. 操作系統1.1 什么是操作系統1.2 操作系統主要的功能 2. 進程2.1 什么是進程2.2 通過PCB描述一…

jEasyUI 創建菜單按鈕

jEasyUI 創建菜單按鈕 jEasyUI(jQuery EasyUI)是一個基于jQuery的用戶界面插件集合,它為用戶提供了一系列的UI組件,如菜單、按鈕、表格等,以簡化Web頁面的開發過程。在本文中,我們將重點介紹如何使用jEasyUI創建菜單按鈕。 1. 環境準備 在開始之前,請確保您的開發環境…

使用Python繪制甘特圖

使用Python繪制甘特圖 甘特圖效果代碼 甘特圖 甘特圖是一種項目管理工具&#xff0c;用于展示項目進度和任務安排。它通過條狀圖形表示各任務的起止時間&#xff0c;便于直觀地查看項目的各個任務的進度和相互關系。 效果 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片…

(void) (_x == _y)的作用

在閱讀宋寶華的《Linux設備驅動開發詳解》一書時&#xff0c;看到下面這段代碼&#xff1a; #define min(x, y) ({ \ const typeof(x) _x (x); \ const typeof(y) -y (y); \ (void) (&_x &_y); \ _x < _y ? _x : _y; }) 這段代碼可以理解如…

變量和標識符

一、變量 變量 數據類型 變量名初始值 常量的定義方式 1.#define 宏常量 (Day是常量&#xff0c;一旦修改就會報錯) /2.const修飾的變量 #include <iostream> using namespace std; //變量 數據類型 變量名初始值 //常量的定義方式 //1.#define 宏常量 (Day是常量&…

Vue.js 基礎入門指南

前言 在前端開發的廣闊領域中&#xff0c;Vue.js 無疑是一顆璀璨的明星&#xff0c;以其漸進式框架的特性吸引了無數開發者的目光。Vue.js 旨在通過簡潔的 API 實現響應式的數據綁定和組合的視圖組件&#xff0c;使得構建用戶界面變得既快速又簡單。本文將帶你走進 Vue.js 的世…

學習探索RASP:下一代應用安全防護技術

在當今數字化浪潮中&#xff0c;各類信息系統、應用程序不僅是企業數字化轉型的驅動力&#xff0c;也成為了網絡攻擊的集中地帶。面對日益復雜多變的網絡安全威脅&#xff0c;防火墻等傳統防護手段逐漸顯得力不從心。在此背景下&#xff0c;尋求一種更為智能、高效且能深度融入…

代碼隨想錄算法訓練營第22天|LeetCode 77. 組合、216.組合總和III、17.電話號碼的字母組合

1. LeetCode 77. 組合 題目鏈接&#xff1a;https://leetcode.cn/problems/combinations/description/ 文章鏈接&#xff1a;https://programmercarl.com/0077.組合.html 視頻鏈接&#xff1a;https://www.bilibili.com/video/BV1ti4y1L7cv 思路&#xff1a;利用遞歸回溯的方式…

Codeforces Round 954 (Div. 3)

這里寫自定義目錄標題 A. X Axis題意&#xff1a;題解&#xff1a;代碼&#xff1a; B. Matrix Stabilization題意&#xff1a;題解&#xff1a;代碼&#xff1a; C. Update Queries題意&#xff1a;題解&#xff1a;代碼&#xff1a; D. Mathematical Problem題意&#xff1a;…

nanodiffusion代碼逐行理解之diffusion

目錄 一、diffusion創建二、GaussianDiffusion定義三、代碼理解def __init__(self,model,img_size,img_channels,num_classes,betas, loss_type"l2", ema_decay0.9999, ema_start5000, ema_update_rate1,):def remove_noise(self, x, t, y, use_emaTrue):def sample(…

MySQL 集群

MySQL 集群有多種類型&#xff0c;每種類型都有其特定的用途和優勢。以下是一些常見的 MySQL 集群解決方案&#xff1a; 1. MySQL Replication 描述&#xff1a;MySQL 復制是一種異步復制機制&#xff0c;允許將一個 MySQL 數據庫的數據復制到一個或多個從服務器。 用途&…

bug——多重定義

bug——多重定義 你的問題是在C代碼中遇到了"reference to data is ambiguous"的錯誤。這個錯誤通常發生在你嘗試引用一個具有多重定義的變量時。 在你的代碼中&#xff0c;你定義了一個全局變量data&#xff0c;同時&#xff0c;C標準庫中也有一個名為data的函數模板…

【云原生】Kubernetes部署高可用平臺手冊

部署Kubernetes高可用平臺 文章目錄 部署Kubernetes高可用平臺基礎環境一、基礎環境配置1.1、關閉Swap1.2、添加hosts解析1.3、橋接IPv4流量傳遞到iptables的鏈 二、配置Kubernetes的VIP2.1、安裝Nginx2.2、修改Nginx配置文件2.3、啟動服務2.4、安裝Keepalived2.5、修改配置文件…

Linux 定時任務詳解:全面掌握 cron 和 at 命令

Linux 定時任務詳解&#xff1a;全面掌握 cron 和 at 命令 Linux 系統中定時任務的管理對于運維和開發人員來說都是至關重要的。通過定時任務&#xff0c;可以在特定時間自動執行腳本或命令&#xff0c;提高系統自動化程度。本文將詳細介紹 Linux 中常用的定時任務管理工具 cr…

一拖二快充線:生活充電新風尚,高效便捷解決雙設備充電難題

一拖二快充線在生活應用領域的優勢與雙接充電的便攜性問題 在現代快節奏的生活中&#xff0c;電子設備已成為我們不可或缺的日常伴侶。無論是智能手機、平板電腦還是筆記本電腦&#xff0c;它們在我們的工作、學習和娛樂中扮演著至關重要的角色。然而&#xff0c;隨著設備數量…

優化:遍歷List循環查找數據庫導致接口過慢問題

前提&#xff1a; 我們在寫查詢的時候&#xff0c;有時候會遇到多表聯查&#xff0c;一遇到多表聯查大家就會直接寫sql語句&#xff0c;不會使用較為方便的LambdaQueryWrapper去查詢了。作為一個2024新進入碼農世界的小白&#xff0c;我喜歡使用LambdaQueryWrapper&#xff0c;…

產品經理系列1—如何實現一個電商系統

具體筆記如下&#xff0c;主要按獲客—找貨—下單—售后四個部分進行模塊拆解