技術共有

FastAPI、Llama.cpp、Langchain を使用したローカル LLM のストリーミング

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

質問の意味:

FastAPI、Llama.cpp、Langchain を使用したローカルの大規模言語モデルのストリーミング

問題の背景:

Llama.cpp と Langchain を使用して FastAPI をセットアップしました。次に、FastAPI 応答でストリーミングを有効にします。ターミナルで Llama.cpp を使用するとストリーミングが機能しますが、FastAPI 応答では実装できませんでした。

Llama.cpp と Langchain を使用して FastAPI をセットアップしました。次に、FastAPI 応答でストリーミングを有効にしたいと思います。私の端末では、ストリーミングは Llama.cpp では正常に機能しますが、FastAPI 応答では機能しません。

ほとんどのチュートリアルは OpenAI モデルでストリーミングを有効にすることに焦点を当てていますが、私は llama.cpp でローカル LLM (量子化 Mistral) を使用しています。Callbackhandler を変更する必要があると思いますが、どのチュートリアルも機能しませんでした。これが私のコードです:

ほとんどのチュートリアルは、OpenAI モデルを使用してストリーミングを有効にする方法に焦点を当てていますが、私は llama.cpp でネイティブの大規模言語モデル (量子化された Mistral) を使用しています。 Callbackhandler を変更する必要があると思いますが、機能するチュートリアルが見つかりませんでした。以下は私のコードです:

  1. from fastapi import FastAPI, Request, Response
  2. from langchain_community.llms import LlamaCpp
  3. from langchain.callbacks.manager import CallbackManager
  4. from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
  5. import copy
  6. from langchain.chains import LLMChain
  7. from langchain.prompts import PromptTemplate
  8. model_path = "../modelle/mixtral-8x7b-instruct-v0.1.Q5_K_M.gguf"
  9. prompt= """