Project Icon

foundation-model-benchmarking-tool

AWS基础模型基准测试工具

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

FMBench

在任何AWS生成式AI服务上对任何基础模型(FM)进行基准测试 [Amazon SageMaker、Amazon Bedrock、Amazon EKS、Amazon EC2或使用您自己的端点。]

Amazon Bedrock | Amazon SageMaker | Amazon EKS | Amazon EC2

PyPI 版本

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 (弗吉尼亚北部)
    us-west-2 (俄勒冈)
    us-gov-west-1 (GovCloud 西部)
  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仓库名单

支持

贡献者

参考文献

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

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号