Skip to content

Commit

Permalink
Modified expression
Browse files Browse the repository at this point in the history
Modified expression
  • Loading branch information
yoshioterada committed Dec 17, 2023
1 parent 363fca3 commit a1fc55f
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions 04-prompt-engineering-fundamentals/translations/ja-jp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

_生成系 AI_ は、ユーザーからの依頼に対して、テキスト、画像、オーディオ、コード等の新しいコンテンツを生み出す能力を有しています。これを実現するために、OpenAI の GPT(Generative Pre-trained Transformer)シリーズのような、自然言語とコードの使用目的でトレーニングされた _大規模言語モデル(LLM)_ を利用します。

利用者は、チャットのような馴染み深い手法で、特別な技術の知識や研修を受講しなくても、これらのモデルと対話できるようになりました。これらのモデルは、_プロンプト_ で操作し、ユーザーがテキストの入力(プロンプト)を送ると、AI からの応答(コンプリーション)が得られます。その後、利用者は何度も 「AI と対話」を重ね、複数回のやり取りを通じてプロンプトを洗練させ、期待する応答を得られるまで調整を行います
利用者は、チャットのような馴染み深い手法で、特別な技術の知識や研修を受講しなくても、これらのモデルと対話できるようになりました。これらのモデルは、_プロンプト_ で操作し、ユーザーがテキストの入力(プロンプト)を送ると、AI からの回答(コンプリーション)が得られます。その後、利用者は何度も 「AI と対話」を重ね、複数回のやり取りを通じてプロンプトを洗練させ、期待する回答が得られるまで調整を行います

現在、「プロンプト」は生成系 AI アプリの中心的なプログラミング・インターフェースとして機能し、モデルに何を行うべきかを伝え、応答の品質に影響を及ぼしています。「プロンプト・エンジニアリング」は、大規模で一貫した品質の高い応答を実現するため、プロンプトの _設計と最適化_ に特化した、成長著しい研究領域です
現在、「プロンプト」は生成型 AI アプリケーションの主要なプログラミングインターフェースとなり、モデルに対して何を行うべきか指示し、返される回答の品質に影響を与えています。「プロンプト・エンジニアリング」は、大規模で一貫性のある高品質な回答を得るためのプロンプトの設計と最適化に焦点を当てた、急速に成長している研究分野です

## 学習目標

Expand Down Expand Up @@ -38,13 +38,13 @@ _生成系 AI_ は、ユーザーからの依頼に対して、テキスト、

## スタートアップ

それでは、_このトピック_ がスタートアップのミッションである「[教育へ AI 革新をもたらす](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-yoterada)とどのように結びついているのかについて話しましょう。私たちは_個別学習_を実現する AI アプリケーションの開発を目指しています。そこで、私たちのアプリケーションを利用する様々な利用者がプロンプトをどのように「デザイン」するかを考えてみましょう。
それでは、_このトピック_ がスタートアップのミッションである「[教育へ AI 革新をもたらす](https://educationblog.microsoft.com/2023/06/collaborating-to-bring-ai-innovation-to-education?WT.mc_id=academic-105485-yoterada)とどのように結びついているのかについて見て行きましょう。私たちは _個別学習_ を実現する AI アプリケーションの開発を目指しています。そこで、私たちのアプリケーションを利用する様々な利用者がプロンプトをどのように「デザイン」するかを考えてみましょう。

- **管理者は**AI に _カリキュラムのデータを分析しカバーしてない領域を特定する_ よう要求する可能性があります。AI はその結果をまとめたり、コードを用いて可視化することができます。
- **教員は**AI に_特定の生徒と授業科目に応じた授業計画を作成する_可能性があります。AI は指定されたフォーマットに従って個別に計画を作成できます。
- **生徒は**AI に_苦手な科目で個別指導を依頼する_可能性があります。AI は生徒のレベルに合わせたレッスン、ヒント、例を提供して指導することができます。
- **管理者**: AI に _カリキュラムのデータを分析し、カバーしてない領域を特定する_ よう要求する可能性があります。AI はその結果をまとめたり、コードを用いて可視化することができます。
- **教員**: AI _特定の生徒と授業科目に応じた授業計画を作成する_ 可能性があります。AI は指定されたフォーマットに従って個別に計画を作成できます。
- **生徒**: AI _苦手な科目で個別指導を依頼する_ 可能性があります。AI は生徒のレベルに合わせたレッスン、ヒント、例を提供して指導することができます。

これはほんの一例です。教育専門家から厳選された、オープンソースのプロンプト・ライブラリ「[Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-yoterada)」を確認し、さらに広い視野で可能性を探ってみてください!_サンドボックスでそれらのプロンプトを試しに実行したり、OpenAI Playground で試してどのような結果が出力されるか試してください!_
これらは、ほんの一例です。教育専門家から厳選された、オープンソースのプロンプト・ライブラリ「[Prompts For Education](https://github.com/microsoft/prompts-for-edu/tree/main?WT.mc_id=academic-105485-yoterada)」を確認し、さらに広い視野で可能性を探ってみてください! _サンドボックスでそれらのプロンプトを試しに実行したり、OpenAI Playground で試してどのような結果が出力されるか試してください!_


<!--
Expand Down Expand Up @@ -72,27 +72,27 @@ Define it and explain why it is needed.

### Tokenization

LLM は、プロンプトを_トークンの連続_として見ており、異なるモデル(またはモデルの異なるバージョン)を利用すると、同じプロンプトでも異なる方法でトークン化することがあります。LLM は生のテキストではなくトークンを使ってトレーニングしているため、プロンプトがどのようにトークン化されるかは、生成される回答品質に直接影響を及ぼします。
LLM は、プロンプトを _トークンの連続_ として見ており、異なるモデル(またはモデルの異なるバージョン)を利用すると、同じプロンプトでも異なる方法でトークン化することがあります。LLM は生のテキストではなくトークンを使ってトレーニングしているため、プロンプトがどのようにトークン化されるかは、生成される回答品質に直接影響を及ぼします。

トークン化の仕組みを理解するには、こちらの [OpenAI Tokenizer](https://platform.openai.com/tokenizer?WT.mc_id=academic-105485-yoterada) などのツールを使ってご確認いただくのが良いかもしれません。プロンプトをコピーして、それがどのようにトークンに変換されるかをツールからご確認ください。特に空白文字や句読点の扱いに注意してください。下記の例では、古い LLM(GPT-3)の例を示していますが、新しいモデルを利用すると異なる結果になるかもしれません。

![Tokenization](../../images/04-tokenizer-example.png?WT.mc_id=academic-105485-yoterada)

### 概念: ファウンデーション・モデル

プロンプトをトークンに分割した後、「[Base LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-yoterada)」(またはファウンデーションモデル)の主な役割は、その分割したトークンの連続した文字列の中で、次に来るトークンを予測することです。LLM は膨大な量のテキスト・データでトレーニングしているため、トークン間の統計的な関連性を十分に把握しており、ある程度の自信を持ってその予測を行うことができます。ただしモデルは、プロンプトやトークンに含まれる単語の_意味_を理解しているわけではなく、単に次にくるトークンの予測から「完成」できるパターンを見ているだけです。ユーザーが操作を停止するか、あらかじめ定められた条件が満たされるまで、予測を続けることが可能です。
プロンプトをトークンに分割した後、「[Base LLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-yoterada)」(またはファウンデーションモデル)の主な役割は、その分割したトークンの連続した文字列の中で、次に来るトークンを予測することです。LLM は膨大な量のテキスト・データでトレーニングされているため、トークン間の統計的な関連性を十分に把握しており、ある程度の自信を持ってその予測を行うことができます。ただしモデルは、プロンプトやトークンに含まれる単語の _意味_ を理解しているわけではなく、単に次にくるトークンの予測から「完成」できるパターンを見ているだけです。ユーザーが操作を停止するか、あらかじめ定められた条件が満たされるまで、予測を続けることが可能です。

プロンプトベースの完成(completion)がどのように機能するか確認してみたいですか?上記のプロンプトをデフォルトの設定のままでAzure OpenAI Studioの[_チャットプレイグラウンド_](https://oai.azure.com/playground?WT.mc_id=academic-105485-yoterada)に入力してください。システムは、プロンプトを情報のリクエストとして処理するように構成されいるので、その文脈に適した回答結果が得られるはずです。

それでは、ユーザーがある特定基準やタスク目標に対して適する、特定結果を望む場合はどうでしょうか?そのような場合には、_インストラクション・チューニングされた LLM_ LLM が役立ちます。
それでは、ユーザーがある特定基準やタスク目標に対して適する、特定結果を望む場合はどうでしょうか?そのような場合には、_インストラクション・チューニングされた LLM_ が役立ちます。

![Base LLM Chat Completion](../../images/04-playground-chat-base.png?WT.mc_id=academic-105485-yoterada)

### 概念: インストラクション・チューニングされた LLM

[インストラクションチューニングされたLLM](https://blog.gopenai.com/an-introduction-to-base-and-instruction-tuned-large-language-models-8de102c785a6?WT.mc_id=academic-105485-yoterada)は、ファウンデーションモデルを基に、明確な指示を含む例や入出力の組み合わせ(例えば、複数のターンにわたる「メッセージ」など)で微調整を施します。そして、AI はその指示に従うような回答作成を試みるようになります。

これには、人間のフィードバックを取り入れた強化学習(Reinforcement Learning with Human Feedback : RLHF)などの技術が使われます。RLHF を利用すると、モデルが利用者からの _指示に従って__フィードバックから学習する_ ようにトレーニングでき、これにより、実用的なアプリケーションに適した、よりユーザーの目的に合致する回答を得られるようになります
これには、人間のフィードバックを取り入れた強化学習(Reinforcement Learning with Human Feedback : RLHF)などの技術が使われます。RLHF を利用すると、モデルが利用者からの _指示に従って__フィードバックから学習する_ ようにトレーニングでき、これにより、実用的なアプリケーションに適した、よりユーザーの目的に合致する回答が得られるようになります

それでは、実際に試してみましょう。
先ほどのプロンプトに戻り、今度は _システムメッセージ_ を変更して、下記の指示をコンテキストとして加えてみてください:
Expand All @@ -105,13 +105,13 @@ LLM は、プロンプトを_トークンの連続_として見ており、異

## プロンプト・エンジニアリングはなぜ必要なのでしょうか?

LLM がプロンプトをどのように処理するかを理解したところで、_なぜ_ プロンプト・エンジニアリングが _なぜ_ 必要なのかについて考えてみましょう。その答えは、現在の LLM がいくつかの課題を抱えており、プロンプトの作成と最適化に取り組まなければ、_信頼性のある一貫した回答_ を得ることが難しく、このような課題が多数存在するという事実があります。例を挙げると:
LLM がプロンプトをどのように処理するかを理解したところで、_なぜ_ プロンプト・エンジニアリングが必要なのかについて考えてみましょう。その答えは、現在の LLM がいくつかの課題を抱えており、プロンプトの作成と最適化に取り組まなければ、_信頼性のある一貫した回答_ を得ることが難しく、このような課題が多数存在するという事実があります。例を挙げると:

1. **モデルの回答は確率的な性質を持っています。** たとえ、_同一プロンプト_ であっても、異なるモデルやモデルのバージョンの差によって、異なる回答を得る場合があります。そして、_同じモデル_ でも、異なる時期に実行すると異なる結果を生じることがあります。_プロンプト・エンジニアリングの手法は、より適切なガイドラインを提供することで、こうしたばらつきを減らすのに役立ちます。_

1. **モデルは回答を捏造することがあります** モデルは _大規模ながら有限の_ データセットで事前にトレーニングされているため、トレーニングの範囲を超えた概念に関する知識は不足しています。その結果、不正確、もしくは架空、あるいは既知の事実と明らかに矛盾する回答を出力することがあります。_プロンプトエンジニアリングの手法は、ユーザーがこのような捏造を特定し軽減するのに役立ちます。例えば、AI に出典や論理的根拠の説明を求めて防ぎます。_

1. **モデルの能力は異なります。** 新しいモデルやモデルの世代のアップグレードでより高度な能力を持ちますが、一方でそれには独自の特性、コスト、複雑さの面でトレードオフが伴います。_プロンプトエンジニアリングは、これらの違いを取り除き、モデル固有の要件に合わせてスケーラブルでシームレスに適応する、ベストプラクティスとワークフローを開発するのに役立ちます_
1. **モデルの能力は異なります。** 新しいモデルや新世代のモデルは、より高度な機能を持つ一方で、独自の特性やコストと複雑さの面でトレードオフをもたらします。_プロンプト・エンジニアリングは、これらの違いを取り除き、スケーラブルでシームレスな方法でモデル固有の要件に適応するベストプラクティスとワークフローを開発するのに役立ちます_

OpenAI や Azure OpenAI プレイグラウンドで実際に試してみましょう:

Expand All @@ -120,7 +120,7 @@ OpenAI や Azure OpenAI プレイグラウンドで実際に試してみまし

### 捏造の例

この講座では、LLM がトレーニングの制限やその他の制約により、事実に反する情報を回答する現象を**「捏造」**という用語で説明します。一般的な記事や研究論文で_「幻覚」_と表現されることもありますが、機械が生み出した回答に対して人間の特性を誤って当てはめる擬人化を避けるために、_「捏造」_という用語の使用を強く推奨します。これは、用語の観点から[責任ある AI のガイドライン](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-yoterada)を強化するものであり、また、一部の文脈で不快感を与えたり排他的であると考えられる用語を排除することにもつながります。
この講座では、LLM がトレーニングの制限やその他の制約により、事実に反する情報を回答する現象を**捏造**という用語で説明します。一般的な記事や研究論文で「_幻覚_」と表現されることもありますが、機械が生み出した回答に対して人間の特性を誤って当てはめる擬人化を避けるために、_捏造_」という用語の使用を強く推奨します。これは、用語の観点から[責任ある AI のガイドライン](https://www.microsoft.com/ai/responsible-ai?WT.mc_id=academic-105485-yoterada)を強化するものであり、また、一部の文脈で不快感を与えたり排他的であると考えられる用語を排除することにもつながります。

捏造がどのように行われるかを理解したいですか?AI に対して、トレーニング・データに含まれていない、架空のトピックに関するコンテンツ作成をプロンプトで指示する事を考えてください。例えば、私は下記のプロンプトを試しました:

Expand Down

0 comments on commit a1fc55f

Please sign in to comment.