Acerca de la Arquitectura
La arquitectura implica una solución multinube con Google Cloud y OCI donde GKE organiza el proceso general de entrenamiento e inferencia mientras descarga la parte computacionalmente intensiva a OCI AI Infrastructure a demanda. Los datos se transfieren entre las dos nubes y los resultados se devuelven a GKE para su posterior procesamiento.
El siguiente diagrama ilustra la arquitectura de referencia:
Componentes de la arquitectura
Esta arquitectura contiene los siguientes componentes:
- GKE Cluster (Kubernetes Engine de Google)
El cluster de GKE gestiona trabajos de entrenamiento de modelos en contenedores y envía trabajos de entrenamiento al cluster de Kubernetes.
- Definición de trabajo de entrenamiento de modelo
La definición del trabajo de entrenamiento de modelo especifica el script de entrenamiento, la ubicación de los datos (almacenamiento en la nube), los parámetros del modelo y el número deseado de nodos de trabajador.
- Script de formación en contenedores
Un script de entrenamiento en contenedores se ejecuta en nodos de trabajador y realiza el entrenamiento del modelo real mediante el modelo que se ejecuta en la infraestructura de IA de OCI.
- Operador de Kubernetes (opcional)
El operador de Kubernetes es un parámetro opcional que automatiza el despliegue y la gestión de trabajos de formación en GKE.
- Almacenamiento en la nube
El almacenamiento en la nube almacena los datos de entrenamiento y los artefactos de modelo.
- Supervisión en la nube (opcional)
Cloud Monitoring es un componente opcional que supervisa el estado del trabajo, la utilización de recursos y las métricas de formación.
- Resultados de Modelo
Los resultados del modelo se devuelven a GKE para su evaluación, almacenamiento o despliegue.
- Dominio de disponibilidad
Los dominios de disponibilidad son centros de datos independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, un fallo en un dominio de disponibilidad no debería afectar a los otros dominios de disponibilidad de la región.
- FastConnect
Oracle Cloud Infrastructure FastConnect proporciona una forma sencilla de crear una conexión privada y dedicada entre el centro de datos y Oracle Cloud Infrastructure. FastConnect proporciona opciones de mayor ancho de banda y una experiencia de red más fiable en comparación con las conexiones basadas en Internet.
- Región
Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes entre sí y puede haber grandes distancias que las separen (entre países e incluso continentes).
- Red y subred virtuales en la nube (VCN)
Una VCN es una red personalizable y definida por software que puede configurar en una región de Oracle Cloud Infrastructure. Al igual que las redes de los centros de datos tradicionales, las redes virtuales le proporcionan el control de su entorno de red. Una VCN puede tener varios bloques de CIDR no superpuestos que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, las cuales se pueden acotar a una región o a un dominio de disponibilidad. Cada subred está formada por un rango contiguo de direcciones que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.
- Compute
El servicio Oracle Cloud Infrastructure Compute permite aprovisionar y gestionar hosts informáticos en la nube. Puede iniciar instancias informáticas con unidades que cumplan los requisitos de recursos de CPU, memoria, ancho de banda de red y almacenamiento. Después de crear una instancia informática, puede acceder a ella de forma segura, reiniciarla, asociar y desconectar volúmenes y terminarla cuando ya no lo necesite.
- Motor de contenedor para Kubernetes
Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) es un servicio totalmente gestionado, escalable y disponible que puede utilizar para desplegar las aplicaciones en contenedores en la nube. Especifique los recursos informáticos que necesitan sus aplicaciones y Container Engine for Kubernetes los provisionará en Oracle Cloud Infrastructure en un arrendamiento existente. Container Engine for Kubernetes utiliza Kubernetes para automatizar el despliegue, el ajuste y la gestión de aplicaciones en contenedores en clusters de hosts.
- Oracle Interconnect for Google Cloud
Oracle Interconnect for Google Cloud es un servicio de interconexión privado dedicado que combina conexiones de socios de OCI FastConnect e interconexiones de socios de Google Cloud que ayuda a los clientes multinube a innovar en dos nubes y aplicar herramientas existentes y familiares para soportar cargas de trabajo.
Flujo de comunicación
En esta arquitectura, el tráfico de datos fluye de esta forma:
- Los clientes envían una definición de trabajo de entrenamiento de modelo a través de GKE.
- La definición del trabajo especifica el script de entrenamiento en contenedores, la ubicación de los datos y los nodos de trabajador deseados.
- Los nodos de trabajador extraen el script de entrenamiento y los datos de Cloud Storage. El script de entrenamiento aprovecha las GPU que se ejecutan en OCI AI Infrastructure para entrenar el modelo.
- Los resultados de la formación se cargan en Cloud Storage o se envían de nuevo a GKE para su posterior procesamiento.
- El control en la nube opcional recopila métricas de la tarea de formación para realizar análisis de rendimiento.
Casos de uso de inferencia adicionales
Además del caso de uso descrito anteriormente, esta arquitectura también admite dos casos de uso de inferencia:
- Inferencia en tiempo real con requisitos de baja latencia.
- Inferencia de lotes para conjuntos de datos grandes.
Inferencia en tiempo real con requisitos de baja latencia
En este caso de uso, los clientes necesitan respuestas inmediatas del modelo de LLM para aplicaciones como bots conversacionales, asistentes virtuales o traducción en tiempo real. La solución diseña el siguiente flujo de datos:
- La entrada del usuario se envía al entorno GKE que se ejecuta en GCP.
- GKE organiza la solicitud en la infraestructura de IA de OCI.
- La infraestructura de IA de OCI procesa la entrada mediante el modelo de LLM desplegado.
- Los resultados de inferencia se devuelven a GKE.
- GKE formatea y envía la respuesta al usuario.
- Proporciona una inferencia de baja latencia debido a Oracle Interconnect for Google Cloud, lo que reduce la proximidad de la infraestructura de inferencia a la aplicación.
- Tiene suficiente escalabilidad para manejar cargas de inferencia variables a través de las capacidades elásticas de OCI AI Infrastructure.
- Ofrece posibles ahorros de costos al optimizar el hardware y el software de inferencia.
Inferencia de lote para juegos de datos grandes
En este caso, los clientes necesitan procesar grandes volúmenes de datos a través del modelo de LLM en modo por lotes, como el análisis de sentimientos en un conjunto de datos masivo o la generación de resúmenes para un gran corpus de documentos. Puede abordar este caso mediante la implantación de este flujo de datos:
- Los datos se preparan y almacenan en un cubo de almacenamiento de Google Cloud.
- Un trabajo por lotes se inicia en GKE, disparado por Cloud Scheduler o Cloud Functions.
- GKE organiza la transferencia de datos a la infraestructura de IA de OCI.
- OCI AI Infrastructure procesa los datos en lotes mediante el modelo LLM.
- Los resultados de inferencia se almacenan en un cubo de almacenamiento de Google Cloud.
- El procesamiento posterior, si es necesario, se realiza en GKE.
- Proporciona un procesamiento rentable de grandes conjuntos de datos aprovechando la potencia informática de OCI AI Infrastructure.
- Proporciona un rendimiento mejorado en comparación con la inferencia de ejecución solo en GKE.
- Tiene la capacidad de manejar diversos formatos y tamaños de datos.