基盤モデル Python ライブラリー
Python ライブラリーを使用して、 IBM watsonx.ai でファウンデーション・モデルのプロンプトをプログラマチックに出すことができます。
Watson Machine Learning Python ライブラリーは、 Watson Machine Learning サービスを操作するために使用できる、公開されているライブラリーです。 Watson Machine Learning サービスは、 watsonx.ai ファウンデーション・モデルをホストします。
Python ライブラリーの使用
プロンプト・ラボでプロンプトを作成した後、そのプロンプトをノートブックとして保存し、ノートブックを編集することができます。 生成されたノートブックは、資格情報やプロジェクト ID 情報の取得などの初期セットアップ・ステップを処理するため、開始点として使用すると便利です。
ノートブックから直接モデルを処理したい場合は、 Watson Machine Learning Python ライブラリーを使用して処理できます。
ibm-watson-machine-learning
Python ライブラリーは、URL https://pypi.org/project/ibm-watson-machine-learning/から PyPI で公開されています。 ただし、以下のコマンドを使用して、開発環境にインストールすることができます。
pip install ibm-watson-machine-learning
以前にライブラリーをインストールしたことがある場合は、 -U
パラメーターを含めて、最新バージョンであることを確認してください。
pip install -U ibm-watson-machine-learning
ファウンデーション・モデルでの作業に使用できるメソッドについて詳しくは、 ファウンデーション・モデル Python ライブラリーを参照してください。
Python ライブラリーを使用する前に、いくつかのステップを実行する必要があります。
プロジェクト ID の検索
IBM watsonx.ai プログラムでファウンデーション・モデルのプロンプトを出すには、 IBM Watson Machine Learning のインスタンスが関連付けられているプロジェクトの ID を渡す必要があります。
プロジェクトの ID を取得するには、以下のステップを実行します。
- watsonx Web コンソールでプロジェクトにナビゲートし、プロジェクトを開き、 「管理」 タブをクリックします。
- 「一般」 ページの 「詳細」 セクションからプロジェクト ID をコピーします。
例
以下の例は、ライブラリーを使用してノートブックでいくつかの基本的なタスクを実行する方法を示しています。
例 1: 使用可能なファウンデーション・モデルのリスト
ModelTypes
を表示して、使用可能なファウンデーション・モデルを確認できます。
Python コード
from ibm_watson_machine_learning.foundation_models.utils.enums import ModelTypes
import json
print( json.dumps( ModelTypes._member_names_, indent=2 ) )
出力例
[
"FLAN_T5_XXL",
"FLAN_UL2",
"MT0_XXL",
...
]
例: ファウンデーション・モデルの詳細の表示
get_details()
を使用して、簡略説明やファウンデーション・モデルの制限などの詳細を表示できます。
Python コード
from ibm_watson_machine_learning.foundation_models.utils.enums import ModelTypes
from ibm_watson_machine_learning.foundation_models import Model
import json
my_credentials = {
"url" : "https://us-south.ml.cloud.ibm.com",
"apikey" : {my-IBM-Cloud-API-key}
}
model_id = ModelTypes.MPT_7B_INSTRUCT2
gen_parms = None
project_id = {my-project-ID}
space_id = None
verify = False
model = Model( model_id, my_credentials, gen_parms, project_id, space_id, verify )
model_details = model.get_details()
print( json.dumps( model_details, indent=2 ) )
{my-IBM-Cloud-API-key}
と {my-project-ID}
を API キーとプロジェクト ID に置き換えます。
出力例
{
"model_id": "ibm/mpt-7b-instruct2",
"label": "mpt-7b-instruct2",
"provider": "IBM",
"source": "Hugging Face",
"short_description": "MPT-7B is a decoder-style transformer pretrained from
scratch on 1T tokens of English text and code. This model was trained by IBM.",
...
}
例: デフォルト・パラメーターを使用してファウンデーション・モデルにプロンプトを出す
応答を生成するためのファウンデーション・モデルのプロンプトを出します。
Python コード
from ibm_watson_machine_learning.foundation_models.utils.enums import ModelTypes
from ibm_watson_machine_learning.foundation_models import Model
import json
my_credentials = {
"url" : "https://us-south.ml.cloud.ibm.com",
"apikey" : {my-IBM-Cloud-API-key}
}
model_id = ModelTypes.FLAN_T5_XXL
gen_parms = None
project_id = {my-project-ID}
space_id = None
verify = False
model = Model( model_id, my_credentials, gen_parms, project_id, space_id, verify )
prompt_txt = "In today's sales meeting, we "
gen_parms_override = None
generated_response = model.generate( prompt_txt, gen_parms_override )
print( json.dumps( generated_response, indent=2 ) )
{my-IBM-Cloud-API-key}
と {my-project-ID}
を API キーとプロジェクト ID に置き換えます。
出力例
{
"model_id": "google/flan-t5-xxl",
"created_at": "2023-07-27T03:40:17.575Z",
"results": [
{
"generated_text": "will discuss the new product line.",
"generated_token_count": 8,
"input_token_count": 10,
"stop_reason": "EOS_TOKEN"
}
],
...
}
詳細情報
親トピック: 基盤モデル