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

このトピックを検索している方へ:
#Llava-Api-keys

私もvLLMを使用しています。また、非常にパフォーマンスの高い7Bパラメータモデルであるopenchat v3.5 0106モデルもお勧めします。

実際、私はそれを4ビット量子化で実行しており、より高速に動作するようにしています。

このタスクをインターンに割り当てます。サインアップすべき特定のサービスについて、どなたか推奨事項はありますか?これはテスト用です。インターンは現在、OpenAIでテストを設定しており、問題なく動作しています。HuggingFace TGIを試したいと考えていますが、GPU搭載の専用サーバーを提供する必要があるようです。テストに必要な最小スペックはどれくらいですか?

インターンに渡せるリンクはありますか?

このプロジェクトにはまだ深く関わっていませんが、インターンがリソースを必要とするだろうと予測しており、リサーチのためにサービスに関する合理的な推奨事項をいくつか提供しようとしています。

こんにちは。オンプレミスのGPUボックスで自己署名証明書を使用してvllmコンテナを公開しているのですが、DiscourseコンテナにルートCAを追加して、このオンプレミスサービスにHTTPS経由で安全にアクセスできるようにする良い方法が見つかりませんでした。

例:

./launcher enter app
curl -L https://vllm.infra.example.com/v1/models
curl: (60) SSL証明書の問題: ローカル発行者の証明書を取得できません
詳細はこちら: https://curl.se/docs/sslcerts.html

curlはサーバーの正当性を検証できなかったため、安全な接続を確立できませんでした。この状況と修正方法の詳細については、上記のWebページをご覧ください。

コンテナイメージの更新後も有効な、自己署名ルートCA証明書をDiscourseコンテナに追加する良い方法はありますか?

私の知る限り、app.yml に追加する方法は

run:
  - exec: wget ... && update-ca-certificates

は、アプリのビルド/再ビルド時にのみうまく機能すると思われます。

何かヒントがあれば歓迎します。

14件の投稿が新しいトピックに分割されました:ローカルのOllamaでDiscourse AIを動作させる