MachinaCheck: manufacturabilidad CNC con AMD MI300X | Keryc
En un taller de mecanizado pequeño la revisión de un dibujo es casi artesanal: imprimir el plano, leer cada cota a mano, caminar entre máquinas, revisar herramientas, adivinar si la máquina puede mantener tolerancias. ¿Te imaginas perder horas por cada solicitud y, a veces, descubrir a mitad de producción que hace falta una broca o un macho? MachinaCheck nace para quitar esa incertidumbre y ahorrar tiempo valioso.
Qué hace MachinaCheck
MachinaCheck es un sistema multiagente que analiza un archivo STEP (el formato estándar CAD que envían los clientes) más tres entradas simples: material, tolerancia y especificaciones de roscas. En unos 30 segundos entrega un informe completo de manufacturabilidad: si la pieza se puede fabricar, qué operaciones y herramientas se requieren, qué falta y qué acciones tomar antes de iniciar producción.
No más lecturas manuales del plano. No recorrer el taller. No suposiciones.
Por qué la privacidad es un requisito de diseño
Las piezas que pasan por los talleres suelen ser propiedad intelectual valiosa: patrones de agujeros en dispositivos médicos, cavidades en piezas aeroespaciales. Enviar un STEP a una API comercial es, literalmente, violar un NDA. Punto.
Aquí entra la decisión arquitectónica clave: ejecutar el modelo LLM localmente en hardware on-premise. Con 192 GB de HBM3 y 5.3 TB/s de ancho de banda, el AMD Instinct MI300X permite correr Qwen 2.5 7B Instruct completamente en sitio. Los archivos STEP nunca salen del taller. Eso no es marketing; es lo que significa "privacy by design" para fabricación.
Arquitectura técnica
MachinaCheck usa una canalización de cinco componentes construida con LangChain y orquestada con FastAPI. Herramientas clave: cadquery para parseo geométrico (basado en OpenCASCADE), vLLM para servir el LLM local, ROCm para la pila AMD y una pequeña capa Python para la lógica determinista.
Extracción geométrica (exacta y determinista)
Cadquery lee el STEP y extrae geometría matemática exacta. No hay visión, OCR ni aproximaciones: las dimensiones salen tal cual están en la geometría.
Agujeros cilíndricos con diámetro y profundidad exactos
Superficies planas y sus áreas
Chaflanes y filetes
Caja envolvente (bounding box)
Volumen y área de superficie
La ventaja es obvia: un agujero Ø6.0 mm es Ø6.0 mm, no una estimación.
Ejemplo simplificado de extracción:
def extract_features(step_path):
model = importStep(step_path)
shape = model.val()
bb = shape.BoundingBox()
# iterar caras y detectar cilindros, planos, etc.
return {
'bounding_box_mm': {...},
'holes': [...],
'flat_surfaces': count
}
Flujo multiagente y división de responsabilidades
El pipeline divide el problema en agentes con roles claros:
Agente 1 (geometría): extrae y estructura las características del STEP.
Agente 2 (inventario / matching): lógica determinista en Python que consulta la base de datos de herramientas del taller y compara necesidades. No usa LLMs para esto: sería lento, caro y propenso a invenciones.
Agente 3 (razonamiento): Qwen 2.5 7B en el MI300X que interpreta la extracción, incorpora reglas de manufactura y prioriza acciones.
Agente 4 (síntesis): genera el informe profesional estructurado (decisión, confianza, lista de acciones, flags de riesgo, horas estimadas de setup).
La salida intermedia es JSON estructurado que el sistema valida antes de producir el informe final.
Despliegue en AMD MI300X con vLLM y ROCm
Ejecutar Qwen 2.5 7B en el MI300X fue directo usando vLLM sobre ROCm. Con 192 GB de VRAM se usó aproximadamente 96 GB en configuración de prueba, dejando margen para concurrencia o modelos mayores.
Resultados operativos relevantes:
Latencia de llamadas al agente LLM: ~3 segundos por llamada
Extracción geométrica: < 1 segundo para piezas con hasta 50 características
Pipeline completo (4 agentes): 25 a 40 segundos end-to-end
Precisión en pruebas: decisiones correctas en el conjunto de evaluación
Privacidad: 0 bytes de STEP transmitidos externamente
La configuración de vLLM se integra con LangChain mediante un endpoint compatible OpenAI, lo que facilita la lógica de orquestación.
Lecciones prácticas y recomendaciones técnicas
Usa LLMs donde aporten valor: razonamiento flexible, síntesis y manejo de excepciones. Evita LLMs para consultas deterministas a bases de datos.
Extrae geometría directamente desde el CAD con bibliotecas geométricas (OpenCASCADE/cadquery). La precisión geométrica reduce riesgos costosos.
La privacidad on-premise es más que política: en manufactura es requisito para contratos y adopción empresarial.
Si tu presupuesto lo permite, la memoria del MI300X te da espacio para modelos mucho más grandes (por ejemplo Qwen 2.5 72B), lo que puede mejorar la calidad de razonamiento sin salir del perímetro de datos.
Rendimiento y experiencia real
La prueba con archivos reales (datasets como GrabCAD) mostró tiempos prácticos y fiabilidad: extracción de características bajo 1 segundo, pipeline completo en menos de un minuto y decisiones correctas sobre manufacturabilidad en todos los casos de test.
Además, porque la lógica de herramientas es determinista, el sistema identifica claramente qué falta (por ejemplo un macho M10x1.5) y sugiere acciones concretas (compra, verificación de velocidad de husillo, horas de setup), con estimaciones cuantificables.
Al final, MachinaCheck no es solo un experimento: es una solución práctica para reducir horas de trabajo cualificado, evitar partes descartadas y proteger la propiedad intelectual del cliente.
Piensa en ello así: convertir un proceso artesanal que toma 30 a 60 minutos por plano en un flujo reproducible, auditable y privado que tarda menos de un minuto. ¿No es exactamente lo que un taller necesita para escalar?