プロンプト圧縮:Pythonの例を備えたガイド
人工知能の急速に進化する風景では、大規模な言語モデル(LLM)を最適化することは、可能なことの境界を押し広げるだけでなく、効率と費用対効果を確保することでもあります。
プロンプト圧縮は、計算費用を最小限に抑えながら、これらのモデルのパフォーマンスを向上させるための重要な手法として浮上しています。ほぼ毎週新しい研究が出現しているため、維持は挑戦的ですが、基本を理解することが不可欠です。 この記事では、迅速な圧縮の基本をカバーし、使用すべきか、RAGパイプラインのコストを削減する上での重要性について説明し、OpenAIのAPIを使用してGPT-3.5-Turbo-0125モデルを使用して例を提供します。 詳細を知りたい場合は、このコースを迅速なエンジニアリングでご覧ください。
プロンプト圧縮とは?
プロンプト圧縮は、自然言語処理(NLP)で使用される手法であり、出力の品質と関連性を大幅に変えることなく、LLMSに与えられた入力を最適化します。この最適化は、クエリのトークンの数がLLMパフォーマンスに与える影響のために重要です。
トークンは、言語モデルのトークネザーに応じて単語またはサブワードを表すテキストLLMSの基本単位です。プロンプトでトークンの数を減らすことは有益であり、いくつかの理由で必要な場合があります:トークン制限制約:
llmsには、入力の最大トークン制限があります。この制限を超えると、重要な情報が切り捨てられ、出力の明確さとモデルの有効性が減少します。
- 処理効率とコスト削減:
- より少ないトークンは、処理時間とコストの削減を意味します。 応答の改善の関連性: 人間読み取り可能なプロンプトは、必ずしも良いプロンプトを意味するとは限りません。時々、私たちが考えるプロンプトは、停止単語( "a、" the、 "is"など)など、LLMSの重要でない情報を運ぶことができます。
- プロンプト圧縮により、冗長情報の削除、キーポイントの要約、特殊なアルゴリズムの使用、トークンカウントを最小限に抑えながらプロンプトの本質を蒸留するなどの戦略を使用することにより、トークン数が減少します。 いつプロンプト圧縮を使用する必要がありますか?
- プロンプト圧縮を使用できるシナリオを調べてみましょう。 高度な迅速なエンジニアリング手法
プロンプト圧縮プロンプトの有効性を維持しながらトークンカウントを減らすことにより、これらの問題を軽減します。
RAGパイプラインは、情報検索とテキスト生成を組み合わせており、コンテキストの理解が重要な特殊なチャットボットやその他のアプリケーションでよく使用されます。これらのパイプラインは、多くの場合、広範な会話履歴または検索された文書をプロンプトとして必要とし、トークンカウントが高く、費用の増加につながります。 このような場合、コストを最小限に抑えながら本質的なコンテキストを維持するためには、迅速な圧縮が不可欠です。 迅速な圧縮の適用性と制限
プロンプト圧縮は普遍的な解決策ではなく、賢明に使用する必要があることに注意することが重要です。たとえば、会話のコンテキスト用に設計されたChatGPTのようなアシスタントモデルは、積極的な迅速な圧縮の恩恵を受けることはできません。
これらのモデルはトークンごとに充電せず、チャットの要約とメモリ機能を統合して会話の履歴を効果的に管理し、圧縮を冗長にします。
トークンごとに充電するモデルを操作する場合でも、過度の圧縮によりニュアンスや重要な詳細が失われる可能性があることに注意することも重要です。サイズを縮小することとプロンプトの意味の完全性を維持することとの適切なバランスをとることが重要です。プロンプト圧縮はどのように機能しますか?
迅速な圧縮技術は、知識の蒸留、エンコーディング、フィルタリングの3つの主要な方法に分類できます。各手法は、LLMSのプロンプトの長さと効率を最適化するためにさまざまな強度を活用しています。
これらの各手法について話しますが、このペーパーでは、より包括的なアプローチを見つけることができます。大規模な言語モデルの効率的なプロンプトメソッド:調査。この記事を通して、この論文を「調査論文」と呼びます。知識蒸留
知識蒸留は、ヒントンらによって最初に導入された機械学習の分野のテクニックです。 (2015)、より小さく、よりシンプルなモデル(学生)が、より大きく、より複雑なモデル(教師)の動作を再現するように訓練されています。
この手法は、モデルのアンサンブルをトレーニングするという計算上の課題に対処するために最初に開発されました。プロンプトエンジニアリングのコンテキストでは、知識の蒸留を使用して、モデルの代わりにプロンプトを圧縮できます。
これは、ソフトプロンプトチューニングを介してLLMS内のハードプロンプトを圧縮する方法を学ぶことで実現されます。詳細な洞察については、調査論文のセクション3.1および付録A.1.1を参照してください。エンコード
メソッドのエンコード入力テキストをベクトルに変換し、重要な情報を失うことなく迅速な長さを削減します。これらのベクトルは、プロンプトの本質的な意味をキャプチャし、LLMがより短い入力を効率的に処理できるようにします。
興味深いことに、LLMはBase64のような他の言語に熟練しています。これは、プロンプトのトークンサイズを削減するためにエンコードで使用できます。たとえば、プロンプト「次のテキストをフランス語に翻訳します:こんにちは、お元気ですか?」 base64でエンコードされているのは、「vhjhbnnsyxrlihrozsbmb2xsb3dpbmcgdgv4dcb0bybgcmvuy2g6icdizwxsbywgag93igfyzsb5b3unpw ==」です。お気に入りのLLMにテストするように促すことができます!
驚くべきことに、いくつかのエンコーディング手法は、LLMを操作して安全メカニズムをバイパスすることを伴うモデルのジェイルブレイクにも使用されます。エンコーディング方法の詳細については、調査論文のセクション3.2および付録A.1.2を参照してください。フィルタリング
前の2つの方法でプロンプト全体を圧縮しようとしますが、フィルタリング手法は不必要な部分を排除してLLMSの効率を高めることに焦点を当てています。
フィルタリング手法では、プロンプトのさまざまな部分の情報コンテンツを評価し、プロンプト内のすべての情報がLLMSにとって有益ではないため、冗長情報を削除します。これは、文、フレーズ、トークンなど、さまざまなレベルで実行できます。目標は、プロンプトの最も関連性の高い部分のみを保持することです。 Li et alによる紙の選択的文脈で。 (2023)、研究者は自己情報メトリックを使用して冗長な情報をフィルタリングします。 Paper Llmlingua:大規模な言語モデルの加速推論のプロンプトを圧縮すると、Microsoftの研究者はプロンプトを主要なコンポーネントに改良し、各部品の圧縮比を動的に調整します。詳細については、調査論文のセクション3.3および付録A.1.3を参照してください。
pythonにプロンプト圧縮を実装する方法 このセクションでは、人気があり、最先端と見なされる選択的コンテキストアルゴリズムを実装およびテストします。アルゴリズムのみをテストしたい場合は、何もインストールする必要はありません。既にHuggingfaceプラットフォームでホストされています。
llmlinguaファミリーのシンプル(KIS)、SCLR、およびアルゴリズムなど、他の主流の圧縮技術もありますが、この短い記事ではそれらをカバーすることはできません。
アプリリンク
Selective Context Webアプリでは、圧縮するプロンプトの言語(英語または単純化された中国語)を選択できます。圧縮比を設定して、文、トークン、またはフェーズを除外するかどうかを選択することもできます。 OpenAI API
を使用して、選択的コンテキストの実装とテスト
次に、Pythonの実装に取り組みましょう。また、GPT-3.5-Turbo-0125モデルでいくつかの圧縮プロンプトをテストします。
最初に、必要なすべてのモジュールをインストールする必要があります。 PIPを使用して、選択的コンテキストライブラリをインストールする必要があります:
また、SPACYからEN_CORE_WEB_SMモデルをダウンロードする必要があります。これは、次のコマンドで実行できます。
pip install selective-context
ここで、selectiveContextオブジェクトを初期化する必要があります。モデルの場合はキュリーまたはGPT-2を選択し、言語ではENまたはZHを選択できます。この例にはGPT-2を使用します
python -m spacy download en_core_web_sm
次に、いくつかの例を挙げましょう。 GPT-3.5-Turbo-0125モデルに、この記事の「いつプロンプト圧縮を使用する必要があるか」を要約します。次に、3つの削減レベルすべてを使用して、セクションを0.5圧縮率で圧縮します:文、フレーズ、トークン。モデルに、圧縮バージョンを再度要約し、各プロンプトのトークンカウントとモデルの出力を比較するように依頼します。
sc = SelectiveContext(model_type = ‘gpt-2’, lang = ‘en’)
以下に、使用するAPI呼び出しを見ることができます。形式の文字列でテキスト変数を変更するだけです。最初に、モデルに、元の、圧縮されていない段落を要約するように依頼します。
complete.usageをチェックすることにより、元のプロンプトが長さ304トークンであり、ここに出力があります。
ご覧のとおり、モデルは圧縮されていない段落を非常によく要約しました。
トークンレベルの削減context, reduced_content = sc(text, reduce_ratio = 0.5, reduce_level = ‘sent’)
トークン削減バージョンを試してみましょう。圧縮された段落は次のようになります:
from openai import OpenAI client = OpenAI(api_key = key) completion = client.chat.completions.create( model = “gpt-3.5-turbo-0125”, messages = [ {“role”: “user”, “content”: f”Summarize the following paragraph:\n {text}”} ] )
プロンプトは162トークンの長さです。モデルの概要は次のとおりです。
段落は正しく要約されていません。攻撃的な圧縮の恩恵を受けていないChatGptについてのニュアンスは失われました。
文レベルの削減次に、文レベルの削減を試してみましょう。削減されたプロンプトは129トークンの長さです:
[Prompt compression is useful in scenarios such as advanced prompt engineering techniques and retrieval-augmented generation pipelines to reduce token counts and costs while preserving effectiveness and context. However, it is not a universal solution and should be used judiciously, as excessive compression can lead to a loss of important details. It is important to strike a balance between reducing size and maintaining the prompt's meaning.]
ここにモデルの概要があります:
[When Should Prompt CompProm compression particularly following Advanced prompt engineering Techniques like chainofthought prompting while highly lengthy prompts reach thousands tokensThis increases processing costs and may exceed token limits of certain modelsProm compression mit these token count while prompt effectivenessRetri-au generationRAG pipelines R combine information retrieval text specialized chat contextual understandingThese pipelines frequently involve providing extensive conversation histories retrieved as prompts leading high token counts increased expensesProm compression essential such essential context while costsApplic prompt compression It prompt universal judFor instance assistant models like ChatGPT designed convers contexts benefit aggressive prompt compressionThese models often do charge per token integrated chat summar memory features conversation history effectively compression redundantIt even working models charge per token excessive compression could nuance importantSt reducing size maintaining prompt’s meaning is]
この要約には間違いは含まれていませんが、ぼろきれの議論がありません。
フレーズレベルの削減
最後に、フレーズレベルの削減をテストしましょう。プロンプトは183トークンの長さです:
[Prompt compression is recommended following advanced prompt engineering techniques like chain of thought prompting, especially when dealing with lengthy prompts that reach thousands of tokens. This helps reduce processing costs and ensure that the prompt remains effective for models like RAG pipelines, which involve extensive conversation histories. Prompt compression is essential for maintaining context while keeping costs low, particularly for models like ChatGPT that charge per token and benefit from aggressive compression. However, excessive compression could lead to loss of important nuances, so it is important to strike a balance between reducing size and maintaining the prompt's meaning.]
モデルの要約:
[When Should We Use Prompt Compression? This increases processing times and costs and may exceed token limits of certain models. These pipelines frequently involve providing extensive conversation histories or retrieved documents as prompts, leading to high token counts and increased expenses. Prompt compression is essential in such cases to maintain essential context while minimizing costs. For instance, assistant models like ChatGPT, designed for conversational contexts, may not benefit from aggressive prompt compression. These models often do not charge per token and have integrated chat summarization and memory features to manage conversation history effectively, making compression redundant. ]
要約はほとんど正しいもので一貫性があります。ただし、攻撃的なプロンプト圧縮の恩恵を受けるChatGPTについての部分を誤って理解しています。
プロンプト圧縮の評価
さまざまな圧縮レベルでのトークンカウントとモデルの要約の内容を比較することにより、モデルの出力に対するプロンプト圧縮の影響を確認できます。
[Prompt compression is necessary when processing times, costs, and token limits may be exceeded in pipelines involving extensive conversation histories or retrieved documents as prompts. However, for certain models like ChatGPT, designed for conversational contexts, aggressive prompt compression may not be beneficial as they already have features to manage conversation history effectively without the need for compression.]
[When Should Prompt Compression Prompt compression particularly beneficial Advanced prompt engineering techniques Techniques like chainofthought prompting while highly lengthy prompts reach thousands tokens This increases processing costs and may exceed token limits of certain models Prompt compression these issues token count while the prompt's effectiveness Retrieval-augmented generation (RAG) pipelines RAG pipelines combine information retrieval text generation specialized chatbots contextual understanding These pipelines frequently involve providing extensive conversation histories or retrieved as prompts leading high token counts increased expenses Prompt compression essential such cases to maintain essential context while costs Applicability prompt compression It's For instance assistant models like ChatGPT designed conversational contexts may benefit aggressive prompt compression These models often do charge per token have integrated chat summarization memory features manage conversation history effectively making compression redundant It even working models charge per token excessive compression could nuance important details reducing size maintaining the prompt’s meaning is ]
圧縮レベル
| token-level
162 |
chatgptについての重要なニュアンスを失い、積極的な圧縮の恩恵を受けず、間違いを犯しました。 |
|
cente-level
|
129
|
は間違いを犯しませんでしたが、ぼろきれパイプラインについてのいくつかのコンテキストを逃しました。
|
|
| 183
| トークンレベルと同様に、ChatGptは積極的な圧縮の恩恵を受けると誤って述べました。
| 全体として、迅速な圧縮は、主なアイデアを維持しながら、トークンカウントを大幅に減らすことができます。ただし、重要なニュアンスやコンテキストを失わないようにバランスをとることが不可欠です。
以上がプロンプト圧縮:Pythonの例を備えたガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











メタのラマ3.2:マルチモーダルとモバイルAIの前進 メタは最近、ラマ3.2を発表しました。これは、モバイルデバイス向けに最適化された強力なビジョン機能と軽量テキストモデルを特徴とするAIの大幅な進歩です。 成功に基づいてo

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

Shopify CEOのTobiLütkeの最近のメモは、AIの能力がすべての従業員にとって基本的な期待であると大胆に宣言し、会社内の重大な文化的変化を示しています。 これはつかの間の傾向ではありません。これは、pに統合された新しい運用パラダイムです

今週のAIの風景:進歩、倫理的考慮、規制の議論の旋風。 Openai、Google、Meta、Microsoftのような主要なプレーヤーは、画期的な新しいモデルからLEの重要な変化まで、アップデートの急流を解き放ちました

導入 Openaiは、待望の「Strawberry」アーキテクチャに基づいて新しいモデルをリリースしました。 O1として知られるこの革新的なモデルは、推論能力を強化し、問題を通じて考えられるようになりました

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

SQLの変更テーブルステートメント:データベースに列を動的に追加する データ管理では、SQLの適応性が重要です。 その場でデータベース構造を調整する必要がありますか? Alter Tableステートメントはあなたの解決策です。このガイドの詳細は、コルを追加します

スタンフォード大学ヒト指向の人工知能研究所によってリリースされた2025年の人工知能インデックスレポートは、進行中の人工知能革命の良い概要を提供します。 4つの単純な概念で解釈しましょう:認知(何が起こっているのかを理解する)、感謝(利益を見る)、受け入れ(顔の課題)、責任(責任を見つける)。 認知:人工知能はどこにでもあり、急速に発展しています 私たちは、人工知能がどれほど速く発展し、広がっているかを強く認識する必要があります。人工知能システムは絶えず改善されており、数学と複雑な思考テストで優れた結果を達成しており、わずか1年前にこれらのテストで惨めに失敗しました。 2023年以来、複雑なコーディングの問題や大学院レベルの科学的問題を解決することを想像してみてください
