Sistema Multiusuario Empresarial para LLM
Backend gRPC de alto rendimiento, privacidad-first y listo para producción
Basado en LocalAI y ik_llama.cpp — fork optimizado para CPU con soporte AVX2/AVX512, OpenBLAS estático y escalado RoPE avanzado.
¿Por qué ik_llama.cpp?
Fork especializado en rendimiento en CPU — ideal para entornos sin GPU o con recursos limitados.
Mejoras clave frente a llama.cpp original
- SIMD optimizado: AVX2, AVX512, FMA, BMI2 (activables por target en CMake)
- OpenBLAS estático: Sin dependencia dinámica —
libopenblas.avinculada estáticamente - OpenMP activado: Paralelismo de kernels de cuantización y matmul
- Escalado RoPE avanzado: Soporte para YARN, LINEAR, NONE y más
- Cuantización IQK: Soporte para Q3_K_S, Q4_K_M, Q5_K_M, Q6_K y más
- Optimizaciones específicas: Para Intel Xeon 2690v4 y arquitecturas modernas
Arquitectura Técnica
Flujo completo de datos — desde la petición gRPC hasta la inferencia en ik_llama.cpp.
grpccod/ — Implementación del servicio gRPC (BackendServiceImpl)
commoncod/ — Mapeo Proto ↔ JSON, logging estructurado
server/ — Wrappers thread-safe con std::atomic y mutexes
llama.cpp/ — Motor de inferencia ik optimizado
Despliegue en 4 pasos
Sin registros. Sin compilaciones complejas. Integración inmediata con LocalAI.
# 1 — Clonar el backend en LocalAI
git clone https://github.com/mudler/LocalAI.git && cd LocalAI/backend/cpp/
git clone https://github.com/ruribe17/cuyex-ik-llama-cpp.git cuyex-ik-llama-cpp
# 2 — Compilar (una sola vez)
cd backend/cpp/cuyex-ik-llama-cpp && make 2690v4
# 3 — Desplegar binario
sudo mkdir -p /opt/local-path-backends/cpu-ikllama-cpp
sudo cp output/ik-llama-cpp-2690v4 /opt/local-path-backends/cpu-ikllama-cpp/grpc-server
# 4 — Configurar librerías y scripts
sudo cp prepare.sh package.sh run.sh /opt/local-path-backends/cpu-ikllama-cpp/
sudo cp -r ./lib/. /opt/local-path-backends/cpu-ikllama-cpp/lib/
sudo chmod -R +x /opt/local-path-backends/cpu-ikllama-cpp/
# LocalAI detecta el backend automáticamente.
cpu-ikllama-cpp y el binario grpc-server.
Características Clave
Empaquetado Estático Total
libc, libstdc++, libopenblas.a incluidas en package/lib/ con ld.so propio. Sin dependencias del sistema host.
Selección Inteligente de CPU
run.sh detecta AVX / AVX2 / AVX512 y ejecuta la variante óptima automáticamente.
Gestión Asíncrona
Colas queue_tasks / queue_results con callbacks para procesar slots en paralelo sin bloqueo.
Chat Template Integration
Soporte messages[] + use_tokenizer_template=true → aplica chat template vía common_chat_templates_apply().
- NUMA Awareness: Balanceo automático en servidores dual-socket Xeon E5-2690 v4+
- LoRA y RoPE Scaling: YARN, Linear, Flash Attention soportados
- Seguridad thread-safe:
std::atomicy mutexes para acceso concurrente - Reranking y Embeddings: Optimizados para pipelines RAG
Pruebas Directas con gRPC
Ideal para desarrollo y debugging sin pasar por LocalAI.
# Iniciar backend
./ik-llama-cpp-2690v4
# Cargar modelo
grpcurl -plaintext \
-import-path /root/LocalAI/backend \
-proto backend.proto \
-d '{"ModelFile":"/opt/models/Qwen3-Coder.gguf","ContextSize":262144,"Threads":28,"MMap":true}' \
localhost:50051 backend.Backend/LoadModel
# Health check
grpcurl -plaintext \
-import-path /root/LocalAI/backend \
-proto backend.proto -d '{}' \
localhost:50051 backend.Backend/Health
# Chat streaming
grpcurl -plaintext \
-import-path /root/LocalAI/backend \
-proto backend.proto \
-d '{"Prompt": "Hola, que es una red neuronal?", "Tokens": 50}' \
localhost:50051 backend.Backend/PredictStream
Casos de Uso Empresarial
Educación
Labs privados y desarrollo curricular con privacidad garantizada. Ideal para colegios e institutos.
Corporativo
Asistentes internos seguros con cumplimiento GDPR e ISO 27001. Sin datos en la nube.
Investigación
Inferencia reproducible, auditable y controlada. Sin costos de API por token.
Edge / On-Prem
Despliegue en redes aisladas (air-gapped) o infraestructuras privadas en Kubernetes.
Roadmap y Mejoras Futuras
-
Soporte vLLM / TensorRT-LLM: Backend alternativo mediante plugin o proxy transparente.
-
OpenTelemetry: Métricas distribuidas y trazado de solicitudes en tiempo real.
-
Autoscaling: Basado en colas de tareas — exponer métricas de
queue_tasksa Prometheus/HPA. -
Carga con mmap + numa: Soporte completo para modelos GGUF/GGML con memoria compartida.
-
Token streaming optimizado: Evitar copias innecesarias de strings en el pipeline de streaming.
Documentación y Recursos
- ik_llama.cpp: github.com/ikawrakow/ik_llama.cpp
- LocalAI: github.com/mudler/LocalAI
- cuyex-ik-llama-cpp: github.com/ruribe17/cuyex-ik-llama-cpp
- Proto:
backend.proto— definición del contrato gRPC - Logs:
journalctl -u localai -f
© 2026 — CuyexLLM System, Colegio Santa Rosa de Lima
https://elearning.starosa.edu.pe
Presentación generada con HTML5 + Joomla 6
Español
English (United Kingdom)