Vertex AIで使用できるPaLM2のchat-bisonというチャットモデルをコンソールとローカル環境から使ってみた

2023.10.05

こんちには。

データアナリティクス事業本部 インテグレーション部 機械学習チームの中村です。

今回は、Vertex AIで使用できるPaLM2のchat-bisonというチャットモデルをコンソールとローカル環境から使ってみます。

コンソールからの利用

言語モデルへのアクセス

Vertex AIを選択します。

「GENERATIVE AI STUDIO」の「言語」を選択します。

以下の中から例えば「テキスト チャット」を選択します。

API有効化

Vertex AI APIが有効になっていない場合以下のようなメッセージがでますので、有効とします。

テキストチャットの利用

その後以下のように言語モデルとのチャットをすることができます。もちろん会話履歴に応じた回答を返してくれます。

ローカルマシンからの利用

次に、ローカルマシンから利用する手順について見ていきます。

サービスアカウントの作成

「IAMと管理」から「サービスアカウント」を選択します。

「サービス アカウントを作成」をクリックします。

以下のように入力して、「作成して続行」を押下します。

ロールは「Vertex AI 管理者」として「続行」を押下します。

以下は特になにも入力せずに「完了」を押下します。

作成したサービスアカウントをクリックします。

「キー」というタブをクリックします。

「鍵を追加」を押下し、「新しい鍵を作成」を押下します。

「JSON」を選択肢て、「作成」を押下します。

「作成」を押下すると、同時に認証情報が記載されたjsonファイルがダウンロードされます。

ローカル環境の構築

つづいて、ローカルで必要なPython環境を構築していきます。

まずPythonのバージョンは3.10.13で実行しました。

またパッケージは、お使いのPython環境に合わせてpipなどでインストールしてください。

私はRyeを使って入れました。

rye add google-cloud-aiplatform
rye add setuptools
rye sync

以下のバージョンのパッケージが入りました。

"google-cloud-aiplatform>=1.34.0",
"setuptools>=68.2.2",

ローカル環境からの実行

認証情報が格納されたjsonファイルを、GOOGLE_APPLICATION_CREDENTIALSという環境変数に設定します。

credentials_json_path = "{認証情報が格納されたjsonファイル}"

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = credentials_json_path

その後、以下のように実行すれば、結果を得られます。

import vertexai
from vertexai.language_models import ChatModel

vertexai.init(project="nakamura-shogo", location="us-central1")
chat_model = ChatModel.from_pretrained("chat-bison")
parameters = {
    "max_output_tokens": 1024,
    "temperature": 0.0,
}
chat = chat_model.start_chat(
    context="""あなたはフランス料理の専門家です。料理について様々なアドバイスをします。""",
)
response = chat.send_message("""美味しいお肉料理のメニューを教えてください。""", **parameters)
print(f"Response from Model: {response.text}")
response = chat.send_message("""その作り方と材料を教えてください""", **parameters)
print(f"Response from Model: {response.text}")

# Response from Model:  牛肉の赤ワイン煮込みはいかがでしょうか。
# Response from Model:  材料(4人分)
# 
# 牛肉(牛もも肉、牛肩肉など):400g
# 赤ワイン:1本(750ml)
# 玉ねぎ:2個
# にんじん:2本
# セロリ:2本
# マッシュルーム:1パック(200g)
# ベーコン:100g
# 小麦粉:大さじ2
# バター:大さじ2
# 塩、こしょう:適量
# 
# 作り方
# 
# 1. 牛肉は食べやすい大きさに切り、塩、こしょうをふって下味をつける。
# 2. 玉ねぎ、にんじん、セロリはみじん切りにする。マッシュルームは4等分に切る。ベーコンは1cm幅に切る。
# 3. 鍋にバターを熱し、牛肉を炒める。牛肉の色が変わったら、玉ねぎ、にんじん、セロリを加えて炒める。
# 4. 野菜がしんなりしたら、小麦粉を加えて炒める。小麦粉が全体に混ざったら、赤ワインを加える。
# 5. 煮立ったら弱火にして、アクを取りながら30分煮込む。
# 6. マッシュルームとベーコンを加えて、さらに10分煮込む。
# 7. 塩、こしょうで味を調えて完成。

今回はコンテキストも設定してみました。うまくコンテキストや会話履歴に沿って回答してくれています。

まとめ

いかがでしたでしょうか。

Vertex AIで使用できるPaLM2のchat-bisonというチャットモデルを、コンソールとローカルのPython環境から使ってみました。

本記事が活用の参考になれば幸いです。