Autohosting di un OpenSource LLM per DiscourseAI

Il plugin Discourse AI dispone di molte funzionalità che richiedono l’abilitazione di un LLM, come, ad esempio, Riassunto, Aiuto AI, Ricerca AI, Bot AI. Sebbene sia possibile utilizzare un’API di terze parti, come Configura chiavi API per OpenAI o Configura chiavi API per Anthropic, abbiamo creato Discourse AI fin dal primo giorno per non essere vincolati a questi.

Esecuzione con HuggingFace TGI

HuggingFace fornisce un’immagine container eccezionale che ti permette di essere operativo rapidamente.

Ad esempio:

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

Dovrebbe metterti in funzione con un’istanza locale di Mistral 7B Instruct su localhost alla porta 8080, che può essere testata con

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}}'

Esecuzione con vLLM

Un’altra opzione per auto-ospitare LLM supportati da Discourse AI è vLLM, che è un progetto molto popolare, concesso in licenza secondo la licenza Apache.

Ecco come iniziare con un modello:

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

Che puoi testare con

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}'

Rendilo disponibile per la tua istanza Discourse

Nella maggior parte dei casi, eseguirai questo su un server dedicato a causa del requisito della GPU. Quando lo fai, consiglio di eseguire un proxy inverso, eseguire la terminazione TLS e proteggere l’endpoint in modo che possa essere connesso solo dalla tua istanza Discourse.

Configurazione di DiscourseAI

Discourse AI fornisce impostazioni del sito per configurare il server di inferenza per i modelli open source. Dovresti puntarlo al tuo server utilizzando ai_hugging_face_api_url o ai_vllm_endpoint in base al software di inferenza che hai scelto.

Successivamente, modifica ciascun modulo per utilizzare il modello che stai eseguendo, nelle impostazioni di selezione del modello, come

  • ai_helper_model
  • ai_embeddings_semantic_search_hyde_model
  • summarization strategy
  • ai_bot_enabled_chat_bots
16 Mi Piace