ドキュメントQ&AのCPU推論でllama2およびその他のオープンソースLLMを実行しています
Llama 2、C Transformers、GGML、およびLangchainを使用して、CPUで量子化されたオープンソースLLMアプリケーションを実行するためのガイドを明確に説明しました
Datascienceに向けてステップバイステップガイド:https://towardsdatascience.com/running-llama-2-on-cpu-inference-for-document-qa-3d636037a3d8
コンテクスト
- OpenaiのGPT4などのサードパーティの商業的大手言語モデル(LLM)プロバイダーは、単純なAPI呼び出しを介してLLMの使用を民主化しています。
- ただし、データプライバシーやレジデンシールールなどの理由で、チームが自己管理またはプライベートモデルの展開を必要とする場合があります。
- オープンソースLLMSの急増により、私たちにとって膨大な範囲のオプションが開かれているため、これらのサードパーティプロバイダーへの依存が減少しました。
- オープンソースLLMをローカルにオンプレミスまたはクラウドでホストすると、専用の計算容量が重要な問題になります。 GPUインスタンスは明らかな選択のように思えるかもしれませんが、コストは予算を超えて簡単に急増する可能性があります。
- このプロジェクトでは、ドキュメントの質疑応答(Q&A)のローカルCPU推論でオープンソースLLMの量子化バージョンを実行する方法を発見します。

クイックスタート
- https://huggingface.co/thebloke/llama-2-7b-chat-ggmlからGGMLバイナリファイル
models/ダウンロードしていることを確認してください - ユーザークエリの解析をアプリケーションに開始するには、プロジェクトディレクトリから端末を起動し、次のコマンドを実行します。PotoryRunPython
poetry run python main.py "<user query>" - たとえば、
poetry run python main.py "What is the minimum guarantee payable by Adidas?" - 注:詩を使用していない場合は、準備された
poetry runを省略します

ツール
- Langchain :言語モデルを搭載したアプリケーションを開発するためのフレームワーク
- C変圧器:GGMLライブラリを使用してC/C ++で実装されたトランスモデル用のPythonバインディング
- FAISS :高密度ベクトルの効率的な類似性検索とクラスタリングのためのオープンソースライブラリ。
- 文化変換者(All-Minilm-L6-V2) :クラスタリングやセマンティック検索などのタスク用の384次元密度の高いベクタースペースにテキストを埋め込むためのオープンソースの事前訓練された変圧器モデル。
- Llama-2-7b-chat :チャットダイアログ向けに設計されたオープンソースの微調整されたLlama 2モデル。公的に利用可能な命令データセットと100万件以上の人間の注釈を活用します。
- 詩:依存関係管理とPythonパッケージのためのツール
ファイルとコンテンツ
/assets :プロジェクトに関連する画像/config :LLMアプリケーション用の構成ファイル/data :このプロジェクトに使用されるデータセット(つまり、マンチェスターユナイテッドFC 2022年次報告書-177ページPDFドキュメント)-
/models :GGML量子化LLMモデルのバイナリファイル(つまり、llama-2-7b-chat) -
/src :LLMアプリケーションの主要コンポーネントのPythonコード、すなわちllm.py 、 utils.py 、およびprompts.py -
/vectorstore :ドキュメント用のFAISS VECTORストア db_build.py :データセットを摂取してfaiss vectorストアを生成するためのpythonスクリプトmain.py :アプリケーションを起動し、コマンドラインを介してユーザークエリを渡すメインPythonスクリプトpyproject.toml :TOMLファイル使用する依存関係のバージョンを指定する(詩)-
requirements.txt :Python依存関係(およびバージョン)のリスト
参照
- https://github.com/marella/ctransformers
- https://huggingface.co/thebloke
- https://huggingface.co/thebloke/llama-2-7b-chat-ggml
- https://python.langchain.com/en/latest/integrations/ctransformers.html
- https://python.langchain.com/en/latest/modules/models/llms/integrations/ctransformers.html
- https://python.langchain.com/docs/ecosystem/integrations/ctransformers
- https://ggml.ai
- https://github.com/rustformers/llm/blob/main/crates/ggml/readme.md
- https://www.mdpi.com/2189676