赞
踩
大家对于AI模型理解和推理能力的的基准测试一定非常熟悉了,比如MMLU(大规模多任务语言理解)、GPQA(研究生级别知识问答)、GSMSK(研究生数学知识考察)、MATH(复杂数学知识推理)、MGSM(多语言数学知识问答)、Code(代码生成能力考察)等。随着AI能力逐渐应用到企业业务中,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%)。由于性能上相差不大,在模型选择上我们会根据成本和响应时间综合考虑。在文章后面,小李哥将会给大家介绍综合考虑的结果。
Claude 3-Opus-20240229
Gemini-1.5-pro-latest
GPT-4-1106-Preview
在成本和时间方面,各模型也表现出显著差异。例如,排名第一的Claude 3-Opus-20240229虽然准确率使其成为实际应用中的理想选择,但成本过于高昂,除了一些对准确度要求很高的场景之外(医疗、金融、法律等),综合来看并不适用于企业日常的AI场景。而Gemini-1.5-pro在保持高准确率的同时拥有极低的成本,准确率上与Claude 3 Opus也极为接近,最适用于企业日常中对预算有控制同时对性能要求较高的场景。同时Claude 3 Sonnet具有仅次于Gemini Pro 1.5的性价比,适用于在亚马逊云科技AWS上部署AI服务的企业(目前亚马逊云科技模型托管平台还不支持Gemini),更适用于亚马逊云科技生态的AI软件服务系统。
在亚马逊云科技上,有两种方式构建企业知识库。第一种为使用亚马逊云科技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模型、用户登录/管理/授权功能都已经帮助大家实现。直接可以一键部署。
git clone https://github.com/aws-samples/bedrock-claude-chat
- cd bedrock-claude-chat
- cd cdk
- npm ci
npm i -g aws-cdk
cdk deploy --require-approval never --all
- ✅ 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应用提供更强大、更高效的支持。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。