AWS Summit Review | プロンプトエンジニア入門

近年、生成AIの技術は急速に進化し、さまざまな分野でその利用が拡大しています。その中でも基盤モデルと大規模言語モデル(LLM)は、生成AIの中心的な役割を果たしています。本記事では、これらの技術について簡単に解説し、プロンプトエンジニアリングの基本概念とそのベストプラクティスについて紹介します。

基盤モデルと大規模言語モデル

基盤モデルとは

基盤モデルとは、大量のデータを使って事前に学習されたモデルのことを指します。生成AIにおいては、基盤モデルが「脳」に相当し、ラベルなしデータから学習して生成を行います。この基盤モデルにはさまざまな種類がありますが、一般的には以下のようなものがあります:

  テキスト入力 → テキスト出力

  テキスト入力 → 画像出力

これらの基盤モデルは、多様な入力データから出力を生成する能力を持っており、様々なタスクに対応可能です。例えば、テキストを入力して要約を生成したり、テキストから画像を生成することができます。これらの能力は、企業による顧客体験の向上や新しい製品開発に役立てることができます。

大規模言語モデル(LLM)

生成AIの多くは大規模言語モデル(Large Language Model 通称: LLM)をベースにしています。LLMは、入力されたプロンプトに基づいて適切な出力を生成します。その裏側では、トランスフォーマーアーキテクチャが使用されており、その構成は以下のようになっています。

  • エンコーダー:入力を埋め込み(ベクトル)に変換
  • デコーダー:埋め込み(ベクトル)を受け取り、出力テキストを生成 
          これにより、次に来ることばを確率的に予測して生成する

トランスフォーマーアーキテクチャは並列化が可能であるため、大量データの学習時間を短縮することができ、LLMのトレーニング時間が大幅に短縮されます。結果として迅速なモデルの開発が可能となります。

主な機能

LLMの主な機能には以下のものがあります:

  • 並列化可能: 大量データの学習時間を短縮することができ、トレーニング時間を大幅に短縮する
  • ユースケース: 顧客体験の向上(チャットボットなど)、生産性向上(従業員サポート、コード生成)、コンテンツ作成支援(セールス、製品開発)、プロセス最適化(文書処理)など、幅広い用途で利用されている

これらの機能を活用することで、企業は自社の要件に合わせてカスタマイズされたソリューションを構築することができます。ただし、基盤モデル自体は特定のケースの学習データを持っていないため、カスタマイズには基盤モデルのトレーニングが必要です。

事前学習とファインチューニング

基盤モデルを自社の要件に合わせてカスタマイズするためには、事前学習とファインチューニングが必要です。

  • 事前学習:基盤モデルは大量の一般データで事前学習される。
         この過程では、モデルは一般的な言語パターンや知識を学ぶ。
  • ファインチューニング:特定のタスクやドメインに合わせてモデルを微調整する。
               ファインチューニングでは、特定のデータセットを使用してモデルを再トレーニングし、特定の用途に最適化する。これは負荷の高い作業で、長い時間が必要となる

一方、以下で解説するプロンプトエンジニアリングは、入力するプロンプトを微調整することで大規模言語モデルの力を引き出す最速の方法です。プロンプトエンジニアリングでは、モデルのパラメーターを変更することなく、望ましい出力を得るための最適なプロンプトを設計することに焦点を当てています。

プロンプトエンジニアリングの主要概念

プロンプトの要素

効果的なプロンプトを設計するためには、以下の要素を考慮する必要があります:

  • インストラクション:モデルに対して何をしてほしいのかを明確に伝える指示
  • コンテキスト:どのような背景で指示を行っているのかの情報を提供
           これにより、モデルは指示の意味を理解しやすくなる
  • 入力データ:検索結果などのデータを提供(事前学習していない事象に関しての応答)
          具体的なデータを提供することで、モデルはより正確な出力を生成できる
  • 出力インジケーター:出力形式を指定
              期待される出力の形式や内容を指定することで、モデルの出力を制御する

例)

具体例として、この記事のリード文をようやくする例を使ってみます。

インストラクション:「次のリード文を1文に要約してください。」

コンテキスト:「記事のリード文を簡潔な形に書き直したい」

入力データ:「近年、生成AIの技術は急速に進化し、さまざまな分野でその利用が拡大しています。その中でも基盤モデルと大規模言語モデル(LLM)は、生成AIの中心的な役割を果たしています。本記事では、これらの技術について簡単に解説し、プロンプトエンジニアリングの基本概念とそのベストプラクティスについて紹介します。」

出力インジケーター:「1文に要約した形で出力」

 

出力例:「生成AI技術の進化と基盤モデル、大規模言語モデル(LLM)の役割について説明し、プロンプトエンジニアリングの基本とベストプラクティスを紹介します。」

効果的なプロンプトの設計

効果的なプロンプトを設計するためのベストプラクティスには以下のものがあります。

  • 明確かつ簡潔に:曖昧な指示はモデルの出力を不明瞭にする可能性があるため、プロンプトは明確で簡潔であるべき
  • コンテキストを含める:どのような目的か、どのような出力を期待しているのかをプロンプトに含めることで、モデルは指示の意図をよりよく理解できる
  • 目的に合わせた指示:目的が明確であるほど、モデルの出力も目的に沿ったものになる
  • 出力を明確に:期待される出力を明確にすることで、モデルの出力が予測しやすくなる
  • 質問から始める:質問形式でプロンプトを始めることが効果的。質問形式はモデルにとって理解しやすく、具体的な応答を引き出しやすい
  • 回答例を提供:期待される回答例を提供することで、モデルは具体的な応答の例を参照できる
  • 複雑なタスクを分割:複雑なタスクは分割して指示する。例えば、ユーザーのレビューコメントから新しい製品開発に繋げたい場合、まずレビューを分析し、その後製品開発案をリストアップさせるといった段階的な指示が有効
  • 実験して創造性を発揮:プロンプトエンジニアリングでは、実験を重ねて創造性を発揮することが重要。新しいプロンプトを試し、その効果を評価することで、より良いプロンプトを設計することができる。

ゼロショットプロンプトと数ショットプロンプト

ゼロショットプロンプト

ゼロショットプロンプトは、具体的な例を提示せずにモデルにタスクを実行させる方法です。このアプローチは、モデルが一般的な知識に基づいてタスクを理解し実行することを期待します。例えば以下のようなプロンプトがこれに該当します:

インストラクション:「次の1文を要約してください」

入力データ:「近年、生成AIの技術は急速に進化し、さまざまな分野でその利用が拡大しています。その中でも基盤モデルと大規模言語モデル(LLM)は、生成AIの中心的な役割を果たしています。本記事では、これらの技術について簡単に解説し、プロンプトエンジニアリングの基本概念とそのベストプラクティスについて紹介します。」

数ショットプロンプト

数ショットプロンプトは、モデルにいくつかの具体的な例を提示してからタスクを実行させる方法です。これにより、モデルは提供された例に基づいてタスクを実行する方法を学習します。例えば、以下のようなプロンプトがこれに該当します:

インストラクション:「次の文章を1文に要約してください。」

例1:「この店舗のカスタマーサポートは非常に迅速で、問題がすぐに解決しました。
→ ABCストアのカスタマーサポートは迅速で問題解決が早いです。」

例2:「スタッフはとても親切で、対応が丁寧でした。
→ スタッフは親切で丁寧な対応をしてくれます。」

入力データ:「近年、生成AIの技術は急速に進化し、さまざまな分野でその利用が拡大しています。その中でも基盤モデルと大規模言語モデル(LLM)は、生成AIの中心的な役割を果たしています。本記事では、これらの技術について簡単に解説し、プロンプトエンジニアリングの基本概念とそのベストプラクティスについて紹介します。」

このように、具体的な例を提供することで、モデルはより正確な出力を生成しやすくなります。

まとめ

この記事では、基盤モデルと大規模言語モデルについての基本的な理解を深めるとともに、プロンプトエンジニアリングのベストプラクティスとゼロショットプロンプトおよび数ショットプロンプトの具体例について紹介しました。生成AI活用のお役に立てればと思います。

関連記事

カテゴリー:

ブログ

情シス求人

  1. チームメンバーで作字やってみた#1

ページ上部へ戻る