跳到主要内容

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/passwordZenApiKey 方法

  1. 选项 1(推荐):使用 ZenApiKey 验证
    • apiBase 设置为您的 watsonx software 端点,例如 https://cpd-watsonx.apps.example.com
    • projectId 设置为您的 watsonx 项目 ID。
    • apiKey 设置为您的 watsonx Zen API 密钥。要生成它
      1. 登录 CPD Web 客户端。
      2. 在工具栏中,点击您的头像。
      3. 点击个人资料和设置
      4. 点击API 密钥 > 生成新密钥
      5. 点击生成
      6. 点击复制并将您的密钥保存在安全的地方。如果您丢失此密钥,将无法恢复。
      7. 在您偏好的终端中运行以下命令生成您的 ZenApiKeyecho "<username>:<apikey>" | base64,将 <username> 替换为您的 CPD 用户名,将 <apikey> 替换为您刚刚创建的 API 密钥。
  2. 选项 2:使用 username/password 验证
    • apiBase 设置为您的 watsonx software 端点,例如 https://cpd-watsonx.apps.example.com
    • projectId 设置为您的 watsonx 项目 ID。
    • 使用 username:password 格式将 API Key 设置为您的 watsonx 用户名和密码。

配置

添加以下配置

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

apiVersion 是可选的,默认为最新版本。

如果您使用的是自定义部署端点,将 deploymentID 设置为模型的部署 ID。您可以在 watsonx.ai Prompt Lab UI 中找到它,方法是选择相应的模型并打开右侧的 </> 选项卡,其中将显示包含部署 ID 的端点 URL。

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

配置选项

确保指定一个模板名称,例如 granitellama3,并将 contextLength 设置为模型的上下文窗口大小。您还可以配置生成参数,例如 temperaturetopPtopKfrequency penaltystop sequences

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

Tab 自动补全模型

推荐使用 Granite 模型进行 Tab 自动补全。配置与聊天模型类似。

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.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.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