「10年以上の経験を持つ優れたエンジニアを求めていますか?」
Looking for an experienced engineer with over 10 years of experience?
この新しいハイプされたポジションにぴったりの人は誰でしょうか
プロンプトエンジニアリングは長い間存在していましたが、最近の大規模言語モデル(LLM)のブームによってバイラルになりました。この現象の主な要因は、ゼロショットおよびフューショット学習が非常に大規模な言語モデルとのみうまく機能することです。
プロンプトエンジニアリングに対するハイプは避けられませんでした-なぜなら、プロンプトの文言はLLMの出力の品質に劇的な影響を与えるからです(LLMは異なるプロンプトテンプレートに対して大きな分散を示します)。また、従来のファインチューニングに必要なモデルパラメータの再学習やデータの収集を必要とせずに、ダウンストリームの言語モデルにも効果的です。
研究文献にはさまざまな有望なプロンプトエンジニアリング技術が示されています。ただし、すべてのLLMに適した普遍的な「特定のタスクに最適なプロンプトを見つける」アルゴリズムはまだ見つかっていません。望ましい出力を生成するプロンプトを見つけるために、各特定のモデルとタスクで実験する必要があります。それが「プロンプトエンジニア」の仕事が存在する理由です。
プロンプトエンジニア
ITのハイプなポジションでは(開発者アドボケートとしての個人的な経験から話している)、プロンプトエンジニアに関しては雇用主と従業員の両方に混乱があります。混乱は、プロンプトエンジニアリングが、望ましい答えを得るまでオラクルに質問を再定式化するプロセスであるという一般的な認識によってさらに悪化しています。それに対して、プロンプトエンジニアリングは非常に意図的な手続きです。さらに重要なことに、「プロンプトエンジニアリングは単にプロンプトの設計や開発についてではありません。LLMとの対話や開発に役立つさまざまなスキルや技術を包括しています。」
- 「研究:社会的に意識した時間的因果関係デコーダー推薦システム」
- 「Java ZGCアルゴリズムのチューニング」
- 「分かれれば倒れ、一緒に立つ:CoTrackerは、ビデオ内の複数のポイントを共同で追跡するAIアプローチです」
プロンプトエンジニアリングのテクニックやベストプラクティスに関する役立つガイド、コース、記事がたくさんありますが、私自身もそれを理解するために使用しました。そして、私の経験に基づいて、ほとんどのガイドでは同じ推奨事項が見られます:良いプロンプトは実験から生まれるため、自分自身のプロンプト設計プロセスを確立し、プロンプトエンジニアリングの第六感を開発する必要があります。もちろん、マシンラーニングエンジニアとしての作業経験からも直感が得られることがあります。これにより、LLMの構築方法やトレーニング方法についてのより深い理解が得られます。しかし、プロンプトエンジニアリングで強い直感を自然に開発できる、より明白ではない職業も存在します。その1つがクラウドソリューションアーキテクト(CSA)です。
クラウドソリューションアーキテクト
私が一つのトレンディで理解されにくいITの職名を別のトレンディで新しいものと置き換えているように思えるかもしれません。しかし、実際にはそれほど新しくありません-クラウドソーシングソリューションアーキテクトは、クラウドソーシングプラットフォームの登場以来存在しており、CSAは簡単に15年以上の経験を持つことができます。業界は既にCSAの専門範囲についての確固たる理解を持っています。
では、彼らの日常のタスクは何であり、なぜ彼らの経験がプロンプトエンジニアリングの直感的な開発に役立つのでしょうか?単純に言えば、CSAはクラウド(専門家または非専門家)のためにデータラベリングタスクを設計し、初期の仕様をラベラーが理解しやすい形式に変換します。これには詳細な指示の作成、ユーザーフレンドリーなラベリングインターフェースの作成、公正な価格設定スキームと品質管理メカニズムの設定、そして最も重要なこととして、初期の問題に対する洗練された分解技術の適用が含まれます。分解は、難しいタスクをより簡単なサブタスクのセットに変換する重要なスキルです。例えば、ランキング問題をサイドバイサイドのラベリングタスクに変換してからノイズのあるブラッドリー・テリー集計を行うことです。サブタスクはクラウドによって解決され、それからCSAはさまざまな集計技術を適用して最終的な問題の答えを得ます。
クラウドソーシングタスクの設計はなぜプロンプトエンジニアリングの直感を開発するのに役立つのか
プロンプトエンジニアリングの実験中に、クラウドソーシングタスクの設計のベストプラクティスとプロンプトエンジニアリングのベストプラクティスに類似点を見つけました。これにより、CSA(Crowd Sourced Annotation)の手法を使用してプロンプト結果を改善するためのいくつかの仮説を開発し、テストしました。私は、クラウドソーシングなどの関連する研究分野からの知識を適用することで、新しいプロンプト技術が発見される可能性があると強く信じています。
分解 + 集約
チェーンオブソートプロンプトやリーストトゥモストプロンプトなどの技術は、タスクがサブタスクやステップに分割される場合、モデルのパフォーマンスが向上することを示しています。分解は、クラウドソーシングタスクにおいても同様の効果を発揮し、より簡単に解決できるより小さな問題に分割します。このような技術が人間のラベリングの品質を向上させるのは直感的に理解しやすく、ラベラーにより少ない専門知識を要求します。LLM(Language Model)にとっても、ウェブから収集されたトレーニングデータセットでサブタスクがより頻繁に発生する可能性があるため、うまく機能するかもしれません。
CSAは、検索関連性の推定、3Dトランスポートのラベリング、広告のモデレーション、コード内の個人情報(PI)の認識など、実際にタスクの分解方法を学んでいます。彼らはクラウドで解決するのが困難で簡単なものについて強い直感を持っています。この直感は一連のベストプラクティスの中に一部取り込むことができます。例えば、分類タスクのクラス数は5または6を超えるべきではないという経験則があります。さもなければ、選択肢の過多バイアスが発生します。また、クラスのラベリングを同時に行うよりも、単純から複雑へと1つずつクラスを除外する方が良い結果が得られます。これらのルールはLLMでのラベリングにも適用できるのでしょうか?実施してみると、後者のルールをGPT-4でのラベリングに適用した結果、正確性が20%向上しました。
指示
クラウドソーシングで良い結果を得るための鍵の一つは、明確で詳細な指示(基本的には人間向けの詳細なプロンプト)を提供することです。LLMは推論ができないため、人間向けの完璧な指示を与えても最良の出力品質にはつながらないことが、記事「The Turking Test: Can Language Models Understand Instructions?」で示されています。
ただし、プロンプトエンジニアリングとクラウドソーシングの指示設計のためのベストプラクティスには1対1で一致するものがあるため、熟練したCSAは有望なプロンプトエンジニアになる可能性があります。以下に、プロンプトと指示に適用されるいくつかのベストプラクティスを示します:
- 短いものが良いとは限らない。できるだけ明確にする。
- LLMは私たちと同じくフューショットラーナーなので、例が非常に重要です。
- タスクに複数の可能なクラスがある場合、各クラスを説明するための十分な例(少なくとも2〜3個)を提供してください。
- フューショットには合成ではなく実生活の例を使用してください。
- タスクにレアケースを追加する場合は、指示で十分に説明してください。
キーポイント
- CSAの手法をプロンプトエンジニアリングに適用するための未開拓の研究領域があります。
- プロンプトエンジニアリングの直感は、他の業務経験を通じて確実に得られます。
- Tolokaでは、CSAをプロンプトエンジニアとして成功裏に活用しています。もしチームにクラウドソーシングの経験者がいる場合、プロンプトエンジニアを探す必要はありません!
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles