🙆‍♀️

大規模言語モデルを使う前に全体像を把握する

2023/05/03に公開

大規模言語モデルを使ったアプリケーション開発をしたい、という前提で必要な情報をまとめたものです。
正しい情報であるかは保証していないのでご注意を。

大規模言語モデル

  • 言語モデルとは文章(複数の単語)に対する、単語の出現確率を出力するもの
  • 大規模言語モデル(LLM)とは、言語モデルの中でも汎用性の高いものを指す
  • 学習データを元に作成されたものであるため、学習データから判断できない内容は出力できない

学習データから判断できる内容

池袋駅から新宿駅まで行く方法を教えて

↓

池袋駅から新宿駅まで行く方法は、以下の3つの方法があります。

1. JR山手線に乗る
    - 池袋駅からJR山手線に乗り、新宿駅で降ります。
    - 所要時間は約10分から15分程度です。

2. 東京メトロ副都心線に乗る
    - 池袋駅から東京メトロ副都心線に乗り、西武新宿駅で乗り換えて、新宿駅に行きます。
    - 所要時間は約15分から20分程度です。

3. 都バスに乗る
    - 池袋駅西口バスターミナルから、都バス[新宿駅西口行き]に乗り、新宿駅西口で降ります。
    - 所要時間は渋滞によって異なりますが、通常は30分から40分程度です。

上記の方法の中で、一番早くて便利なのはJR山手線を利用する方法です。

学習データから判断できない内容

今日の東京の天気を教えて

↓

申し訳ありませんが、私は現在のリアルタイムの天気情報を持っていません。私は2021年9月までに訓練されたため、私が知っているのはその時点での情報だけです。今後の日付の天気情報が必要な場合は、気象情報を提供する正確なWebサイトやアプリをチェックすることをお勧めします。

ファインチューニング

  • ファインチューニングとは既存の言語モデルに対して、学習データを追加し訓練すること
  • 言語モデルの元となる学習データが増えることで、判断できる内容を増やすことができる

プロンプティング

  • 文章という形式でプロンプト(指示)することで、言語モデルから出力を得ることができる
  • 意図した出力を得るために、プロンプトする文章・設定を構築することを、prompt engineering と呼ぶ
  • 出力する形式を指定する場合など、少数の例を含めてプロンプトすることを、few-shot prompting と呼ぶ
  • 例を含めずにプロンプトすることを、zero-shot prompting と呼ぶ

zero-shot prompting

ぶどう:

↓

ぶどうは、世界中で栽培されている果物の一種で、多くの種類があります。一般的に、ぶどうは小さな球形または卵形をしており、多汁で甘味があります。その種類によっては、種があるものやないものもあります。

ぶどうは、新鮮なまま食べたり、ジュースやワインなどの加工品に使われたりします。また、栄養価も高く、ビタミンやミネラル、抗酸化物質などが豊富に含まれています。そのため、健康にも良い果物として知られています。

few-shot prompting

りんご:赤
バナナ:黄

ぶどう:

↓

紫

プロンプトエンジニアリング

  • 意図した出力を得るために、次のような点を考慮しプロンプトする文章を構築すると良い
    • 状況(何を・どのように)と指示(どうする)は明確に分ける
    • 具体的に状況や指示を説明する
    • 出力の形式を例で説明する
    • 少し・なるべく、など曖昧な表現を使わない
    • ”してほしくないこと”ではなく”してほしいこと”を説明する
    • プログラミングコードを生成させる場合は、コードの導入部分をプロンプトする文章に含める

良くない例

文章が長いからもう少し短くなるよう要約して
でも短すぎるのもだめ

ツイッターを運営する米X社のオーナー、イーロン・マスク氏は29日、5月から報道機関が記事1本ごとに利用料金を徴収できるようにすると表明した。
ツイッター上で、利用者は定期購読料を支払わずとも、関心を持った記事を読めるようになる。
ニュース購読では、一定額を支払えば全記事を読めるサービス形態が多い。マスク氏は「1本当たりの価格は割高になるが、月額購読しなくても必要な時に記事を読める」とツイート。「メディアと利用者の双方に大きなメリットがあるはずだ」と強調した。
従量課金は、より細かなニーズを捉えられ、メディアの収益基盤を強化できる可能性もある。
マスク氏は、ニュースの従量課金サービスが日本で提供されるかは明らかにしていない。

↓

ツイッターのオーナーであるイーロン・マスク氏が、5月から報道機関が記事ごとに利用料金を徴収できるようにすることを発表しました。利用者は定期購読料を支払わずとも、関心のある記事を読むことができます。マスク氏は、1本当たりの価格は高くなりますが、必要な時に記事を読めると述べ、この従量課金制度はメディアと利用者の双方に大きなメリットがあると強調しました。ニュースの従量課金サービスが日本で提供されるかどうかは不明です。

良い例

ニュース記事を指定の形式に従って要約してください。

指定の形式: ###
- 数字の連番で箇条書き
- 箇条書き3行
- 1行あたり30~40文字
###

ニュース記事: ###
ツイッターを運営する米X社のオーナー、イーロン・マスク氏は29日、5月から報道機関が記事1本ごとに利用料金を徴収できるようにすると表明した。
ツイッター上で、利用者は定期購読料を支払わずとも、関心を持った記事を読めるようになる。
ニュース購読では、一定額を支払えば全記事を読めるサービス形態が多い。マスク氏は「1本当たりの価格は割高になるが、月額購読しなくても必要な時に記事を読める」とツイート。「メディアと利用者の双方に大きなメリットがあるはずだ」と強調した。
従量課金は、より細かなニーズを捉えられ、メディアの収益基盤を強化できる可能性もある。
マスク氏は、ニュースの従量課金サービスが日本で提供されるかは明らかにしていない。
###

↓

1. ツイッターが報道機関に記事1本ごとの利用料金徴収を許可するとイーロン・マスク氏が表明
2. 定期購読料不要で利用者が関心を持った記事を読めるようになる
3. 従量課金は細かいニーズを捉え、メディアの収益基盤強化の可能性がある。提供国は未定。

主な大規模言語モデル

  • ChatGPT, Azure Open AI Service
    • GPT-4
    • GPT-3 (GPT-3.5)
  • Google Bard
    • LaMDA
    • PaLM
  • Amazon Bedrock
    • Jurassic-2
    • Claude
  • その他
    • LLaMA
    • Alpaca

大規模言語モデルを使ったアプリケーション開発

  • 大規模言語モデル単体では、プロンプトされた文章に対する結果を出力することしか行えない
  • 過去のやり取りを記録したり、外部データと連携するには、別途仕組みを構築する必要がある
  • LangChainを使うことで、次のような仕組みを構築しやすくなる
    • 大規模言語モデルの管理
    • 外部データとの連携
    • やり取りの種類を識別
    • 過去のやり取りを記録

まとめ

  • 大規模言語モデルを使うことで、テキストベースで様々な指示を行うことができる
  • 人間と会話するのとは違い、ローコンテクストでやり取りする点を注意する必要がある
  • 大規模言語モデルの種類は様々あるが、サービス提供前だったりして使えないものも多々ある
  • これまでの機械学習を活用したアプリケーションと同様、大規模言語モデルでもモデル周りの部分は構築する必要がある

参考

Discussion