foundation-model-benchmarking-tool

foundation-model-benchmarking-tool

AWS基础模型基准测试工具

FMBench是一个用于基准测试AWS生成式AI服务上基础模型性能的Python工具。它支持在SageMaker、Bedrock、EKS和EC2等平台上评估开源、第三方和专有模型。FMBench可帮助用户比较不同模型和部署选项的性能和准确性,从而优化生成式AI工作负载。

FMBench基础模型AWS性能基准测试生成式AIGithub开源项目
<h1 align="center"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/6e65e3cb-5863-4b5e-bf5e-d95dd30ab828.png?raw=true" width="25"></img> FMBench </h1> <p align="center"> <p align="center">在任何AWS生成式AI服务上对任何基础模型(FM)进行基准测试 [Amazon SageMaker、Amazon Bedrock、Amazon EKS、Amazon EC2或使用您自己的端点。] <br> </p> <h4 align="center"><a href="" target="_blank">Amazon Bedrock</a> | <a href="" target="_blank">Amazon SageMaker</a> | <a href="" target="_blank">Amazon EKS</a> | <a href="" target="_blank">Amazon EC2</a></h4> <h4 align="center"> <a href="https://pypi.org/project/fmbench/" target="_blank"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/182e334a-df5a-4b3c-87de-19209b9867d6.svg" alt="PyPI 版本"> </a> </h4>

FMBench是一个Python包,用于对部署在任何AWS生成式AI服务上的任何基础模型(FM)进行性能基准测试和准确性评估,无论是部署在Amazon SageMaker、Amazon Bedrock、Amazon EKS还是Amazon EC2上。这些FM可以直接通过FMbench部署,或者如果它们已经部署,也可以通过FMBench支持的"使用自己的端点"模式进行基准测试。

以下是FMBench的一些显著特点:

  1. 高度灵活:它允许使用任何实例类型(g5p4dp5Inf2)、推理容器(DeepSpeedTensorRTHuggingFace TGI等)以及张量并行、滚动批处理等参数的组合,只要这些组合受底层平台支持。

  2. 可对任何模型进行基准测试:它可用于对开源模型、第三方模型以及企业使用自己数据训练的专有模型进行基准测试。基准测试包括性能基准测试和模型评估(基于真实标准的准确性测量)。🚨 新功能:在2.0.0版本中添加了由LLM评估员组成的评估小组进行模型评估 🚨

  3. 可在任何地方运行:它可以在任何可以运行Python的AWS平台上运行,如Amazon EC2、Amazon SageMaker,甚至AWS CloudShell。重要的是要在AWS平台上运行此工具,以确保互联网往返时间不会包含在端到端响应时间延迟中。

介绍视频

FMBench 介绍

为您的生成式AI工作负载确定最佳价格|性能服务堆栈

使用FMBench在任何AWS生成式AI服务上对LLM进行价格和性能(推理延迟、每分钟事务数)的基准测试。以下是FMBench生成的一个图表,用于帮助回答在Amazon SageMaker上托管的Llama2-13b模型的价格性能问题(图例中的实例类型已故意模糊处理,您可以在运行FMBench时生成的实际图表中找到它们)。

业务问题

为您的生成式AI工作负载确定最佳模型

使用FMBench通过LLM评估员小组(PoLL [1])来确定模型准确性。以下是FMBench生成的一个图表,用于帮助回答Amazon Bedrock上各种FM的准确性问题(图表中的模型ID已故意模糊处理,您可以在运行FMBench时生成的实际图表中找到它们)。

随提示大小变化的准确性轨迹

整体准确性

已进行基准测试的模型

本仓库的configs文件夹中提供了以下模型的配置文件。

Amazon SageMaker上的Llama3

Llama3现已在SageMaker上可用(阅读博客文章),您现在可以使用FMBench对其进行基准测试。以下是在ml.p4d.24xlargeml.inf2.24xlargeml.g5.12xlarge实例上对Llama3-8b-instructLlama3-70b-instruct进行基准测试的配置文件。

  • Llama3-8b-instructml.p4d.24xlargeml.g5.12xlarge上的配置文件
  • Llama3-70b-instructml.p4d.24xlargeml.g5.48xlarge上的配置文件
  • Llama3-8b-instructml.inf2.24xlargeml.g5.12xlarge上的配置文件

所有基准测试模型完整列表

模型EC2 g5EC2 Inf2/Trn1SageMaker g4dn/g5/p3SageMaker Inf2/Trn1SageMaker P4SageMaker P5Bedrock 按需吞吐量Bedrock 预置吞吐量
Anthropic Claude-3 Sonnet
Anthropic Claude-3 Haiku
Mistral-7b-instruct
Mistral-7b-AWQ
Mixtral-8x7b-instruct
Llama3.1-8b instruct
Llama3.1-70b instruct
Llama3-8b instruct
Llama3-70b instruct
Llama2-13b chat
Llama2-70b chat
Amazon Titan text lite
Amazon Titan text express
Cohere Command text
Cohere Command light text
AI21 J2 Mid
AI21 J2 Ultra
Gemma-2b
Phi-3-mini-4k-instruct
distilbert-base-uncased

本次发布的新功能

2.0.3

  1. 支持在EC2上进行基准测试的EFA目录。

2.0.2

  1. 代码清理、小bug修复和报告改进。

2.0.0

  1. 🚨 模型评估由**LLM评估员小组[1]**完成 🚨

发布历史

入门

FMBench作为Python包在PyPi上提供,安装后可作为命令行工具运行。所有包括指标、报告和结果在内的数据都存储在Amazon S3存储桶中。

[!重要] 💡 FMBench的所有文档都可在FMBench网站上获取 您可以在 SageMaker 笔记本或 EC2 虚拟机上运行 FMBench。这两种选择在文档中都有详细说明。您甚至可以将 FMBench 作为Docker 容器运行。以下还提供了 SageMaker 的快速入门指南。

👉 以下部分讨论的是运行 FMBench 工具,与基础模型实际部署的位置不同。例如,我们可以在 EC2 上运行 FMBench,但被测试的模型可能部署在 SageMaker 或 Bedrock 上。

快速入门

在 SageMaker 笔记本上运行 FMBench

  1. 每次运行 FMBench 都需要一个配置文件,其中包含有关模型、部署步骤和要运行的测试的信息。典型的 FMBench 工作流程包括直接使用 FMBench GitHub 仓库中 configs 文件夹中已提供的配置文件,或根据您自己的需求编辑已提供的配置文件(比如您想在不同的实例类型或使用不同的推理容器进行基准测试等)。

    👉 本仓库中包含一个简单的配置文件,其中标注了关键参数,请参见 config-llama2-7b-g5-quick.yml。该文件在 ml.g5.xlarge 实例和 ml.g5.2xlarge 实例上对 Llama2-7b 的性能进行基准测试。您可以按原样使用此配置文件进行快速入门。

  2. 使用下表中的按钮之一启动本仓库中包含的 AWS CloudFormation 模板。CloudFormation 模板在您的 AWS 账户中创建以下资源:Amazon S3 存储桶、Amazon IAM 角色和一个克隆了此仓库的 Amazon SageMaker 笔记本。创建的读取 S3 存储桶包含运行 FMBench 所需的所有文件(配置文件、数据集),而创建的写入 S3 存储桶将存储 FMBench 生成的指标和报告。CloudFormation 堆栈创建大约需要 5 分钟。

    AWS 区域链接
    us-east-1 (弗吉尼亚北部)<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/3ff8afd1-6e2a-4061-936d-c678c23df187.png">
    us-west-2 (俄勒冈)<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/3ff8afd1-6e2a-4061-936d-c678c23df187.png">
    us-gov-west-1 (GovCloud 西部)<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/3ff8afd1-6e2a-4061-936d-c678c23df187.png">
  3. CloudFormation 堆栈创建完成后,导航到 SageMaker 笔记本并打开 fmbench-notebook

  4. fmbench-notebook 中打开终端并运行以下命令。

    conda create --name fmbench_python311 -y python=3.11 ipykernel
    source activate fmbench_python311;
    pip install -U fmbench
    
  5. 现在您可以使用以下命令行运行 fmbench。我们将使用 CloudFormation 堆栈放置在 S3 存储桶中的示例配置文件进行快速首次运行。

    1. 我们使用 huggingface-pytorch-tgi-inference 推理容器,在 ml.g5.xlargeml.g5.2xlarge 实例类型上对 Llama2-7b 模型的性能进行基准测试。这个测试大约需要 30 分钟完成,花费约 0.20 美元。

    2. 它使用简单的 750 字等于 1000 个词元的关系来获得更准确的词元计数表示,要获得更准确的词元计数,请使用 Llama2 分词器(下一节提供了说明)。强烈建议为了获得更准确的词元吞吐量结果,您应该使用特定于正在测试的模型的分词器,而不是默认分词器。本文档后面提供了有关如何使用自定义分词器的说明

account=`aws sts get-caller-identity | jq .Account | tr -d '"'`
region=`aws configure get region`
fmbench --config-file s3://sagemaker-fmbench-read-${region}-${account}/configs/llama2/7b/config-llama2-7b-g5-quick.yml > fmbench.log 2>&1
  1. 打开另一个终端窗口,对fmbench.log文件执行tail -f命令,以查看运行时生成的所有跟踪信息。

    tail -f fmbench.log
    
  2. 👉 查看这些配置文件以了解SageMaker和Bedrock的流式支持:

    1. [config-llama3-8b-g5-streaming.yml](https://github.com/aws-samples/foundation-model-benchmarking-tool/blob/main/src/configs/llama3/8b/config-llama3-8b-g5-streaming.yml
    2. [config-bedrock-llama3-streaming.yml](https://github.com/aws-samples/foundation-model-benchmarking-tool/blob/main/src/configs/bedrock/config-bedrock-llama3-streaming.yml
  3. 生成的报告和指标可在sagemaker-fmbench-write-<替换为你的aws区域>-<替换为你的aws账户id>存储桶中找到。指标和报告文件也会下载到本地的results目录(由FMBench创建),基准测试报告以markdown文件形式保存为results目录中的report.md。你可以直接在SageMaker笔记本中查看渲染后的Markdown报告,或将指标和报告文件下载到你的机器上进行离线分析。

如果你想了解CloudFormation模板在幕后做了什么,请参阅带有详细说明的DIY版本

在GovCloud的SageMaker上运行FMBench

在GovCloud上运行FMBench不需要特殊步骤。上面的部分已提供了us-gov-west-1的CloudFormation链接。

  1. 通过Bedrock或其他服务提供的并非所有模型都在GovCloud中可用。以下命令展示了如何运行FMBench来对GovCloud中的Amazon Titan Text Express模型进行基准测试。更多详情请参阅Amazon Bedrock GovCloud页面。
account=`aws sts get-caller-identity | jq .Account | tr -d '"'`
region=`aws configure get region`
fmbench --config-file s3://sagemaker-fmbench-read-${region}-${account}/configs/bedrock/config-bedrock-titan-text-express.yml > fmbench.log 2>&1

结果

根据配置文件中的实验,FMBench运行可能需要几分钟到几小时不等。运行完成后,你可以在运行FMBench的目录中的本地results-*文件夹中找到报告和指标。报告和指标也会写入配置文件中设置的写入S3存储桶。

以下是FMBench生成的report.md文件的截图。 报告

对部署在不同AWS生成式AI服务上的模型进行基准测试(文档)

FMBench附带了用于对不同AWS生成式AI服务(如Bedrock、SageMaker、EKS和EC2,甚至你自己的端点)上的模型进行基准测试的配置文件。

改进

查看GitHub上的问题,并添加你认为可能对这个基准测试工具有益的迭代。

安全

有关更多信息,请参阅CONTRIBUTING

许可

该库采用MIT-0许可。请查看LICENSE文件。

Star历史

Star历史图表

@aws-samples/foundation-model-benchmarking-tool的Stargazers仓库名单

支持

贡献者

<a href="https://github.com/aws-samples/foundation-model-benchmarking-tool/graphs/contributors"> <img src="https://contrib.rocks/image?repo=aws-samples/foundation-model-benchmarking-tool" /> </a>

参考文献

<a id="1">[1]</a> Pat Verga等,"用陪审团替代法官:利用多样化模型小组评估LLM生成内容",arXiv:2404.18796,2024年。

编辑推荐精选

蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多