Skip to main content

Embedder

Un Embedder convierte el texto en vectores numéricos de longitud fija, llamados embeddings, que representan su significado. Los textos con significados similares tienden a producir vectores que están cerca entre sí, lo que permite la búsqueda semántica y la comparación de documentos.

LogicalDOC admite dos implementaciones:

  • Paragraph Embedder: un modelo entrenable basado en Doc2Vec. Este es el modelo que anteriormente se llamaba simplemente Embedder.
  • Mini Embedder: un modelo preentrenado basado en MiniLM que no requiere entrenamiento dentro de LogicalDOC.

Los embeddings resultantes se almacenan en un Vector Store. Un documento se puede dividir en fragmentos de texto (chunks), generando un vector independiente para cada fragmento.

1

Paragraph Embedder

El Paragraph Embedder utiliza el algoritmo Doc2Vec, a través de la implementación ParagraphVectors de DL4J, para aprender el vocabulario y las relaciones contextuales a partir de una colección de texto suministrada.

Durante el entrenamiento, el modelo aprende qué palabras y párrafos aparecen en contextos similares. Una vez entrenado, puede convertir fragmentos de documentos y consultas de búsqueda en vectores.

Datos de Entrenamiento

Un Sampler suministra el texto utilizado para entrenar el modelo. Puede preparar los datos de entrenamiento de dos formas:

  • Paragraph Sampler: lee un archivo de texto preparado y crea una muestra por cada párrafo. Los párrafos deben estar separados por líneas en blanco.
  • Content Sampler: recopila el texto indizado de los documentos de una carpeta del repositorio seleccionada, incluyendo opcionalmente sus subcarpetas. Cada documento se convierte en una muestra de entrenamiento.

Por ejemplo, un archivo utilizado por el Paragraph Sampler podría contener:

Las facturas registran los productos o servicios suministrados a un cliente.
Por lo general, incluyen las condiciones de pago y el importe total adeudado.

Los contratos definen las responsabilidades de las partes involucradas.
También pueden especificar plazos y condiciones de rescisión.

La calidad de los embeddings depende del corpus de entrenamiento. Utilice suficiente texto representativo para cubrir los idiomas, temas y terminología de sus documentos.

Las palabras ausentes del vocabulario entrenado no pueden contribuir a un embedding. Si no se reconoce ninguna de las palabras de entrada, el resultado es un vector cero sin información semántica útil.

Propiedades

La pestaña Propiedades contiene la configuración para el entrenamiento de Doc2Vec, la inferencia y la fragmentación del texto (chunking).

  • Seed: valor utilizado para inicializar la generación de números aleatorios.
  • Workers: número de hilos de ejecución (threads) utilizados para el entrenamiento.
  • Window size: número de palabras cercanas consideradas por el algoritmo Doc2Vec al aprender el contexto.
  • Vector Size: número de elementos en cada vector. El valor predeterminado para el Paragraph Embedder es 300. El Mini Embedder utiliza un tamaño fijo de 384.
  • Min. word freq: número mínimo de apariciones requeridas para que una palabra entre en el vocabulario de entrenamiento. Las palabras menos frecuentes se descartan.
  • Max chunks: número máximo de fragmentos de texto procesados para cada documento.
  • Chunk size: número objetivo de tokens en cada fragmento.
  • Min. chunk size: número mínimo de tokens y caracteres requeridos para procesar un fragmento.
  • Alpha: tasa de aprendizaje inicial, que controla el tamaño de las actualizaciones del modelo. El valor predeterminado es 0,025.
  • Min Alpha: tasa de aprendizaje mínima. Durante la inferencia de Doc2Vec, la tasa de aprendizaje disminuye linealmente hacia este valor a lo largo de las épocas de inferencia. El valor predeterminado es 0,0001.

La configuración de Doc2Vec se aplica al Paragraph Embedder. El Mini Embedder no requiere entrenamiento local.

 

2

Mini Embedder

El Mini Embedder utiliza un transformer MiniLM-L6-v2 preentrenado para convertir texto en vectores de 384 dimensiones.

El modelo ya contiene representaciones del lenguaje aprendidas a partir de un corpus de entrenamiento externo. No construye su vocabulario a partir de su repositorio, no utiliza un Sampler ni proporciona un paso de entrenamiento local.

Cómo Funciona

Un tokenizador compatible de Hugging Face convierte el texto de entrada en tokens. El modelo MiniLM genera una representación para cada token, y LogicalDOC promedia las representaciones de los tokens válidos para producir un único embedding. Las posiciones de relleno (padding) se excluyen de este promedio.

A continuación, LogicalDOC normaliza el vector resultante a una longitud unitaria para las comparaciones de similitud.

Configuración del Modelo

El Mini Embedder utiliza un modelo preentrenado en formato ONNX, ejecutado localmente a través de ONNX Runtime. El texto del documento no necesita enviarse a una API de IA externa para generar el embedding.

El tamaño de su vector es fijo en 384 y no debe configurarse en 300. Las propiedades de Doc2Vec, como Alpha, Min Alpha, Window size y Minimum Word Frequency, no se aplican a este modelo.

Elección de un Embedder

El Paragraph Embedder utiliza Doc2Vec a través de la implementación ParagraphVectors de DL4J. Requiere datos de entrenamiento suministrados por un Sampler y admite entrenamiento dentro de LogicalDOC. El tamaño de su vector es configurable, con un valor predeterminado de 300. Elija este modelo cuando disponga de un corpus representativo y desee que aprenda el vocabulario y las relaciones contextuales a partir del texto de su dominio.

El Mini Embedder utiliza un modelo MiniLM-L6-v2 preentrenado que se importa en LogicalDOC. No requiere un Sampler ni admite entrenamiento local, y el tamaño de su vector es fijo en 384. Elija este modelo cuando desee generar embeddings semánticos sin preparar un corpus de entrenamiento local.

Generación de Embeddings de Documentos

Después de entrenar el Paragraph Embedder o importar el Mini Embedder, configure un Embedding Scheme que conecte el modelo a un Vector Store.

La tarea programada Embedder genera y almacena los embeddings para los documentos del repositorio. La preparación del modelo y la generación de embeddings de documentos son pasos independientes.

Si cambia el embedder utilizado por un Embedding Scheme, vuelva a generar los embeddings de documentos almacenados para que los vectores de documentos y consultas sigan siendo compatibles.