TII的Falcon 180B基础模型现在可以通过Amazon SageMaker JumpStart获得

TII's Falcon 180B basic model is now available through Amazon SageMaker JumpStart.

今天,我们很高兴地宣布,由科技创新研究所(TII)开发的Falcon 180B基础模型已经通过Amazon SageMaker JumpStart提供给客户使用,可通过一键部署进行推理运行。Falcon 180B拥有1800亿个参数,并在一个庞大的3.5万亿标记数据集上进行了训练,是目前最大且性能最好的模型之一,其权重可以公开访问。您可以通过SageMaker JumpStart尝试这个模型,SageMaker JumpStart是一个机器学习(ML)中心,提供算法、模型和ML解决方案的访问,让您可以快速入门ML。在本文中,我们将介绍如何通过SageMaker JumpStart发现和部署Falcon 180B模型。

什么是Falcon 180B

Falcon 180B是TII发布的Falcon系列之一,是Falcon 40B的扩展版本,使用多查询注意力以实现更好的可扩展性。它是一个自回归语言模型,采用了优化的Transformer架构。它在3.5万亿个标记数据上进行了训练,主要包括来自RefinedWeb的网络数据(约占85%)。该模型有两个版本:180B和180B-Chat。180B是一个原始的预训练模型,适合大多数用例进行进一步的微调。180B-Chat更适合接受通用指令。Chat模型在与几个大规模对话数据集一起使用的聊天和指令数据集上进行了微调。

该模型根据Falcon-180B TII许可和可接受使用政策提供。

Falcon 180B由TII在Amazon SageMaker上进行训练,使用了大约4K个A100 GPU的集群。它使用了名为Gigatron的自定义分布式训练代码库,该代码库使用了带有ZeRO的3D并行性和自定义的高性能Triton内核。分布式训练架构使用Amazon Simple Storage Service(Amazon S3)作为唯一的数据加载和检查点写入和读取服务,这特别有助于工作负载的可靠性和操作简便性。

什么是SageMaker JumpStart

使用SageMaker JumpStart,机器学习从业者可以从不断增长的最佳基础模型列表中进行选择。机器学习从业者可以将基础模型部署到网络隔离环境中的专用SageMaker实例,并使用Amazon SageMaker进行模型训练和部署。

现在,您可以在Amazon SageMaker Studio中通过几个点击来发现和部署Falcon 180B,或者通过SageMaker Python SDK以编程方式进行部署,从而可以使用SageMaker的功能(如Amazon SageMaker Pipelines,Amazon SageMaker Debugger或容器日志)来推导模型性能和MLOps控制。该模型在AWS安全环境中部署,并在您的VPC控制下,有助于确保数据安全。Falcon 180B是可发现的,并且可以在提供所需实例的区域中进行部署。目前,在美国东部(弗吉尼亚北部)和美国西部(俄勒冈州)可用ml.p4de实例。

发现模型

您可以通过SageMaker Studio UI和SageMaker Python SDK访问基础模型,通过SageMaker JumpStart。在本节中,我们将介绍如何在SageMaker Studio中发现模型。

SageMaker Studio是一个集成的开发环境(IDE),提供一个单一的基于Web的可视界面,您可以在该界面中访问特定工具,执行所有的ML开发步骤,从数据准备到构建、训练和部署ML模型。有关如何入门和设置SageMaker Studio的详细信息,请参阅Amazon SageMaker Studio。

在SageMaker Studio中,您可以访问SageMaker JumpStart,其中包含预训练模型、笔记本和预构建解决方案,位于预构建和自动化解决方案下。

从SageMaker JumpStart首页,您可以浏览解决方案、模型、笔记本和其他资源。您可以在基础模型:文本生成轮播中找到Falcon 180B。

您还可以通过选择浏览所有文本生成模型或搜索Falcon来找到其他模型变体。

您可以选择模型卡片查看有关模型的详细信息,例如许可证、用于训练的数据以及如何使用。您还将找到两个按钮:部署打开笔记本,这将帮助您使用模型(下图显示了部署选项)。

部署模型

选择部署后,将开始模型部署。或者,您可以通过选择打开笔记本来通过示例笔记本进行部署。示例笔记本提供有关如何为推断和清理资源部署模型的端到端指导。

要使用笔记本进行部署,我们首先选择适当的模型,由model_id指定。您可以使用以下代码在SageMaker上部署所选模型:

from sagemaker.jumpstart.model import JumpStartModel

my_model = JumpStartModel(model_id="huggingface-llm-falcon-180b-chat-bf16") predictor = my_model.deploy()

这将使用默认配置(包括默认实例类型和默认VPC配置)在SageMaker上部署模型。您可以通过在JumpStartModel中指定非默认值来更改这些配置。要了解更多信息,请参阅API文档。部署完成后,您可以通过SageMaker预测器对部署的端点进行推断。请参阅以下代码:

payload = {
    "inputs": "用户:你好!\nFalcon:",
    "parameters": {"max_new_tokens": 256, "top_p": 0.9, "temperature": 0.6}
}
response = predictor.predict(payload)

推断参数控制端点上的文本生成过程。最大新令牌控制生成的模型输出的大小。请注意,这与单词数量不同,因为模型的词汇表与英语词汇表不同,每个令牌可能不是一个英语单词。温度控制输出中的随机性。较高的温度会导致更具创造性和幻觉性的输出。所有推断参数都是可选的。

这个180B参数模型占用335GB的空间,需要更多的GPU内存才能以16位精度进行推断。目前,JumpStart仅支持在ml.p4de.24xlarge实例上使用此模型。可以通过向JumpStartModel构造函数提供env={"HF_MODEL_QUANTIZE": "bitsandbytes"}关键字参数,并将instance_type="ml.p4d.24xlarge"指定给部署方法,在ml.p4d.24xlarge实例上部署8位量化模型。但是,请注意,此量化配置的每个令牌延迟大约慢5倍。

以下表格列出了SageMaker JumpStart中提供的所有Falcon模型以及每个模型的模型ID、默认实例类型、支持的最大总令牌数(输入令牌数和生成令牌数之和)和每个模型的典型响应延迟。

模型名称 模型ID 默认实例类型 最大总令牌数 每个令牌的延迟*
Falcon 7B huggingface-llm-``falcon-7b-bf16 ml.g5.2xlarge 2048 34毫秒
Falcon 7B Instruct huggingface-llm-``falcon-7b-instruct-bf16 ml.g5.2xlarge 2048 34毫秒
Falcon 40B huggingface-llm-``falcon-40b-bf16 ml.g5.12xlarge 2048 57毫秒
Falcon 40B Instruct huggingface-llm-``falcon-40b-instruct-bf16 ml.g5.12xlarge 2048 57毫秒
Falcon 180B huggingface-llm-``falcon-180b-bf16 ml.p4de.24xlarge 2048 45毫秒
Falcon 180B Chat huggingface-llm-``falcon-180b-chat-bf16 ml.p4de.24xlarge 2048 45毫秒

*每个令牌的延迟时间是根据本博客中提供的示例提示的中位响应时间提供的;该值将根据输入和输出序列的长度而变化。

Falcon 180B的推理和示例提示

Falcon模型可用于对任何文本进行文本完成。通过文本生成,您可以执行各种任务,例如回答问题、语言翻译、情感分析等等。端点接受以下输入有效负载模式:

有效负载 = {
    "inputs": str,
    (可选)"parameters": {
        "do_sample": bool,
        "max_new_tokens": int,
        "repetition_penalty": float,
        "return_full_text": bool,
        "stop": List[str],
        "seed": int,
        "temperature": float,
        "top_k": int,
        "top_p": float,
        "truncate": int,
        "typical_p": float,
        "best_of": int,
        "watermark": bool,
        "details": bool,
        "decoder_input_details": bool,
    }
}

您可以在text-generation-inference存储库中探索这些客户端参数的定义和默认值。

以下是一些示例示例提示和模型生成的文本。这里的所有输出都是使用推理参数{"max_new_tokens": 768, "stop": ["<|endoftext|>", "###"]}生成的。

构建网站可以通过10个简单的步骤完成:

输入 构建网站可以通过10个简单的步骤完成:

输出
- 选择一个域名
- 注册您的域名
- 选择一个网络主机
- 选择一个网站构建工具
- 创建您的网站
- 向您的网站添加内容
- 向您的网站添加页面
- 向您的网站添加图像
- 向您的网站添加视频
- 向您的网站添加社交媒体
1. 选择一个域名
域名是您的网站的地址。这是人们在浏览器中输入以找到您的网站的内容。例如,本网站的域名是。
在选择域名时,您应该选择一个容易记住并代表您的业务或网站的名称。您还应该确保该域名可用。您可以使用域名搜索工具检查域名是否可用。
2. 注册您的域名
选择了域名后,您需要注册它。这可以通过域名注册商完成。域名注册商是管理域名注册的公司。
注册域名时,您需要提供您的联系信息并选择一种付款方式。您还需要选择一个域名扩展名。最常见的域名扩展名是.com、.net和.org。
3. 选择一个网络主机
网络主机是为您的网站提供服务器空间的公司。在选择网络主机时,您应该选择一个可靠并提供良好客户支持的主机。您还应该确保主机提供您网站所需的功能。
4. 选择一个网站构建工具
网站构建工具是一种无需学习编码即可创建网站的工具。有许多不同的网站构建工具可供选择,因此您应该选择一个易于使用并提供所需功能的工具。
5. 创建您的网站
选择了网站构建工具后,您可以开始创建您的网站。您需要为您的网站选择一个模板,然后向您的网站添加内容。
6. 向您的网站添加内容
网站的内容是使您的网站独特的内容。您应该添加与您的业务或网站相关的内容。您可以向您的网站添加文本、图像、视频和其他类型的内容。
7. 向您的网站添加页面
一个网站由多个页面组成。您可以向您的网站添加任意数量的页面。每个页面应具有不同的目的。例如,您可以为主页、关于页面和联系页面各创建一个页面。
8. 向您的网站添加图像
图像可以使您的网站更具视觉吸引力。您可以通过将图像上传到您的网站或使用图像托管服务来向您的网站添加图像。
9. 向您的网站添加视频
视频也可以使您的网站更具视觉吸引力。您可以通过将视频上传到您的网站或使用视频托管服务来向您的网站添加视频。
10. 向您的网站添加社交媒体
社交媒体可以帮助您推广您的网站。您可以向您的网站添加社交媒体按钮,以便人们可以在社交媒体上分享您的网站。您还可以向您的网站添加社交媒体动态,以便人们可以看到您最新的社交媒体帖子。

在使用预训练模型生成长文本序列时,您可能会注意到这些序列并不一定适合对话场景。在展示微调的聊天模型在更大的对话提示集上的表现之前,接下来的两个示例演示了如何使用Falcon模型进行少样本上下文学习,即我们为模型提供训练样本。请注意,“少样本学习”不会调整模型权重 – 在此过程中,我们只对部署的模型进行推断,同时在输入上下文中提供少量示例以帮助指导模型输出。

输入
Tweet:“我讨厌手机没电。”
情感:消极
###
Tweet:“我的一天很棒:+1:”
情感:积极
###
Tweet:“这是文章的链接”
情感:中性
###
Tweet:“这个新的音乐视频太棒了”
情感:

输出
积极
###

输入
将英语翻译成法语:
sea otter => loutre de mer
###
peppermint => menthe poivrée
###
plush girafe => girafe peluche
###
cheese =>

输出
fromage
###

Falcon 180B-Chat的推断和示例提示

对于针对对话场景进行优化的Falcon 180B-Chat模型,聊天模型端点的输入可能包含聊天助手和用户之间的先前历史。您可以提出与迄今为止发生的对话有关的上下文问题。您还可以提供系统配置,例如定义聊天助手行为的角色。端点的输入有效负载与Falcon 180B模型相同,只是inputs字符串值应使用以下格式:

System: <一个可选的系统提示>
User: <可选的用户消息历史>
Falcon: <可选的聊天历史Falcon响应>
User: <当前用户消息>
Falcon:

以下是一些示例示例提示和模型生成的文本。所有输出都是使用推断参数{"max_new_tokens":256, "stop": ["\nUser:", "<|endoftext|>", " User:", "###"]}生成的。

输入
System: 您是一个有用的助手
User: 什么是Amazon SageMaker JumpStart?
Falcon: 

输出 
Amazon SageMaker JumpStart是Amazon SageMaker的一个功能,它提供了一组解决常见机器学习问题的解决方案。这些解决方案包括预构建的机器学习模型、算法和预配置的模型训练和部署设置。JumpStart还提供演示如何在各种用例中使用这些解决方案的示例笔记本。JumpStart的目标是帮助用户快速轻松地开始使用机器学习,而不需要广泛的机器学习专业知识。
User:

输入
User: 简单来说,相对论理论说明了
Falcon: 

输出 
1. 物理定律对于相对静止的所有观察者都是相同的。
2. 在真空中,光速对于所有观察者都是相同的,不论他们的运动状态或光源的运动状态。
3. 时间和空间是相对的,这意味着它们可以根据观察者的参考系而变化。
4. 质量和能量是可互换的,如著名的方程E=mc²所表达的那样。
User:

输入
User: 构建一个网站可以通过以下10个简单步骤完成:
Falcon: 

输出
1. 确定您网站的目的和目标。
2. 选择一个域名并注册它。
3. 选择一个网页托管提供商并注册一个计划。
4. 选择一个网站构建器或内容管理系统(CMS)进行使用。
5. 为您的网站选择一个主题或模板。
6. 自定义您的网站的设计和布局。
7. 向您的网站添加内容,包括文字、图片和视频。
8. 设置导航菜单和链接,使您的网站易于导航。
9. 测试您的网站以确保其正常运行并且适用于移动设备。
10. 发布您的网站并进行推广以吸引访问者。
User:

输入
System: 始终以一个俳句回答。
User: 我正在Amazon SageMaker JumpStart上部署一个大型语言模型。我应该做什么?
Falcon: 

输出
"JumpStart" 梦想,
轻松部署,愉悦扩展,
SageMaker 等待。

输入
System: 生成表格,总结此电子邮件中概述的选项。
User: 团队,我们必须对Goocrux v2的产品计划做出决策。第一个选项需要我们开发3周,并且可以达到80毫秒的性能,但意味着UI必须更改。第二个选项需要我们开发4周,并且可以达到60毫秒的性能,无需任何UI更改。第三个选项需要最长时间 - 开发6周,可以达到30毫秒的性能,无需任何UI更改。一个包含四列的Markdown表格:(1)选项ID,(2)开发时间,(3)性能,(4)UI更改。
Falcon: 

输出
| 选项ID | 开发时间 | 性能 | UI更改 |
| --- | --- | --- | --- |
| 1 | 3周 | 80毫秒 | 是 |
| 2 | 4周 | 60毫秒 | 否 |
| 3 | 6周 | 30毫秒 | 否 |

输入
System: 你总是将英语翻译成法语。
User: sea otter => loutre de mer
peppermint => menthe poivrée
plush girafe => girafe peluche
cheese =>
Falcon: 

输出
=> fromage

输入
System: 将用户提示分类为消极、积极或中性情感。使用简短的回答。
User: Tweet: "这个新的音乐视频太棒了"
Falcon: 

输出
"积极"

输入
User: 蛋黄酱的配方是什么?
Falcon: 

输出 
1. 在一个搅拌碗中,将1个蛋黄、1汤匙芥末酱和1汤匙柠檬汁搅拌均匀。
2. 在不断搅拌的同时,缓慢地滴入1杯植物油,直到混合物变稠并乳化。
3. 根据口味加入盐和胡椒调味。
4. 放入冰箱的密封容器中,可保存一周。
User:

在以下示例中,用户与助手讨论了巴黎的旅游景点。接下来,用户正在询问聊天助手推荐的第一个选项。

输入
系统:您是一个有用的旅行规划师。
用户:我要去巴黎,我应该去哪里?
Falcon:1. 埃菲尔铁塔:没有去巴黎的旅行是完整的,没有参观标志性的埃菲尔铁塔。
2. 卢浮宫博物馆:拥有世界上一些最著名的艺术品,包括《蒙娜丽莎》。
3. 巴黎圣母院:哥特式建筑的惊人典范,对于历史爱好者来说是必看的。
4. 香榭丽舍大街:世界上最著名的大街之一,街道两旁有商店、咖啡馆和剧院。
5. 蒙马特:一个迷人的街区,以其波西米亚氛围、街头艺术和城市壮丽景色而闻名。
6. 凡尔赛宫:距离巴黎只有一段短暂的火车旅程,这座华丽的宫殿曾经是法国王室的宝座。
7. 奥塞博物馆:位于一座旧火车站内,这座博物馆拥有令人印象深刻的印象派和后印象派艺术品藏品。
8. 圣礼拜堂:位于巴黎市中心的一颗隐秘之珠,这座中世纪教堂以其惊人的彩色玻璃窗而闻名。
9. 卢森堡花园:位于城市中心的一个美丽公园,非常适合野餐或悠闲散步。
用户:第一选项有什么特别之处?
Falcon:

清理

在完成笔记本运行后,确保删除您在过程中创建的所有资源,以停止计费。使用以下代码:

predictor.delete_model()
predictor.delete_endpoint()

结论

在本文中,我们向您展示了如何在SageMaker Studio中使用Falcon 180B开始并部署用于推理的模型。由于基础模型是预训练的,它们可以帮助降低训练和基础架构成本,并为您的用例提供定制化的支持。现在就访问SageMaker Studio中的SageMaker JumpStart开始吧。

资源

  • SageMaker JumpStart文档
  • SageMaker JumpStart基础模型文档
  • SageMaker JumpStart产品详情页面
  • SageMaker JumpStart模型目录