HUOXIU

エンジニアリング101のヒント | AIと対話するためのスキルと技術

ChatGPTの登場により、人工知能(AI)の新時代が正式に幕を開けました。ChatGPTは言語モデルです。対話を通じてユーザーとインタラクションを行い、ユーザーが質問やプロンプトを入力すると、モデルが応答することで会話が継続されます。これは、メッセージングアプリで実際の人にメッセージを送信するのと似ています。AIの需要が高まるにつれ、AIモデルに情報を提供する能力も同様に重要になっています。そこでPrompt Engineeringが登場し、AIモデルに適切な「ヒント」を提供することでビジネスニーズに対応します。

この記事では、キューイング エンジニアリングの概念と基本要素、そしてキューイング エンジニアリングの課題と将来の動向について説明します。

エンジニアリングの基本概念に関するヒント

ヒントエンジニアリングとは、AI言語モデルが望ましい出力を得るために効果的な入力を設計するプロセスです。ヒントエンジニアリングには、モデルの機能と限界、そしてユーザーの目標と期待を理解することが含まれます。ヒントエンジニアリングは、AI言語モデルの潜在能力を最大限に引き出し、テキスト生成、要約、質問応答、コード生成といった様々なタスクをスムーズに実行するために不可欠です。もちろん、これらのモデルが正確で関連性が高く、有用な結果を生成するには、明示的かつ具体的な指示が必要です。


一般的に、プロンプティング プロジェクトには主に 2 つの目的があります。

プロンプティングエンジニアリングの主な目的は、 AIモデルをより効果的に誘導できるテキストベースの入力を設計することです。プロンプティングエンジニアは、モデルに様々な入力を提供し、その出力を評価します。出力が期待される精度レベルを満たさない場合、プロンプティングエンジニアは開発者と協力してモデルを微調整します。例えば、モデルは不快な言葉の使用や政治的見解の表明を控える必要がある場合があり、また、プロンプティングインジェクションなどのセキュリティ脅威から保護する必要があります。

2つ目のシナリオでは、企業が事業を展開する業界に基づいて異なるテキスト入力を作成し、ドメイン要件を満たしながら最適な結果を提供します。例えば、ヘルスケア業界では、AIモデルが個人情報や機密情報を漏洩しないことが極めて重要です。また、最小限のトークンでAIモデルの利用コストを最小限に抑えながら、モデルを最大限に活用するための効果的なプロンプトを開発することも考えられます。

プロジェクト101

効果的な提案エンジニアリングには、大規模言語モデル(LLM)の能力と限界を深く理解し、優れた入力提案を構築する必要があります。さらに、提案エンジニアリングでは通常、提案に含まれる単語、フレーズ、および入力の全体構造を慎重に選択し、正確な応答を得る必要があります。提案へのわずかな変更でさえ、結果に大きな影響を与える可能性があるため、提案エンジニアリングへの体系的なアプローチが不可欠です。

プロジェクトのヒント: 重要な用語

LLMは、膨大な量のテキストデータで学習されたAIモデルであり、自然言語入力に対して人間のような応答を生成することができます。LLMは、人間の文章と区別がつかないほど高品質で一貫性のある文章を生成する能力で知られています。この最先端のパフォーマンスは、LLMを大規模なテキストコーパス(通常は数十億語)で学習させることで実現され、人間の言語の複雑さを理解できるようになります。

LLM で使用される主なアルゴリズムから始めて、ヒント エンジニアリングと LLM に関連するいくつかの重要な用語を次に示します。

  • 単語埋め込みは、単語の意味を数値的に表現し、AI モデルで分析できるようにするため、LLM で使用される基本的な手法です。

  • 注意メカニズムはコンテキストを組み込んだ LLM アルゴリズムの一種であり、これにより AI は感情関連のフレーズなど、出力を作成するときに入力テキストの特定の要素に焦点を当てることができます。

  • Transformerは LLM 研究でよく使用されるニューラル ネットワーク設計であり、自己注意技術を使用して入力データを処理します。

  • 微調整とは、より小規模で関連性のあるデータセットでトレーニングすることにより、LLM を特定のジョブまたはトピックに適応させるプロセスです。

  • プロンプト エンジニアリングは、高品質で一貫性のある出力を提供することを目的とした、LLM 入力プロンプトに対する専門家が設計したアプローチです。

  • 解釈可能性とは、 AIシステムの出力と決定を理解し、解釈する能力を指します。その複雑さゆえに、解釈可能性は法学修士課程においてしばしば困難で継続的な研究分野となっています。

ヒント要素

  • : ヒントの主な目的は、言語モデルを明確に説明することです。

  • コンテキスト:コンテキストは、言語モデルがより関連性の高い出力を生成するのに役立つ追加情報を提供します。この情報は外部ソースから取得することも、ユーザーから提供することもできます。

  • 入力データ: 入力データはユーザーのクエリまたはリクエストです。

  • 出力インジケータ: 回答の形式を指定します。

ヒントプロジェクト: 例

Awesome ChatGPT Prompts [1]の簡単なプロンプトプロジェクトの例を見てみましょう。

これであなたはPythonインタープリターになりました。これからPythonコードを渡しますので、説明なしで実行してください。コードの出力結果以外は何も返信しないでください。最初のコードは「print('hello world!')」です。


OpenAI Playground [2]には、より正確なヒントを学ぶために参照できるヒントテンプレートが数多くあります。

ヒントプロジェクト: 役割

これらの例からわかるように、各質問には「ロール」が含まれています。これは、ChatGPT APIリリースで確認したように、チャットボットを誘導する上で重要な要素です。複数のロールを作成する必要があります。

  • システム:「システム」メッセージはアシスタントの動作を制御します。例えば、「あなたはOpenAIによって学習された大規模言語モデルであるChatGPTです」といったメッセージが送信されます。できるだけ簡潔に回答してください。情報入力期限:{knowledge_cutoff} 現在の日付:{current_date}

  • ユーザー:ユーザーメッセージは正確な指示を提供します。これらのメッセージは主にアプリケーションのエンドユーザーによって使用されますが、開発者は特定のユースケースに合わせてハードコードすることもできます。

  • アシスタント: アシスタント メッセージには、過去の ChatGPT の回答が保存されるか、開発者が提供する望ましい動作の例となる場合があります。

ChatGPT API リクエストの例を次に示します。

 response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=[{"role": "system", "content": "あなたは役に立つアシスタントです。"},
{"role": "user", "content": "2020年のワールドシリーズで優勝したのは誰ですか?"},
{"role": "assistant", "content": "ロサンゼルス・ドジャースは2020年にワールドシリーズで優勝しました。"},
{"role": "user", "content": "どこでプレイされましたか?"}]) 

プロジェクトプロンプト: パラメータ

LLMを使用する際には、プロンプトの記述部分を慎重に作成することに加えて、いくつかのプロンプトエンジニアリングパラメータを考慮する必要があります。例えば、OpenAI PlaygroundでGPT-3補完に使用できるAPIパラメータを見てみましょう。

  • モデル: テキスト補完のモデル、text-davinci-003。

  • 温度サンプリング温度: 値が高いほど出力はよりランダムになり、値が低いほど出力はより集中的かつ確定的になります。

  • 最大長: 生成するトークンの最大数はモデルによって異なりますが、ChatGPT では、ヒントと補完の間で 4000 トークン (約 3000 語) を共有できます (1 トークン = 約 4 文字)。

  • シーケンスの停止: API は、応答で最大 4 つのシーケンスを返すことを停止します。

  • Top P : 決定または予測において最も可能性の高い選択肢の確率分布を指します。パラメータが0.5に設定されている場合、特定の出力に対して候補トークンが考慮される累積確率は0.5です。

  • 頻度ペナルティ:モデルが同じ単語を繰り返したり、頻繁に解析したりすることを防ぐために使用されます。範囲は通常-1.0~1.0です。正の頻度ペナルティ値を設定すると、ChatGPTは一般的な単語やフレーズの使用を避け、代わりにあまり一般的ではない単語を生成する傾向があります。逆に、負の頻度ペナルティ値を設定すると、ChatGPTは一般的な単語やフレーズを使用する傾向があります。

  • プレゼンスペナルティ:特定の単語またはフレーズに値を割り当て、その値が正か負かに応じて、モデルがその単語またはフレーズを多くまたは少なく生成するように制御します。この関数は、出力に特定の単語またはフレーズを含めるか除外するかを微調整するために使用できます。

  • ベストオブリザルト: これはサーバー側で大量の完了した結果を生成するために使用され、結果のみが表示されます。ストリーミング完了は、1 に設定されている場合にのみ利用できます。

要約すると、プロジェクト内の各ユースケースには、望ましい結果を達成するための独自のパラメータ セットがあるため、パフォーマンスを最適化するには、さまざまなパラメータ設定を理解して実験することが重要です。

ヒントプロジェクト:ユースケース

ここまで基本を説明してきましたが、ここでは最も一般的なプロンプトエンジニアリング タスクをいくつか紹介します。

  • テキスト要約: 記事や文書から重要なポイントを抽出するために使用できます。

  • 質問への回答: これは、外部のドキュメントやデータベースと対話するときに非常に便利です。

  • テキスト分類: 感情分析やエンティティ抽出などのアプリケーションに役立ちます。

  • ロールプレイング: 特定のユースケースとロールタイプの遷移 (メンター、セラピスト、アナリストなど) をシミュレートするテキストを生成します。

  • コード生成:その中でもGitHub Copilotが最も有名です。

  • 推論: 論理や問題解決能力 (意思決定など) を示す文章に適しています。

プロジェクトの課題と将来

生成AIとキューイングエンジニアリングの人気が高まっているにもかかわらず、キューイングへの過度の依存がAIシステムにバイアスをもたらす可能性があると懸念する声もあります。テクノロジー業界の著名人であるサム・アルトマン氏は、キューイングエンジニアリングは機械が人間の言語をより自然に理解できるようにするための段階に過ぎず、5年後にはもはや存在しなくなるだろうと述べています。

ただし、プロンプティング プロジェクトは次の 2 つの課題にも直面しています。

コンテキスト依存性 - コンテキストを正確に捉える:キューエンジニアリングの課題と限界は、コンテキスト依存性と、そのコンテキストを正確に捉える必要性にあります。AIシステムは、与えられたコンテキストに基づいて情報を理解し、処理することができます。しかし、入力されたコンテキストを正確に捉えることは、特に複雑または曖昧なクエリの場合、困難な場合があります。

曖昧さ - 複雑なクエリに対する正確な指示の策定の難しさ:複雑または曖昧なクエリの場合、必要な情報と条件をすべて単一の言語コマンドで記述することは困難です。解釈の違いによって結果が異なる場合があります。したがって、タイムリーなエンジニアリングには、曖昧さを軽減し、具体的な要件を可能な限り明確に定義するための戦略が必要です。

一部の専門家は、キューエンジニアリングがAIシステムにバイアスをもたらす可能性があり、その長期的な妥当性に疑問を呈していますが、AIシステムが人間の言語を理解し、効果的にインタラクトする能力にとって、キューエンジニアリングは依然として基本的な要素です。適切に設計されたキューがなければ、AIモデルはパターンを認識したり、信頼性の高い予測を行ったりすることができません。したがって、あらゆる業界でAIシステムが有意義な結果を生み出すためには、タイムリーなエンジニアリングが不可欠です。さらに、キューエンジニアリングは常に進化しており、より効果的なキューを作成するために新しいテクノロジーとツールを活用しています。

いくつかの課題はあるものの、キューエンジニアリング分野における継続的な開発と研究は、人間とコンピュータのインタラクションの明るい未来を約束しています。キューエンジニアリングを習得することで、会話型AIシステムの潜在能力を最大限に活用し、効果的でシームレスなユーザーエクスペリエンスを実現できるようになります。

参考リンク

  1. https://github.com/f/awesome-chatgpt-prompts?ref=mlq.ai

  2. https://platform.openai.com/playground/?ref=mlq.ai

  3. https://www.cloudbooklet.com/prompt-engineering-key-concepts-use-cases/#prompt-engineering-use-cases

  4. https://ai.plainenglish.io/prompt-engineering-the-future-of-ai-job-market-or-just-a-trend-fb8ac8631b0f

  5. https://onlim.com/en/prompt-engineering-the-art-of-precise-language-control/