2024年7月23日, 亚马逊云科技的AI模型托管平台Amazon Bedrock正式上线了Meta推出的超级参数量大语言模型 - Llama 3.1模型,小李哥也迫不及待去体验和试用了该模型,那这么多参数量的AI模型究竟强在哪里呢?Llama 3.1模型是Meta(脸书)迄今为止最先进、最强大的模型。这一系列模型包含了参数大小分别为8B、70B 和 405B的模型,在多个行业热门基准测试中表现十分出色,并为生成式AI云端应用解锁了丰富、全新的无限可能。
在新一代版本中,所有Llama 3.1模型都支持128K上下文长度(相比Llama 3版本增加了120K tokens长度),这意味着新版本的模型其上下文处理能力是Llama 3模型的16倍!并且在多语言对话场景中表现出色,支持包括英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语在内的八种语言。
Meta推出的三款新模型是什么?
现在开发者们已经可以在亚马逊云科技的Amazon Bedrock服务中使用来自Meta的三款全新的 Llama 3.1 模型,帮助开发者构建、测试并负责任地扩展他们的生成式 AI创意应用:
-
Llama 3.1 405B
405B是全球公开可用的参数最多的大型语言模型,根据 Meta 的说法,这款模型为AI整个行业作为全新的模型标准,非常适合企业级应用和科研研发场景。该模型尤其适用于生成合成数据,从而帮助改进较小的Llama模型,以及通过模型蒸馏技术将知识传递给更小的模型(训练自定义模型)。Llama 3.1 405B在通用知识、长篇文本生成、多语言翻译、机器翻译、编程、数学、工具使用、增强的上下文理解以及高级推理和决策能力方面表现十分出色。 -
Llama 3.1 70B
70B非常适合内容创作、AI对话、语言理解、研发和开发者/企业应用场景。该模型在文本摘要、文本分类、情感分析和细微推理、语言建模、对话系统、代码生成和任务指令执行方面表现优异。 -
Llama 3.1 8B
更适合计算资源有限的场景。该模型在低延迟推理要求下,擅长文本摘要、文本分类、情感分析和语言翻译等简单任务。
Meta还对 Llama 3.1在150多个热门基准数据集上进行了性能测评,涵盖了多种语言类别,并通过人力评估进行了二次验证。如以下图表所示,Llama 3.1在所有主要基准类别中都优于Llama 3。
如何保障Llama AI大模型使用中的安全性?
开发者在使用Llama大模型时可以结合Llama 3.1的负责任AI功能,以及Amazon Bedrock提供的数据治理和模型评估特性,放心地构建安全且可靠的生成式 AI 应用。
Amazon Bedrock的安全防护措施(Guardrails)
通过为不同的模型使用场景创建多个配置不同的Guardrails,开发者可以为用户与生成式AI应用之间的交互建立安全保障。具体如下:
- 根据具体的用例和负责任的AI政策,实施自定义的保护措施。
- 持续监控和分析用户输入和模型响应,发现可能违反自定义安全策略的情况。
- 检测模型响应中的“幻觉”(即不基于自定义数据或与用户查询无关的回答)。
- 对不同模型(包括自定义和第三方模型)进行评估。
Amazon Bedrock 上的模型评估
开发者仅需可几步就可以对Amazon Bedrock上的模型进行评估、比较并选择适合使用场景的最佳Llama模型。通过Amazon Bedrock上的模型评估,开发者可以选择:
- 自动评估,评估预定义指标如准确性、鲁棒性和毒性。
- 人工评估,评估自定义指标如相关性、风格和与品牌声音的对齐度等。
- 提供内置的多个不同测试场景数据集,或者导入自定义数据集。
如何在亚马逊云科技上体验Llama3.1?
通过控制台界面使用Llama3.1
1. 进入亚马逊云科技控制台,点击Amazon Bedrock服务
2. 选择区域俄勒冈(Oregon),进入“Model Access”界面开启Llama 405B模型访问。
3. 再点击左侧菜单栏“Playgrounds”下的“Text”界面,选择模型“Llama 405B”。输入我们想问的问题,就可以得到最终的405B大模型回复了。
通过Shell命令行访问
同时我们可以用AWS CLI在shell命令行中调用Llama 3.1 405B大模型,我们运行以下命令。
aws bedrock-runtime invoke-model \
--model-id meta.llama3-1-405b-instruct-v1:0 \
--body "{\"prompt\":\" [INST]You are a very intelligent bot with exceptional critical thinking[/INST] I went to the market and bought 10 apples. I gave 2 apples to your friend and 2 to the helper. I then went and bought 5 more apples and ate 1. How many apples did I remain with? Let's think step by step.\",\"max_gen_len\":512,\"temperature\":0.5,\"top_p\":0.9}" \
--cli-binary-format raw-in-base64-out \
--region us-west-2 \
invoke-model-output.txt
参数解释:
1)aws bedrock-runtime invoke-model:调用模型推理的API方法
2) model-id meta.llama3-1-405b-instruct-v1:0:Llama 3.1 405B模型ID
3)body.prompt: 模型提示词
4)body.max_gen_len: 最大输出token
5) body. temperature、Top P:模型随机性参数
6)--cli-binary-format raw-in-base64-out:输出编码格式
7)--region us-west-2:模型所在区域
通过Python代码调用Llama 405B API
我们可以使用亚马逊云科技提供的Python SDK Boto3来调用访问Amazon Bedrock上的Llama 3.1 405B大模型,示例代码如下:
import boto3
from botocore.exceptions import ClientError
# Create a Bedrock Runtime client in the AWS Region you want to use.
client = boto3.client("bedrock-runtime", region_name="us-west-2")
# Set the model ID, e.g., Llama 3 8b Instruct.
model_id = "meta.llama3-1-405b-instruct-v1:0"
# Start a conversation with the user message.
user_message = "Describe the purpose of a 'hello world' program in one line."
conversation = [
{
"role": "user",
"content": [{"text": user_message}],
}
]
try:
# Send the message to the model, using a basic inference configuration.
response = client.converse(
modelId=model_id,
messages=conversation,
inferenceConfig={"maxTokens": 512, "temperature": 0.5, "topP": 0.9},
)
# Extract and print the response text.
response_text = response["output"]["message"]["content"][0]["text"]
print(response_text)
except (ClientError, Exception) as e:
print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
exit(1)
以上就是在亚马逊云科技上调用Meta最新的超级大语言模型Llama 3.1 405B的全部步骤。欢迎大家关注小李哥未来获取更多国际前沿的亚马逊云科技生成式AI云开发/云架构方案。