Skip to main content

IBM BAM

bam 提供者集成了 IBM 的 BAM API,允许访问各种模型,如 meta-llama/llama-2-70b-chatibm/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_knumber通过随机采样控制多样性:较低的值使采样更具确定性。
top_pnumber核采样:较高的值使模型考虑更多候选者。
typical_pnumber控制采样期间的“典型性”,平衡 top_ktop_p
beam_widthnumber设置束搜索解码的束宽,控制搜索的广度。
time_limitnumber模型生成响应应花费的最大时间(以毫秒为单位)。
random_seednumber随机数生成器的种子,确保输出的可重复性。
temperaturenumber控制随机性。较低的值使模型更具确定性。
length_penaltyobject调整生成的输出的长度。包括 start_indexdecay_factor
max_new_tokensnumber要生成的最大新标记数。
min_new_tokensnumber要生成的最小新标记数。
return_optionsobject返回输出时包含的额外信息选项,例如标记概率。
stop_sequencesstring[]如果生成的字符串数组将停止生成。
decoding_methodstring指定解码方法,例如 'greedy' 或 'sample'。
repetition_penaltynumber应用于输出中以阻止重复的惩罚。
include_stop_sequenceboolean是否在输出中包含停止序列。
truncate_input_tokensnumber从输入文本中考虑的最大标记数。

审核参数

审核设置也可以指定以管理内容安全和合规性:

参数类型描述
hapobject处理仇恨言论的设置。可以启用/禁用并配置阈值。
stigmaobject处理污名化内容的设置。包括与 hap 类似的配置。
implicit_hateobject管理隐含仇恨内容的设置。

每个审核参数可以包括以下子参数:inputoutputthresholdsend_tokens 以自定义审核行为。

以下是一个示例:

providers:
- id: bam:chat:ibm/granite-13b-chat-v2
config:
moderations:
hap:
input: true
output: true
threshold: 0.9