为企业知识库选模型?全球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都已经集成到现成功能里,帮助用户更高效、轻松地构建知识库。

获取知识库回复代码:

python 复制代码
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语法和响应内容如下:

bash 复制代码
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"
}
bash 复制代码
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"
}

知识库提示词样例:

html 复制代码
"""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

bash 复制代码
git clone https://github.com/aws-samples/bedrock-claude-chat

Install npm packages

bash 复制代码
cd bedrock-claude-chat
cd cdk
npm ci

Install AWS CDK

bash 复制代码
npm i -g aws-cdk

Deploy this sample project

bash 复制代码
cdk deploy --require-approval never --all

部署成功则能看到如下结果:

bash 复制代码
 ✅  BedrockChatStack

✨  Deployment time: 78.57s

Outputs:
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应用提供更强大、更高效的支持。

相关推荐
jay神10 小时前
深度学习的优化器应该怎么选?
人工智能·python·深度学习·毕业设计·课程设计
程序喵大人10 小时前
【C++进阶】STL算法与函数对象 - 09 函数对象保存状态并复用规则
开发语言·c++·算法·stl·函数对象
Hello server12 小时前
DeepSeek Harness 深度体验:把「万物皆插件」做到极致的 AI 编程 Agent
人工智能
致Great15 小时前
DeepSeek Harness插件开发实战教程:我让它自己写了一个 arXiv 搜索插件
算法
驴友花雕16 小时前
【花雕动手做】行空板 K10 系列实验之人工智能语音识别小车的10个参考案例
人工智能·单片机·嵌入式硬件·语音识别·行空板 k10 系列实验·花雕动手做·小车的10个参考案例
火山引擎开发者社区18 小时前
DeepSeek-V4 Pro 发布,veStack Day 0 完成模型适配
人工智能
2501_9269783318 小时前
AGI 的四种瓶颈:资源型还是发现型--以及DSH的位置
人工智能·经验分享·笔记·ai写作
Q4639134918 小时前
线下销售复盘难落地,AI 会话设备能帮上啥忙
人工智能·自然语言处理
ebok.18 小时前
国产大模型落地业务系统的优选载体:京微智枢信创 AI 业务支撑平台
大数据·人工智能·低代码·ai