Cuando ajusta modelos de lenguaje grandes (LLM) con Amazon SageMaker AI mientras usa Databricks Unity Catalog, puede enfrentar desafíos únicos, como cómo mantener una estricta gobernanza de datos mientras utiliza los mejores servicios de aprendizaje automático (ML) de su clase.
Unity Catalog rige los metadatos y los permisos, mientras que los datos subyacentes residen en Amazon Simple Storage Service (Amazon S3) cuando elige AWS como entorno de nube para su Databricks Workspace. Cuando el trabajo de SageMaker AI Training accede a esos datos, debe preservar y no omitir el modelo de autorización detallado del Catálogo de Unity. Sin un patrón de integración estructurado, corre el riesgo de aplicar políticas inconsistentes, lagunas en las auditorías y exposición al cumplimiento. Por ejemplo, si los trabajos de capacitación de IA de SageMaker omiten el modelo de autorización de Unity Catalog al leer objetos de S3, perderá visibilidad sobre qué datos entrenaron qué modelos. Esto crea riesgos críticos de cumplimiento, particularmente en industrias reguladas y cargas de trabajo de producción.
En esta publicación, demostramos cómo crear un flujo de trabajo de ajuste LLM completo y seguro que integre Unity Catalog con Amazon SageMaker AI utilizando Amazon EMR Serverless para el preprocesamiento. La solución muestra cómo acceder de forma segura a datos gobernados, mantener el linaje entre servicios, ajustar el modelo Ministral-3-3B-Instruct y registrar artefactos entrenados nuevamente en Unity Catalog. Con este enfoque, puede continuar utilizando sus servicios existentes mientras preserva la gobernanza central y realiza un seguimiento del linaje de datos sin comprometer los requisitos de seguridad o cumplimiento.
Descripción general de la solución
El flujo de trabajo descrito en esta publicación logra lo siguiente:
Lee datos de entrenamiento de una tabla administrada de Unity Catalog con controles de gobernanza adecuados Preprocesa los datos usando EMR Serverless con Apache Spark Ajusta un modelo Ministral-3-3B-Instruct usando SageMaker AI Trabajos de entrenamiento Realiza un seguimiento del linaje de datos en Unity Catalog desde los datos de origen hasta el modelo entrenado
El siguiente diagrama ilustra la arquitectura:
Figura 1: Arquitectura de la solución que muestra el flujo de datos entre SageMaker AI Studio, EMR Serverless y Databricks Unity Catalog
Componente Propósito Amazon SageMaker AI Studio – JupyterLab Space Orquestación de flujo de trabajo y entrenamiento de modelos Amazon EMR Serverless Preprocesamiento de datos basado en Spark sin administración de clústeres Databricks Unity Catalog Catálogo de metadatos, gobernanza y seguimiento de linaje Hugging Face Acceso a modelos previamente entrenados Amazon S3 Almacenamiento para datos y artefactos de modelos AWS Secrets Manager Administración de credenciales
En esta solución, los usuarios inician sesión en SageMaker AI Studio e inician el preprocesamiento de datos mediante un trabajo EMR Serverless. El trabajo EMR Serverless accede y procesa datos desde un depósito S3 administrado por Unity Catalog utilizando las API REST abiertas de Unity Catalog con credenciales OAuth almacenadas en AWS Secrets Manager. Después de procesar los datos, cree una tabla en el Catálogo de Unity con los datos procesados. Luego, el trabajo de entrenamiento de IA de SageMaker recupera el modelo Ministral-3-3B-Instruct de Hugging Face, lo ajusta en la tabla procesada y almacena los artefactos del modelo resultante en el depósito S3 administrado por Unity Catalog. Finalmente, registre el modelo en Unity Catalog y cree un linaje de datos externos. Este flujo de trabajo completo integra SageMaker AI, EMR Serverless y Databricks Unity Catalog para un ajuste fino de LLM gobernado y escalable.
Requisitos previos
Antes de comenzar, verifique que tenga lo siguiente:
Tutorial
Esta sección recorre el proceso completo para ajustar LLM utilizando los datos que rige Unity Catalog. Descargue el cuaderno completo LLM_Finetunig_SageMaker_AI_Unity_Catalog.ipynb y ejecútelo en SageMaker AI Studio siguiendo los siguientes pasos:
Navegue hasta la consola de Amazon SageMaker AI. Cree un dominio de SageMaker Studio mediante la Configuración rápida (si no tiene un dominio existente). Inicie sesión en SageMaker AI Studio. Cree un espacio JupyterLab con la siguiente configuración Tipo de instancia: ml.m5.2xlarge Imagen: Sagemaker Distribution 3.8.0 Almacenamiento: 5 GB Cargue el cuaderno Jupyter descargado. Abra el cuaderno (seleccione Python3 (ipykernel) como núcleo).
Las siguientes secciones describen los pasos clave a alto nivel. Consulte el cuaderno para conocer la implementación completa del código.
Paso 1: configuración de AWS
Al final de este paso, habrá completado las siguientes configuraciones.
Detalles de requisitos Buckets de Amazon S3 Crear un Bucket S3 que será administrado por Unity Catalog y cargar datos AWS Secrets Manager Crear un secreto para almacenar las credenciales de Databricks OAuth Roles de AWS IAM Crear un rol de ejecución de IA de SageMaker y un rol de tiempo de ejecución de trabajos sin servidor de EMR
Configuración del depósito S3/Cargar conjunto de datos
El cuaderno utiliza datos de presentaciones de SEC EDGAR (Recopilación, análisis y recuperación de datos electrónicos de la Comisión de Bolsa y Valores de EE. UU.) para realizar ajustes en el LLM. SEC EDGAR es la base de datos pública de presentaciones corporativas de la SEC. La solución obtiene formularios 10-K y 10-Q para empresas del S&P 500 de 2023 a 2024 a través de las API públicas de la SEC, descarga documentos de presentación, extrae la sección de factores de riesgo y carga los datos en un depósito de Amazon S3. Los archivos se almacenan en formato JSON, y cada registro contiene el identificador de la empresa (CIK), el símbolo de cotización, el nombre de la entidad, el tipo de presentación, el período fiscal y el texto completo de las divulgaciones de factores de riesgo donde las empresas describen posibles riesgos comerciales, financieros, regulatorios y operativos. Después de cargar los datos, verá la siguiente estructura dentro de su depósito de S3:
s3://aws-blog-smai-uc-bucket-ACCOUNTID/
├── crudo/
│ └── factores_de_riesgo/
│ ├── tipo_formulario=10-K/
│ │ └── año_fiscal=2024/
│ │ └── cik=0000320193/
│ │ └── factores_de_riesgo.json
│ └── tipo_formulario=10-Q/
│ └── año_fiscal=2024/
│ └── trimestre=1/
│ └── cik=0000320193/
│ └── factores_de_riesgo.json
├── curado/
│
└──ml/
Almacenar credenciales de Databricks
Databricks admite múltiples métodos de autenticación y autorización para controlar el acceso a sus recursos. Esta solución utiliza OAuth para entidades de servicio (OAuth M2M), que proporciona tokens de OAuth de corta duración para entidades de servicio. El uso de OAuth 2.0 es el protocolo de autenticación preferido para acceder a Databricks fuera de la consola. La autorización OAuth requiere una identificación y un secreto del cliente. Cuando una entidad de servicio se autentica y recibe su consentimiento, OAuth emite un token de acceso para que lo utilice el SDK u otra herramienta. Primero, cree una entidad de servicio y genere un secreto de OAuth siguiendo la documentación de Databricks. Luego, almacene la identificación del cliente y el secreto en AWS Secrets Manager para administrar y recuperar las credenciales de forma segura.
Crear roles de IAM
En los pasos posteriores, utilizará los trabajos de EMR Serverless Job y SageMaker AI Training. Ambos requieren la función de IAM para acceder a otros servicios de AWS y ejecutar los trabajos. Revise los roles de tiempo de ejecución de trabajos para Amazon EMR Serverless y Cómo utilizar los roles de ejecución de SageMaker AI para obtener más información sobre cómo funcionan los trabajos de EMR Serverless y SageMaker AI con IAM. A continuación se muestran ejemplos de políticas de IAM para cada función de IAM. Consulte la sección 1-4 Crear roles de IAM del cuaderno para obtener una guía de implementación completa.
Función de tiempo de ejecución sin servidor de EMR
Política de rol de ejecución de IA de SageMaker
Paso 2: Configuración del catálogo de Databricks Unity
A continuación, complete los siguientes pasos de configuración en el lado del catálogo de Unity de Databricks y confirme el acceso a la tabla del catálogo de Unity a través del SDK de Databricks.
Al finalizar, tendrá la siguiente estructura del catálogo de Unity con los permisos adecuados configurados para su entidad de servicio:
UNITY_CATALOG_NAME
├── UNITY_SCHEMA_DATA (sin procesar)
│ └── UNITY_TABLE_NAME (tabla externa que apunta a UC_MANAGED_BUCKET/raw/)
├── UNITY_SCHEMA_TRAINING (comisariado)
│ └── (datos de entrenamiento procesados)
└── UNITY_SCHEMA_MODEL (ml)
└── (artefactos modelo y versiones)
Después de la configuración de Unity Catalog, inicialice su cliente de Databricks y pruebe la conexión a Unity Catalog antes de continuar con los siguientes pasos. El cuaderno utiliza AWS Secrets Manager para recuperar el ID y el secreto del cliente. Después de una autenticación exitosa, puede recuperar los detalles de la tabla de Unity Catalog, como la ubicación de almacenamiento y el formato de la tabla.
# Inicializar el cliente de Databricks desde databricks.sdk import WorkspaceClient w = WorkspaceClient( host=UNITY_WORKSPACE_URL, client_id=DATABRICKS_CLIENT_ID, client_secret=DATABRICKS_CLIENT_SECRET ) table_info = w.tables.get(f"{UNITY_CATALOG_NAME}.{UNITY_SCHEMA_DATA}.{UNITY_TABLE_NAME}") print(f"Tabla: {table_info.name}") print(f"Ubicación de almacenamiento: {table_info.storage_location}") print(f"Formato de tabla: {table_info.data_source_format}") Salida: Tabla: Risk_factors Ubicación de almacenamiento: s3:// aws-blog-smai-uc-bucket-ACCOUNTID/raw/risk_factors Formato de tabla: DataSourceFormat.DELTA
Paso 3: configuración de la aplicación EMR Serverless
En este paso, creará una aplicación EMR Serverless utilizando una VPC con acceso a Internet. La solución primero identifica la ubicación del depósito S3 desde Unity Catalog, luego el trabajo EMR Serverless lee y escribe en la tabla Delta en ese depósito S3. Debido a que EMR Serverless no incluye compatibilidad con Delta Lake de forma predeterminada a partir de febrero de 2026, la aplicación Spark debe descargar archivos JAR de Delta Lake desde el repositorio central de Maven a Internet durante la fase de inicialización. Sin acceso a Internet, esta descarga fallará y la aplicación Spark no podrá resolver el formato de la tabla Delta, lo que provocará que el trabajo falle al inicio. Configure su aplicación EMR Serverless para usar subredes existentes con acceso a Internet o consulte la sección 1.4 Configuración de VPC y acceso a Internet de la computadora portátil para configurar esto.
Paso 4: preprocesamiento de datos con el trabajo EMR Serverless
A continuación, cree un script de preprocesamiento y envíe un trabajo EMR Serverless. El script de preprocesamiento lee los factores de riesgo de SEC EDGAR de una tabla Delta, filtra y limpia los datos de texto, los formatea en un mensaje de estilo de instrucción para realizar ajustes y escribe los resultados procesados como una tabla Delta en S3.
Configure sparkSubmitParameters en las configuraciones de Spark del trabajo sin servidor de EMR para descargar la biblioteca Delta Lake desde el repositorio central de Maven y configurar las extensiones SQL específicas de Delta y las configuraciones del catálogo como se muestra a continuación. Estos parámetros permiten que la aplicación EMR Serverless Spark lea y escriba tablas Delta en S3 para el preprocesamiento de datos. Consulte la sección 4-3 Enviar trabajos de EMR del cuaderno para conocer la implementación completa del código.
Una vez que se complete el trabajo de EMR Serverless, registre los datos de entrenamiento preprocesados como una tabla Delta en el esquema seleccionado de Unity Catalog, apuntando a los datos procesados en S3. Ejecute instrucciones SQL a través de un almacén SQL sin servidor de Databricks mediante el SDK de Databricks y cree una tabla en el esquema seleccionado dentro de Unity Catalog.
Paso 5: Ajuste con el trabajo de capacitación de IA de SageMaker
Después de preparar el conjunto de datos para la capacitación, utilice un trabajo de capacitación de IA de SageMaker para ajustar un LLM. Esta solución utiliza el modelo Ministral-3-3B-Instruct-2512 previamente entrenado y alojado en Hugging Face. Es un modelo compacto de seguimiento de instrucciones de 3 mil millones de parámetros de Mistral AI, diseñado para una implementación eficiente y al mismo tiempo mantiene un sólido rendimiento en tareas de razonamiento.
Para configurar el trabajo de capacitación de SageMaker AI, primero cree un script de capacitación y cárguelo en el depósito de S3. El guión de entrenamiento en el cuaderno afina el modelo Ministral-3B-Instruct utilizando técnicas de memoria eficiente. Carga el modelo en cuantificación de punto flotante de 8 bits (FP8) para reducir el uso de memoria, luego aplica la Adaptación de rango bajo (LoRA) para entrenar solo entre el 1% y el 2% de los parámetros en lugar de los 3 mil millones completos. El script lee los datos preprocesados de los pasos anteriores y los tokeniza con una ventana contextual de 1024 tokens. Consulte la sección 5.1 Crear guión de capacitación del cuaderno para ver la implementación de muestra.
A continuación, configure y envíe un trabajo de capacitación. Esta solución utiliza una instancia ml.g5.16xlarge para el entrenamiento del modelo y pasa la ubicación S3 de los datos procesados de los pasos anteriores como entrada de entrenamiento. El trabajo de entrenamiento de SageMaker AI carga los artefactos del modelo ajustados al depósito de S3 una vez que se completa el trabajo.
Paso 6: Registrar artefactos modelo en Unity Catalog
Después de cargar los artefactos del modelo en S3, registre el modelo ajustado en el esquema de aprendizaje automático de Unity Catalog mediante Managed MLflow en Databricks a través del SDK. Con Unity Catalog, puede crear un objeto Modelo para control de acceso, gestión del ciclo de vida y descubrimiento de modelos ML. Databricks proporciona una capacidad de registro de modelos de MLflow en Unity Catalog. Crea un experimento de MLflow para registrar metadatos de entrenamiento (hiperparámetros, tabla de origen, detalles del trabajo de entrenamiento) y registra el modelo con control de versiones y documentación, incluido el linaje de datos de origen, el servicio de entrenamiento y las especificaciones del modelo. Una vez registrado el modelo, puede verlo en la consola de Unity Catalog.
Paso 7: Crear linaje de datos en Unity Catalog
Por último, cree un linaje de datos en Unity Catalog. El seguimiento del linaje de datos proporciona visibilidad sobre qué datos entrenaron cada modelo, creando un seguimiento de auditoría para el cumplimiento y la gobernanza. También agiliza la depuración al rastrear los problemas hasta su origen. Esto es particularmente importante para industrias reguladas y entornos de producción de aprendizaje automático donde la calidad de los datos y la confiabilidad del modelo son fundamentales.
Databricks Unity Catalog captura automáticamente el linaje de datos en tiempo de ejecución en las consultas ejecutadas en Databricks. Para cargas de trabajo que se ejecutan fuera de Databricks (por ejemplo, trabajos sin servidor de EMR, trabajos de entrenamiento de IA de SageMaker), puede agregar metadatos y linaje externos a través de la API de metadatos externos y la API de linaje externo. Esta capacidad de “traiga su propio linaje de datos” (actualmente en versión preliminar pública a partir de abril de 2026) le brinda una vista completa del linaje en Unity Catalog.
Cree metadatos externos para el trabajo de preprocesamiento con el trabajo EMR Serverless y el trabajo de ajuste con el trabajo SageMaker AI Training. Luego, cree linajes ascendentes y descendentes utilizando el linaje externo. Necesitas lo siguiente:
Objeto de metadatos externos del trabajo EMR Serverless Linaje ascendente (tabla sin procesar → Trabajo sin servidor EMR) Linaje descendente (trabajo sin servidor EMR → tabla preprocesada) Objeto de metadatos externos del trabajo de entrenamiento de SageMaker AI Linaje ascendente (tabla preprocesada → Trabajo de entrenamiento de SageMaker AI) Linaje descendente (trabajo de entrenamiento de SageMaker AI → Versión del modelo)
Después de crear el linaje de datos externos con los pasos anteriores, puede ver el gráfico del linaje de datos desde los datos de origen hasta el modelo ajustado en la consola de Unity Catalog.
Limpieza
Después de probar la solución, elimine los siguientes recursos para evitar cargos continuos:
Aplicación sin servidor EMR Objetos y depósitos S3 Roles y políticas de IAM Secretos de AWS Secrets Manager Recursos de VPC Recursos del catálogo de Unity (catálogo, esquema, tabla y entidad de servicio)
Consulte la sección Paso 8: Recursos de limpieza del portátil para obtener orientación paso a paso.
Conclusión
En esta publicación, le mostramos cómo integrar Databricks Unity Catalog con Amazon SageMaker AI para lograr un ajuste fino gobernado de LLM en todos los servicios. Al combinar Unity Catalog para metadatos centralizados, control de acceso y linaje con Amazon EMR Serverless para preprocesamiento y SageMaker AI Training para desarrollo de modelos escalables, puede mantener la continuidad de la gobernanza mientras utiliza las capacidades de AWS ML. Demostramos cómo acceder de forma segura a los datos administrados por Unity Catalog, preprocesarlos usando Spark, ajustar el modelo Ministral-3-3B-Instruct, registrar el modelo nuevamente en Unity Catalog y capturar el linaje en todos los sistemas. Con este enfoque, puede adoptar una arquitectura especializada y, al mismo tiempo, respaldar sus requisitos de seguridad y cumplimiento.
Para comenzar, descargue el cuaderno, implemente la arquitectura de referencia en su cuenta de AWS y pruebe el flujo de trabajo con un conjunto de datos administrado por Unity Catalog. Utilice este patrón como base para crear cargas de trabajo de IA generativa y aprendizaje automático gobernadas y listas para producción en todo su entorno multiservicio. Luego, pruebe este patrón para otros LLM y conjuntos de datos más grandes. ¿Tiene alguna pregunta? Comparta sus preguntas y comentarios en los comentarios.