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