亚马逊AWS官方博客

Mistral Small 针对低延迟工作负载进行了优化,现已在 Amazon Bedrock 中推出



今天,我很高兴地宣布,来自 Mistral AI 的 Mistral Small 基础模型(FM)现已在 Amazon Bedrock 中正式推出。这是继我们最近于 3 月发布的 Mistral 7B 和 Mixtral 8x7B 以及 4 月发布的 Mistral Large 之后快速发布的模型。您现在可以在 Amazon Bedrock 中访问来自 Mistral AI 的四款高性能模型,包括 Mistral Small、Mistral Large、Mistral 7B 和 Mixtral 8x7B,进一步扩展了模型选择。

Mistral AI 开发的 Mistral Small 是一种高效的大型语言模型(LLM),针对基于语言的高容量、低延迟任务进行了优化。Mistral Small 非常适合可以批量执行的简单任务,例如分类、客户支持或文本生成,能够以具有成本效益的价位提供卓越的性能。

您需要了解的 Mistral Small 的一些关键功能:

  • 检索增强生成(RAG)专业化 – Mistral Small 确保即使在较长的上下文窗口中也能保留重要信息,最多可以扩展到 3.2 万个令牌。
  • 编码能力 – Mistral Small 在代码生成、审查和注释方面表现出色,支持主要的编码语言。
  • 多语言功能 – 除英语外,Mistral Small 还提供法语、德语、西班牙语和意大利语的顶级性能。还支持数十种其他语言。

Mistral Small 入门
我首先需要访问模型才能开始使用 Mistral Small。我转到 Amazon Bedrock 控制台,选择模型访问权限,然后选择管理模型访问权限。我展开 Mistral AI 部分,选择 Mistral Small,然后选择保存更改

我现在已经拥有 Mistral Small 的模型访问权限,可以开始在 Amazon Bedrock 中使用该模型。我刷新基础模型表以查看当前状态。

我使用以下模板来构建模型的提示,以获得次优输出:

<s>[INST] Instruction [/INST]

请注意,<s> 是字符串开头(BOS)的特殊令牌,而 [INST][/INST] 是常规字符串。

我尝试使用以下提示来查看分类示例:

提示:

<s>[INST] Classify the following email to determine if it is spam or not.Only respond with the exact words "Spam" or "Not spam".
🎉 Limited time offer! Buy 2, Get 1 Free! Offer ends today! Don't miss out the CHANCE TO SAVE, please click on the link below: https://bit.ly/buy-2-get-1-free [/INST]

Mistral 7B、Mixtral 8x7B 和 Mistral Large 都可以正确地将这封电子邮件归类为“垃圾邮件”。 Mistral Small 也能够准确地对此进行分类,就像大型模型一样。我还尝试了几项类似的任务,例如根据文本提示生成 Bash 脚本和生成制作酸奶的配方,并获得良好的效果。出于这个原因,Mistral Small 是 Amazon Bedrock 中用于此类任务的 Mistral AI 模型中最具成本效益和最高效的选项。

Mistral Small 擅长多语言任务。除英语外,还以法语、德语、西班牙语和意大利语提供卓越的性能。我要求模型给我两句关于可持续发展的句子来测试其对德语的理解:

提示:

<s>[INST] Geben Sie mir zwei Sätze zum Thema Nachhaltigkeit. [/INST]

输出:

1.Nachhaltigkeit bedeutet, die Bedürfnisse der heutigen Generation zu befriedigen, ohne die Möglichkeiten künftiger Generationen zu gefährden.
2.Ein nachhaltiger Lebensstil umfasst den bewussten Umgang mit Ressourcen, wie Wasser, Energie und Rohstoffen, sowie den Schutz von Umwelt und Klima.
Diese Sätze sollten Ihnen einen guten Überblick über das Thema Nachhaltigkeit geben.

以编程方式与 Mistral Small 交互
我可以使用 AWS 命令行界面(AWS CLI)AWS 软件开发工具包(SDK),通过 Amazon Bedrock API 以编程方式与 Mistral Small 进行交互。我在 Python 中使用以下代码,通过 AWS SDK 与 Amazon Bedrock Runtime API 进行交互,问:“天空是什么颜色的?”:

import argparse
import boto3
from botocore.exceptions import ClientError
import json

accept = "application/json"
content_type = "application/json"

def invoke_model(model_id, input_data, region, streaming): 
  client = boto3.client('bedrock-runtime', region_name=region)
  try:
    if streaming:
      response = client.invoke_model_with_response_stream(body=input_data, modelId=model_id, accept=accept, contentType=content_type)
    else:
      response = client.invoke_model(body=input_data, modelId=model_id, accept=accept, contentType=content_type)
    status_code = response['ResponseMetadata']['HTTPStatusCode']
    print(json.loads(response.get('body').read()))
  except ClientError as e:
    print(e)

if __name__ == "__main__":
  parser = argparse.ArgumentParser(description="Bedrock Testing Tool")
  parser.add_argument("--prompt", type=str, help="prompt to use", default="Hello")
  parser.add_argument("--max-tokens", type=int, default=64)
  parser.add_argument("--streaming", choices=["true", "false"], help="whether to stream or not", default="false")
  args = parser.parse_args()
  streaming = False
  if args.streaming == "true":
    streaming = True
  input_data = json.dumps({
    "prompt": f"<s>[INST]{args.prompt}[/INST]",
    "max_tokens": args.max_tokens
  })
  invoke_model(model_id="mistral.mistral-small-2402-v1:0", input_data=input_data, region="us-east-1", streaming=streaming)

我得到以下输出:

{'outputs': [{'text': ' The color of the sky can vary depending on the time of day, weather,', 'stop_reason': 'length'}]}

现已推出
Mistral Small 模型现已在美国东部(弗吉尼亚州北部)区域的 Amazon Bedrock 中推出。

要了解更多信息,请访问 Amazon Bedrock 产品页面中的 Mistral AI。有关定价的详细信息,请参阅 Amazon Bedrock 定价页面

要开始在 Amazon Bedrock 中使用 Mistral Small,请访问 Amazon Bedrock 控制台Amazon Bedrock 用户指南

– Esra