DiscourseAI 向け自己ホスティング OpenSource LLM

Discourse AI プラグインには、要約、AI ヘルパー、AI 検索、AI ボットなど、LLM の有効化を必要とする多くの機能があります。サードパーティ API、たとえば OpenAI の API キーの設定Anthropic の API キーの設定 を使用することもできますが、Discourse AI は最初からそれらにロックインされないように構築されています。

HuggingFace TGI での実行

HuggingFace は、すぐに実行できる素晴らしいコンテナイメージを提供しています。

例:

mkdir -p /opt/tgi-cache
docker run --rm --gpus all --shm-size 1g -p 8080:80 \
  -v /opt/tgi-cache:/data \
  ghcr.io/huggingface/text-generation-inference:latest \
  --model-id mistralai/Mistral-7B-Instruct-v0.2

これにより、Mistral 7B Instruct のローカルインスタンスがポート 8080 の localhost で実行され、次のようにテストできます。

curl http://localhost:8080/ \
    -X POST \
    -H 'Content-Type: application/json' \
    -d '{"inputs":"<s>[INST] What is your favourite condiment? [/INST] Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!</s> [INST] Do you have mayonnaise recipes? [/INST]","parameters":{"max_new_tokens":500, "temperature":0.5,"top_p": 0.9}}'

vLLM での実行

Discourse AI がサポートする LLM の自己ホストのもう 1 つのオプションは、Apache License でライセンスされている非常に人気のあるプロジェクトである vLLM です。

モデルの開始方法は次のとおりです。

mkdir -p /opt/vllm-cache
docker run --gpus all \
  -v /opt/vllm-cache:/root/.cache/huggingface \
  -e "MODEL=mistralai/Mistral-7B-Instruct-v0.2" \
  -p 8080:8000 --ipc=host vllm/vllm-openai:latest

次のようにテストできます。

curl -X POST http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "mistralai/Mistral-7B-Instruct-v0.2",
"prompt": "<s> [INST] What was the latest released hero for Dota 2? [/INST] The latest released hero for Dota 2 was", "max_tokens": 200}'

Discourse インスタンスで利用可能にする

GPU 要件のため、ほとんどの場合、専用サーバーで実行することになります。その場合、リバース プロキシを実行し、TLS 終端を行い、エンドポイントを保護して、Discourse インスタンスのみが接続できるようにすることをお勧めします。

DiscourseAI の設定

Discourse AI には、オープンソース モデルの推論サーバーを設定するためのサイト設定が含まれています。選択した推論ソフトウェアに応じて、ai_hugging_face_api_url または ai_vllm_endpoint を使用してサーバーを指定する必要があります。

その後、モデル選択設定で、各モジュールを、実行しているモデルを使用するように変更します。たとえば、

  • ai_helper_model
  • ai_embeddings_semantic_search_hyde_model
  • summarization strategy
  • ai_bot_enabled_chat_bots
「いいね!」 16