Del ajuste fino a la producción: Un flujo de procesamiento de incorporación escalable con Dataflow

4 DE SEPTIEMBRE DE 2025
Danny McCormick Staff Software Engineer Google Cloud Dataflow
Ian Ballantyne Senior Developer Relations Engineer Google DeepMind

El mundo de la IA se está moviendo a un ritmo emocionante, y las incorporaciones son el núcleo de muchas aplicaciones modernas como la búsqueda semántica y la generación aumentada de recuperación (RAG). Hoy, nos complace analizar cómo puedes aprovechar el nuevo modelo de incorporación abierto de 308 millones de parámetros altamente eficiente de Google, EmbeddingGemma. Si bien su pequeño tamaño lo hace perfecto para aplicaciones en el dispositivo, esta misma eficiencia abre nuevas y poderosas posibilidades para la nube, especialmente cuando se trata de personalización a través del ajuste fino. Te mostraremos cómo usar EmbeddingGemma con Dataflow de Google Cloud y bases de datos vectoriales como AlloyDB para crear un flujo de procesamiento de ingestión de conocimiento escalable y en tiempo real.


El poder de las incorporaciones y Dataflow

Las incorporaciones son representaciones vectoriales numéricas de datos que capturan las relaciones subyacentes entre palabras y conceptos. Son la piedra angular de las aplicaciones que necesitan comprender la información en un nivel conceptual más profundo, desde la búsqueda de documentos que sean semánticamente similares a una consulta hasta proporcionar un contexto relevante para los modelos de lenguaje grande (LLM) en sistemas RAG.

Para impulsar estas aplicaciones, se necesita un flujo de procesamiento de ingestión de conocimientos sólido que pueda procesar datos no estructurados, convertirlos en incorporaciones y cargarlos en una base de datos vectorial especializada. Aquí es donde Dataflow puede ayudar al encapsular estos pasos en un único flujo de procesamiento administrado.

El uso de un modelo abierto pequeño y altamente eficiente como EmbeddingGemma en el núcleo de tu flujo de procesamiento hace que todo el proceso sea autónomo, lo que puede simplificar la administración a través de la eliminación de la necesidad de llamadas de red externas a otros servicios para el paso de incorporación. Debido a que es un modelo abierto, se puede alojar completamente dentro de Dataflow. Esto proporciona la confianza para procesar de forma segura conjuntos de datos privados a gran escala.

Más allá de estos beneficios operativos, EmbeddingGemma también se puede ajustar, lo que te permite personalizarlo según tus necesidades específicas de incorporación de datos; puedes encontrar un ejemplo de ajuste aquí. La calidad es tan importante como la escalabilidad, y EmbeddingGemma también sobresale en este aspecto. Es el modelo de integración multilingüe de solo texto mejor clasificado con menos de 500 MILLONES de parámetros en el marcador multilingüe de Massive Text Embedding Benchmark (MTEB).

Dataflow es una plataforma de ajuste de escala automático totalmente administrada para el procesamiento unificado de datos por lotes y en streaming. Al incluir un modelo como EmbeddingGemma directamente en un flujo de procesamiento de Dataflow, obtienes varias ventajas:

  • Eficiencia desde la localidad de datos: el procesamiento se realiza en los trabajadores de Dataflow, lo que elimina la necesidad de llamadas a procedimientos remotos (RPC) a un servicio de inferencia separado y evita problemas de cuotas y ajuste de escala automático de múltiples sistemas juntos. Todo tu flujo de trabajo se puede agrupar en un solo conjunto de trabajadores, lo que reduce tu huella de recursos.

  • Sistema unificado: un solo sistema maneja el ajuste de escala automático, la observación y el monitoreo, lo que simplifica tus gastos operativos.

  • Escalabilidad y simplicidad: Dataflow escala automáticamente tu flujo de procesamiento hacia arriba o hacia abajo en función de la demanda, y las transformaciones de Apache Beam reducen el código repetitivo.


Creación del flujo de procesamiento de ingestión con Dataflow ML

Un flujo de procesamiento de ingestión de conocimiento típico consta de cuatro fases: lectura de una fuente de datos, preprocesamiento de los datos, generación de incorporaciones y escritura en una base de datos vectorial.

Dataflow's MLTransform
Con “MLTransform” de Dataflow, un potente “PTransform” para la preparación de datos, todo este flujo de trabajo se puede implementar en solo unas pocas líneas de código.

Generación de incrustaciones Gemma con MLTransform

Veamos cómo usar el nuevo modelo de Gemma para generar incorporaciones de texto. Este ejemplo, adaptado del notebook de EmbeddingGemma, muestra cómo configurar MLTransform para usar un modelo Hugging Face y luego escribir los resultados en AlloyDB, donde las incorporaciones se pueden usar para la búsqueda semántica. Bases de datos como AlloyDB nos permiten combinar esta búsqueda semántica con una búsqueda estructurada adicional para proporcionar resultados pertinentes y de alta calidad.

En primer lugar, definimos el nombre del modelo que utilizaremos para las incorporaciones junto con una transformación que especifica las columnas que queremos incorporar y el tipo de modelo que estamos utilizando.

import tempfile
import apache_beam as beam
from apache_beam.ml.transforms.base import MLTransform
from apache_beam.ml.transforms.embeddings.huggingface import SentenceTransformerEmbeddings
 
# The new Gemma model for generating embeddings. You can replace this with your fine tuned model just by changing this path.
text_embedding_model_name = 'google/embeddinggemma-300m'
 
# Define the embedding transform with our Gemma model
embedding_transform = SentenceTransformerEmbeddings(
    model_name=text_embedding_model_name, columns=['x']
)
Python

Una vez que hayamos generado incorporaciones, canalizaremos la salida directamente a nuestro sumidero, que generalmente será una base de datos vectorial. Para escribir estas incorporaciones, definiremos un VectorDatabaseWriteTransform basado en la configuración.

En este caso, usaremos AlloyDB como nuestro sumidero pasando un objeto AlloyDBVectorWriterConfig. Dataflow admite la escritura en muchas bases de datos vectoriales, incluidas AlloyDB, CloudSQL y BigQuery, utilizando solo objetos de configuración.

# Define the config used to write to AlloyDB
alloydb_writer_config = AlloyDBVectorWriterConfig(
    connection_config=connection_config,
    table_name=table_name
)
 
# Build and run the pipeline
with beam.Pipeline() as pipeline:
  _ = (
      pipeline
      | "CreateData" >> beam.Create(content) # In production could be replaced by a transform to read from any source
      # MLTransform generates the embeddings
      | "Generate Embeddings" >> MLTransform(
          write_artifact_location=tempfile.mkdtemp()
      ).with_transform(embedding_transform)
      # The output is written to our vector database
      | 'Write to AlloyDB' >> VectorDatabaseWriteTransform(alloydb_writer_config)
  )
Python

Este patrón simple, pero potente, te permite procesar conjuntos de datos masivos en paralelo, generar incorporaciones con EmbeddingGemma (308 millones de parámetros) y rellenar tu base de datos vectorial, todo dentro de un flujo de procesamiento único, escalable, rentable y administrado.


Empieza hoy mismo

Al combinar los últimos modelos de Gemma con la escalabilidad de Dataflow y el poder de búsqueda vectorial de bases de datos vectoriales como AlloyDB, puedes crear aplicaciones de IA sofisticadas y de próxima generación con facilidad.

Para obtener más información, explora la documentación de Dataflow ML, especialmente la documentación sobre la preparación de datos y la generación de incorporaciones. También puedes probar un flujo de procesamiento simple utilizando EmbeddingGemma siguiendo este notebook.

Para la mayoría de las aplicaciones de servidor a gran escala, explora nuestro modelo de incorporación de Gemini de última generación a través de la API de Gemini para obtener la más alta calidad y el máximo rendimiento.

Para obtener más información sobre EmbeddingGemma, lee nuestro anuncio de lanzamiento en el blog de desarrolladores de Google.