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 を活用した会話型顧客体験の可能性を引き出す方法

ブログ    
ブログ    

推薦する

高度な分析とコンピューティング技術の出現が世界のインテリジェントアプリケーション市場を牽引

世界的なスマート アプリケーション市場の成長は、高度なコンピューティングおよび分析テクノロジによって...

個人情報保護を強力に強化

動物園に行くときは指紋で「チェックイン」する必要があり、家に帰ってコミュニティに入るときも顔をスキャ...

アプリランキング操作の水軍が復活:Appleのアルゴリズムを破るために5倍のコストを費やす

[「今回の調整は、主にユーザーのアクティベーション率、アプリの使用頻度、評価など総合的に考慮して行う...

データ中心主義と民主化を実践する方法

[[418617]]人工知能と人間の知能は互いに対立するものではなく、本質的に共生関係にあります。企...

...

世界を驚かせたNASAの火星無人機はどのように設計されたのか?

すべてがうまくいけば、インジェニュイティは火星上空を飛行する最初の航空機となる。 「インジェニュイテ...

Java プログラミング スキル - データ構造とアルゴリズム「多方向検索ツリー」

[[391530]]二分木問題の分析バイナリツリーは動作効率が高いですが、問題点もあります。次のバ...

AI開発と倫理におけるリアリズムの役割

人工知能(AI)は、最初のコンピュータが発明されて以来、長い道のりを歩んできました。今日、人工知能は...

AIとIoTを活用して食品廃棄物を管理する

食品廃棄物は、今日、何百万人もの人々の栄養失調の主な原因の一つです。したがって、政府や農業組織は、I...

金融分野における機械学習の4つの利点と5つの応用

[[198507]]誰の生活も金融から独立して存在することはできません。テクノロジーの発展により人々...

コンピュータアーキテクチャにおける機械学習

[[428279]]機械学習 (ML) の最近の進歩に大きく貢献したものの 1 つは、Google ...

機械学習に基づく自動化されたスピアフィッシング戦略

2016年のBlack Hat USAカンファレンスでは、カンファレンスに参加したセキュリティ専門家...

...

初のユニバーサル音声翻訳システム! Meta が SeamlessM4T をオープンソース化: 470,000 時間のトレーニング データを使用して 100 言語のマルチモーダル翻訳をサポート

テキストベースの翻訳システムは大きな進歩を遂げています。初期の単語マッチングや文法規則から、ニューラ...