Lo imprescindible
Los errores más difíciles en WebAssembly AI suelen ser errores de categoría: tratar un formato como si fuera un runtime, un runtime como si fuera un backend, un sandbox como si fuera una política de seguridad completa o un browser exitoso como soporte universal.
Distinciones centrales
| Par | Distinción |
|---|---|
| Wasm vs WebGPU | Wasm ejecuta código portable, normalmente en CPU; WebGPU envía trabajo explícito a la GPU. |
| WebNN vs WebGPU | WebNN describe operaciones neuronales para un dispositivo elegido por la implementación; WebGPU expone buffers, shaders y dispatch de más bajo nivel. |
| WebNN vs WASI-NN | WebNN es una API de browser; WASI-NN es una propuesta de host WASI para entornos de componentes/módulos fuera del browser. |
| Formato de modelo vs runtime | ONNX, TFLite, safetensors y GGUF codifican artefactos; un runtime debe soportar sus operadores y metadatos. |
| Runtime vs backend | El runtime administra sesiones y tensores; el backend o execution provider realiza operaciones en CPU, GPU o NPU. |
| Local vs offline | La inferencia local evita una llamada de cómputo remoto; offline, además, exige tener cacheados la aplicación, el modelo y los metadatos, y definir el comportamiento del almacenamiento. |
| Local vs privado | La ejecución local puede mejorar la privacidad, pero logs, analytics, descargas de modelos y extensiones del browser todavía pueden transmitir datos. |
| Sandbox vs política | Wasm restringe la ejecución del guest; el host todavía decide capacidades, límites, secretos, red, almacenamiento y actualizaciones. |
| Cuantizado vs equivalente | La cuantización reduce la precisión de representación; las diferencias numéricas y de tarea deben medirse. |
| Fallback vs falla | Un fallback puede preservar la función, pero cambia el backend, la performance o la calidad y debe informarse. |
Vocabulario mínimo
- Un módulo es código Wasm core validado; una instancia es un módulo conectado a imports, memorias, tablas y estado.
- La memoria lineal es memoria del guest direccionada por bytes, no un grafo de objetos JavaScript ni un buffer de GPU.
- Una ABI define cómo cruzan los valores un límite binario; WIT y la Canonical ABI extienden ese contrato para componentes.
- Un tensor combina tipo de elemento, forma, strides, layout y almacenamiento; que coincidan las dimensiones no prueba que coincida la semántica.
- Un operador es una operación del grafo; operadores no soportados pueden bloquear la exportación o forzar un fallback.
- Un execution provider, backend o delegate asigna trabajo a una implementación y un dispositivo concretos.
- Un golden output es un resultado de referencia versionado junto con su entrada, modelo, preprocesamiento y tolerancia.
- Cold start, primera inferencia e inferencia warm miden costos de producto diferentes.
Reglas de evidencia
- Registrá browser, sistema operativo, hardware, runtime, backend, modelo, cuantización y fecha.
- Nunca afirmes una mejora de performance sin carga, warm-up, muestras, distribución y contexto crudo.
- Nunca afirmes equivalencia numérica sin una comparación y tolerancia explícitas.
- Nunca ocultes qué backend se ejecutó ni si hubo fallback.
- Marcá estándares, borradores, propuestas, experimentos y APIs específicas de una implementación como categorías diferentes.
- Tratá los binarios de modelos y Wasm como artefactos versionados de supply chain con checksums.
- Mantené el cómputo determinista fuera del modelo cuando la corrección pueda expresarse en código.
Cómo seguir
Abrí Fase 00: Orientación para establecer prerrequisitos y alcance, y después empezá por Modelo de ejecución de WebAssembly. Mantené Siempre activo unido a cada fase.