プロジェクトのヒント
生成的AIの時代における重要なスキルは、プロンプト・エンジニアリングであり、言語モデルが望ましい出力を生成するための効果的な指示を設計する技術と科学である。DataCampによると、この新しい分野は、AIモデル、特に大規模言語モデルLLMから特定の応答を引き出すためにプロンプトを設計し、最適化することを含み、AIとの対話とAIのパワーを活用する方法を形成する。
📚 倉庫の構造
文書名 | 説明 |
---|---|
基本的なヒント | 基本的なプロンプト・エンジニアリングの概念と構造の紹介。 |
高度なキュー・デザイン | 出力を最適化し、構造化するための高度なヒント。 |
アドバンス・キュー・デザイン・ハンズオン | 高度なプロンプト・デザイン・テクニックを応用するための実践的ガイド。 |
OpenAI APIを理解する | OpenAI APIを使ったプロンプトの概要。 |
LLMの関数呼び出し | 言語モデルにおける関数呼び出し機能を示すノートブック。 |
技術ノート | Jupyter Notebookは、プロンプト設計のテクニックを幅広くカバーしています。 |
キュー・デザイン・ブリーフ
プロンプティングとは、AIモデルに特定の指示や入力を与えることで、望ましい出力や行動を引き起こすプロセスである。これは人間とAIシステムの間の重要なインターフェースであり、ユーザーがモデルの応答を効果的に導くことを可能にする。大規模言語モデル(LLM)の文脈では、プロンプティングは単純なクエリから、文脈やスタイルガイドを含む複雑な指示セットまで拡張することができます。
プロンプト・デザインの主要な側面は以下の通り:
- 多用途性:AIモデルとタスクに応じて、プロンプトはテキスト、視覚、聴覚のいずれにも対応する。
- 特異性:よく設計されたチップは、より正確で関連性の高い出力を生成するために、正確な詳細を提供する。
- 反復的最適化:キューのデザインは通常、モデルの反応を解釈し、より良い結果を得るために後続のキューを調整する。
- アプリケーションの多様性:ヒントはテキスト生成、画像認識、データ分析、会話AIなど多様な分野で使用されている。
エンジニアリングの重要性についてのヒント
- AIのパフォーマンス向上:適切に設計されたキュー・ワードは、AIが生成するアウトプットの質と関連性を大幅に向上させる。明確な指示と文脈を提供することで、キュー・エンジニアリングはモデルがより正確で一貫性のある有用な応答を生成することを可能にします。
- カスタマイズと柔軟性: Cue Engineeringは、大規模なモデルの再トレーニングを行うことなく、特定のニーズやドメインに合わせたAI対応を可能にします。この柔軟性により、AIシステムは様々な業界の多様なアプリケーションに適応することができます。
- バイアスの軽減:AI出力のバイアスは、モデルが複数の視点を考慮したり、偏りのない特定の情報源に集中したりするよう誘導する手がかりとなる言葉を作ることで軽減できる。
- ユーザーエクスペリエンスの向上:効果的なキューエンジニアリングは、人間の意図と機械の理解のギャップを埋めることでユーザーエクスペリエンスを向上させ、AIツールをより身近でユーザーフレンドリーなものにする[4]。
- コスト効率:キューワードを最適化することで、計算リソースをより効率的に使用することができ、望ましい結果を得るために、より大きく、より高価なモデルの必要性を減らすことができる。
- ラピッドプロトタイピングとイテレーション:Cue Engineeringは、AIアプリケーションの迅速な実験と最適化をサポートし、開発サイクルとイノベーションを加速します。
- 倫理的配慮:思慮深いプロンプトのデザインは、AIシステムが倫理的ガイドラインに従い、さまざまな文脈や視聴者に適したコンテンツを生成することを保証するのに役立つ。
- スケーラビリティ:効果的なキューが開発されれば、組織全体に容易に拡張でき、一貫した高品質のAIインタラクションが可能になる。
- 分野横断的なアプリケーション: Cue Engineeringは、技術的な専門知識と専門分野の専門知識を結びつけることで、専門分野のエキスパートが深い技術的知識がなくてもAIの能力を活用できるようにします。
エンジニアリングのヒント
- 手掛り工学入門:基本原理、構造化手掛り、比較分析、問題解決への応用など、手掛り工学の概念を基礎から概説。
- 基本的なプロンプトの構成:1ラウンドおよび複数ラウンドのプロンプトを探求し、シンプルなプロンプトの作成方法とAIモデルとの対話方法を紹介します。
- プロンプトのテンプレートと変数:Jinja2などのツールを使って柔軟で再利用可能なプロンプトの構造を作成することに焦点を当てた、プロンプトのテンプレートと変数の使い方の紹介。
- ゼロサンプルプロンプティング:具体的な例がない場合に、直接的なタスク指定と役割ベースのプロンプティング技術によって、AIモデルがどのようにタスクを完了するように誘導できるかを示す。
- サンプルレス学習と文脈学習:AIの反応を導くために少数の例を提供することで、微調整の必要なく特定のタスクのパフォーマンスを向上させる技術をカバーする。
- 連鎖思考(CoT)のヒント:問題解決を改善するために、複雑な問題を段階的な推論プロセスに分解するようAIモデルに促す。
- 自己一貫性とマルチパス推論:AI出力の精度と信頼性を向上させるために、多様な推論経路を生成し、結果を集約する方法を探る。
- 制約付き生成とガイド付き生成:モデル出力に制約を設定し、ルールベースの生成を実装してAIの応答を制御・ガイドすることに重点を置く。
- 役割のヒント:AIモデルに特定の役割を割り当て、必要な行動や専門知識を引き出すための効果的な役割説明を設計する方法を示します。
- タスク・ブレイクダウン・プロンプト:複雑なタスクをより小さく、管理しやすいサブタスクに分解するテクニックをプロンプトで探る。
- キューチェーンとシーケンス:複雑なマルチステップのタスクを処理するために、複数のキューを論理的なフローで接続する方法を示します。
- ディレクティブエンジニアリング:言語モデルのための明確で効率的なディレクティブを設計することに重点を置き、パフォーマンスを最適化するために特異性と一般性のバランスをとる。
- キュー最適化テクニック:A/Bテストやパフォーマンス指標に基づく反復最適化など、キューを改善するための高度な手法をカバー。
- あいまいさの対処と明瞭さの向上:あいまいなプロンプトを認識し解決するテクニックと、より明確で効果的なプロンプトを書くためのストラテジーを探求する。
- プロンプトの長さと複雑さの管理:チャンキングや要約のテクニックなど、長いプロンプトや複雑なプロンプトを管理するためのストラテジーを探る。
- 否定的な手がかりと望ましくない出力の回避:否定的な例や制約を使用して、モデルを望ましくない反応から遠ざける方法を示します。
- キューの形式と構造:AIモデルの応答を最適化するための、さまざまなキューの形式と構造要素を調査。
- タスクに特化したプロンプト:要約、クイズ、コード生成、クリエイティブライティングなど、特定のタスクに特化したプロンプトのデザインに焦点を当てる。
- 多言語および他言語プロンプト:多言語で効果的に機能するプロンプトデザインのテクニックや、翻訳タスクのためのプロンプトデザインについて学びます。
- 手掛り工学における倫理的考察:偏見の回避と包括的手掛りの作成における倫理的側面に焦点を当てる。
- プロンプトセキュリティと安全対策:AIアプリケーションの安全性を確保するために、プロンプトインジェクションを防止し、コンテンツフィルタリングを実装する技術をカバーしています。
- 手がかりの妥当性評価:手動および自動評価技術を含め、手がかりの妥当性を評価・測定する方法を探る。
キューイングの基本
キュー・エンジニアリングは、AIモデルとのインタラクションを最適化するために設計されたさまざまなテクニックを包含する。これらの基本的な手法は、より高度な戦略の基礎を形成するものであり、ジェネレーティブAIツールの可能性を最大限に活用したい人にとって必須のスキルである。
ゼロサンプルヒントは最も単純な手法であり、追加のコンテキストや例なしでAIに直接指示や質問をする[1][2]。このアプローチは、単純なタスクや素早く答えを得るのに適している。例えば、「フランスの首都はどこですか?と尋ねるのは、ゼロサンプルのプロンプトである。
シングルサンプルキューは、ゼロサンプルキューに例を追加し、AIの反応をガイドする[3]。このテクニックは、特定のフォーマットやスタイルを扱う場合に特に有用である。例えば、製品の説明を生成するために、説明の例を提供し、その後、別の製品のための別の説明を生成するように要求することができる。
サンプルレスキューは、AIに複数の例を提供することで、この概念をさらに拡張する[2]。このアプローチは、複雑なタスクや出力の一貫性が要求される場合に特に効果的である。希望する出力形式やスタイルの複数の例を提供することで、AIはパターンをよりよく理解し、再現することができる。
役割ベースのプロンプトは、AIに特定の役割やアイデンティティを割り当てることで、AIの応答のトーンや内容に大きな影響を与える[1]。例えば、質問をする前にAIに「テクニカルサポートのスペシャリストを演じる」ように指示すると、より技術的で支援的な応答が得られる。
プロンプトのリフレーミングとは、プロンプトを言い換えたり再構築したりすることで、AIに異なる視点やよりニュアンスのある回答を提供するよう導く手法である[3]。このアプローチは、最初の結果が満足のいくものでない場合や、トピックの複数の側面を調査する必要がある場合に特に有用である。例えば、「再生可能エネルギーの利点は何ですか?という質問の代わりに、"再生可能エネルギーは経済の様々なセクターにどのような影響を与えるか "と言い換えることができます。
プロンプトの組み合わせは、複数の指示または質問を1つの包括的なプロンプトにまとめる [3]。このテクニックは、複数の回答を得たり、複雑な質問に対処したりする場合に有効です。たとえば、「共有ホスティングとVPSホスティングの違いを説明してください」と「小規模なeコマースWebサイトにはどちらが適しているかを推奨してください」を1つのプロンプトに組み合わせると、より包括的でカスタマイズされた回答が得られます。
これらの基本的なテクニックは、効果的なキューエンジニアリングのための強固な基盤を提供し、ユーザーがAIモデルを誘導して、幅広い用途において、より正確で適切かつ有用な出力を生成することを可能にします。
高度なキューイング戦略
高度なヒントエンジニアリング技術は、大規模な言語モデルの性能と能力を向上させるために、より洗練された方法を利用します。これらの手法は、基本的なヒントを超えて、より複雑な推論とタスク固有の結果を達成することを目的としています。
コヒーレント・シンキング(CoT)プロンプト
この技術は、一連の中間推論段階を提供することによって、複雑な推論タスクにおけるモデルのパフォーマンスを向上させる。首尾一貫した思考の手がかりにより、言語モデルは複雑な問題をより小さく管理しやすいステップに分解することができ、より正確で論理的な出力を生成することができる。
自己適合性
CoTの強化として、自己無撞着アプローチは、複数の推論経路をサンプリングし、最も一貫性のある答えを選択する。このアプローチは、最も信頼できる結果を決定する前に、モデルが複数の推論戦略を探索することを可能にするため、複数の有効な解が存在する問題で特に効果的です。
リ・アクト
リ・アクト テクニックは推論とアクションを組み合わせたもので、推論プロセスとタスク固有のアクションの両方をモデルが生成する。このアプローチは、AIが動的にアプローチを計画、実行、適応することを可能にし、外部情報源との相互作用を必要とする複雑な問題解決シナリオに理想的である。
マルチモーダルキューエンジニアリング
この高度な技術には、テキスト、画像、音声など複数の入力タイプを組み込んだプロンプトを設計することが含まれる。多様なデータタイプを活用することで、マルチモーダルキューはAIインタラクションをより全体的で文脈に即したものにし、人間の知覚とコミュニケーション能力を模倣する。
リアルタイム・アラート最適化
この新しいテクノロジーは、プロンプトの妥当性に関するフィードバックを即座に提供し、プロンプトの明確さ、潜在的な偏り、望ましい結果に対するプロンプトの整合性を評価する。このようなリアルタイムのガイダンスにより、初心者にも経験者にもプロンプト作成プロセスが簡素化される。
プロアクティブなヒント
このダイナミックなアプローチにより、ユーザーのインタラクションやフィードバックに基づいてキューを適応させることができる。プロアクティブなキューは、AIモデルがリアルタイムでその応答を適応させることを可能にし、それによってインタラクション全体を通してアウトプットの関連性と有効性を高めます。
知識創造のヒント
この技術では、質問に答える前に言語モデルを使用して関連知識を生成し、常識的な推論を強化する。最初に関連する情報を生成し、それを回答に組み込むことで、モデルはより洞察に満ちた、文脈に沿った回答を提供することができる。
これらの高度な技術は、キューエンジニアリングの最先端を代表するものであり、幅広い応用領域や問題領域にわたってAIのパフォーマンスを最適化するための強力なツールを提供します。
論理的思考
コヒーレント思考(CoT)推論は、大規模な言語モデルの推論能力を強化するために設計された高度なプロンプトエンジニアリング技術である。この手法では、与えられた問題に対して複数の推論パスを生成し、最も一貫性のある、または包括的なソリューションを選択します。CoT推論を複数回実行することで、キューイングエンジニアは、論理的思考と複数のステップを必要とする問題を解決するモデルの能力を強化することができます。
CoT推論の要点
- オートコンプリート・デコーディング複数の推論で最も一般的な結論を選びなさい。
- 複雑性に基づくヒント推論連鎖が最も長い結果を選ぶ。
- 人的介入推論結果が著しく矛盾している場合は、手作業で修正する。
- 精度の向上推論、計算、意思決定を含むタスクにおけるモデルのパフォーマンスを向上させる。
CoT推論を活用することで、キュー・エンジニアは、さまざまな領域で複雑な問題に対処できる、より堅牢で信頼性の高いAIシステムを構築することができる。
ReActプロンプトの例
ReAct (Reasoning and Acting)プロンプト手法は、Large Language Models (LLMs)の問題解決能力を向上させるために、推論プロセスとタスク固有のアクションを組み合わせたハイレベルな手法である。この手法により、LLMは言語的推論ステップの生成とアクションの実行を交互に行うことができ、より効率的で動的な問題解決につながる。
典型的なReActのヒント
- 思想モデルの推論プロセス。
- アクション実行する必要のある特定のタスクやクエリ。
- 観察行動から得られる結果や情報。
典型例
課題エッフェル塔のある国の首都は?
- 反省この質問に答えるには、エッフェル塔がどこにあるのかを調べ、その国の首都を特定する必要があります。
- 行為エッフェル塔の場所」で検索してください。
- 鑑みるエッフェル塔はフランスのパリにある。
- 反省エッフェル塔がフランスにあることを知ったからには、フランスの首都を調べないとね。
- 行為フランスの首都」で検索。
- 鑑みるフランスの首都はパリです。
- 反省この質問に答えるのに必要な情報はすべて持っています。
- 行為答えを示してください。
- ソリューションエッフェル塔のある国の首都はフランスのパリです。
ReActプロンプトの適用
- 質疑応答複雑な問題を分解し、関連する情報を得るためのモデルの能力を高める。
- タスクの自動化推論と行動を組み合わせることで、モデルを多段階のプロセスに導く。
- 外部の知識ベースとの対話モデルが推論をサポートするために追加情報を取得し、取り込むことを可能にする。
- 意思決定利用可能なデータに基づいて、選択肢を評価し、情報に基づいた選択を行うモデルの能力を向上させる。
ReActプロンプトを実装することで、開発者や研究者は、複雑な推論タスクや現実的な問題解決シナリオに対応できる、より堅牢で適応性の高いAIシステムを作成することができる。
標的刺激キューイング
Directional Stimulus Prompting (DSP)は、Large Language Models (LLM)が特定の望ましい出力を生成するよう導くための革新的なフレームワークである。この技術は、各入力インスタンスに対して補助的な方向刺激プロンプトを生成するために、調整可能な小さなストラテジーモデルを利用します。
DSPの主な特徴
- 小型で調整可能な戦略モデル(T5など)を使用した方向刺激の生成。
- 教師ありの微調整と集中学習による最適化。
- 要約生成、対話応答生成、連鎖推論など、さまざまなタスクに適用できる。
- アノテーションデータが限られている場合、例えば80ダイアログしか使用されていない場合、以下のように変換することで、パフォーマンスが大幅に向上します。 チャットGPT MultiWOZデータセットの性能は41.4%向上した。
DSPを使用することで、研究者や実務者はLLMのパラメータを直接変更することなく、LLMの能力を向上させることができ、キューエンジニアリングに柔軟で効率的なアプローチを提供することができる。
知識創造のヒント
知識生成プロンプティングは、質問に答えたりタスクを完了したりする前に、関連する事実を生成するようAIモデルに求めることで、AIモデルのパフォーマンスを向上させます。この2段階のプロセスには、知識生成(モデルが関連情報を生成する)と知識統合(この情報を使用して、より正確で文脈に沿った回答を形成する)が含まれます。
主なメリット
- AIが生成するコンテンツの精度と信頼性を向上させる。
- 与えられたトピックの文脈的理解を深める。
- 事実に基づいた情報への反応を固定する能力。
- APIやデータベースなどの外部ソースを組み込むことで、知識をさらに拡張することができる。
関連する事実を最初に考慮するようモデルに促すことで、知識生成プロンプトメソッドは、特に複雑なタスクや専門的なトピックを扱う場合に、より有益で賢明な出力を作成するのに役立ちます。
実用的なエンジニアリング技術のヒント
このチップ・エンジニアリング・テクニカル・ガイドは、すべて以下の内容に基づいている。 ニルディアマン 優れたプラクティスのリポジトリ。すべてのコンテンツとJupyterノートブックの著作権は元のリポジトリに帰属します:プロンプトエンジニアリング.
素晴らしい教材なので、ここに追加する。 プロンプトエンジニアリング 倉庫。
基本コンセプト
- ティップ・プロジェクト・プロフィール
概要 ᔎ.
AIと言語モデルのキューエンジニアリングの基礎となる概念を詳しく紹介。
実施 🛠️
基本的な概念、構造化されたプロンプト、比較分析、問題解決への応用など、理論的な説明と実践的なデモンストレーションを組み合わせています。
- キューイングの基本構造
概要 ᔎ.
単発キューと多発キュー(ダイアローグ)という2つの基本的なキューイング構造を探る。
実施 🛠️
OpenAIのGPTモデルとLangChainを使用した、単ラウンドと複数ラウンドのプロンプト、プロンプトテンプレート、ダイアログチェーンのデモ。
- ヒント テンプレートと変数
概要 ᔎ.
PythonとJinja2テンプレートエンジンを使って、変数を使ったプロンプト・テンプレートを作成し、使用する方法を説明します。
実施 🛠️
テンプレート作成、変数挿入、条件付きコンテンツ、リスト処理、OpenAI APIとの統合を含む。
🔧 コア・テクノロジー
- ゼロ・サンプル・チップ
概要 ᔎ.
具体的な例文や事前の訓練なしに言語モデルがタスクを完了できるようにするためのゼロサンプルキューの探求。
実施 🛠️
OpenAIとLangChainを使った、直接的なタスク割り当て、役割ベースのプロンプト、フォーマット指定、マルチステップ推論を実演。
- サンプルレス学習とコンテクスト学習
概要 ᔎ.
OpenAIのGPTモデルとLangChainライブラリを使用した、より少ない学習とコンテキスト学習テクニックのサンプルをご覧ください。
実施 🛠️
基本的・高度な非サンプル学習、文脈学習、例の選択と評価を実施するためのベストプラクティス。
- チェーン・シンキング(CoT)のヒント
概要 ᔎ.
複雑な問題を段階的な推論プロセスに分解してAIモデルを導くチェーン思考(CoT)のヒントを紹介する。
実施 🛠️
基本的なCoTテクニックと高度なCoTテクニックを取り上げ、さまざまな問題解決シナリオに応用し、標準的なプロンプトと比較する。
🔍 アドバンスト・ストラテジー
- 自己一貫性とマルチパス推論
概要 ᔎ.
AIが生成する答えの質を向上させるために、多様な推論パスを生成し、結果を集約するテクニックを探求する。
実施 🛠️
多様な推論プロンプトを設計し、複数の回答を生成し、集計方法を実装し、自己矛盾チェックを適用することを実証する。
- 制約付き生成とブートストラップ生成
概要 ᔎ.
モデル出力に制約を設定し、ルールベースの生成を実装するテクニックに焦点を当てる。
実施 🛠️
LangChainのPromptTemplateを使用して、構造化されたプロンプトを作成し、制約を適用し、ルールベースの生成テクニックを探ります。
- キャラクターのヒント
概要 ᔎ.
AIモデルに特定の役割を割り当て、効果的な役割記述を設計するテクニックを探ります。
実施 🛠️
役割ベースのプロンプトの作成、AIモデルへの役割の割り当て、さまざまなシナリオに応じた役割記述の最適化を実演します。
🚀 先進的な実現
- タスク・ブレイクダウンのヒント
概要 ᔎ.
複雑なタスクを分解し、プロンプトにサブタスクをリンクさせるテクニックを探求する。
実施 🛠️
問題分析、サブタスク定義、ゴール・キュー・エンジニアリング、逐次実行、結果の統合を含む。
- キュー・チェイニングとシリアライゼーション
概要 ᔎ.
複数のプロンプトをつなげて、複雑なAI主導タスクの論理フローを構築する方法を実演します。
実施 🛠️
基本的なキューチェーン、シーケンシャルキュー、ダイナミックキュー生成、キューチェーンにおけるエラー処理について学びます。
- コマンドエンジニアリング
概要 ᔎ.
具体性と汎用性のバランスをとりながら、言語モデルに対する明確で効果的な指示を設計することに重点を置く。
実施 🛠️
インストラクションの作成と最適化を行い、さまざまな構造を試し、モデルの反応に基づいて繰り返し改善を行う。
🎨 最適化と改善
- キューの最適化技術
概要 ᔎ.
A/Bテストと反復的な改善を中心に、プロンプトを最適化するための高度なテクニックを探ります。
実施 🛠️
迅速なA/Bテスト、反復的な改善プロセス、関連する指標を用いたパフォーマンス評価を実証する。
- 曖昧さを処理し、明瞭さを向上させる
概要 ᔎ.
曖昧なプロンプトを認識・解決し、より明確なプロンプトを書くためのテクニックに焦点を当てる。
実施 🛠️
曖昧なプロンプトの分析、曖昧さを解消するためのストラテジーの実践、より明確なプロンプトを書くためのテクニックの探求を含む。
- キューの長さと複雑さの管理
概要 ᔎ.
大規模な言語モデルを使用する際に、プロンプトの長さと複雑さを管理するテクニックを探ります。
実施 🛠️
チャンキング、要約、反復処理など、詳細と簡潔さのバランスをとるテクニックや、長いコンテクストを扱うためのストラテジーを身につける。
🛠️ 特殊用途
- ネガティブな手がかりと予期せぬアウトプットの回避
概要 ᔎ.
大規模言語モデルからの望ましくない出力を回避するためのネガティブキューとテクニックを探る。
実施 🛠️
基本的な否定例、明示的な除外、LangChainを使用した制約の実装、否定的なキューの評価と改善方法が含まれています。
- キューのフォーマットと構成
概要 ᔎ.
さまざまなキューの形式や構造要素を検討し、AIモデルの反応に与える影響を実証します。
実施 🛠️
複数のキュー形式を作成し、構造要素を統合し、異なるキュー構造に対する反応を比較する。
- タスク別のヒント
概要 ᔎ.
テキストの要約、クイズ、コード生成、創作など、特定のタスクのためのプロンプトの作成と使用を探求する。
実施 🛠️
これには、タスクに特化したプロンプトテンプレートの設計、LangChainを使った実装、サンプル入力による実行、タスクタイプごとの出力の分析が含まれる。
🌍 高度なアプリケーション
- 多言語およびクロスランゲージのヒント
概要 ᔎ.
多言語および言語翻訳タスクのための効果的なプロンプトをデザインするテクニックを探る。
実施 🛠️
これには、多言語プロンプトの作成、言語検出と適応の実装、言語横断的な翻訳プロンプトの設計、さまざまな書記体系や文字セットへの対応などが含まれる。
- キュー・エンジニアリングにおける倫理的考察
概要 ᔎ.
偏見を避け、包括的で公平なプロンプトを作成することに焦点を当て、プロンプト工学の倫理的側面を探求する。
実施 🛠️
プロンプトのバイアスを特定する方法、包括的なプロンプトを作成するための戦略の実施、AIアウトプットの倫理的な質の評価と改善を含む。
- ヒント 安全性とセキュリティ
概要 ᔎ.
AIアプリケーションの安全性を確保するために、プロンプト・インジェクションを防止し、プロンプトにコンテンツ・フィルタリングを実装する方法を紹介します。
実施 🛠️
プロンプト・インジェクションを防ぐテクニック、コンテンツ・フィルタリングの実装、セキュリティ対策の有効性のテストなど。
- プロンプトの効果を評価する
概要 ᔎ.
AI言語モデルの手がかりの妥当性を評価する方法とテクニックを探る。
大規模言語モデル(LLM)APIを理解する
大規模言語モデル(LLM)APIについて説明しよう。
APIを使うにはいくつかの方法がある。ひとつは直接HTTPリクエストを送る方法、もうひとつはpip経由で公式のOpenAIパッケージをインストールする方法だ。
pip install openai
このAPIフォーマットは非常に人気があるため、他の多くのプロバイダーも同じフォーマットでAPIを提供しており、これは「OpenAI準拠」と呼ばれている。
OpenAI互換APIを提供するベンダー一覧
以下はOpenAI APIと互換性のあるベンダーのリストで、開発者はOpenAIが提供するものと同様の方法でこれらのサービスを利用することができる:
- グロック
- グロック 提供されるAPIのほとんどは、OpenAIのクライアント・ライブラリと互換性がある。ユーザーは
ベースURL
を作成し、GroqのAPIキーを使用してアプリケーションをGroq上で実行するように設定します。
- グロック 提供されるAPIのほとんどは、OpenAIのクライアント・ライブラリと互換性がある。ユーザーは
- ミストラルAI
- MistralはOpenAIに準拠したリクエストをサポートするAPIを提供しており、開発者はこのサービスを通じて様々なモデルにアクセスすることができる。
- ハグする顔
- Hugging Faceは、OpenAIのAPIと同様の方法で設定されたAPIを介して、多くのモデルへのアクセスを提供する。 Hugging Faceは、そのモデルの大規模なライブラリで知られている。
- グーグル バーテックスAI
- Google Vertex AIにより、ユーザーはOpenAI APIと整合性のある方法で大規模な言語モデルを操作することができる。
- Microsoft Azure OpenAI
- マイクロソフトは、既存のAzureサービスと簡単に統合できるように、Azureプラットフォームを通じてOpenAIのモデルへのアクセスを提供している。
- アンソロピック
- Anthropicのモデルは、OpenAIの構造を模倣したAPIを通じてアクセスすることもでき、同様のインタラクションを可能にする。
これらのプロバイダーは、開発者がアプリケーションやワークフローへの統合を容易にするために、使い慣れたOpenAI API構造との互換性を維持しながら、さまざまなAI機能を活用することを可能にします。
また、異なるAPIアーキテクチャやタイプを使用するプロバイダもあります。 リテルム このようなクライアント・ライブラリは、さまざまなタイプの大規模言語モデル用に統一されたクライアント・パッケージを提供する。
加えて ポートキー このようなゲートウェイは、あらゆる大規模な言語モデルに対してOpenAI互換のAPIを提供する。
この記事では、APIの様々なパラメータについて学ぶ。
主要パラメーター
温度
- 説明Temperature(温度)パラメータは、モデル出力のランダム性を0~2の範囲で制御する。
- 影響を及ぼす:
- 低い値(0~0.3)アウトプットはより決定的に集中し、似たような反応を繰り返すことが多い。
- 中 (0.4-0.7)創造性と一貫性のバランスをとること。
- 高い値 (0.8-2)より多様で創造的なアウトプットを生み出すが、意味のない結果を生むこともある。
- 典型例:
レスポンス = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "文章を完成させてください。], temperature=1 )
トップ
- 説明このパラメータは核のサンプリングを可能にする。
p
出力の確率的品質。 - レアル0から1まであり、値が低いほど、より可能性の高いトークンに出力が制限される。
- 典型例:
レスポンス = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Write a poem." }]., top_p=0.9 )
最大トークン
- 説明の最大数を定義する。 トークン 量(単語または単語の一部)。
- デフォルト値ほとんどの機種では、最大4096トークンに設定されています。
- 典型例:
レスポンス = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Tell a story." }]., max_tokens=150 )
関数呼び出し
- 説明この機能は、ユーザー入力に基づいて定義済みの関数を呼び出すことで、モデルが外部のAPIやサービスと相互作用することを可能にします。
- 典型例:
関数 = [ { "name": "get_current_weather"、 "description": "ある場所の現在の天気を取得する。", 「parameters": { "タイプ": "オブジェクト", "プロパティ": {。 「プロパティ": { 「location": {"type": "string"}, "description": {"type": "string", "properties": { "単位": { "type": "string", "enum": ["celsius", "fahrenheit"]}, "required": ["摂氏", "華氏"]}。 }, "required": ["location": ["摂氏", "華氏"]}。 「必須": ["場所"]。 } ] response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "How's the weather in New York?" }]., functions=functions、 function_call={"name": "get_current_weather"} ) )
APIコールにおける役割
APIコールに関係する役割を理解することは、効果的なインタラクションを構成するのに役立つ。
システムの役割
- ゴールダイアログを通してモデルの振る舞いを導く、ハイレベルな指示や文脈を提供する。
- 使用状況メッセージ配列の最初に設定され、相互作用のトーンやルールを確立する。
- 典型例::
メッセージ = [ {"role": "system", "content": "あなたは親切なアシスタントです。"}, {"role": "user", "content": "What can you do?} {役割": "ユーザー", "内容": "何ができますか?} ]
ユーザーロール
- ゴールこれは人間のユーザーからの入力を表し、クエリーやプロンプトを通してダイアログを誘導する。
- 使用状況最も一般的に使われるのは、質問したり発言したりするとき。
- 典型例::
{役割": "ユーザー", "内容": "OpenAIの仕組みを説明してもらえますか?}
アシスタントの役割
- ゴールユーザー入力とシステムコマンドに基づいてモデルによって生成された応答を表します。
- 使用状況ユーザーのクエリに応答するとき、モデルは自動的にこの役割を引き受ける。
- 典型例::
{"役割": "アシスタント", "内容": "OpenAIは高度な機械学習技術を使ってテキストを生成する"}。
その他のパラメータ
ながれ
- 説明trueに設定すると、リアルタイムアプリケーションで部分応答を生成するときにストリーミングを許可します。
ログプロブ
- 説明これはモデルの動作を理解し、出力を改善するために使用されます。
概要
OpenAI APIは、開発者が高度にインタラクティブなアプリケーションを作成するために使用できる、強力なパラメータとロールのセットを提供します。温度などのパラメータを調整し、構造化されたロールを効果的に利用することで、ユーザーは、ダイアログの明快さと制御を確保しながら、特定のニーズに合わせて反応を調整することができます。
以下は、OpenAIに対応した各種プロバイダーのAPIの利用例と、軽量大規模言語モデル(LLM)の応用例です。
互換性のあるプロバイダーのOpenAI APIの使用例
1. グロック
GroqのAPIを使用するには、ベースURLを設定し、Groq APIキーを提供する必要があります。
インポート OS
インポート openai
クライアント = openai.
base_url="https://api.groq.com/openai/v1", api_key=os.environ.
api_key=os.environ.get("GROQ_API_KEY"))
)
response = client.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Tell me a joke." }].
)
print(response.choices[0].message['content'])
2. ミストラルAI
ミストラルAI また、OpenAI互換のAPIも提供されており、ここではその使い方を紹介する:
インポートリクエスト
url = "https://api.mistral.ai/v1/chat/completions"
ヘッダー = {
"Authorisation": f "Bearer {os.environ.get('MISTRAL_API_KEY')}"、
"Content-Type": "application/json"
}
data = {
"model": "mistral-7b", "role": [{ "role": "mistral_API_KEY", "Content-Type": "application/json" }]。
"messages": [{ "role": "user", "content": "フランスの首都は?" }].
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])
3. ハグする顔
Hugging Face APIを使用するには、アクセストークンが必要です。以下はサンプルコードです:
インポートリクエスト
url = "https://api-inference.huggingface.co/models/gpt2"
ヘッダ = {
"Authorization": f "ベアラ{os.environ.get('HUGGINGFACE_API_KEY')}"
}
data = {
"入力": "昔々、遠い国で"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()[0]['generated_text'])
4. グーグル バーテックスAI
以下のコードは、Google Vertex AIと対話するために使用できる:
from google.cloud import aiplatform
aiplatform.init(project='your-project-id', location='us-central1')
response = aiplatform.gapic.PredictionServiceClient().predict(
endpoint='projects/your-project-id/locations/us-central1/endpoints/your-endpoint-id'、
instances=[{"content": "Who won the World Series in 2020?"}], )
)
print(response.predictions)
5. Microsoft Azure OpenAI
以下は、AzureのOpenAIサービスを呼び出すコードの例である:
インポートリクエスト
url = f "https://your-resource-name.openai.azure.com/openai/deployments/your-deployment-name/chat/completions?api-version=2023-05-15"
ヘッダー = {
"Content-Type": "application/json", "api-key": os.environ.
「api-key": os.environ.get("AZURE_OPENAI_API_KEY")
}
data = {
「メッセージ": [{ "role": "user", "content": "What's the weather today?" }], "model": "gpt-3": [{ "role": "user", "content": "what's the weather today?
"モデル": "gpt-35-turbo"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])
6. アンソロピック
人間工学の クロード モデルとそのAPIのサンプルコードを以下に示す:
インポートリクエスト
url = "https://api.anthropic.com/v1/complete"
ヘッダー = {
"Authorisation": f "Bearer {os.environ.get('ANTHROPIC_API_KEY')}"、
"Content-Type": "application/json"
}
data = {
「prompt": "量子物理学を簡単に説明してください、
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['completion'])
この例では、テキスト生成タスクで意味のある出力を達成しながら、軽量モデルを効果的に利用する方法を示している。
ソース
https://www.coltsteele.com/tips/understanding-openai-s-temperature-parameter
https://community.make.com/t/what-is-the-difference-between-system-user-and-assistant-roles-in-chatgpt/36160
https://arize.com/blog-course/mastering-openai-api-tips-and-tricks/
https://learn.microsoft.com/ko-kr/Azure/ai-services/openai/reference
https://community.openai.com/t/the-system-role-how-it-influences-the-chat-behavior/87353
https://community.openai.com/t/understanding-role-management-in-openais-api-two-methods-compared/253289
https://platform.openai.com/docs/advanced-usage
https://platform.openai.com/docs/api-reference
https://console.groq.com/docs/openai
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://www.reddit.com/r/LocalLLaMA/comments/16csz5n/best_openai_api_compatible_application_server/
https://docs.gptscript.ai/alternative-model-providers
https://towardsdatascience.com/how-to-build-an-openai-compatible-api-87c8edea2f06?gi=5537ceb80847
https://modelfusion.dev/integration/model-provider/openaicompatible/
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://docs.gptscript.ai/alternative-model-providers
https://console.groq.com/docs/openai
ヒント プロジェクト入門 II (関数呼び出し)
ロードには以下のライブラリ、ツール、設定が必要です。
https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/function_calling.ipynb
キュー・エンジニアリングを始める
ロードには以下のライブラリ、ツール、設定が必要です。
https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/prompt_engineering.ipynb