La Ley de IA de la UE exige que las organizaciones ajusten modelos de lenguajes grandes (LLM) para rastrear los recursos computacionales medidos en operaciones de punto flotante (FLOP) para determinar las obligaciones de cumplimiento. A medida que los clientes ajustan cada vez más los LLM para casos de uso de dominios específicos, escuchamos una pregunta común: ¿cómo sé si mi trabajo de capacitación genera nuevas obligaciones regulatorias?
Amazon SageMaker AI proporciona un servicio de aprendizaje automático (ML) administrado para crear, entrenar e implementar modelos. Esta solución utiliza trabajos de capacitación de Amazon SageMaker para ejecutar cargas de trabajo de ajuste en una infraestructura totalmente administrada. Los trabajos de capacitación de SageMaker manejan el aprovisionamiento de recursos, el escalado y la administración de clústeres, con soporte integrado para capacitación distribuida, integración con AWS CloudTrail y Amazon CloudWatch para la gobernanza y desmantelamiento automático de recursos informáticos una vez finalizada la capacitación. El medidor de FLOP de ajuste fino amplía estas capacidades con un seguimiento de cumplimiento diseñado específicamente que se integra en sus canales de IA de SageMaker existentes.
En esta publicación, le mostramos cómo configurar el seguimiento de FLOP durante el ajuste fino de LLM utilizando el kit de herramientas de código abierto Fine-Tuning FLOPs Meter en Amazon SageMaker AI. Aprenderá cómo determinar su estado de cumplimiento con un único indicador de configuración y generar documentación lista para auditoría.
Ley de IA de la UE y requisitos de seguimiento de FLOP
El 2 de agosto de 2025, la Ley de IA de la UE introdujo nuevos requisitos para las organizaciones que trabajan con modelos de inteligencia artificial de propósito general (GPAI). Si está ajustando un LLM, debe determinar si sus modificaciones lo reclasifican de un usuario intermedio (una organización que usa un modelo existente sin modificaciones sustanciales) a un proveedor de modelo GPAI (una organización legalmente responsable del cumplimiento de un modelo). La clasificación depende de cuánto cómputo consume su ajuste fino, medido en FLOP.
La regla del tercio distingue entre modificaciones menores y reentrenamiento sustancial. El fundamento detrás del umbral del 30%: el análisis regulatorio determinó que el uso de más de un tercio del cálculo de capacitación original generalmente resulta en cambios de comportamiento significativos en el modelo, creando efectivamente un nuevo modelo con diferentes riesgos que garantizan obligaciones totales del proveedor. La mayoría de las organizaciones utilizan el escenario 2 de la siguiente tabla porque los proveedores de modelos rara vez publican FLOP de entrenamiento exactos. A menos que haya documentado el cálculo previo al entrenamiento de su proveedor de modelos, se aplica el umbral predeterminado de 3,3 × 10²² FLOP. Hay 3 escenarios aplicables y umbrales a considerar:
Umbral del escenario Se conoce el cálculo de preentrenamiento y ≥ 10²³ FLOP 30 % del cálculo de preentrenamiento real Se desconoce el cálculo de preentrenamiento o < 10²³ FLOP Umbral predeterminado de 3,3 × 10²² FLOP Modelos de riesgo sistémico (FLOP de preentrenamiento ≥ 1025 FLOP) 3,3 × 1024 FLOP (si se desconoce el cálculo base)
El medidor de FLOP de ajuste fino determina automáticamente qué escenario se aplica en función de si proporciona la variable de entorno PRETRAIN_FLOPS. Para ayudarle a determinar rápidamente qué ruta de umbral se aplica, utilice el siguiente flujo de decisiones:
Paso 1: ¿Conoce los FLOP previos al entrenamiento de su modelo base?
No: continúe directamente con el umbral predeterminado de 3,3 × 10²² FLOP. Sí: pasar al siguiente paso de evaluación.
Paso 2: evaluar la escala informática previa al entrenamiento
Si conoce su cálculo previo al entrenamiento, compárelo con los siguientes órdenes de magnitud:
¿El cálculo previo al entrenamiento es ≥ 1025 FLOP? Sí: se encuentra dentro del Umbral de Riesgo Sistémico. Utilice un umbral de 3,3 × 1024 FLOP. No: pase a la siguiente pregunta. ¿El cálculo previo al entrenamiento es ≥ 10²³ FLOP? Sí: utilice un umbral relativo del 30 % del cálculo previo al entrenamiento real. No: continúe con el umbral predeterminado de 3,3 × 10²² FLOP.
Por ejemplo, el ajuste fino de Llama-3-70B (preentrenado con un mínimo estimado de 1,5×10²⁴ FLOP) establece el umbral en 4,5×10²³ FLOP. Superar este umbral significa que usted asume todas las obligaciones de un proveedor del modelo GPAI. Esas obligaciones incluyen brindar información detallada sobre la arquitectura y el proceso de capacitación, proporcionar una lista pública de las fuentes de datos utilizadas y demostrar el cumplimiento de la ley de derechos de autor de la UE. Si no cumple, podría enfrentar multas de hasta 15 millones de euros o el 3% de su facturación anual global, lo que sea mayor.
El desafío del seguimiento manual de FLOP
Estos umbrales presentan tres desafíos de cumplimiento:
Las fórmulas de FLOP son complejas y difieren dependiendo de si está realizando un ajuste completo o utilizando métodos eficientes en parámetros (enfoques de entrenamiento como la Adaptación de bajo rango (LoRA) que actualiza solo un pequeño subconjunto de parámetros del modelo). El umbral aplicable es difícil de determinar porque las cifras de cálculo previo al entrenamiento rara vez se publican. Mantener un registro de auditoría (un registro permanente de métricas de cumplimiento para la revisión regulatoria) en múltiples trabajos de capacitación agrega gastos operativos.
Los cálculos incorrectos cambian si usted opera como usuario intermedio o se enfrenta a la clasificación como proveedor completo del modelo GPAI. El medidor de FLOP de ajuste fino automatiza el proceso de seguimiento y aborda estos desafíos.
Descripción general de la solución
El medidor de FLOP de ajuste fino es un conjunto de herramientas de código abierto, disponible en el repositorio de recetas de IA generativa de Amazon SageMaker, que se integra en los flujos de trabajo de capacitación de Hugging Face en Amazon SageMaker AI. Realiza un seguimiento de los recursos computacionales a lo largo de todo el ciclo de vida de ajuste. El siguiente diagrama ilustra el flujo de trabajo de cumplimiento.
Figura 1. Flujo de trabajo de ajuste del cumplimiento del medidor FLOP
El conjunto de herramientas cubre tres etapas del ciclo de vida de ajuste, con el seguimiento del tiempo de ejecución como capacidad principal.
Primera etapa: una utilidad de estimación previa al entrenamiento opcional le permite comparar los FLOP esperados entre los métodos de entrenamiento (LoRA, Spectrum, Full) antes de iniciar un trabajo.
Segunda etapa: el seguimiento del tiempo de ejecución, la característica principal, utiliza Hugging Face TrainerCallback para calcular los FLOP en tiempo real durante el entrenamiento utilizando análisis basados en arquitectura y monitoreo de GPU basado en hardware a través de NVIDIA Management Library (NVML).
Tercera etapa: una pista de auditoría posterior a la capacitación almacena automáticamente métricas de cumplimiento completas en formato JSON. Puede conservar los resultados en Amazon Simple Storage Service (Amazon S3) o Amazon DynamoDB.
Puede participar con una sola línea de configuración (compute_flops: true). El medidor FLOP incluye un conocimiento eficiente de los parámetros utilizando una fórmula mejorada para estimar con precisión los enfoques de ajuste completo, LoRA y Spectrum. Genera documentación de cumplimiento lista para auditoría que cubre los campos requeridos para los informes de la Ley de IA de la UE y realiza una comparación de umbrales automatizada que ayuda a determinar el umbral regulatorio aplicable y señala si su trabajo de ajuste lo excede.
Implementación técnica
Las siguientes subsecciones cubren cómo se calculan los FLOP y cómo se integra el seguimiento con su flujo de trabajo de capacitación en Amazon SageMaker AI.
Requisitos previos
Debe completar los siguientes requisitos previos antes de poder ejecutar el tutorial del medidor FLOP:
Realice la siguiente solicitud de aumento de cuota para SageMaker AI. Para este caso de uso, necesita un mínimo de 1 instancia ml.g5.4xlarge (con 1 GPU NVIDIA A10G). En la consola de Cuotas de servicio, solicite las instancias G5 de cuota de SageMaker AI (ml.g5.4xlarge) para el uso del trabajo de capacitación: 1 Cree un rol de AWS Identity and Access Management (IAM) con las políticas administradas AmazonSageMakerFullAccess y AmazonS3FullAccess para brindar el acceso necesario a SageMaker AI para ejecutar los ejemplos. Asigne la siguiente política como una relación de confianza a su rol de IAM: { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } (Opcional) Cree un dominio de Amazon SageMaker Studio (consulte Utilice la configuración rápida para Amazon SageMaker AI) para acceder a los cuadernos de Jupyter con la función anterior. También puede utilizar JupyterLab en su configuración local.
Estos permisos otorgan un acceso amplio y no se recomienda su uso en entornos de producción. Para obtener orientación sobre cómo definir permisos más detallados, consulte la Guía para desarrolladores de SageMaker AI.
Fórmulas de cálculo de FLOP
Para generar informes de cumplimiento, utilice el método analítico (Flops_architecture) como métrica principal. El conjunto de herramientas también calcula un límite superior basado en hardware para informes conservadores. Ambos métodos se ejecutan automáticamente. Las siguientes secciones describen los detalles de implementación.
Las directrices de la Ley de IA de la UE (Sección A.2.1) describen dos enfoques para estimar el cálculo de entrenamiento:
Enfoque basado en arquitectura (analítico):
La fórmula estándar de la UE para transformadores densos es:
C ≈ 6 × P × D
Donde P es el número de parámetros y D es el número de tokens de entrenamiento. Esto supone un ajuste completo, donde todos los parámetros son entrenables.
Una fórmula mejorada tiene en cuenta métodos eficientes en parámetros:
F_ft = (4 × N_total + 2 × N_entrenable) × tokens_procesados
Aquí está el desglose:
4 × N_total — pase hacia adelante (2×) más cálculo de gradiente de paso hacia atrás a través de cada capa (2×), incluidas las congeladas 2 × N_trainable — cálculo de gradiente con respecto a los pesos entrenables únicamente
Para un ajuste completo donde N_total = N_entrenable, esto se reduce a 6 × N × D, que es equivalente a la fórmula de la UE. Para LoRA o Spectrum, proporciona una estimación más precisa (y más baja), lo que refleja que menos parámetros reciben actualizaciones de gradiente.
Enfoque basado en hardware (límite superior):
Este enfoque utiliza la siguiente fórmula:
C = N_gpus × L × H × U
Donde N_gpus es la cantidad de GPU, L es la duración del entrenamiento en segundos, H es el rendimiento teórico máximo (FLOP) y U es la utilización. El medidor FLOP utiliza U = 1,0 (100 % de utilización) para producir un límite superior conservador mediante la supervisión de GPU NVML.
Lógica de umbral
El conjunto de herramientas implementa la lógica de umbral de la Ley de IA de la UE en determine_compliance_threshold():
EU_AI_ACT_GPAI_THRESHOLD = 1e23 # 10²³ FLOP EU_AI_ACT_DEFAULT_THRESHOLD = 3.3e22 # Un tercio de 10²³ si pretrain_flops es Ninguno o pretrain_flops < EU_AI_ACT_GPAI_THRESHOLD: umbral = EU_AI_ACT_DEFAULT_THRESHOLD # "default_3.3e22" más: umbral = 0,30 * pretrain_flops # "30pct_of_actual_pretraining"
Integración con trabajos de formación de SageMaker
El medidor FLOP funciona como un entrenador de cara abrazada. Para activar el seguimiento, agregue una sola línea en la receta YAML:
Compute_flops: verdadero
Al iniciar el entrenamiento, el script de entrenamiento (sft.py) verifica este indicador y, si está activado, inicializa FlopsMeterCallback con recuentos de parámetros del modelo y una variable de entorno PRETRAIN_FLOPS opcional. Un TokenCountingSFTTrainer personalizado reemplaza al SFTTrainer estándar para contar tokens sin relleno en cada paso de entrenamiento.
n_total = suma(p.numel() para p en model.parameters()) n_trainable = suma(p.numel() para p en model.parameters() si p.requires_grad) flops_cb = FlopsMeterCallback( pad_token_id=tokenizer.pad_token_id, pretrain_flops=pretrain_flops, # de PRETRAIN_FLOPS env var sample_nvml=Verdadero, n_total=n_total, n_trainable=n_trainable, model_name=model_args.model_name_or_path, num_epochs=training_args.num_train_epochs,)
Al finalizar la capacitación, la devolución de llamada calcula los FLOP analíticos y de hardware, determina el umbral aplicable y escribe un archivo flops_meter.json en /opt/ml/output/. Luego, el paso ProcessTrainingOutputs de la canalización carga los resultados en Amazon S3 y los conserva en Amazon DynamoDB con fines de seguimiento de auditoría.
Tutorial
El siguiente tutorial utiliza meta-llama/Llama-3.2-3B-Instruct (3,21 mil millones de parámetros). Debido a que Meta no ha publicado FLOP de preentrenamiento exactos para este modelo, se aplica la ruta de umbral predeterminada: 3,3 × 10²² como umbral de cumplimiento.
Estimación previa al entrenamiento (opcional)
Una utilidad de estimación independiente (estimate_flops.py) compara los FLOP esperados entre los métodos de entrenamiento (LoRA, Spectrum y ajuste completo) antes de iniciar un trabajo. Esto es útil para la planificación: muestra qué tan cerca se acerca una configuración determinada al umbral de cumplimiento, lo que le ayuda a tomar decisiones informadas sobre el método de entrenamiento y el tamaño del conjunto de datos. La utilidad de estimación está separada del seguimiento del tiempo de ejecución principal y puede ejecutarla de forma independiente en una computadora portátil.
Seguimiento del tiempo de ejecución
Durante el entrenamiento, FlopsMeterCallback rastrea los FLOP en tiempo real. Aquí es donde ocurre la medición real del cumplimiento. Cuando comienza el entrenamiento (on_train_begin), la devolución de llamada captura los recuentos de parámetros del modelo (N_total, N_trainable), inicia un subproceso de monitoreo de GPU NVML y registra la marca de tiempo de inicio. A medida que avanza el entrenamiento, los tokens sin relleno se cuentan por lote en cada subpaso (on_substep_end) y se agregan entre las GPU en el entrenamiento distribuido. Cuando se completa el entrenamiento (on_train_end), la devolución de llamada calcula los FLOP basados en la arquitectura a partir del recuento de tokens acumulado, detiene la supervisión de NVML para calcular el límite superior del hardware, determina el umbral aplicable y escribe las métricas completas en flops_meter.json.
Una configuración de receta para Llama-3.2-3B con seguimiento LoRA y FLOP activado:
model_name_or_path: meta-llama/Llama-3.2-3B-Instruct dataset_id_or_path: your-dataset.jsonl use_peft: true Compute_flops: true per_device_train_batch_size: 8 num_train_epochs: 10 learning_rate: 2e-5 peft_config: r: 8 lora_alpha: 16 target_modules: ["q_proj", "v_proj"]
En su cuaderno de IA de Amazon SageMaker o script de Python, utilice la clase ModelTrainer del SDK v3 de SageMaker Python para iniciar el trabajo de capacitación como un trabajo de capacitación de SageMaker:
de sagemaker.modules.configs import Compute, SourceCode de sagemaker.modules.train import ModelTrainer Training_instance_type = "ml.g5.4xlarge" pytorch_image_uri = sagemaker.image_uris.retrieve( framework="pytorch", region=sess.boto_session.region_name, version="2.7.1", instancia_type=training_instance_type, image_scope="formación", ) código_fuente = CódigoFuente( fuente_dir="./sagemaker_code", comando="bash sm_accelerate_train.sh –config hf_recipes/meta-llama/Llama-3.2-3B-Instruct–vanilla-peft-qlora.yaml", ) calcular = Computar( tipo_instancia=tipo_instancia_formación, cuenta_instancia=1, volumen_tamaño_en_gb=300, ) model_trainer = ModelTrainer( formación_imagen=pytorch_image_uri, código_fuente=código_fuente, cálculo=calcular, rol=rol, entorno={ "FLOPS_METER_NVML": "1", }, ) model_trainer.train()
Debido a que no se conocen los FLOP de preentrenamiento para este modelo, se omite la variable de entorno PRETRAIN_FLOPS. El umbral predeterminado se aplica automáticamente.
Documentación de cumplimiento
Al finalizar la capacitación, la devolución de llamada genera un archivo flops_meter.json que contiene las métricas necesarias para la documentación regulatoria:
{ "Flops_architecture": "1.45e+13", "Flops_hardware": "1.52e+15", "Flops_original": null, "N_total": 1585294704, "N_trainable": 680094720, "threshold_type": "default_3.3e22", "threshold_value": "3.30e+22", "pct_of_pretrain": 0.000000439, "exceeds_30pct": false, "tokens_processed": 2150, "model_name": "meta-llama/Llama-3.2-3B-Instruct", "num_epochs": 10, "training_duration_segundos": 245,30, "gpu_name": "NVIDIA A10G", "instance_type": "ml.g5.4xlarge", "training_job_name": "pipelines-abc123-TrainingStep-xyz789", "recipe_config": "hf_recipes/meta-llama/Llama-3.2-3B-Instruct–vanilla-peft-qlora.yaml" }
Utilice Flops_architecture como su principal métrica de cumplimiento. Refleja con precisión su configuración de entrenamiento real. Flops_hardware proporciona un límite superior conservador y puede servir como margen de seguridad para informes muy cautelosos. Para la mayoría de los fines regulatorios, el valor analítico es suficiente.
Otros campos clave incluyen umbral_tipo, que indica qué regla de umbral se aplicó (predeterminada_3.3e22 ya que se desconocen los FLOP previos al entrenamiento), excede_30pct como indicador booleano para una evaluación rápida del cumplimiento y Flops_original, que es nulo cuando no se proporcionan los FLOP previos al entrenamiento.
La canalización carga automáticamente este archivo en Amazon S3 y lo almacena en Amazon DynamoDB, creando un seguimiento de auditoría persistente a lo largo de las ejecuciones de capacitación.
¿Qué pasa si superas el umbral?
Si su informe de cumplimiento muestra que excede_30pct: verdadero, está clasificado como proveedor de modelo GPAI según la Ley de IA de la UE. Sus próximos pasos incluirían: (1) documentar la arquitectura de su modelo y el proceso de capacitación, (2) preparar una lista pública de fuentes de datos de capacitación, (3) demostrar el cumplimiento de las leyes de derechos de autor de la UE y (4) considerar consultar con un asesor legal familiarizado con las regulaciones de IA de la UE. Tenga en cuenta que existen obligaciones adicionales si su modelo GPAI está clasificado como Riesgo Sistémico. También podría considerar reducir su alcance de entrenamiento (menos épocas, conjunto de datos más pequeño o cambiar a LoRA) para mantenerse por debajo del umbral.
Escalado a cargas de trabajo de producción
Este ejemplo utilizó un pequeño conjunto de datos con fines de demostración (2150 tokens). En producción, normalmente se procesan millones de tokens. Por ejemplo, ajustar Llama-3.2-3B en 1 millón de tokens con LoRA da como resultado aproximadamente 6,7×10¹⁸ FLOP, todavía muy por debajo del umbral de 3,3×10²². Sin embargo, el ajuste completo del mismo conjunto de datos consume aproximadamente 1,9 × 10¹⁹ FLOP, lo que lo acerca al umbral.
Como regla general, la preocupación por el cumplimiento comienza cuando sus FLOP alcanzan 10²¹ o más, aproximadamente el 3 % del umbral predeterminado. En ese punto, recomendamos ejecutar la herramienta de estimación previa a la capacitación antes de cada trabajo para verificar que esté alineado con los estándares de cumplimiento. Para la mayoría de los trabajos de ajuste de LoRA en modelos con parámetros inferiores a 10B, permanece muy por debajo del umbral incluso con millones de tokens de entrenamiento.
Empezando
El medidor FLOP está disponible como parte del repositorio de recetas de IA generativa de Amazon SageMaker.
Requisitos previos
Antes de comenzar, asegúrese de tener:
Una cuenta de AWS con acceso a Amazon SageMaker AI Interfaz de línea de comandos de AWS (AWS CLI) configurada con las credenciales adecuadas Python 3.11 o posterior instalado Familiaridad con Hugging Face Transformers y PyTorch
Procedimiento
Para iniciar el seguimiento de FLOP:
Clona el repositorio: git clone https://github.com/aws-samples/amazon-sagemaker-generativeai.git Abra el archivo de configuración de su receta (por ejemplo, hf_recipes/meta-llama/Llama-3.2-3B-Instruct–vanilla-peft-qlora.yaml) y agregue la siguiente línea: Compute_flops: true (opcional) Si conoce los FLOP de preentrenamiento para su modelo base, establezca la variable de entorno: export PRETRAIN_FLOPS="1.5e24" # Ejemplo: Llama-3-70B Inicie su trabajo de capacitación en Amazon SageMaker AI: abra su cuaderno de SageMaker AI o script de Python. Configure el Estimador PyTorch (consulte el ejemplo de código en la sección Tutorial). Ejecute estimator.fit() para iniciar el trabajo de entrenamiento. Una vez finalizada la capacitación, revise el archivo flops_meter.json generado en su ubicación de salida de Amazon S3. Debería ver un archivo JSON que contiene métricas de FLOP, determinación de umbral y estado de cumplimiento.
Para obtener una visión más profunda de la implementación, consulte el código fuente de flops_meter.py.
Limpiar
Para evitar cargos continuos, elimine los recursos que creó:
Deje de ejecutar trabajos de entrenamiento de SageMaker AI: Elimine las salidas de Amazon S3: Abra la consola de Amazon S3 Navegue hasta su depósito de resultados de entrenamiento Seleccione los archivos flops_meter.json y elija Eliminar O elimine todo el depósito si lo creó específicamente para este tutorial Elimine la tabla de Amazon DynamoDB si creó una específicamente para este tutorial: Elimine los puntos finales de SageMaker AI si implementó su modelo ajustado
Conclusión
En esta publicación, le mostramos cómo implementar el seguimiento de FLOP durante el ajuste de LLM en Amazon SageMaker AI. Aprendió cómo el medidor de FLOP de ajuste fino calcula los recursos computacionales utilizando métodos analíticos y basados en hardware, cómo aplica la regla de un tercio para ayudar a determinar los umbrales regulatorios y cómo generar documentación JSON lista para auditoría con un único indicador de configuración.
Con esta herramienta, puede concentrarse en crear modelos mientras mantiene total transparencia en su huella computacional.
Para comenzar, clone el repositorio y ejecute la herramienta de estimación previa al entrenamiento con su modelo y conjunto de datos planificados. Para obtener más información sobre cómo crear sistemas de IA alineados con el cumplimiento en AWS, consulte la documentación de Amazon SageMaker AI.