ブログ

watsonx.ai の LLM を Watson Machine Learning SDK から使用してみた

初めに

以前 wataonx.aiのLLMをcurl、およびPythonからしようしてみた記事を記載しましたが、今回は、Python SDKを使用してLLMを使用してみたので、ご紹介します。

(過去の記事)
・watsonx.ai の LLMモデル をcurlから使用してみた
https://alpcom.co.jp/blog/20230724-01/

・watsonx.ai の LLMモデル をpythonから使用してみた
https://alpcom.co.jp/blog/20230724-02/

Python SDKを使用してLLMでの実行

1.SDKライブラリのインストール

pipを使用して、SDKライブラリのインストールを行います。

$ pip install ibm-watson-machine-learning

2. Coding

SDKのマニュアル(https://ibm.github.io/watson-machine-learning-sdk/foundation_models.html)を参照しコードを
以下に文章を要約するサンプルを示します。

summary.py

# Import Libraries
from ibm_watson_machine_learning.foundation_models import Model
from ibm_watson_machine_learning.metanames import GenTextParamsMetaNames as GenParams
from ibm_watson_machine_learning.foundation_models.utils.enums import ModelTypes, DecodingMethods

# Model Parameter Setting
generate_params = {
    GenParams.DECODING_METHOD: "greedy",
    GenParams.MAX_NEW_TOKENS: 1024,
    GenParams.REPETITION_PENALTY: 1
}

# Create Model
model = Model(
    model_id=ModelTypes.MPT_7B_INSTRUCT2,
    params=generate_params,
    credentials={
        "apikey": "xxxxx", #apikeyはご使用環境のものに置き換えてください
        "url": "https://us-south.ml.cloud.ibm.com"
    },
    project_id="xxxxxx" ##project_idはご使用の環境のものに置き換えてください。
    )

# Summarize by using model
q = """簡潔に要約をしてください

入力:
遠足に出かけた11歳から17歳の少年たちと25歳のサッカー・コーチは6月23日、大 雨で増水した洞窟から出られなくなった。タイ内外から集まったダイバー約90人などが捜索に当た り、英国人ダイバー2人によって7月2日夜に発見された。地元のチェンライ県知事やタイ海軍特殊部隊が中心となった救助本部は当初、水が引くか、あるいは少年たちが 潜水技術を習得するまで時間をかけて脱出させるつもりだった が、雨季による水位上昇と洞窟内の酸素低下の進行が懸念され、8日か ら3日連続の救出作戦が敢行された。
ダイバーたちに前後を支えられ、水路内に張り巡らされたガイドロープをたどりながら、潜水経験のない少年たちは脱出 した。8日に最初の4人、9日に4人、10日に残る5人が脱出し、ただちに近くのチェンライ市内の病院に搬送 された。2週間以上洞窟に閉じ込められていたことを思えば、全員驚くほど心身ともに元気だという。\\n少年たちとコーチは レントゲンや血液検査などを受けた。少なくとも7日間は、経過観察のために入院を続けるという。
洞窟内の水を飲み、鳥やコウモリの排泄物に接触した可能性のある13人は、病原体に感染しているおそれがあるため隔離されてい る。家族とはガラス越しに再会したという。\\n食べ物のほとんどない洞窟内で2週間以上を過ごした少年たちは体重を大幅に落とし、空腹を訴えていた。救出後は好物の豚肉のご飯やパン、チョコレートなどを希望したが、しばらく は流動食が続くという。
さらに、外界の光に目が慣れるまでの数日は、サングラスをかける必要がある。

要約:
"""

generated_response = model.generate(prompt=q)
print(generated_response['results'][0]['generated_text'])

3. コードの実行

作成したコードを実行します。
上記コードの実行結果を下記に示します。

$ python summary.py

(出力結果)
- 少年たちとコーチは洞窟から出られなくなった6月23日に、ダイバー約90人などが集まった。
- 英国人ダイバー2人によって7月2日夜に発見された。
- 地元の知事やタイ海軌特殊部隊が中心となった救助本部は、少年たちが潜水技術を習得するまで時間をかけて脱出させるつもりだったが、雨季による水位上昇と洞窟内の酸素低下の進行が懸念され、8日か ら3日連続の救出作戦が敢行された。
- ダイバーたちに前後を支えられ、水路内に張り巡らされたガイドロープをたどりながら、潜水経験のない少年たちは脱出した。
- 8日に最初の4人、9日に4人、10日に残る5人が脱出し、ただちに近くの病院に搬送された。
- 少年たちとコーチはレントゲンや血液検査などを受けた。少なくとも7日間は、経過観察のために入院を続けるという。
- 洞窟内の水を飲み、鳥やコウモリの排泄物に接触した可能性のある13人は、病原体に感染しているおそれがあるため隔離されてい る。家族とはガラス越しに再会したという。
- 食べ物のほとんどない洞窟内で2週間以上を過ごした

pagetop