App: Modelo de lenguaje de gran tamaño local (llm2)¶
Resumen¶
Esta página describe, para quienes administran el servidor, la app llm2, que ejecuta modelos de lenguaje de código abierto en el propio servidor: los modelos recomendados, los idiomas, los requisitos, la instalación, el uso y la configuración de modelos alternativos, el escalado y las limitaciones conocidas. En APS Conecta Gestión esto difiere, como indica el aviso al inicio del texto traducido.
Fuente: documentación de Nextcloud, «admin_manual/ai/app_llm2», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.
En APS Conecta Gestión esto difiere
La app llm2 es una de las apps que aportan funcionalidad de procesamiento de texto mediante modelos de lenguaje de gran tamaño en APS Conecta Gestión y actúan como backend de procesamiento de texto para la app Asistente de APS Conecta Gestión, la app mail y otras apps que usan la API central de procesamiento de texto. La app llm2 en concreto solo ejecuta modelos de código abierto, y lo hace íntegramente en las instalaciones propias. Nextcloud puede ofrecer soporte al cliente previa solicitud; las posibilidades pueden consultarse con el gestor de cuenta.
Esta app usa internamente llama.cpp y, por tanto, es compatible con cualquier modelo en formato gguf.
Sin embargo, Nextcloud solo hace pruebas con Llama 3.1. La calidad de los resultados variará según el modelo que se use, y las tareas posteriores, como el resumen o Context Chat, pueden no funcionar con otros modelos. Por tanto, se recomiendan los siguientes modelos:
Llama3.1 8b Instruct (calidad razonable; rápido; buena acogida; viene incluido con la app)
Llama3.1 70B Instruct (buena calidad; buena acogida)
Multilingüismo¶
Esta app admite entradas y salidas en idiomas distintos del inglés si el modelo subyacente admite el idioma.
Llama 3.1 admite los siguientes idiomas:
inglés
portugués
español
italiano
alemán
francés
hindi
tailandés
Tener en cuenta que otros idiomas también pueden funcionar, pero solo se garantiza el funcionamiento de los idiomas anteriores.
Requisitos¶
Esta app está construida como app externa (External App) y, por tanto, depende de AppAPI v3.1.0 o superior
Nextcloud AIO es compatible
Actualmente se admiten GPU NVIDIA y CPU x86_64
CPU compatible con las instrucciones AVX y AVX2
CUDA >= v12.4 en el sistema anfitrión
Dimensionamiento con GPU
Una GPU NVIDIA con al menos 8GB de VRAM
Al menos 12GB de RAM del sistema
Dimensionamiento con CPU
Al menos 12GB de RAM del sistema
Cuantos más núcleos y más potente sea la CPU, mejor; se recomiendan entre 10 y 20 núcleos
De forma predeterminada, la app acapara todos los núcleos, por lo que suele ser mejor ejecutarla en una máquina aparte
Instalación¶
Asegurarse de que esté instalada la app Asistente de APS Conecta Gestión
Instalar la ExApp «Local large language model» desde la página «Apps» de la interfaz web de administración de APS Conecta Gestión
Suministrar modelos alternativos¶
Esta app permite suministrar modelos LLM alternativos como archivos gguf en el directorio /nc_app_llm2_data del contenedor de docker.
Descargar un modelo gguf, por ejemplo desde huggingface
Copiar el archivo gguf a
/nc_app_llm2_datadentro del contenedor de dockerReiniciar la ExApp llm2
Seleccionar el nuevo modelo en las configuraciones de administración de IA de APS Conecta Gestión
Configurar modelos alternativos¶
Como cada modelo requiere parámetros de inferencia ligeramente distintos, puede facilitarse un archivo de configuración para los archivos de modelo alternativos que se suministren.
El archivo de configuración de un archivo de modelo debe tener el mismo nombre que el archivo de modelo, pero debe terminar en .json en lugar de .gguf.
Las cadenas {system_prompt} y {user_prompt} son variables que rellena la app, por lo que deben formar parte de la plantilla de instrucciones (prompt template).
Este es un ejemplo de archivo de configuración para Llama 2:
{
"prompt": "<|im_start|> system\n{system_prompt}\n<|im_end|>\n<|im_start|> user\n{user_prompt}\n<|im_end|>\n<|im_start|> assistant\n",
"loader_config": {
"n_ctx": 4096,
"max_tokens": 2048,
"stop": ["<|im_end|>"]
}
}
Este es un ejemplo de configuración para Llama 3:
{
"prompt": "<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n{system_prompt}<|eot_id|><|start_header_id|>user<|end_header_id|>\n{user_prompt}<|eot_id|>\n<|start_header_id|>assistant<|end_header_id|>\n",
"loader_config": {
"n_ctx": 8000,
"max_tokens": 4000,
"stop": ["<|eot_id|>"],
"temperature": 0.3
}
}
Escalado¶
Actualmente no es posible escalar esta app; Nextcloud está trabajando en ello. Según los cálculos de Nextcloud, una instancia tiene una capacidad aproximada de 1000 solicitudes de usuario por hora. Sin embargo, esta cifra es teórica, y Nextcloud agradece los comentarios basados en el uso real. Si se quiere ampliar el uso de modelos de lenguaje, se recomienda usar un proveedor de IA como servicio o alojar uno mismo un servicio compatible con la API de OpenAI que pueda escalarse, y conectar nextcloud a él mediante la app integration_openai.
Tienda de apps¶
La app también está en la tienda de apps de Nextcloud, donde puede escribirse una reseña: https://apps.nextcloud.com/apps/llm2
Repositorio¶
El repositorio de código de la app está en GitHub, donde pueden informarse errores y aportarse correcciones y funciones: https://github.com/nextcloud/llm2
Los clientes de Nextcloud deben informar de los errores directamente al sistema de soporte de Nextcloud.
Limitaciones conocidas¶
Actualmente solo se admiten los idiomas que admite el modelo subyacente; la corrección del uso del idioma en idiomas distintos del inglés puede ser deficiente según la cobertura del idioma en los datos de entrenamiento del modelo (se recomienda el modelo Llama 3 u otros modelos entrenados explícitamente con varios idiomas)
Los modelos de lenguaje pueden ser malos en tareas de razonamiento
Los modelos de lenguaje pueden ser malos en matemáticas
Los modelos de lenguaje tienden a generar información falsa, por lo que solo deben usarse en situaciones que no sean críticas. Se recomienda usar la IA solo al principio de un proceso de creación y no al final, de modo que sus resultados sirvan, por ejemplo, como borrador y no como producto final. Revisar siempre los resultados de los modelos de lenguaje antes de usarlos.
Asegurarse de probar el modelo de lenguaje que se usa para comprobar si cumple los requisitos de calidad del caso de uso
Los modelos de lenguaje tienen un consumo de energía notoriamente alto; para reducir la carga del servidor pueden elegirse modelos más pequeños o cuantizados a cambio de una menor precisión
El soporte al cliente está disponible previa solicitud; sin embargo, Nextcloud no puede resolver resultados falsos o problemáticos, la mayoría de los problemas de rendimiento ni otros problemas causados por el modelo subyacente. Por tanto, el soporte se limita a los errores causados directamente por la implementación de la app (conectores, API, frontend, AppAPI)
Apéndice: ejecutar con un modelo totalmente abierto¶
Si se quiere usar un modelo totalmente abierto que obtenga una puntuación verde en la clasificación de IA ética de Nextcloud, se recomienda el siguiente modelo:
Olmo 3 (en 7B o en 32B): https://huggingface.co/allenai/Olmo-3-7B-Instruct
¿Qué hace de OLMo un modelo totalmente abierto?¶
El código de entrenamiento, ajuste fino e inferencia del modelo está disponible públicamente y es totalmente de código abierto
Los datos de entrenamiento con los que se preentrena el modelo están disponibles públicamente
El propio modelo está disponible públicamente y es totalmente de código abierto
Los datos de ajuste por instrucciones están disponibles públicamente
El modelo de aprendizaje por refuerzo está disponible públicamente y es totalmente de código abierto
Limitaciones¶
Actualmente OLMo solo funciona bien con entradas en inglés
En las pruebas de Nextcloud produjo a veces resultados alucinados o ininteligibles; asegurarse de probar a fondo el modelo para el caso de uso
No puede usar herramientas, por lo que no puede usarse junto con Context Agent
Nota
Los problemas de APS Conecta Gestión, de sus aplicaciones y de su instalación se informan en los issues de la suite APS-Conecta: Errores conocidos reúne los de todos sus repositorios. El centro de incidencias citado arriba es el de Nextcloud, para fallos del software original.