Servidor GRPC CUYEX para IK-LLAMA.CPP

Sistema Multiusuario Empresarial para LLM

Backend gRPC de alto rendimiento, privacidad-first y listo para producción

Production Ready x86_64 AVX2/AVX512 MIT License

Basado en LocalAI y ik_llama.cpp — fork optimizado para CPU con soporte AVX2/AVX512, OpenBLAS estático y escalado RoPE avanzado.

Privacidad Total: Sin salida de datos a la nube. Despliegue on-premise o híbrido en Kubernetes.

¿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.a vinculada 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.

graph LR A["LocalAI Go"] -->|gRPC| B["BackendServiceImpl"] B --> C["proto_mapping"] C --> D["predict.cpp"] C --> E["embedding.cpp"] C --> F["model.cpp"] D --> G["ik_llama.cpp Core"] E --> G F --> G G --> H["CPU AVX2/AVX512"] G --> I["OpenBLAS Static"]

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.
Nota Técnica: El directorio debe llamarse 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::atomic y 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_tasks a 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

Diseñado para entornos críticos. Tus datos permanecen en tu hardware.
1 / 9