IBM BAM
bam
提供者集成了 IBM 的 BAM API,允许访问各种模型,如 meta-llama/llama-2-70b-chat
和 ibm/granite-13b-chat-v2
。
设置
此提供者要求您安装 IBM SDK:
npm install @ibm-generative-ai/node-sdk
配置
通过指定模型和各种生成参数来配置 BAM 提供者。以下是如何在配置文件中配置 BAM 提供者的示例:
providers:
- id: bam:chat:meta-llama/llama-2-70b-chat
config:
temperature: 0.01
max_new_tokens: 1024
prompt:
prefix: '[INST] '
suffix: '[/INST] '
- id: bam:chat:ibm/granite-13b-chat-v2
config:
temperature: 0.01
max_new_tokens: 1024
prompt:
prefix: '[INST] '
suffix: '[/INST] '
认证
要使用 BAM 提供者,您需要设置 BAM_API_KEY
环境变量或在提供者配置中直接指定 apiKey
。API 密钥也可以从配置中的 apiKeyEnvar
字段指定的环境变量中动态获取。
export BAM_API_KEY='your-bam-api-key'
API 客户端初始化
BAM 提供者使用 IBM Generative AI Node SDK 初始化 API 客户端。BAM API 的端点配置为 https://bam-api.res.ibm.com/
。
配置
参数 | 类型 | 描述 |
---|---|---|
top_k | number | 通过随机采样控制多样性:较低的值使采样更具确定性。 |
top_p | number | 核采样:较高的值使模型考虑更多候选者。 |
typical_p | number | 控制采样期间的“典型性”,平衡 top_k 和 top_p 。 |
beam_width | number | 设置束搜索解码的束宽,控制搜索的广度。 |
time_limit | number | 模型生成响应应花费的最大时间(以毫秒为单位)。 |
random_seed | number | 随机数生成器的种子,确保输出的可重复性。 |
temperature | number | 控制随机性。较低的值使模型更具确定性。 |
length_penalty | object | 调整生成的输出的长度。包括 start_index 和 decay_factor 。 |
max_new_tokens | number | 要生成的最大新标记数。 |
min_new_tokens | number | 要生成的最小新标记数。 |
return_options | object | 返回输出时包含的额外信息选项,例如标记概率。 |
stop_sequences | string[] | 如果生成的字符串数组将停止生成。 |
decoding_method | string | 指定解码方法,例如 'greedy' 或 'sample'。 |
repetition_penalty | number | 应用于输出中以阻止重复的惩罚。 |
include_stop_sequence | boolean | 是否在输出中包含停止序列。 |
truncate_input_tokens | number | 从输入文本中考虑的最大标记数。 |
审核参数
审核设置也可以指定以管理内容安全和合规性:
参数 | 类型 | 描述 |
---|---|---|
hap | object | 处理仇恨言论的设置。可以启用/禁用并配置阈值。 |
stigma | object | 处理污名化内容的设置。包括与 hap 类似的配置。 |
implicit_hate | object | 管理隐含仇恨内容的设置。 |
每个审核参数可以包括以下子参数:input
、output
、threshold
和 send_tokens
以自定义审核行为。
以下是一个示例:
providers:
- id: bam:chat:ibm/granite-13b-chat-v2
config:
moderations:
hap:
input: true
output: true
threshold: 0.9