LLMLingua: LlamaIndex を統合してプロンプトを圧縮し、大規模な言語モデルに効率的な推論を提供します。

LLMLingua: LlamaIndex を統合してプロンプトを圧縮し、大規模な言語モデルに効率的な推論を提供します。

大規模言語モデル (LLM) の出現により、複数の分野でイノベーションが促進されました。しかし、思考連鎖(CoT)手がかりや文脈内学習(ICL)などの戦略によってもたらされる手がかりの複雑さの増大は、計算上の課題をもたらします。これらの長いプロンプトを推論するには多くのリソースが必要なので、効率的なソリューションが必要です。この論文では、効率的な推論を実行するために、LLMLingua と独自の LlamaIndex を統合する方法を紹介します。

LLMLingua は、EMNLP 2023 で Microsoft の研究者が発表した論文です。LongLLMLingua は、高速圧縮によって長いコンテキスト シナリオで重要な情報を認識する LLM の能力を強化する方法です。

LLLinguaとllamindexは連携して動作します

LLMLingua は、LLM アプリケーションの長いプロンプトに対する画期的なソリューションとして登場しました。この方法は、意味の整合性を確保しながら長いプロンプトを圧縮し、推論速度を向上させることに重点を置いています。さまざまな圧縮戦略を組み合わせて、ヒントの長さと計算効率のバランスをとる微妙なアプローチを提供します。

LLM Lingua と LlamaIndex の統合の利点は次のとおりです。

LLMLingua と LlamaIndex の統合は、LLM の迅速な最適化に向けた重要な一歩となります。 LlamaIndex は、さまざまな LLM アプリケーションに合わせて事前に最適化されたヒントの専門リポジトリであり、この統合により、LLMLingua はドメイン固有の微調整された豊富なヒントにアクセスできるため、ヒント圧縮機能が強化されます。

LLMLingua のヒント圧縮テクノロジーと LlamaIndex の最適化されたヒント ライブラリの相乗効果により、LLM アプリケーションの効率が向上します。 LLMLingua は、LLAMA の特殊なヒントを活用して圧縮戦略を微調整し、ヒントの長さを短縮しながらドメイン固有のコンテキストが保持されるようにすることができます。このコラボレーションにより、主要なドメインのニュアンスを維持しながら推論が大幅に高速化されます。

LLMLingua と LlamaIndex の統合により、大規模な LLM アプリケーションへの影響が拡大します。 LLMLingua は、LLAMA のエキスパート キューを活用して圧縮技術を最適化し、長いキューを処理する際の計算負荷を軽減します。この統合により推論が加速されるだけでなく、重要なドメイン固有の情報が確実に保持されます。

LLLingua と LlamaIndex ワークフロー

LlamaIndex を使用して LLMLingua を実装するには、効率的なヒント圧縮と推論速度の向上のために特殊なヒント ライブラリを活用する構造化されたプロセスが必要です。

1. フレームワークの統合

まず、LLMLingua と LlamaIndex 間の接続を確立する必要があります。これには、アクセス権限、API 構成、タイムリーな取得を可能にする接続の確立が含まれます。

2. 検索プロンプトを事前に最適化する

LlamaIndex は、さまざまな LLM アプリケーションに合わせて調整された事前最適化のヒントを含む特殊なリポジトリとして機能します。 LLMLingua はこのリポジトリにアクセスし、ドメイン固有のヒントを取得し、それをヒントの圧縮に利用します。

3. 圧縮技術のヒント

LLMLingua は、キュー圧縮方式を使用して、取得したキューを簡素化します。これらの技術は、意味の一貫性を確保しながら長いプロンプトを圧縮することに重点を置いており、それによってコンテキストや関連性を損なうことなく推論速度が向上します。

4. 圧縮戦略を微調整する

LLMLingua は、LlamaIndex から取得した特殊なヒントに基づいて圧縮戦略を微調整します。この改良プロセスにより、プロンプトの長さを効果的に短縮しながら、ドメイン固有のニュアンスが保持されます。

5. 実行と推論

LLMLingua のカスタマイズされた戦略と LlamaIndex の事前最適化されたヒントを使用して圧縮されると、圧縮されたヒントは LLM 推論タスクに使用できます。このフェーズでは、LLM フレームワーク内で圧縮ヒントを実行して、効率的なコンテキスト認識推論を可能にします。

6. 反復的な改善と強化

コード実装は反復を通じて継続的に改良されます。このプロセスには、圧縮アルゴリズムの改善、LlamaIndex からのヒントの取得の最適化、圧縮されたヒントと LLM 推論の一貫性とパフォーマンスの向上を確保するための統合の微調整が含まれていました。

7. テストと検証

必要に応じてテストと検証も実行できるため、LLM Lingua と Llama Index の統合の効率と有効性を評価することができます。パフォーマンス メトリックは、圧縮ヒントが意味的整合性を維持し、精度を損なうことなく推論速度を向上させることを確認するために評価されます。

コードの実装

次に、LLMLinguaとLlamaIndexのコード実装を詳しく調べ始めます。

インストーラー パッケージ:

 # Install dependency. !pip install llmlingua llama-index openai tiktoken -q # Using the OAI import openai openai.api_key = "<insert_openai_key>"

データを取得:

 !wget "https://www.dropbox.com/s/f6bmb19xdg0xedm/paul_graham_essay.txt?dl=1" -O paul_graham_essay.txt

モデルをロードします:

 from llama_index import ( VectorStoreIndex, SimpleDirectoryReader, load_index_from_storage, StorageContext, ) # load documents documents = SimpleDirectoryReader( input_files=["paul_graham_essay.txt"] ).load_data()

ベクトルストレージ:

 index = VectorStoreIndex.from_documents(documents) retriever = index.as_retriever(similarity_top_k=10) question = "Where did the author go for art school?" # Ground-truth Answer answer = "RISD" contexts = retriever.retrieve(question) contexts = retriever.retrieve(question) context_list = [n.get_content() for n in contexts] len(context_list) #Output #10

元のプロンプトと戻り

# The response from original prompt from llama_index.llms import OpenAI llm = OpenAI(model="gpt-3.5-turbo-16k") prompt = "\n\n".join(context_list + [question]) response = llm.complete(prompt) print(str(response)) #Output The author went to the Rhode Island School of Design (RISD) for art school.

LLMinguaの設定

from llama_index.query_engine import RetrieverQueryEngine from llama_index.response_synthesizers import CompactAndRefine from llama_index.indices.postprocessor import LongLLMLinguaPostprocessor node_postprocessor = LongLLMLinguaPostprocessor( instruction_str="Given the context, please answer the final question", target_token=300, rank_method="longllmlingua", additional_compress_kwargs={ "condition_compare": True, "condition_in_question": "after", "context_budget": "+100", "reorder_context": "sort", # enable document reorder, "dynamic_context_compression_ratio": 0.3, }, )

LLMLinguaによる圧縮

retrieved_nodes = retriever.retrieve(question) synthesizer = CompactAndRefine() from llama_index.indices.query.schema import QueryBundle # postprocess (compress), synthesize new_retrieved_nodes = node_postprocessor.postprocess_nodes( retrieved_nodes, query_bundle=QueryBundle(query_str=question) ) original_contexts = "\n\n".join([n.get_content() for n in retrieved_nodes]) compressed_contexts = "\n\n".join([n.get_content() for n in new_retrieved_nodes]) original_tokens = node_postprocessor._llm_lingua.get_token_length(original_contexts) compressed_tokens = node_postprocessor._llm_lingua.get_token_length(compressed_contexts)

比較のために 2 つの結果を印刷します。

 print(compressed_contexts) print() print("Original Tokens:", original_tokens) print("Compressed Tokens:", compressed_tokens) print("Comressed Ratio:", f"{original_tokens/(compressed_tokens + 1e-5):.2f}x")

印刷された結果は次のとおりです。

 next Rtm's advice hadn' included anything that. I wanted to do something completely different, so I decided I'd paint. I wanted to how good I could get if I focused on it. the day after stopped on YC, I painting. I was rusty and it took a while to get back into shape, but it was at least completely engaging.1] I wanted to back RISD, was now broke and RISD was very expensive so decided job for a year and return RISD the fall. I got one at Interleaf, which made software for creating documents. You like Microsoft Word? Exactly That was I low end software tends to high. Interleaf still had a few years to live yet. [] the Accademia wasn't, and my money was running out, end year back to the lot the color class I tookD, but otherwise I was basically myself to do that for in993 I dropped I aroundidence bit then my friend Par did me a big A rent-partment building New York. Did I want it Itt more my place, and York be where the artists. wanted [For when you that ofs you big painting of this type hanging in the apartment of a hedge fund manager, you know he paid millions of dollars for it. That's not always why artists have a signature style, but it's usually why buyers pay a lot for such work. [6] Original Tokens: 10719 Compressed Tokens: 308 Comressed Ratio: 34.80x

出力を確認します。

 response = synthesizer.synthesize(question, new_retrieved_nodes) print(str(response)) #Output #The author went to RISD for art school.

要約する

LLMLingua と LlamaIndex の統合は、大規模言語モデル (LLM) アプリケーションを最適化するための協力関係の変革の可能性を示しています。このコラボレーションにより、オンザフライの圧縮方法と推論の効率が革新され、コンテキストを認識した合理化された LLM アプリケーションへの道が開かれます。

この統合により、推論が高速化されるだけでなく、圧縮されたヒントでセマンティック整合性が保持されることも保証されます。 LlamaIndex のドメイン固有のヒントに基づいて圧縮戦略を微調整すると、ヒントの長さの短縮と重要なコンテキストの保存のバランスが取れ、LLM 推論の精度が向上します。

本質的に、LLM Lingua と LlamaIndex の統合は、従来のヒント圧縮アプローチを超え、最適化され、コンテキストが正確で、さまざまなドメインに効率的に調整された将来の大規模言語モデル アプリケーションの基盤を築きます。この共同統合は、大規模言語モデル アプリケーションの分野における効率性と洗練性の新時代の到来を告げるものです。

<<:  PubMedBERT: 生物医学的自然言語処理のためのドメイン固有の事前トレーニング済みモデル

>>:  AI を活用した会話型顧客体験の可能性を引き出す方法

ブログ    
ブログ    
ブログ    

推薦する

AIが産業変革を促進する仕組み

このように技術的に進歩した世界では、検査などの重要な産業プロセスは依然として非効率でコストがかかり、...

...

なぜ中国はアメリカや日本を抜いて人工知能で世界をリードしているのでしょうか?

[[279809]]北京は世界で最も人工知能企業が集中している都市であり、中国の人工知能分野は世界...

フードデリバリー広告向け大規模ディープラーニングモデルのエンジニアリング実践

著者: Yajie Yingliang、Chen Long 他導入美団のフードデリバリー事業が成長を...

...

Salesforce が AI 人材を見つけ、スキルを向上させる方法

[[415289]] AI、機械学習、データサイエンスに関連するスキルの需要は依然として高く、企業は...

シリコンバレーの天才たちの没落: 才能から始まり、利益に転落し、「賢さ」のせいで失敗した

若い才能、輝かしい経歴、上司からの評価、順調なキャリア、明るい未来...これらは、2016 年初頭に...

PaddlePaddleのクリック率に基づくディープラーニング手法の試み

序文チーム内でクリック率に関する記事をいくつか共有した際に、広告のクリック率の推定値を計算する一般的...

RPAにより業務効率が大幅に向上、40%の企業が効果を確認

効率性、俊敏性、生産性に対する需要が高まるにつれ、新しいテクノロジーとアプリケーションが、企業と企業...

データセンター: ジェネレーティブ AI 経済の推進

しかし、こうした大騒ぎのなか、生成 AI の可能性を最大限に引き出すために必要なインフラストラクチャ...

2021年の世界人工知能産業の市場規模と投資・資金調達状況を分析人工知能は今後スパイラル状に発展する

人工知能業界の主要上場企業:現在、国内の人工知能業界の上場企業は主に百度(BAIDU)、テンセント(...

...

AIロボットが2025年までにクラウドデータセンターの半分を占める可能性

[[437396]]コネチカット州スタンフォード — 新しいレポートによると、人工知能 (AI) を...

国内初の大規模模造品対策訴訟:アリババクラウドが偽造同義千聞アプリを提訴、一審で勝訴

1月16日、中国における大型モデルの偽造品撲滅活動で初の成功事例が発表された。アリババクラウドとアリ...