Skip to main content

Bedrock

bedrock 允许你在 evals 中使用 Amazon Bedrock。这是一种访问 Anthropic 的 Claude、Meta 的 Llama 3.1、AI21 的 Jamba 以及其他模型的常见方式。完整的可用模型列表可以在此找到。

设置

  1. 确保你在 Amazon Bedrock 的提供商页面下有权访问所需的模型。

  2. 安装 @aws-sdk/client-bedrock-runtime

    npm install -g @aws-sdk/client-bedrock-runtime
  3. AWS SDK 会自动从以下位置拉取凭证:

    • EC2 上的 IAM 角色
    • ~/.aws/credentials
    • AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量

    更多详情请参见设置 node.js 凭证 (AWS)

  4. 编辑你的配置文件以指向 AWS Bedrock 提供商。以下是一个示例:

    providers:
    - id: bedrock:anthropic.claude-3-5-sonnet-20240620-v1:0

    注意,提供商是 bedrock: 后跟模型的 ARN/模型 ID

  5. 其他配置参数可以这样传递:

    providers:
    - id: bedrock:anthropic.claude-3-5-sonnet-20240620-v1:0
    config:
    region: 'us-west-2'
    temperature: 0.7
    max_tokens: 256

示例

参见 Github 查看 Claude、AI21、Llama 3.1 和 Titan 模型使用的完整示例。

prompts:
- 'Write a tweet about {{topic}}'

providers:
- id: bedrock:meta.llama3-1-405b-instruct-v1:0
config:
region: 'us-east-1'
temperature: 0.7
max_tokens: 256
- id: bedrock:ai21.jamba-1-5-large-v1:0
config:
region: 'us-east-1'
temperature: 0.7
max_tokens: 256
- id: bedrock:anthropic.claude-3-5-sonnet-20240620-v1:0
config:
region: 'us-east-1'
temperature: 0.7
max_tokens: 256

tests:
- vars:
topic: Our eco-friendly packaging
- vars:
topic: A sneak peek at our secret menu item
- vars:
topic: Behind-the-scenes at our latest photoshoot

模型特定配置

不同的模型可能支持不同的配置选项。以下是一些模型特定的参数:

AI21 模型

对于 AI21 模型(例如 ai21.jamba-1-5-mini-v1:0, ai21.jamba-1-5-large-v1:0),你可以使用以下配置选项:

config:
max_tokens: 256
temperature: 0.7
top_p: 0.9
frequency_penalty: 0.5
presence_penalty: 0.3

Claude 模型

对于 Claude 模型(例如 anthropic.claude-3-5-sonnet-20240620-v1:0),你可以使用以下配置选项:

config:
max_tokens: 256
temperature: 0.7
anthropic_version: 'bedrock-2023-05-31'
tools: [...] # 可选:指定可用工具
tool_choice: { ... } # 可选:指定工具选择

Titan 模型

对于 Titan 模型(例如 amazon.titan-text-express-v1),你可以使用以下配置选项:

config:
maxTokenCount: 256
temperature: 0.7
topP: 0.9
stopSequences: ['END']

Llama

对于 Llama 模型(例如 meta.llama3-1-70b-instruct-v1:0),你可以使用以下配置选项:

config:
max_gen_len: 256
temperature: 0.7
top_p: 0.9

Cohere 模型

对于 Cohere 模型(例如 cohere.command-text-v14),你可以使用以下配置选项:

config:
max_tokens: 256
temperature: 0.7
p: 0.9
k: 0
stop_sequences: ['END']

Mistral 模型

对于 Mistral 模型(例如 mistral.mistral-7b-instruct-v0:2),你可以使用以下配置选项:

config:
max_tokens: 256
temperature: 0.7
top_p: 0.9
top_k: 50

模型评分测试

你可以使用 Bedrock 模型来评分输出。默认情况下,模型评分测试使用 OpenAI,并要求设置 OPENAI_API_KEY 环境变量。然而,在使用 AWS Bedrock 时,你可以选择覆盖评分器,将模型评分断言指向 AWS Bedrock 或其他提供商。

请注意,由于模型评分测试的实现方式,LLM 评分模型必须支持聊天格式的提示(嵌入或分类模型除外)。

要为所有测试用例设置此项,请将 defaultTest 属性添加到你的配置中:

defaultTest:
options:
provider:
id: provider:chat:modelname
config:
temperature: 0
# 其他提供商配置选项

你也可以为单个断言执行此操作:

# ...
assert:
- type: llm-rubric
value: 不要提及你是AI或聊天助手
provider:
text:
id: provider:chat:modelname
config:
region: us-east-1
temperature: 0
# 其他提供者配置选项...

或者针对单个测试:

# ...
tests:
- vars:
# ...
options:
provider:
id: provider:chat:modelname
config:
temperature: 0
# 其他提供者配置选项
assert:
- type: llm-rubric
value: 不要提及你是AI或聊天助手

嵌入

要覆盖所有需要嵌入(如相似性)的断言的嵌入提供者,请使用 defaultTest

defaultTest:
options:
provider:
embedding:
id: bedrock:embeddings:amazon.titan-embed-text-v2:0
config:
region: us-east-1

环境变量

以下环境变量可用于配置 Bedrock 提供者:

  • AWS_BEDROCK_REGION:Bedrock API 调用的默认区域
  • AWS_BEDROCK_MAX_TOKENS:生成的默认最大令牌数
  • AWS_BEDROCK_TEMPERATURE:生成的默认温度
  • AWS_BEDROCK_TOP_P:生成的默认 top_p 值
  • AWS_BEDROCK_STOP:默认的停止序列(作为 JSON 字符串)
  • AWS_BEDROCK_FREQUENCY_PENALTY:默认的频率惩罚(适用于支持的模型)
  • AWS_BEDROCK_PRESENCE_PENALTY:默认的存在惩罚(适用于支持的模型)

特定于模型的环境变量:

  • MISTRAL_MAX_TOKENS, MISTRAL_TEMPERATURE, MISTRAL_TOP_P, MISTRAL_TOP_K:适用于 Mistral 模型
  • COHERE_TEMPERATURE, COHERE_P, COHERE_K, COHERE_MAX_TOKENS:适用于 Cohere 模型

这些环境变量可以通过 YAML 文件中指定的配置进行覆盖。