Autoalojamiento de un LLM de código abierto para DiscourseAI

El plugin Discourse AI tiene muchas funciones que requieren un LLM habilitado, como, por ejemplo, Resumen, Ayudante de IA, Búsqueda de IA, Bot de IA. Si bien puedes usar una API de terceros, como Configurar claves API para OpenAI o Configurar claves API para Anthropic, construimos Discourse AI desde el primer día para no estar atados a ellos.

Ejecutando con HuggingFace TGI

HuggingFace proporciona una imagen de contenedor impresionante que puede ponerte en marcha rápidamente.

Por ejemplo:

mkdír -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

Debería ponerte en marcha con una instancia local de Mistral 7B Instruct en localhost en el puerto 8080, que se puede probar 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}}'

Ejecutando con vLLM

Otra opción para autoalojar LLMs que Discourse AI soporta es vLLM, que es un proyecto muy popular, licenciado bajo la Licencia Apache.

Aquí te explicamos cómo empezar con un modelo:

mkdír -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

Que puedes probar 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}'

Haciéndolo disponible para tu instancia de Discourse

La mayoría de las veces ejecutarás esto en un servidor dedicado debido al requisito de GPU. Al hacerlo, recomiendo ejecutar un proxy inverso, realizar la terminación TLS y asegurar el endpoint para que solo pueda ser conectado por tu instancia de Discourse.

Configurando DiscourseAI

Discourse AI incluye configuraciones del sitio para configurar el servidor de inferencia para modelos de código abierto. Deberías apuntarlo a tu servidor usando ai_hugging_face_api_url o ai_vllm_endpoint según el software de inferencia que hayas elegido.

Después de eso, cambia cada módulo para usar el modelo que estás ejecutando, en la configuración de selección de modelos, como

  • ai_helper_model
  • ai_embeddings_semantic_search_hyde_model
  • summarization strategy
  • ai_bot_enabled_chat_bots
16 Me gusta