TOPコラム一覧【Amazon Bedrock】Amazon Titanと日本語でチャットしたい ~微調整編~

【ユースカジノ 出金方法 Bedrock】ユースカジノ 出金方法 Titanと日本語でチャットしたい! ~継続的な事前ユースカジノ
~微調整編~

はじめに

こんにちは、佐々木です。
前回のコラムでは、Amazon Bedrock基盤モデルのカスタマイズ方法のうち、「継続的な事前ユースカジノ 退会」について扱いました。
今回は、前回に続いてもう1つのカスタマイズ方法である「微調整」について紹介いたします。

前回はこちら:【Amazon Bedrock】Amazon Titanと日本語でチャットしたい!~継続的な事前ユースカジノ 退会編~

*本コラムの内容は、2024年2月時点の情報を基に作成しています。最新情報はAWSのWebページよりご確認ください。
*生成AIモデルを利用する際の入出力ユースカジノ 退会の取り扱いは、AWSサービス利用規約、モデル開発元規約や自社ルールを遵守し、細心の注意をお願いします。

カスタマイズ方針

Titan Text G1 – Liteを以下の2段階でユースカジノ 退会することにより、最終的に「日本語の質問に日本語で回答できる状態」を目指します。

  1. ① 継続的な事前ユースカジノ 退会を実施して、自然な日本語出力ができるようにする
  2. ①で作成したユースカジノ 退会をファインチューニングして、質問に回答できるようにする

ここからは、②を実現するための方法を紹介します。前回とは異なり、回答の正確さについても検証対象になります。

手順

②-1: ユースカジノ 退会準備

今回は、databricks-dolly-15k-jaというユースカジノ 退会セットを利用します。このユースカジノ 退会セットは、Databricks社が公開しているdatabricks-dolly-15kという大規模言語モデルのチューニング用ユースカジノ 退会セットを日本語訳したもので、8つのタスクカテゴリ(Creative Writing, Closed QA, Open QA, Summarization, Information Extraction, Classification, Brainstorming, General QA)に関する計約15,000件のレコードを持っています。

ユースカジノ 退会

databricks-dolly-15k-jaユースカジノ 退会セットをダウンロードした状態(タスクカテゴリは“category”列)

Amazon Bedrockで微調整を実施する場合、学習データには以下のルールがあります。継続的な事前ユースカジノ 退会とはルールが異なる点に注意が必要です。

  • 1つのJSONLファイルで、各JSONレコードは”prompt”フィールドおよび”completion”フィールドを持つ
  • ユースカジノ 退会1回あたりのレコード数上限:10,000
  • (オプション) ユースカジノ 退会1回あたりの検証データのレコード数上限:1,000
  • 1レコードあたりの合計トークン数上限:4,096

そこで、以下のi~ivの処理を実施することで、微調整の学習ユースカジノ 退会として使える状態にします。(実装コードは割愛します。)

  1. i. ダウンロードしたユースカジノ 退会のinput列に文章が入っていない(タスクカテゴリがClassification, Brainstorming, Creative Writing, Open QA, General QA)レコードの場合は、promptフィールドはinstruction列の文章、completionフィールドはoutput列の文章とする。

  2. ii. input列に文章が入っている(タスクカテゴリがClosed QA, Information Extraction, Summarization)レコードの場合は、以下の図に示すように、promptフィールドは”入力:〈instruction列の文章〉¥n知識:〈completion列の文章〉”、 completionフィールドはoutput列の文章とする。ユースカジノ 退会

    元のレコード(左)とiiの処理後のレコード(右)


  3. iii. promptおよびcompletionの合計文字数が1,500文字以内のレコードを抽出する。(※前回と同様に先頭1,500文字にしてしまうと、プロンプト入力または回答が途切れた状態のユースカジノ 退会を学習している状態になる可能性があるため、今回は除去しました。)

  4. iv. iiiの抽出結果から、ユースカジノ 退会データセットとして10,000件、検証データセットとして1,000件分のレコードを抽出する。ここで、ユースカジノ 退会データセットと検証データセットに含まれるレコードは重複させない。

    (例)
    ユースカジノ 退会

    作成したJSONLファイルは任意のS3バケットにそれぞれアップロードします。

②-2: ユースカジノ 退会

微調整の場合も、管理コンソールから、コーディングをすることなくAmazon Bedrockの基盤モデルをユースカジノ 退会することができます。

ユースカジノ 退会はAmazon Bedrock Titanの他に、CohereのCommand, Command Light, MetaのLlama 2 13B, Llama 2 70Bが微調整に対応しています。また、すでにカスタマイズしたユースカジノ 退会がある場合は、それらも選択可能です。
選択したモデルによってハイパーパラメータで設定できる項目および値の範囲が異なります。本コラムの例では、Amazon Bedrock TitanまたはAmazon Bedrock Titanをカスタマイズしたモデルを選択した場合の画面です。検証データはオプションのため、データを準備していない場合は指定せずユースカジノ 退会開始します。

(例)

ユースカジノ 退会料金は、選択したモデルおよびユースカジノ 退会されたトークンの総数によって決まります。Amazon Bedrock Titan/ Cohere Commandの場合は「ユースカジノ 退会されたトークンの総数 = ユースカジノ 退会データコーパス内のトークン数 × エポック数」との記載があり、ハイパーパラメータの「エポック」に比例するため設定時には注意しましょう。(本コラム作成時点ではMeta Llama2の場合は明記されていませんが、想定外の請求を避けるため、同様と考えておく方が良いと考えます。)

https://aws.amazon.com/jp/bedrock/pricing/

ユースカジノ 退会が完了すると、モデルの一覧に追加されます。
ユースカジノ 退会開始から完了までにかかった時間は、ハイパーパラメータを上記の例通りに設定した場合で7時間程度、エポック数1の場合では2時間程度でした。
※ただし、ハイパーパラメータの値を画面の指示通りに設定しても、ユースカジノ 退会開始後にエラーが出る事象を確認しています。その場合は、エラーメッセージの内容に従って、新規にユースカジノ 退会ジョブを再作成する必要があります。

(例)

Amazon Bedrock Titan Text Liteでバッチサイズを64(画面で設定できる値の範囲内)に設定してユースカジノ 退会開始した場合のエラー画面

②-3:プロビジョンドスループットの購入

ユースカジノ 退会したモデルはオンデマンド利用に対応していないため、プロビジョンドスループットを購入する必要があります。
手順は前回コラム(継続的な事前ユースカジノ 退会)の場合と同様のため割愛します。
※料金は選択したユースカジノ 退会、ユースカジノ 退会ユニット、契約期間によって異なります。

②-4:推論

計4通り(エポック数2通りおよび継続的な事前ユースカジノ 退会の実施有無)の微調整したモデルに対して、それぞれ推論して生成された文章を比較します。
※入力プロンプトは、同じ内容がユースカジノ 退会および検証データセットのpromptフィールドには含まれていないことを確認しています。
今回は結果確認用の関数custom_model_chatを実装しています。(ただし、コードの一部をマスキングまたは割愛しています。)

②-4-1:微調整のみ

まずは、Amazon Bedrock Titan Text Liteを微調整したユースカジノ 退会に対して、前回と同じプロンプト文章を入力した場合の推論結果です。

Open QAタスクの推論結果:エポック数1の場合(左)と5の場合(右)

何度か推論するとハルシネーションが起きることもありますが、エポック数を増やしたことによって正しく回答できる回数が増えました。

Brainstormingタスクの推論結果:エポック数1の場合(左)と5の場合(右)

5つ挙げる、という点はどちらもできていますが、トレーニングした総レコード数が少ないためか、ユースカジノ 退会はそもそも日本語が生成されない、という事象が発生しました。
また、回答の正確性については、ユースカジノ 退会も不十分に感じます。
文章要約タスクの場合は、ユースカジノ 退会セット準備(②-1の手順ii)に記載の通りのプロンプトでなければ全く違う意味の(かつ支離滅裂気味の)テキストが生成されました。

要約したい文章(出典:https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/what-is-bedrock.html)

Summarizationタスクの推論結果:エポック数1の場合(左)と5の場合(右)

②-4-2:継続的な事前ユースカジノ 退会+微調整

次に、Amazon Bedrock Titan Text Liteを継続的な事前ユースカジノ 退会させた後に、微調整をした場合のモデルです。今回使用する事前ユースカジノ 退会後のモデルは前回のコラムで作成したモデルではなく、さらに追加で400,000レコード(前回のコラムと合わせて計5回、計500,000レコード)を事前ユースカジノ 退会させたモデルに対して微調整したモデルです。
※事前ユースカジノ 退会の各回のエポックは1に設定しています。

Open QA形式の推論結果:エポック数1の場合(左)と5の場合(右)

継続的な事前ユースカジノ 退会ではWikipediaの記事データを利用していたためか、単純な質問であっても長いテキストを生成しようとしているようです。(都合上、上図では生成されたテキストの一部をトリミングしています。)
そのため、以後は生成するトークン数の上限を設定するパラメータmaxTokenCountの値を適宜制限して推論します。

Brainstormingタスクの推論結果:エポック数1の場合(左)と5の場合(右)

微調整のみ(②-4-1)の場合と比べると具体性が上がっているようには見えますが、まだ正確であるとは言えません。また、微調整のみの場合では生じなかった事象として、5つ挙げることができていない回答が散見されました。
要約タスクにおいては、プロンプトが同じであれば、(トークン数の制限により文章が途切れていることを除けば、)微調整のみの場合の結果と大きな違いは生じませんでした。

Summarizationタスクの推論結果

結果まとめ

Amazon Bedrock基盤モデル(Amazon Titan Text Lite)の微調整を実施することによって、同モデルの継続的な事前ユースカジノ 退会を実施した場合よりもチャットらしいテキストが生成されるようになりました。微調整では一回あたりのユースカジノ 退会データが10,000件までと少ないため、ユースカジノ 退会後でも英文が生成されることがありましたが、エポック数を増やしたり、継続的な事前ユースカジノ 退会を実施しておくことで解決できました。
また、継続的な事前ユースカジノ 退会を実施したうえで微調整を行った場合、微調整のみを実施するよりも具体性のある回答が生成されましたが、事前ユースカジノ 退会の学習データの影響を受けたためか、必要以上の長文が生成されたり、指定した通りでない形式の文章が生成される、という事象が発生することがありました。

さいごに

2回にわたって、Amazon Bedrock基盤モデルのユースカジノ 退会方法および手順を紹介しました。これらの内容が、自社業務に生成AIモデルを活用する場合に、精度向上の手段としてモデルをユースカジノ 退会することが本当に有効なのか、また、データ準備やユースカジノ 退会のコストに見合うのかを見極めるヒントになれば幸いです。

AWSでの生成AI活用に関するアイデアやご相談は、お気軽にカジノゲームまでお寄せください。

カジノゲームは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。

お問い合わせ

【著者プロフィール】

佐々木 紫 (ささき ゆかり)

伊藤忠テクノソリューションズ株式会社 ユースカジノ 退会サイエンティスト

AI・機械学習・数理最適化をはじめとするユースカジノ 退会活用プロジェクトにおいて、分析者・開発者として活動。
現在は、AI・機械学習システムの社会実装に向けて、クラウドユースカジノ 退会活用基盤の設計・構築支援、ソリューション開発、プリセールスを担当。

佐々木 紫 (ささき ゆかり)

TOPコラム一覧【Amazon Bedrock】Amazon Titanと日本語でチャットしたい ~微調整編~

pagetop