IBM watsonx
watsonx 由 IBM 开发,提供多种预训练的 AI 基础模型,可用于自然语言处理 (NLP)、计算机视觉和语音识别任务。
设置
可以通过 IBM Cloud 上的 watsonx SaaS 或使用专用的 watsonx.ai Software 实例来访问 watsonx 模型。
watsonx.ai SaaS - IBM Cloud
要开始使用 watsonx SaaS,请访问注册页面。如果您没有现有的 IBM Cloud 帐户,可以注册免费试用版。
要通过 Continue 验证 watsonx.ai SaaS,您需要创建一个项目并设置 API 密钥。然后,在 continue 中
- 将 apiBase 设置为您的 watsonx SaaS 端点,例如美国南部区域的
https://us-south.ml.cloud.ibm.com
。 - 将 projectId 设置为您的 watsonx 项目 ID。
- 将 apiKey 设置为您的 watsonx API 密钥。
watsonx.ai Software
要通过 Continue 验证您的 watsonx.ai Software 实例,您可以使用 username/password
或 ZenApiKey
方法
- 选项 1(推荐):使用
ZenApiKey
验证- 将 apiBase 设置为您的 watsonx software 端点,例如
https://cpd-watsonx.apps.example.com
。 - 将 projectId 设置为您的 watsonx 项目 ID。
- 将 apiKey 设置为您的 watsonx Zen API 密钥。要生成它
- 登录 CPD Web 客户端。
- 在工具栏中,点击您的头像。
- 点击个人资料和设置。
- 点击API 密钥 > 生成新密钥。
- 点击生成。
- 点击复制并将您的密钥保存在安全的地方。如果您丢失此密钥,将无法恢复。
- 在您偏好的终端中运行以下命令生成您的
ZenApiKey
:echo "<username>:<apikey>" | base64
,将<username>
替换为您的 CPD 用户名,将<apikey>
替换为您刚刚创建的 API 密钥。
- 将 apiBase 设置为您的 watsonx software 端点,例如
- 选项 2:使用
username/password
验证- 将 apiBase 设置为您的 watsonx software 端点,例如
https://cpd-watsonx.apps.example.com
。 - 将 projectId 设置为您的 watsonx 项目 ID。
- 使用
username:password
格式将 API Key 设置为您的 watsonx 用户名和密码。
- 将 apiBase 设置为您的 watsonx software 端点,例如
配置
添加以下配置
- YAML
- JSON
config.yaml
models:
- name: watsonx - Model Name
provider: watsonx
model: model ID
apiBase: https://us-south.ml.cloud.ibm.com
apiKey: API_KEY/ZENAPI_KEY/USERNAME:PASSWORD
env:
projectId: PROJECT_ID
apiVersion: 2024-03-14
config.json
{
"models": [
{
"model": "model ID",
"title": "watsonx - Model Name",
"provider": "watsonx",
"apiBase": "https://us-south.ml.cloud.ibm.com",
"projectId": "PROJECT_ID",
"apiKey": "API_KEY/ZENAPI_KEY/USERNAME:PASSWORD",
"apiVersion": "2024-03-14"
}
]
}
apiVersion 是可选的,默认为最新版本。
如果您使用的是自定义部署端点,将 deploymentID 设置为模型的部署 ID。您可以在 watsonx.ai Prompt Lab UI 中找到它,方法是选择相应的模型并打开右侧的 </>
选项卡,其中将显示包含部署 ID 的端点 URL。
- YAML
- JSON
config.yaml
models:
- name: watsonx - Model Name
provider: watsonx
model: model ID
apiBase: watsonx endpoint e.g. https://us-south.ml.cloud.ibm.com
apiKey: API_KEY/ZENAPI_KEY/USERNAME:PASSWORD
env:
apiVersion: 2024-03-14
deploymentId: DEPLOYMENT_ID
config.json
{
"models": [
{
"model": "model ID",
"title": "watsonx - Model Name",
"provider": "watsonx",
"apiBase": "watsonx endpoint e.g. https://us-south.ml.cloud.ibm.com",
"apiKey": "API_KEY/ZENAPI_KEY/USERNAME:PASSWORD",
"apiVersion": "2024-03-14",
"deploymentId": "DEPLOYMENT_ID"
}
]
}
配置选项
确保指定一个模板名称,例如 granite
或 llama3
,并将 contextLength 设置为模型的上下文窗口大小。您还可以配置生成参数,例如 temperature、topP、topK、frequency penalty 和 stop sequences。
- YAML
- JSON
config.yaml
models:
- name: Granite Code 20b
provider: watsonx
model: ibm/granite-20b-code-instruct
apiBase: watsonx endpoint e.g. https://us-south.ml.cloud.ibm.com
apiKey: API_KEY/ZENAPI_KEY/USERNAME:PASSWORD
template: granite
defaultCompletionOptions:
contextLength: 8000
temperature: 0.1
topP: 0.3
topK: 20
maxTokens: 2000
frequencyPenalty: 1.1
stop:
- Question:
- "\n\n\n"
env:
projectId: PROJECT_ID
apiVersion: 2024-03-14
config.json
{
"models": [
{
"model": "ibm/granite-20b-code-instruct",
"title": "Granite Code 20b",
"provider": "watsonx",
"apiBase": "watsonx endpoint e.g. https://us-south.ml.cloud.ibm.com",
"projectId": "PROJECT_ID",
"apiKey": "API_KEY/ZENAPI_KEY/USERNAME:PASSWORD",
"apiVersion": "2024-03-14",
"template": "granite",
"contextLength": 8000,
"completionOptions": {
"temperature": 0.1,
"topP": 0.3,
"topK": 20,
"maxTokens": 2000,
"frequencyPenalty": 1.1,
"stop": ["Question:", "\n\n\n"]
}
}
]
}
Tab 自动补全模型
推荐使用 Granite 模型进行 Tab 自动补全。配置与聊天模型类似。
- YAML
- JSON
config.yaml
models:
- name: Granite Code 8b
provider: watsonx
model: ibm/granite-8b-code-instruct
apiBase: watsonx endpoint e.g. https://us-south.ml.cloud.ibm.com
projectId: PROJECT_ID
apiKey: API_KEY/ZENAPI_KEY/USERNAME:PASSWORD
apiVersion: 2024-03-14
roles:
- autocomplete
config.json
{
"tabAutocompleteModel": {
"model": "ibm/granite-8b-code-instruct",
"title": "Granite Code 8b",
"provider": "watsonx",
"apiBase": "watsonx endpoint e.g. https://us-south.ml.cloud.ibm.com",
"projectId": "PROJECT_ID",
"apiKey": "API_KEY/ZENAPI_KEY/USERNAME:PASSWORD",
"apiVersion": "2024-03-14",
"contextLength": 4000
}
}
嵌入模型
要查看可用嵌入模型的列表,请访问此页面。
- YAML
- JSON
config.yaml
models:
- name: Watsonx Embedder
provider: watsonx
model: ibm/slate-30m-english-rtrvr-v2
apiBase: https://us-south.ml.cloud.ibm.com
projectId: PROJECT_ID
apiKey: API_KEY/ZENAPI_KEY/USERNAME:PASSWORD
apiVersion: 2024-03-14
roles:
- embed
config.json
{
"embeddingsProvider": {
"provider": "watsonx",
"model": "ibm/slate-30m-english-rtrvr-v2",
"apiBase": "watsonx endpoint e.g. https://us-south.ml.cloud.ibm.com",
"projectId": "PROJECT_ID",
"apiKey": "API_KEY/ZENAPI_KEY/USERNAME:PASSWORD",
"apiVersion": "2024-03-14"
}
}
重排序器
- YAML
- JSON
config.yaml
models:
- name: Watsonx Reranker
provider: watsonx
model: cross-encoder/ms-marco-minilm-l-12-v2
apiBase: https://us-south.ml.cloud.ibm.com
projectId: PROJECT_ID
apiKey: API_KEY/ZENAPI_KEY/USERNAME:PASSWORD
apiVersion: 2024-03-14
config.json
{
"reranker": {
"name": "watsonx",
"params": {
"model": "cross-encoder/ms-marco-minilm-l-12-v2",
"apiBase": "watsonx endpoint e.g. https://us-south.ml.cloud.ibm.com",
"projectId": "PROJECT_ID",
"apiKey": "API_KEY/ZENAPI_KEY/USERNAME:PASSWORD",
"apiVersion": "2024-03-14"
}
}
}