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 a1fc55f commit 4690d95
Showing 1 changed file with 20 additions and 22 deletions.
42 changes: 20 additions & 22 deletions 04-prompt-engineering-fundamentals/translations/ja-jp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,33 +126,33 @@ OpenAI や Azure OpenAI プレイグラウンドで実際に試してみまし

> **プロンプト:** 2076年の火星戦争についての授業計画を生成してください。
Web で検索を行ったところ、火星の戦争についてのフィクション(例:テレビドラマや書籍)はいくつか見つかりましたが、2076 年に関するものは存在しませんでした。常識的に考えても、2076年は_未来_であり、実際の出来事と関連付けることはできません。
Web で検索を行ったところ、火星の戦争についてのフィクション(例:テレビドラマや書籍)はいくつか見つかりましたが、2076 年に関するものは存在しませんでした。常識的に考えても、2076年は _未来_ であり、実際の出来事と関連付けることはできません。

それでは、このプロンプトを異なる LLM サービス・プロバイダで試したら、どのような結果が得られるのでしょうか?

> **Response 1**: OpenAI Playground (GPT-35)
> **回答 1**: OpenAI Playground (GPT-35)
![Response 1](../../images/04-fabrication-oai.png?WT.mc_id=academic-105485-yoterada)

> **Response 2**: Azure OpenAI Playground (GPT-35)
> **回答 2**: Azure OpenAI Playground (GPT-35)
![Response 2](../../images/04-fabrication-aoai.png?WT.mc_id=academic-105485-yoterada)

> **Response 3**: : Hugging Face Chat Playground (LLama-2)
> **回答 3**: : Hugging Face Chat Playground (LLama-2)
![Response 3](../../images/04-fabrication-huggingchat.png?WT.mc_id=academic-105485-yoterada)

予想通り、モデルごと(またはモデルのバージョンごと)に、確率的なふるまいやモデルの能力差によって、微妙に異なる回答が得られました。たとえば、一つのモデルは中学2年生を対象にしているのに対し、別のモデルは高校生を前提にしています。しかし、どのモデルも、情報を持たないユーザーに対して、その出来事が実際にあったかのように誤解生じさせる回答を生成しました。
予想通り、モデルごと(またはモデルのバージョンごと)に、確率的なふるまいやモデルの能力差によって、微妙に異なる回答が得られました。たとえば、一つのモデルは中学2年生を対象にしているのに対し、別のモデルは高校生を対象にしています。しかし、どのモデルも、情報を持たないユーザーに対して、その出来事が実際にあったかのように誤解生じさせる回答を生成しました。

_メタプロンプティング__温度調整_ といったプロンプトエンジニアリングの手法は、モデルによる捏造をある程度抑制することが可能です。新しいプロンプトエンジニアリングの_アーキテクチャ_は、これらの影響を緩和または削減させるために、新しいツールや手法をプロンプト・フローにシームレスに取り入れています。
_メタプロンプティング__温度調整_ といったプロンプトエンジニアリングの手法は、モデルによる捏造をある程度抑制することが可能です。新しいプロンプトエンジニアリングの _アーキテクチャ_ は、これらの影響を緩和または削減させるために、新しいツールや手法をプロンプト・フローにシームレスに取り入れています。

## ケーススタディ:GitHub Copilot

このセクションの最後に、実世界のソリューションの中でプロンプト・エンジニアリングがどのように活用されているかを理解するために、[GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-yoterada)の事例を見てみましょう
このセクションを終えるにあたり、[GitHub Copilot](https://github.com/features/copilot?WT.mc_id=academic-105485-yoterada) の事例を通じて、プロンプト・エンジニアリングが実際のソリューションでどのように活用されているかを具体的に見ていきましょう

GitHub Copilotは「AI ペア・プログラマー」として機能し、開発環境(例:Visual Studio Code)に統合し、テキスト・プロンプトからコードに変換、することでユーザーにシームレスな体験を提供します。下記のブログ・シリーズに記述されているように、初期バージョンは OpenAI Codex モデルをベースにしていましたが、エンジニアは、コードの品質をより向上させるため、モデルをファイン・チューニングし、すぐに良いプロンプト・エンジニアリング手法の開発が必要と認識しました。7月には、[Codex を超える改良版 AI モデルを発表しました](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-yoterada)これにより、さらに素早い提案が可能になりました。
GitHub Copilotは「AI ペア・プログラマー」として機能し、開発環境(例:Visual Studio Code)に統合し、テキスト・プロンプトからコードに変換することでユーザーにシームレスな体験を提供します。下記のブログ・シリーズに記述されているように、初期バージョンは OpenAI Codex モデルをベースにしていました。しかしエンジニアはすぐにコード品質をより向上させるため、モデルをファイン・チューニングし、より良いプロンプト・エンジニアリング技術を開発する必要性を認識しました。7月には、[Codex を越える改良版 AI モデルを発表し](https://github.blog/2023-07-28-smarter-more-efficient-coding-github-copilot-goes-beyond-codex-with-improved-ai-model/?WT.mc_id=academic-105485-yoterada)これにより、さらに素早い提案が可能になりました。

投稿を順番に読んで、学習の変遷をたどってください
投稿を順番に読んで、GitHub Copilot の学習の過程をたどってください

- **2023年5月** | [GitHub Copilot、コード理解能力を向上](https://github.blog/2023-05-17-how-github-copilot-is-getting-better-at-understanding-your-code/?WT.mc_id=academic-105485-yoterada)
- **2023年5月** | [GitHub の内部:GitHub Copilot の背後にある LLM との連携](https://github.blog/2023-05-17-inside-github-working-with-the-llms-behind-github-copilot/?WT.mc_id=academic-105485-yoterada).
Expand All @@ -162,7 +162,7 @@ GitHub Copilotは「AI ペア・プログラマー」として機能し、開発
- **2023年9月** | [企業向け LLM アプリの構築方法:GitHub Copilot の事例から学ぶ](https://github.blog/2023-09-06-how-to-build-an-enterprise-llm-application-lessons-from-github-copilot/?WT.mc_id=academic-105485-yoterada)

また、これらのモデルやテクニックを実際のアプリケーションに適用する方法をまとめた[こちらの記事](https://github.blog/2023-09-27-how-i-used-github-copilot-chat-to-build-a-reactjs-gallery-prototype/?WT.mc_id=academic-105485-yoterada)のように、
より多くの知見を得るために[エンジニア・ブログ](https://github.blog/category/engineering/?WT.mc_id=academic-105485-yoterada)もどうぞご覧ください。
より多くの知見を得たい場合は、[エンジニア・ブログ](https://github.blog/category/engineering/?WT.mc_id=academic-105485-yoterada)もどうぞご覧ください。

---

Expand All @@ -178,11 +178,11 @@ Illustrated with examples.

## プロンプトの組み立て

ここまで、プロンプト・エンジニアリングがなぜ大切なのかを見てきました。次に、プロンプトをどのように _作成する_ のかを把握し、より効果的なプロンプト・デザインのために様々な手法を評価しましょう
ここまで、プロンプト・エンジニアリングがなぜ大切なのかを見てきました。次に、プロンプトをどのように _作成する_ のかを把握し、より効果的なプロンプトを設計するために存在する、様々な手法を見ていきましょう

### 基本的なプロンプト

基本的なプロンプトから始めましょう:モデルに送信するテキスト入力で、他のコンテキストはありません。例を挙げると、OpenAI の[Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-yoterada) にアメリカ国歌の最初の数語を送ると、すぐに次の数行で応答を _完成させる_、基本的な予測動作を示します。
基本的なプロンプトから始めましょう:モデルに送信するテキスト入力で、他のコンテキストはありません。例を挙げると、OpenAI の[Completion API](https://platform.openai.com/docs/api-reference/completions?WT.mc_id=academic-105485-yoterada) にアメリカ国歌の最初の数語を送ると、すぐに次の数行で回答を _完成させる_、基本的な予測動作を示します。

| プロンプト (入力) | 回答 (出力) |
|:---|:---|
Expand All @@ -192,10 +192,10 @@ Illustrated with examples.

次に、基本的なプロンプトにコンテキストと指示を加えてみましょう。[Chat Completion API](https://learn.microsoft.com/azure/ai-services/openai/how-to/chatgpt?WT.mc_id=academic-105485-yoterada) を利用すると、以下の要素を含むメッセージのコレクションとして高度なプロンプトを作成できます:

- _ユーザー_ の入力と_アシスタント_の応答を示す入出力ペア
- _ユーザー_ の入力と _アシスタント_ の応答を示す入出力ペア
- アシスタントの振る舞いや人格の文脈を設定するシステムメッセージ

リクエストは下記の形式になり、トークン化によってコンテキストと会話から関連情報を効果的に捉えられます。システム・コンテキストの変更は、ユーザーの入力する内容と同じくらい、回答品質に影響を与える可能性があります。
リクエストは下記の形式になり、トークン化によってコンテキストと会話から関連情報を効果的に捉えられます。システム・コンテキストの変更は、ユーザーの入力内容と同じくらい、回答品質に影響を与える可能性があります。

```python
response = openai.ChatCompletion.create(
Expand All @@ -221,20 +221,20 @@ response = openai.ChatCompletion.create(

## 主要コンテンツ

上記の例では、プロンプトは比較的自由度が高く、LLM が事前にトレーニングされたデータセットのどの部分が関連するかを決定する余地がありました。_主要コンテンツ_のデザイン・パターンでは、入力テキストは二つのパートに分割されます:
上記の例では、プロンプトは比較的自由度が高く、LLM が事前にトレーニングされたデータセットのどの部分が関連するかを決定する余地がありました。_主要コンテンツ_ のデザイン・パターンでは、入力テキストは二つのパートに分割されます:

- 指示(行動)
- 関連する内容(行動に影響を及ぼす)

以下は、「これを 2 文にまとめてください」という指示の例です。
以下は、「これを 2 つの短い文にまとめてください」という指示の例です。

| プロンプト (入力) | 回答 (出力) |
|:---|:---|
| 木星は太陽から五番目の惑星で、太陽系で最も大きな惑星です。質量は太陽の千分の一ですが、太陽系内の他のすべての惑星を合わせたものの2.5倍の巨大ガス惑星です。木星は夜空に肉眼で見える最も明るい天体の一つで、記録された歴史以前から古代文明に知られていました。ローマ神話の神ジュピターにちなんで名付けられました。[19] 地球から見ると、木星は反射光が目に見える影を投げるほど明るくなることがあり[20]、平均して月と金星に次いで夜空で三番目に明るい天体です。<br/> **これを2つの短い文にまとめてください**| 木星は太陽系で最も大きい惑星で、太陽系の他の全惑星の質量合計の2.5倍に相当します。夜空で3番目に明るく輝くこの巨大ガス惑星は、古代から知られ、ローマ神話の最高神ジュピターの名を冠しています。 |

主要コンテンツの部分は、より効果的な指示を出すためにさまざまな方法で利用できます:

- **実例** - モデルに明確な指示を出す代わりに、実行すべきことの実例を与えて、そのパターンを推測させます。
- **実例** - モデルに明確な指示を出す代わりに、実行すべき実例を与えて、そのパターンを推測させます。
- **キュー(手がかり)** - 完了を促す「キュー(合図)」の指示に従って、モデルをより関連性の高い回答に誘導します。
- **テンプレート** - 繰り返し再利用できるプロンプトの「レシピ」で、特定の用途に合わせて入力データをカスタマイズできるプレースホルダー(変数)を持ちます。

Expand All @@ -247,7 +247,7 @@ response = openai.ChatCompletion.create(
プロンプトは、下記の3つの要素から構成されます:

- タスクの説明
- 期待する出力のいくつかの例
- 期待する出力の数例
- 新しい例の開始部分(これが暗黙的にタスク説明となります)

| 学習の型 | プロンプト (入力) | 回答 (出力) |
Expand All @@ -261,15 +261,13 @@ response = openai.ChatCompletion.create(

### プロンプト・キュー

主要コンテンツを利用する際、もう一つの方法は、例を提供する代わりに_手がかり_を提供することです。この場合、期待する回答フォーマットを反映した一部で _始める_ ことで、モデルを正しい方向に小さな促しを与えます。その後、モデルはその手がかりを受け取って、その流れに従って続けます。
主要コンテンツを利用する際、もう一つの方法は、例を提供する代わりに _キュー(手がかり)_ を提供することです。この場合、期待する回答フォーマットを反映した一部で _始める_ ことで、モデルを正しい方向に少し誘導します。その後、モデルはその手がかりを受け取って、その流れに従って続けます。

| キューの数 | プロンプト (入力) | 回答 (出力) |
|:---|:---|:---|
| 0 | 木星は太陽から五番目の惑星で、太陽系で最も大きな惑星です。質量は太陽の千分の一ですが、太陽系内の他のすべての惑星を合わせたものの2.5倍の巨大ガス惑星です。木星は夜空に肉眼で見える最も明るい天体の一つで、記録された歴史以前から古代文明に知られていました。 <br/>**これを要約してください** | 木星は太陽系で最も巨大な惑星であり、質量は太陽系の他のすべての惑星の合計の2.5倍に達します。夜空で非常に明るく輝き、古代から人類に認識されていた天体です。|
| 1 | 木星は太陽から五番目の惑星で、太陽系で最も大きな惑星です。質量は太陽の千分の一ですが、太陽系内の他のすべての惑星を合わせたものの2.5倍の巨大ガス惑星です。木星は夜空に肉眼で見える最も明るい天体の一つで、記録された歴史以前から古代文明に知られていました。 <br/>**要約すると、私たちが学んだのは、木星が** <br/> | 太陽系で最も大きい惑星で、太陽から五番目に位置し、質量は太陽系の他の惑星を合わせたものより2.5倍大きいです。また、夜空でよく見える明るい天体の一つで、古代文明の時代から知られています。 |
| 2 | 木星は太陽から五番目の惑星で、太陽系で最も大きな惑星です。質量は太陽の千分の一ですが、太陽系内の他のすべての惑星を合わせたものの2.5倍の巨大ガス惑星です。木星は夜空に肉眼で見える最も明るい天体の一つで、記録された歴史以前から古代文明に知られていました。<br/>**要約から学んだ3つの事実は:** <br/> | 1. 木星は太陽から五番目の位置にある太陽系で最も大きな惑星です。</br>
2. 木星の質量は太陽系の他の惑星を合わせたものよりも2.5倍大きく、太陽の千分の一に相当します。</br>
3. 木星は夜空で肉眼によく見える明るい天体であり、古代文明の時代から人類に知られていました。 |
| 2 | 木星は太陽から五番目の惑星で、太陽系で最も大きな惑星です。質量は太陽の千分の一ですが、太陽系内の他のすべての惑星を合わせたものの2.5倍の巨大ガス惑星です。木星は夜空に肉眼で見える最も明るい天体の一つで、記録された歴史以前から古代文明に知られていました。<br/>**要約から学んだ3つの事実は:** <br/> | 1. 木星は太陽から五番目の位置にある太陽系で最も大きな惑星です。</br>2. 木星の質量は太陽系の他の惑星を合わせたものよりも2.5倍大きく、太陽の千分の一に相当します。</br>3. 木星は夜空で肉眼によく見える明るい天体であり、古代文明の時代から人類に知られていました。 |
| | | |

### プロンプト・テンプレート
Expand Down

0 comments on commit 4690d95

Please sign in to comment.