Communitygithub.com

wshobson/exportación-cuantizada

Exporta un modelo ajustado y promocionado en el formato de implementación correcto: safetensors fusionados, solo LoRA, GGUF con imatrix o FP8. Úsalo después de que un checkpoint pase la promoción, al elegir un formato de cuantización para un dispositivo objetivo, o cuando un modelo exportado falle su prueba de humo.

¿Qué es exportación-cuantizada?

Esta habilidad automatiza el paso final del ciclo de vida de un modelo ajustado: convertir un checkpoint promocionado en un artefacto listo para producción. Acepta un checkpoint (o adaptador LoRA) que ya haya superado las cuatro etapas de validación de `checkpoint-promotion` y selecciona el formato de exportación correcto según el hardware objetivo y la carga de trabajo: FP8 para GPUs Hopper, AWQ INT4 para GPUs más antiguas, GGUF con Q4_K_M e imatrix para dispositivos perimetrales o llama.cpp, y NVFP4 exclusivamente para Blackwell a gran escala (evitando GB10). La habilidad incluye un mapa de decisión detallado con excepciones por carga de trabajo (contexto largo, código, matemáticas) que prohíben INT4, y una prueba de humo obligatoria que compara 3 a 5 salidas de referencia pre y post exportación, utilizando decodificación determinista para detectar errores silenciosos como desajustes de plantilla o cuantización incorrecta de `lm_head`. Está diseñada para agentes que gestionan el ciclo completo de fine-tuning, despliegue y validación en plataformas como vLLM y llama.cpp, y se conecta con las habilidades `checkpoint-promotion` y `eval-harness-first`.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wshobson/agents/tree/main/plugins/llm-finetuning/skills/quantized-export

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Exportación Cuantizada

La última parada después de que checkpoint-promotion emite un veredicto PROMOTE: un checkpoint que superó la puerta de cuatro etapas aún no está implementado hasta que se exporta en el formato correcto para su tiempo de ejecución objetivo y se demuestra que sigue funcionando después de la exportación. Un veredicto REJECT nunca llega a esta habilidad — la exportación comienza solo desde un checkpoint promocionado.

Entrada: un checkpoint promocionado (o adaptador LoRA) más la superficie de implementación objetivo — clase de GPU, pila de servicio, y si las cargas de trabajo de contexto largo/código/matemáticas están en el alcance. Formato de salida: un artefacto exportado en el formato elegido más un informe de diferencias de la prueba de humo que compara 3 a 5 salidas de referencia pre-exportación y post-exportación.

Mapa de Formatos

Elige el formato según el hardware y la forma de implementación, no por costumbre — la elección incorrecta o desperdicia capacidad de procesamiento o falla silenciosamente en cargas de trabajo específicas (consulta Anulaciones por Carga de Trabajo).

  • FP8 es el valor predeterminado en GPUs de clase Hopper y superiores. Preserva una calidad cercana a bf16 con aproximadamente la mitad de la memoria, y es la primera opción segura siempre que la GPU objetivo lo soporte y no se aplique ninguna restricción de dispositivo perimetral.
  • AWQ INT4 está dirigido a GPUs más antiguas que son anteriores al soporte de hardware FP8. GPTQ está obsoleto para nuevas implementaciones — no lo uses en una exportación nueva; AWQ tiene una mejor retención de precisión con el mismo ancho de bits y un soporte de herramientas más amplio.
  • GGUF con cuantización Q4_K_M, construido a partir de una imatrix, es el formato para dispositivos perimetrales/llama.cpp. Úsalo para implementación local o adyacente a CPU, no para rendimiento de servicio con GPU — optimiza para huella de memoria, no para tokens/segundo en una GPU de centro de datos.
  • NVFP4 es solo para implementaciones Blackwell a gran escala — y explícitamente NO en GB10. NVFP4 en SM121 (GB10) se ejecuta ~32% más lento que FP8 porque el hardware carece de una ruta nativa cvt.e2m1x2 a menos que el kernel se compile como sm_121a. Elegir NVFP4 en un objetivo GB10 es una regresión, no una mejora — elige FP8 allí.
  • Fusionado vs. solo LoRA es un eje separado del formato de cuantización. Una exportación fusionada incorpora el adaptador en los pesos base: artefacto más grande, sin dependencia del modelo base en tiempo de servicio. Solo LoRA mantiene el adaptador separado: artefacto mucho más pequeño, pero la pila de servicio debe cargar el mismo modelo base exacto junto a él — un modelo base no coincidente o de revisión incorrecta cambia silenciosamente las salidas. Elige fusionado cuando la portabilidad del artefacto importe más que el almacenamiento; elige solo LoRA cuando la huella de disco o el servicio multiadaptador importe más.

Selecciones Prácticas

El intercambio central de selección de formato, leído como una tabla de consulta para escenarios comunes:

ObjetivoCarga de trabajoFormato
GPU de centro de datoschat genéricoFP8
GPU de centro de datoscontexto largo/código/matemáticasFP8 o W8A8 — nunca INT4
Generación de GPU más antiguagenéricoAWQ INT4
Dispositivo perimetral / portátilservicio llama.cppGGUF Q4_K_M + imatrix
GB10cualquier carga de trabajoFP8 mediante vLLM nightly, o GGUF mediante llama.cpp localmente — omitir NVFP4
# fragmento de decisión rápida — consulta la tabla anterior para el mapa completo
hopper_o_nuevo: fp8
gpu_antigua: awq-int4
perimetral_llama_cpp: gguf-q4_k_m+imatrix
gb10_cualquier_trabajo: fp8-vllm-nightly   # nunca nvfp4 en GB10

Anulaciones por Carga de Trabajo

El mapa de formatos anterior es un valor predeterminado, no una regla que sobrevive a toda carga de trabajo. Las cargas de trabajo de contexto largo, código y matemáticas fallan con INT4 — el error de cuantización se acumula en secuencias largas y en razonamientos precisos a nivel de token de formas que no aparecen en indicaciones cortas y genéricas. Para cualquiera de estas tres clases de carga de trabajo, quédate con FP8 o W8A8 incluso si el hardware objetivo justificaría INT4 por razones de costo.

  • No valides esta anulación con MMLU o puntos de referencia similares de conocimiento amplio — no estresan el modo de fallo. Mide con las evaluaciones de tareas reales — las salidas de referencia y los calificadores de eval-harness-first, ejecutados a través del artefacto exportado — porque la degradación de INT4 en contexto largo, código o matemáticas se manifiesta como fallos específicos de la tarea (contexto perdido, sintaxis rota, errores aritméticos) mucho antes de que mueva un punto de referencia de conocimiento.
  • Si una evaluación de tarea retrocede después de una exportación INT4 en una de estas tres clases de carga de trabajo, la solución es cambiar de formato, no reajustar la receta de cuantización — las variantes AWQ y GPTQ con el mismo ancho de bits comparten el mismo modo de fallo de error compuesto en estas cargas de trabajo.

La Prueba de Humo

Los errores de exportación son silenciosos a nivel de archivo — una exportación mal formada aún produce un artefacto cargable, por lo que las comprobaciones de existencia de archivos no prueban nada. La prueba de humo es obligatoria para cada exportación, sin excepción para un formato que "debería funcionar":

  1. Carga el artefacto exportado en su tiempo de ejecución objetivo real — vLLM para FP8/AWQ, llama.cpp para GGUF, no una carga rápida de verificación en un marco diferente al que lo servirá en producción.
  2. Ejecuta 3 a 5 indicaciones de referencia a través de él — extráelas del mismo eval/goldens.jsonl que mantiene eval-harness-first, no de un conjunto ad hoc nuevo.
  3. Compara cada salida con la generación previa a la exportación para la misma indicación, las mismas configuraciones de muestreo deterministas — decodificación voraz (temperatura 0) y una semilla fija, persistida y reutilizada entre las ejecuciones pre y post exportación, no solo configuraciones nominalmente idénticas. Para una exportación sin pérdida, la coincidencia de bytes es la puerta — cualquier diferencia es un error. Para una exportación con pérdida (cuantizada), se espera que la coincidencia de bytes falle; la puerta es el acuerdo del calificador de tarea en su lugar — consulta references/export-commands.md's Esqueleto de Script de Prueba de Humo.

Ejecuta esto como una puerta, no como una verificación manual:

python smoke_test.py "$EXPORT_PATH" \
    eval/goldens.jsonl pre-export-outputs.jsonl
# salida distinta de cero en cualquier discrepancia pre/post

Firmas de Fallo

Cómo se ven realmente los errores de exportación, no una bandera simple de aprobado/reprobado:

  • Desajuste de plantilla se presenta como salida confusa o continua — la plantilla de chat incorporada en la exportación no coincide con aquella contra la que el checkpoint fue entrenado y evaluado, por lo que los límites de turno o los tokens especiales caen en el lugar equivocado.
  • Cuantización incorrecta aplicada a lm_head se presenta como salida fuera de plantilla o semánticamente sin sentido que aún parece fluida — la cabeza de salida perdió la precisión que necesitaba aunque el resto de la red se cuantizó limpiamente.

Nunca envíes una exportación que omitió este paso — un veredicto PROMOTE de un checkpoint dice que el checkpoint no exportado es bueno; no dice nada sobre el proceso de exportación. Vuelve a ejecutar ante cualquier cambio de método de cuantización o versión del tiempo de ejecución, no solo después de la primera exportación. Secuencias de comandos ejecutables para cada formato más el esqueleto del script de prueba de humo: references/export-commands.md.

Habilidades Relacionadas

  • checkpoint-promotion — la única fuente ascendente válida para esta habilidad. Un checkpoint sin un veredicto PROMOTE no llega a la exportación.
  • eval-harness-first — posee el eval/goldens.jsonl del cual la prueba de humo de esta habilidad obtiene sus 3 a 5 indicaciones, y las evaluaciones de tareas que la sección Anulaciones por Carga de Trabajo requiere para la validación de contexto largo/código/matemáticas.
  • finetuning-method-selection — su references/model-catalog.md es el lugar para verificar las suposiciones de clase de hardware (qué generaciones de GPU tiene como objetivo un modelo base) antes de elegir un formato del mapa de formatos anterior.

Usuarios de Spark: en GB10, GGUF a través de llama.cpp funciona bien para el servicio local, y el servicio FP8 a través de las compilaciones nocturnas de vLLM es la otra ruta probada — NVFP4 es el único formato que se debe evitar allí (consulta la excepción del mapa de formatos anterior). Una vez que el plugin dgx-spark-ops esté instalado, delega las preguntas específicas de servicio y térmicas de Spark a sus habilidades en lugar de derivarlas aquí.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

wshobson/accessibility-compliance

Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.

wshobson/airflow-dag-patterns

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

wshobson/angular-migration

Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.

wshobson/anti-reversing-techniques

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

wshobson/api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

wshobson/architecture-decision-records

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.

wshobson/architecture-patterns

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use this skill when designing clean architecture for a new microservice, when refactoring a monolith to use bounded contexts, when implementing hexagonal or onion architecture patterns, or when debugging dependency cycles between application layers.

wshobson/async-python-patterns

Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.

wshobson/attack-tree-construction

Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.

wshobson/auth-implementation-patterns

Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing APIs, or debugging security issues.

wshobson/avoid-ai-writing

Audit and rewrite prose so it stops reading as machine-generated. Use this skill when asked to remove AI-isms, clean up AI writing, edit a draft for AI tells, audit a README, changelog, release note, PR description, or blog post for machine-sounding prose, or make text sound less like AI. Supports a detect-only mode, a rewrite mode, and an edit-in-place mode, with optional voice and context profiles.

wshobson/backtesting-frameworks

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

wshobson/bash-defensive-patterns

Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

wshobson/bats-testing-patterns

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

wshobson/bazel-build-optimization

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

wshobson/before-you-build

Pre-build product and feature risk review for founders, product managers, and AI-assisted builders. Use this skill when the user is about to build a landing page, MVP, SaaS product, internal tool, agent workflow, or major feature and needs to check demand, positioning, monetization, retention, trust, distribution, and adoption risk before implementation starts.

wshobson/billing-automation

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

wshobson/binary-analysis-patterns

Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.

wshobson/block-no-verify-hook

Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.

wshobson/brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

Skills relacionados