HUOXIU

Prompt Engineering は 2024 年に最も注目される「プログラミング言語」になるでしょうか?

編集者注:「プロンプトエンジニアリング」は時代遅れでしょうか?モデル自体の機能は十分であり、特別に設計されたプロンプトは必要ないのでしょうか?

本日ご紹介する記事では、プロンプト エンジニアリングは決して時代遅れになることはないと主張しています。それどころか、モデルの機能が向上するにつれて、高品質のプロンプトを作成することの重要性は高まり続けます。

記事の詳細な議論の要約:

(1)大規模言語モデルはオペレーティングシステムのカーネルとみなされるべきであり、promptはそれを呼び出すプログラムである。

(2)プロンプトエンジニアリングは自然言語プログラミングの応用範囲を広げる。

(3)より強力なモデルでは、その潜在能力を発揮するために、より洗練されたプロンプトが必要である。これは、マイクロソフトとアントロピックの事例からも明らかである。

(4)現在、個々のユーザーはPrompt Engineeringを他のプログラムと組み合わせて新しいアプリケーションを構築することができます。

(5)継続的な学習、実践、そして技術の深い理解は、プロンプトエンジニアリングの専門家になるための近道です。

プロンプトエンジニアリングは、大規模言語モデル自体の進歩によって置き換えられることはありません。むしろ、より大きな重要性を帯びるでしょう。このスキルを習得することで、AI革命の最前線に立つ可能性が大幅に高まります。

著者 | ナビル・アルーアニ

編纂者:岳陽


大規模言語モデルをチャットボットやテキストジェネレーターのようなものと考えるのは正確ではないと思います」と、OpenAIの創設メンバーの一人であるアンドレイ・カルパシー氏[1]は述べています。「より正確な説明は、オペレーティングシステムのカーネルプロセスと考えることです。

ちょっと待って、これはどういう意味ですか?

大規模言語モデル (LLM) は、徐々にユーザーとコンピュータ システムの間の架け橋となるでしょう。

現在、私たちが使用しているデバイスはある程度のコンピューティング能力を備えていますが、その能力に直接アクセスすることはできません。オペレーティングシステム(Windows、Mac OS、Androidなど)は、チップや回路の集合体をユーザーフレンドリーなインターフェースに変換することで、ユーザーとのインタラクションを可能にしています。

オペレーティングシステム(OS)は、その上で実行される様々なアプリケーションを通じて、様々なタスク(例えば、ハゲの若い男性が書いた記事を読むなど)を実行します。各アプリケーションには独自のユーザーインターフェース(UI)と、実行可能な一連のタスクがあります。必要に応じて、あるアプリケーションから別のアプリケーションへ、あるいはあるUIから別のUIへと切り替えることができます。

間もなく、ユーザーは、年次ビジネスレポートの作成から新規アプリケーションのゼロからの構築まで、さまざまなタスクを単一のインターフェースで実行できるようになります。複数のアプリケーションや環境を切り替える必要はありません。このユーザーインターフェースは、チャットボックスまたは「コンテキストウィンドウ」で、自然言語でコマンドを送信できます。ここでPrompt Engineeringが役立ちます。

プロンプトエンジニアリングとは、AIモデル向けに記述された命令を、ユーザーの要求通りに実行されるまで継続的に改良していくことを指す、やや難解な用語です。しかし、これは単なる言葉遊びではなく、プログラミングの未来の青写真と言えるでしょう。

01 プログラミングは(「安価な」)商品である

「プログラミングとは、問題を解決するためにコンピュータにどのようなタスクを実行するかを指示する技術的なプロセスです」と、Courseraはウェブサイト[2]に記しています。「プログラミングは、人間とコンピュータの共同作業であり、主に人間がコンピュータが理解できる命令(コード)を開発するプロセスと考えることができます。」

言い換えれば、プログラミングはコンピューティング能力をコモディティ、つまり人々が目標を達成するために利用できるリソースへと変換するのです。Prompt Engineeringは、プログラミングプロセスそのものをコモディティ化するツールです。自然言語の命令を大規模な言語モデルに渡すと、モデルがコードを生成します。

仕事で得た小さなデータセットを分析したいとしましょう。通常は、まず会社のクラウド上に散在する数百のCSVファイルを収集することから始めます。次に、Jupyter Notebookをダブルクリックし、数行のPythonコードを入力して、このデータをデータフレームにコンパイルします。

これを基に、データサイエンスの魔法を解き放ち、10回以上の反復作業を経て、美しい表、洗練されたグラフ、そしてデータに基づく予測を次々と作成していきます。おめでとうございます!最後のステップは、6週間の作業を42枚の美しいスライドに凝縮し、Microsoft PowerPointという別のアプリケーションでプレゼンテーションすることです。

既存のアプリケーションと独自のコードを組み合わせることで、特定のデータ分析タスクを実行するプログラムを構築できます。しかし、簡単な自然言語でいくつかの命令を記述するだけで済むとしたらどうでしょうか?

「AIさん、ちょっと待ってください」とあなたは言うかもしれません。「これは過去5年間のパリにおける弊社の配送に関する雑然としたデータセットです。これを整理してクラスタリングアルゴリズムを実行してください。ヒートマップを表示し、高密度エリアを拡大してください。そして今後2年間の予測を立て、その結果を使って弊社の配送車両の毎日の配送ルートを最適化してください。完了したら、わかりやすいグラフと簡潔な注釈付きのレポートを作成してください。ゆっくりやってください!少なくとも6時間は必要です。」

このようなプロンプトを書くたびに、実際には特定の問題を解決するためのアプリケーションを設計していることになります。

これはCourseraの説明とほぼ同じです。コンピューターと協力して目標を達成するのです。唯一の違いは、コードではなく、平易な自然言語を使うことです。確かにこの指示は完璧ではないかもしれませんが、原理的には、これが将来、大規模言語モデルとやりとりすることになる場面です。

より具体的な例として、GPT-4 が手描きのスケッチを機能的な HTML コードに変換する以下の有名なデモンストレーションを考えてみましょう。

02 プロンプトこそが、必要なすべてです

データサイエンティストやソフトウェアエンジニアを、巧妙なプロンプトで置き換えるには、まだ時間がかかるでしょう。それまでの間は、自然言語でプログラムされたAIアシスタントを活用することで、生産性を向上させることができます。

Google Workspace、Jupyter Notebook、Microsoft PowerPoint などのコンパニオン アプリケーションを使用するバンドルとは異なり、「StatSniffer: Your Personal Data Science Expert」というアシスタントを構築します。

現行のChatGPT PLUSと同様に、StatSnifferは一連のツールに接続された大規模な言語モデルとなり、ファイルの閲覧、コードの実行、グラフの生成といった追加機能を提供します。また、研究論文、ケーススタディ、学術書へのアクセスを許可することで、StatSnifferに最高性能の手法を導入することも可能です。

OpenAIはすでにGPTストアを通じてカスタムAIアシスタントの実験を行っており、ユーザーはGPTと呼ばれるAIアシスタントを構築できます。しかし、現在のGPTはやや扱いにくいのが現状です。例えば、単純な脱獄に対して脆弱で、「コアコマンド」が漏洩する可能性があります。また、GPTはユーザーと数回インタラクションを行うと、デフォルトモード(GPT-4)に戻ってしまう傾向があります。

これは驚くべきことではありません。この技術はまだ初期段階にあるからです。AI研究が進み、オープンソースモデルがより洗練されていくにつれて、AIアシスタントのエコシステムは進化を続け、より多くの機能をカバーし、信頼性を向上させるでしょう。しかし、道のりはまだ長いのです。

計画や多段階推論などの問題は未解決のままであるが、その理由の一つはLLMが物理的現実を理解する上で人間(さらには猫)に遅れをとっているためである。 [3]

人々は、量子重力のような複雑な分野を深く掘り下げることができる完全自動化されたAIアシスタントを期待したり待ったりはしません。むしろ、既存のAIモデルを適用し、継続的に改善することに重点を置いています。いわゆる「低機能」なLLMでさえ、私たちの効率を倍増させることができます。以下は、開発者がLLMを活用して作業をスピードアップする方法に関するマッキンゼー[4]の調査からの抜粋です。

「当社の最新の実証研究により、生成型AIベースのツールは、多くの一般的な開発タスクにおいて大幅な速度向上をもたらすことがわかりました。保守性を考慮したコードのドキュメント化(コードの改良容易性を考慮する)は半分の時間で完了し、新規コードの作成はほぼ半分の時間で完了し、既存コードの最適化(コードリファクタリングと呼ばれる)はほぼ3分の2の時間で完了します。」[著者らはこの点を強調しています]

これはソフトウェア開発関連のタスクだけでなく、幅広いビジネス活動に当てはまります。例えば、ハーバード・ビジネス・スクール(HBS)の研究者は、ボストン・コンサルティング・グループ(BCG)の従業員に生成AIツールを導入することの影響を評価する研究を実施しました。

「人工知能の能力の範囲内で、現実世界でよくある18のコンサルティング業務において、AIを活用したコンサルタントは生産性の面で大幅に優れた成果を上げ(完了した業務数が平均12.2%増加し、業務完了速度が25.1%向上)、結果の質も大幅に向上した(対照群よりも40%以上高い)」とHBSの研究者らは記している。

これらの研究は、「AIはあなたに取って代わることはないが、それを使う人が取って代わる」という決まり文句を新たに裏付けています。より洗練された言い方をすれば、「AIはあなたに取って代わることはないが、Prompt Engineerは取って代わる」と言えるかもしれません。

AIの「境界」が広がれば広がるほど(つまり、AIモデルが高精度で実行できるタスクが増えるほど)、プロンプトを用いて解決できる問題も増えます。しかし、このことから、AIモデルの性能が向上すればプロンプトエンジニアリングの必要性は少なくなるという、よくある誤解が生じます。

03 「プロンプトエンジニアリングは死んだのか?」いいえ、それは最新の技術です

大規模言語モデル (LLM) とプロンプト エンジニアリングの関係を理解する 1 つの方法は、前者をマルチバース、後者をポインター (そうです、レーザー ポインターのような) と考えることです。

LLMに質問すると、LLMは文書のマルチバースから答えを探します。それぞれの文書には複数の答えの候補が存在し、LLMはそれぞれの答えの確率を評価します。

プロンプトエンジニアリングの目的は、モデルを、要求された回答が最も多く含まれる可能性の高い領域へと導くことです。モデルはプロンプトに基づいて徐々に要求された回答に近づき、最終的な回答が得られるまで、要件を満たす単語を生成します。

モデルは各トークンを予測しながら、何百もの不適切なパスを排除し、可能性を徐々に絞り込んでいき、最終的に(目的地に到達するための)最終的な答えを構成する単語のセットを特定します。

LLMは多元宇宙をナビゲートする

しかし、目的地は決して同じではありません。全く同じプロンプトを使っても、全く同じ場所にたどり着くことはほとんどありません。その代わりに、最も関連性の高い回答の「近傍」にたどり着くことになります。

以下は、ソフトウェア エンジニアであり人工知能研究者でもある François Chollet (現在 Google に勤務) による、より専門的な説明です。

LLMを数百万ものベクトルプログラムのデータベースと考えると、プロンプトはそのデータベース内の検索クエリのようなものです。この「プログラムのデータベース」は連続しており、異なるプログラム間で補間することができ、入力プロンプトに応じて変化します。つまり、無関係な個別のプログラムの連続ではなく、連続的で相互に関連したプログラムで構成されています。

つまり、「このテキストを x スタイルで再表現する」などのわずかに異なるプロンプトでも、プログラム空間内の非常に類似した場所を指すことになり、結果として、動作は非常に類似しているものの、まったく同じではないプログラムが生成されます。

プロンプト エンジニアリングは、対象タスクに最適なパフォーマンスを発揮するプログラムを見つけることを目的として、プログラム空間で実行される検索プロセスです。

Chollet 氏が説明するように、プロンプトの目的は、実行したいタスクに適したプログラムを呼び出すことです。よくある推論の落とし穴は、タスクが明示的に定義されていない場合でも、将来の LLM がどのプログラムを実行すべきかを予測できるはずだと想定することです。

しかし、人間と同じように、たとえ最も技術力の高いエンジニアを雇ったとしても、彼らはあなたの心を読むことはできません。何を望んでいるのかを明確に説明する必要があります。そうでなければ、時間とエネルギーを無駄にするだけです。

例えば、非常に熟練したエンジニアに製品の製造を指示したものの、完成した製品が気に入らなかったとします。エンジニアを交代するか、指示内容を変更するかを選択できます。このエンジニアが非常に熟練していることはわかっているので、常識的に考えて後者の選択肢を選ぶでしょう。

同様に、たとえ高性能な言語モデルがあなたの求める答えを返さなかったとしても、あなたはそれを捨てたりはしないでしょう。次のモデルがあなたの考えを理解するのを待つことはできません。最も合理的かつ費用対効果の高いアプローチは、プロンプトを改善することです。

マイクロソフトの研究チームがGPT-4で行ったことはまさにこれです。特定のユースケースに合わせてモデルを微調整するのではなく、Prompt Engineeringを用いてパフォーマンスを向上させました[5]。

GPT-4は、9つの異なる医療シナリオベンチマークにおいて、精度を最大9%向上させました。これにより、モデルの精度は90%を超え、医療分野向けに特別に調整されたモデルを上回りました。

ファインチューニングには、高品質なトレーニングデータを作成するための専門家の雇用や、モデルの再トレーニングに必要な計算リソースなど、追加のリソースが必要であることに注意することが重要です。もちろん、ファインチューニングに必要な計算リソースは事前トレーニングに必要なリソースのほんの一部に過ぎませんが、それでも追加コストとなります。

さらに、モデルを新しい専門分野向けに微調整するたびに、同じリソースが必要になります。これに対し、マイクロソフトは、電気工学、機械学習、哲学、会計、法律、看護、臨床心理学など、様々な分野にわたる大規模言語モデルのパフォーマンスを向上させるプロンプト技術を開発しました。

プロンプトエンジニアリングの威力を示すもう一つの例は、Anthropic[6]によるものです。彼らのチームは、プロンプトに一文を追加することで、情報検索評価におけるClaude 2.1モデルの性能を98%向上させました。たった一文の変更で。

LLMを使うのは、まるでエイリアンの道具で遊ぶようなものです。その道具の性能を知る唯一の方法は、ボタンを様々な方法で操作してみることです。このエイリアンの道具の新しいバージョンがリリースされると、機能だけでなくボタンも増えていることを期待するでしょう。

「モデルが強力であればあるほど、プロンプトは少なくて済む」という単純な考えがあります。しかし実際には、モデルが強力であればあるほど、適切なプロンプトでより多くの機能を利用できるようになります。

04 人間のエージェントよ、あなたのスキルを発揮する時が来ました!

長期的には、LLMをオペレーティングシステムとして使用することで、その強力なコンピューティング能力と自然言語処理能力を活用し、様々な問題を解決できます。中期的には、これまでコードを書く必要があったタスクを実行するAIエージェントを作成する必要があります。どちらのフェーズでも、自然言語を主要なプログラミング言語として使用します。

わかりました。でも、これからどうすればいいですか?

AIエージェントが追いつく前に、今こそあなたの活躍の場です。AIモデル、コード、そして従来のアプリケーションを組み合わせ、複雑な課題に取り組む技術職人になった自分を想像してみてください。レゴブロックで何かを組み立てるような感覚で考えてみてください。オープンソースコミュニティのおかげで、無限のブロックが手に入り、それらを組み合わせて新しいプロジェクトを生み出すことができます。

この架空のレゴ高校において、法学修士課程(LLM)は特別な構成要素です。なぜなら、皆さんの作品は主に法学修士課程を中心に展開されるからです。「プロンプト・エンジニアリング」というコンセプトには、相補的な二つの意味があります。

2つの意味[7]は次の通りです: (1) LLM用の高品質な自然言語命令を書く、(2) 条件付きプロンプトやその他の技術を使用してLLMの出力を改善するコードを書くこと。

2 番目の定義には最初の定義が含まれています。LLM でコードを記述する場合でも、自然言語で対話するためです。

  • LLMをスタンドアロンプ​​ログラムとして使用する:ここでは、自然言語で高品質なプロンプトを作成し、最適な出力を得ることができます。例えば、アイデアの生成、ドキュメントの要約、コードの作成などが挙げられます。

  • LLMをプログラムの一部として活用する:この場合、LLMベースのソフトウェア(Python、Java、C++、またはその他のプログラミング言語を使用)を作成し、特定のタスクを実行できます。例としては、ソーシャルメディアのコメントの感情分析、チャットボット、自律エージェントなどが挙げられます。

それでは、各ユースケースで Prompt Engineering がどのように機能するかを見てみましょう。

4.1 1️⃣ LLMをスタンドアロンプ​​ログラムとして使用して、必要なプロンプトエンジニアリングを活用する

LLM の最も一般的な使用例は、ChatGPT や Bard などの Web インターフェースを介して LLM と対話することです。

具体的なニーズに応じて、個人用のプロンプトライブラリを作成できます。理想的には、これらのプロンプトはテンプレート化され、簡単に更新できる必要があります。そうすれば、プロンプトを一から書き直したり、毎回チャット履歴から検索したりする必要がなくなります。

以下に、あなたにインスピレーションを与えるかもしれない 3 つの異なるプロンプトの例を示します。

 [プロンプトテンプレート #1 ドキュメント概要]
<field_name> の分野で研究アシスタントのように活動します。
入力として、<title_of_the_report> というタイトルのレポートを提供します。
オンライン閲覧機能を使用して、次のリンク <URL_of_the_report> からレポートにアクセスしてください。
レポートを <summary_wordcount> 未満で要約し、著者からの <number_of_quotes> 個を追加します。
正確な引用を選び、箇条書きでリストするようにしてください。
##
希望するフォーマット:
タイトル: <レポートのタイトル>
リンク: <レポートのURL>
前回の指示に基づいたレポートの要約。
- 引用 #1
- 引用 #2
- 引用 #3
- など
##
入力:
<field_name> = ドキュメントの専門分野のプレースホルダー。
<title_of_the_report> = 要約するレポートのタイトルのプレースホルダー。
<URL_of_the_report> = レポートが見つかる Web アドレスのプレースホルダー。
<summary_wordcount> = 要約の最大単語数のプレースホルダー。
<number_of_quotes> = レポートから抽出される引用の数のプレースホルダー。

 [プロンプトテンプレート #2 製品説明]
熟練したコピーライターのように行動します。
##
役割:
電子商取引ショップの製品の説明を記述します。
次の構造を使用し、提供されているプレースホルダーに基づいて詳細を入力します。
製品名: <product_name>
はじめに: <target_audience> に適した、<product_name> についての魅力的な冒頭の文章で始めます。
主な機能: <product_name> の主な機能をリストアップします。<product_features> を含めます。
利点: <product_name> がユーザーにどのようなメリットをもたらし、<target_audience> のニーズにどのように対応しているかを説明します。
行動喚起: 説得力のある行動喚起で読者に購入の決定を促します。
SEO キーワード: SEO を目的として、<seo_keywords> をテキスト内に自然に統合します。
トーン: ブランドの声と一致するように、説明全体で <brand_tone> を維持します。
##
入力:
<product_name> = 製品名のプレースホルダー。
<product_features> = 製品の特定の機能をリストするためのプレースホルダー。
<target_audience> = 製品のターゲット ユーザー層または人口統計を指定するためのプレースホルダー。
<seo_keywords> = 製品に関連する SEO に最適化されたキーワードのプレースホルダー。
<brand_tone> = 製品の説明に反映されるブランドの口調を定義するプレースホルダー。

 [プロンプトテンプレート #3 プログラミングアシスタント]
ソフトウェアエンジニアのように行動します。
##
役割:
あなたの役割は、<プログラミング言語> でプログラムを書くことです。
プログラムは、次の指示に従う必要があります: <user_instructions>。
コードを生成する前に、ユーザーの指示を段階的に理解していることを確認します。
コードが明確で、適切にコメントされ、<プログラミング言語> のベスト プラクティスに準拠していることを確認します。
##
形式:
生成する各コード スニペットに明確なタイトルを付けます。
たとえば、最初のスニペットに「スニペット #1 バージョン 1」というタイトルを付け、2 番目のスニペットに「スニペット #2 バージョン 1」というタイトルを付け、2 番目のスニペットの更新バージョンに「スニペット #2 バージョン 2」というタイトルを付けることができます。
##
入力:
<programming_language> = コードを記述するプログラミング言語のプレースホルダー (例: Python、JavaScript)。
<user_instructions> = コードに変換するタスクの具体的な指示または説明のプレースホルダー。

4.2 2️⃣ LLMをプログラムの一部として使用して、必要なプロンプトエンジニアリングを活用する

このコンテキストでは、LLM は自然言語を処理、分析、生成するための呼び出し可能な関数として使用できます。

例えば、LLM(Local Level Management)関数を呼び出して、特定の製品に関連する一連のレビューの感情を分析するコードを記述できます。これらのレビューを処理した後、LLMに依存する別の関数を使用して、以前の結果に基づいてレスポンスを生成することができます。

それでは、LLMをコードに埋め込む方法を見てみましょう。主な方法は3つあります。

  • 他社が提供する API 経由で接続します。

  • イントラネット上の会社のローカル サーバーを使用します。

  • オープンソースの LLM をパソコンに直接インストールします。

以下は、プログラムで LLM を使用する基本的な例です。

 # 目的: Excel ファイルに保存された一連のコメントに対して感情分析を実行する
# LLMの選択: OpenAI APIを使用してgpt-4モデルを呼び出します
import pandas as pd # 使用したバージョン 2.1.3
from openai import OpenAI # 使用されたバージョン 1.2.0
# APIキーファイルへのパスを定義する
API_key_path = "C:/Users/....API_Key.txt" # 実際のAPIキーファイルパスに置き換えてください
# ファイルからAPIキーを読み取ります
open(API_key_path, 'r') をファイルとして実行します:
API_key = file.read().strip() # .strip() は先頭/末尾の空白を削除します
# APIキーを使用してOpenAIクライアントオブジェクトを作成する
クライアント = OpenAI(api_key=API_key)
# Excel ファイルに保存された一連のコメントの感情を分析する関数を定義します
def analyze_sentiments(入力ファイル):
# 入力Excelファイルを読み込む
inputs_df = pd.read_excel(入力ファイル)

# 列名「comments」で列を選択します
inputs_df.columns に「コメント」がある場合:
コメント = inputs_df['コメント']
それ以外:
ValueError("入力ファイルに列 'comments' が見つかりません") が発生します
感情 = []
コメント内のコメントについて:
# API呼び出しの準備
メッセージ = [
{
「役割」:「システム」
"content": "次のコメントの感情を分析してください。感情を表す単語を1つだけ使用してください。「肯定的」または「否定的」のいずれかです。余分なテキストは書かないでください。ありがとうございます!", },
{
「役割」: 「ユーザー」
「コンテンツ」: コメント、
}
]
モデル = "gpt-4"
温度 = 1.0
max_tokens= 100 # 予想されるレスポンスの長さに基づいて調整します
# API呼び出しを行う
チャット補完 = client.chat.completions.create(
モデル=モデル、
温度=温度、
max_tokens=max_tokens、
メッセージ=メッセージ
)
# 応答を抽出
chat_completion.choicesの場合:
sentiment_result = chat_completion.choices[0].message.content.strip()
それ以外:
sentiment_result = "応答なし"
感情.append(sentiment_result)
# コメントとその感情を組み合わせる
result_df = pd.DataFrame({
「コメント」: コメント、
「感情」:感情
})
# 新しいExcelファイルに書き込む
output_file = "path_to_your_output_file.xlsx" # 希望する出力ファイルパスに置き換えます
result_df.to_excel(出力ファイル、インデックス=False)
print("感情分析が完了しました。結果はoutput_fileに保存されました。"
# 使用例
input_file = "path_to_your_input_file.xlsx" # 入力ファイルのパスに置き換えます
感情分析(入力ファイル)
# 宿題: 感情分析の結果に基づいて異なる応答を書き込む動的プロンプトを使用する関数を作成します。

05 迅速なエンジニアリングスキルを高める方法

要するに、スティーブン・キングのエレガントな名言を借りたわけです。 「何よりも大切なことは二つある」と彼は言いました。 「もっと読むこと、もっと書くこと」

文章を書くのと同じように、プロンプトエンジニアリングも、実際に座って入力し始めるまでは簡単そうに見えます。しかし、プロンプトを書くのに自然言語を使うため、簡単だと錯覚してしまうのです。

繰り返しになりますが、現状では人工知能モデルは私たちの思考を理解することができません。

質の高い回答を得るには、自分の意図をできるだけ明確に表現することを学ぶ必要があります。文献を読み、新しいテクニックを学び、それらを習得するためにできる限り練習を続けましょう。

ちらつくコンテキストウィンドウにランダムにコマンドを入力するのにうんざりしているかもしれません。解決策は、解決すべき挑戦的な問題を見つけることです。出力の一部をランダム化するにはどうすればよいでしょうか?プロンプトの内容を動的に変更するにはどうすればよいでしょうか?脱獄に耐性のあるアシスタントを作成できるでしょうか?

難しい問題が特定されると、Prompt Engineering は「習得しなければならないスキル」から、日々の「楽しい(しかし時にはイライラする)知的刺激」へと変化します。

さらに、機械学習とディープラーニングという2つの分野にも注目すべきです。生成型人工知能の背後にある技術的原理を理解すれば、モデルが特定の動作をするのはなぜなのかという直感が養われるため、それぞれの長所と短所を探求する必要があります。

始める際に役立つリソースをいくつか紹介します。

  • キャシー・コジルコフ著「機械学習を友達にしよう」(YouTube動画シリーズ)[8]

  • Andrej Karpathyによる大規模言語モデル入門。(YouTubeビデオ)[9]

  • Isa FulfordとAndrew Ngによる開発者のためのプロンプトエンジニアリング(無料オンラインコース)[10]

  • このハゲ男によるLLM向けの専門的なプロンプトの書き方(25以上のプロンプトテクニック、例、解説を含む16,000語の完全なガイド)。[11]