watsonx.aiで日本語文のセンチメント分析(プロンプト・ラボ編)

watsonx.aiで、日本語文のセンチメント分析（感情分析）を行います。LLMにはIBMのgranite-8b-japaneseを使ってみます。

具体的にはスマートフォンのレビュー文を「ポジティブ」か「ネガティブ」に分類してみます。

~~~md:Examples (Input:)
レビュー:
驚くほど軽量で、持ち運びが便利です。また、バッテリーの持続時間も素晴らしく、長時間使用しても安心です。
~~~

~~~md:Examples (Output:)
感情:
ポジティブ
~~~

* テスト環境
    * watsonx.ai (クラウド)

# プロジェクトの準備
watsonx.aiで「新規プロジェクト」を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/6413e7ec-a596-e635-7e09-b867f38f037a.png)

適当に名前をつけて「作成」します。ここでは「240308xai」という名前にしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/1f34cf13-0bb4-4050-d2df-2bb6bc7da058.png)

Watson Machine Learningというエンジンのサービスを関連付けます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/6492c217-51fc-b136-1460-7115dba8d07a.png)

あらかじめ用意しておいたWatson Machine Learningのサービスを「アソシエイト」します。もし用意していなければ「新規サービス」から追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/ab96f02f-5d4f-b675-7710-80f07951379f.png)

# プロンプト・ラボ起動
資産タブにうつり「新規資産」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/aec4e0a7-8499-6200-67da-2f12d5553e65.png)

「プロンプト・ラボ」をクリックして起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/cdb222a8-d605-79ee-8bef-5e8921b64fad.png)

# プロンプトの入力
「フリーフォーム」を選び、以下のプロンプトを入力します。
複数の「レビュー」と「感情」の組合せの例をあたえたFew-Shotのプロンプトになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/9f5affd0-dd9c-8db2-3e8b-b8007eb48f70.png)


```md:プロンプト
このスマートフォンに関するフィードバックを分析し、顧客のポジティブな/ネガティブな感情を特定してください。

レビュー:
驚くほど軽量で、持ち運びが便利です。また、バッテリーの持続時間も素晴らしく、長時間使用しても安心です。
感情:
ポジティブ


レビュー:
カメラの性能が他の機種に比べるとやや劣っています。特に暗所での撮影時には、ノイズが目立ちます。
感情:
ネガティブ


レビュー:
デザインは非常に洗練されており、手にしっくりと馴染みます。操作性も高く、使いやすさに定評があります。
感情:
ポジティブ

レビュー:
画面の解像度がやや低いです。テキストや画像を拡大すると、粗さが目立ちます。
感情:
ネガティブ


レビュー:
カメラ機能は優れており、高品質な写真や動画を撮影できます。さまざまな撮影モードやエフェクトも豊富です。
感情:
```

# LLMモデルの選択

モデル選択のメニューを開き「すべての基盤モデルを表示する」でLLMモデルを選びます。watsonx.aiではユースケースにあわせてLLMのモデルを選ぶことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/b3cf5940-7c47-9100-52dd-1d62ee4edc7d.png)

ここでは「granite-8b-japanese」を選択します。日本語に対応したIBM提供のモデルです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/ea438e03-a51c-b90a-3277-2ed0bdea4571.png)

モデルの詳細が表示されます。「モデルの選択」で進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/cd1a265d-1fc6-a942-06c6-89612ca257a1.png)

watsonx.ai で使用可能なサポート対象の基盤モデルは以下です。

https://jp-tok.dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-models.html?context=wx&audience=wdp

# モデルパラメータの設定

次に「モデルパラメータ」のアイコンをクリックして設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/7952c3c1-2a62-8b9d-d2d1-ec67a6dfc593.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/4fbf3245-e651-69cb-acf6-54688ba290c2.png)


ここでは、
デコード：Greedy
反復ペナルティ：1.1
最小トークン数:0
最大トークン数:200
を設定しました。

Greedyで毎回同じ結果をえるように設定しています。

うまく望む結果が得られない場合にはパラメーターを調整します。
モデルパラメータの意味は以下のドキュメントにあります。

https://jp-tok.dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/fm-model-parameters.html?context=wx



# 生成

では、「生成」を実行してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/2862bcc5-09ee-2abb-3d58-a64113c64301.png)


期待通りセンチメントの抽出ができました！
```JSON
感情:
ポジティブ
```


# 参考

#### IBM watsonx.ai を試してみた ( コピペ OK ) 💙 #Watson-Studio - Qiita 

https://qiita.com/yanagih/items/3d1b081f46799072df80#enjoy-your-watsonxai-life-

#### watsonx.aiで日本語文からの固有表現抽出(プロンプト・ラボ編) #watsonx.ai - Qiita https://qiita.com/kawada2017/items/77fbaec5bc4cf3995800