Explore más de lo que ofrece el libro de recetas RAG para obtener perspectivas más profundas de las soluciones RAG actuales

Un espacio principal recoloreado que utiliza como base el espacio principal watsonx para atención al cliente.
Visión general

Los modelos de embedding son redes neuronales basadas en transformadores que transforman fragmentos de documentos (es decir, pasajes de texto) en una representación numérica o vectorial. Los contenidos con un significado o una semántica similares se asignarán a una representación similar en el espacio latente, como se ve en la siguiente imagen.

La vectorización del lenguaje permite aplicaciones con IA, como "chatear con documentos" o búsqueda semántica, en lugar de la búsqueda tradicional por palabras clave (léxica).

Diagrama que ilustra el concepto de embedding de temas relacionados dentro de un espacio vectorial.
Consideraciones

Relación entre rendimiento y coste

El modelo de embedding que elija afectará significativamente a la precisión de recuperación, la latencia y el coste computacional de su sistema RAG. La elección del modelo de embedding estará influido en gran medida por su tamaño, que depende de dos características: la dimensión de embedding y el número de parámetros del modelo.

Un modelo de embedding más grande suele mejorar el rendimiento de la recuperación, pero a costa de un aumento de la latencia, el almacenamiento y el coste computacional (financiero). Por el contrario, un modelo de embedding más pequeño suele ofrecer un rendimiento reducido, pero ocupa menos memoria, requiere menos potencia computacional y es más rápido en tiempo de ejecución. Elija un modelo de embedding que equilibre los requisitos de rendimiento con los recursos disponibles.

Ciertos modelos de embedding son específicos del idioma (por ejemplo, modelos de embedding en español creados para clientes españoles) y específicos del dominio (por ejemplo, un modelo entrenado en terminología oncológica para habilitar RAG sobre archivos médicos).

Soluciones de IBM

Modelos de embeddings disponibles en watsonx

Se recomienda utilizar modelos de embedding implementados en watsonx: los modelos Slate desarrollados por IBM o los modelos de terceros que se enumeran a continuación. Lea esta documentación para obtener más información sobre cada modelo. Para obtener más información sobre las clases de facturación, consulte los planes de facturación de watsonx.

Modelos Slate de IBM

Nombre del modeloAPI model_idClase de facturaciónNúmero máximo de tokens de entradaNúmero de dimensionesMás información
slate-125m-english-rtrvribm/slate-125m-english-rtrvrClase C1                  512                768Modelo de tarjeta
slate-30m-english-rtrvribm/slate-30m-english-rtrvrClase C1                  512                384Modelo de tarjeta

 

slate-125m-english-rtrvr

IBM proporciona el modelo fundacional slate-125m-english-rtrvr. El modelo fundacional slate-125m-english-rtrvr genera embeddings para diversas entradas, como consultas, pasajes o documentos. El objetivo de entrenamiento es maximizar la similitud de coseno entre una consulta y un pasaje. Este proceso produce dos embeddings de oraciones, una que representa la pregunta y otra que representa el pasaje, permitiendo comparar ambas mediante similitud coseno.

Uso: dos o tres veces más lento, pero funciona ligeramente mejor que el modelo slate-30m-english-rtrvr. Idiomas compatibles: inglés

slate-30m-english-rtrvr

El modelo fundacional slate-30m-english-rtrvr es una versión destilada del slate-125m-english-rtrvr, ambos proporcionados por IBM. El modelo de embedding slate-30m-english-rtrvr se entrena para maximizar la similitud coseno entre dos entradas de texto, de modo que los embeddings puedan evaluarse posteriormente en función de la similitud.

Uso: dos o tres veces más rápido y tiene puntuaciones de rendimiento ligeramente más bajas que el modelo slate-125m-english-rtrvr. Idiomas compatibles: inglés

Modelos de embedding de terceros disponibles con watsonx

Nombre del modeloAPI model_idProveedorClase de facturaciónNúmero máximo de tokens de entradaNúmero de dimensionesMás información
all-minilm-l12-v2sentence-transformers/all-minilm-l12-v2Comunidad de código abierto de procesamiento del lenguaje natural (PNL) y visión artificial (CV)Clase C1           256           384Modelo de tarjeta
multilingual-e5-largeintfloat/multilingual-e5-largeMicrosoftClase C1            512           1024Modelo de tarjetaartículo de investigación
all-minilm-l12-v2

El modelo de embedding all-minilm-l12-v2 está construido por la comunidad de código abierto de procesamiento del lenguaje natural (PLN) y visión artificial (CV) y es proporcionado por HuggingFace.

Idiomas compatibles: inglés

multilingual-e5-large

Uso: para casos de uso en los que se quiere generar embeddings de texto para texto en un idioma distinto al inglés.

Idiomas naturales compatibles: hasta 100 idiomas. Consulte la tarjeta del modelo para más detalles.

Para más información sobre modelos de embedding compatibles, consulte la documentación de watsonx.

Inicio rápido con SDK de Python para embeddings de watsonx

Instale la biblioteca Python ibm-watsonx-ai
pip install -U ibm-watsonx-ai
Utilice la API de embeddings de watsonx y los modelos de embedding disponibles para generar embeddings de texto.
from ibm_watsonx_ai.metanames import EmbedTextParamsMetaNames as EmbedParams
from ibm_watsonx_ai.foundation_models.utils.enums import EmbeddingTypes
from ibm_watsonx_ai.foundation_models import Embeddings

# Establezca truncate_input_tokens en un valor que sea igual o menor que el máximo de tokens permitidos para el modelo de embedding que está utilizando. Si no especifica este valor y la entrada tiene más tokens de los que el modelo puede procesar, se genera un error.

embed_params = {
 EmbedParams.TRUNCATE_INPUT_TOKENS: 128,
 EmbedParams.RETURN_OPTIONS: {
 'input_text': True
 }
}

embedding = Embeddings(
 model_id=EmbeddingTypes.IBM_SLATE_30M_ENG,
 credentials=credentials,
 params=embed_params,
 project_id=project_id,
 space_id=None,
 verify=False
)

q = [
 "Un modelo fundacional es un modelo de IA generativa a gran escala que puede adaptarse a una amplia gama de tareas posteriores".,
 "La IA generativa es una clase de algoritmos de IA que pueden producir diversos tipos de contenidos, incluyendo texto, código fuente, imágenes, audio y datos sintéticos".
]

embedding_vectors = embedding.embed_documents(texts=q)

print(embedding_vectors)

Notebook de muestra

Utilice watsonx Granite Model Series y embeddings, Chroma y LangChain para responder preguntas (RAG)  y LangChain

Integraciones

Explorar más

Obtenga las últimas tecnologías, arquitecturas de soluciones y publicaciones de arquitectura de IBM.

  1. Ir al IBM Architecture Center
Colaboradores

Luke Major, Dean Sacoransky

Actualizado: 15 de noviembre de 2024