Explore más de lo que el RAG Cookbook ofrece para obtener insights más profundos sobre las soluciones RAG actuales

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

Los modelos de incorporación son redes neuronales basadas en transformadores que modifican fragmentos de documentos (es decir, fragmentos de texto) en una representación numérica o vector. El contenido con un significado o semántica similar se asignará a una representación similar en el espacio latente, como se muestra en la imagen siguiente.

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

Diagrama que ilustra el concepto de incorporación de temas relacionados dentro de un espacio vectorial.
Consideraciones

Compensación entre rendimiento y costo

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

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

Ciertos modelos de incorporación son específicos del idioma (por ejemplo, modelos de incorporación 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 en archivos médicos).

Soluciones IBM

Modelos de incorporación disponibles en watsonx

Se recomienda utilizar modelos de incorporación que se despliegan 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 detalles sobre cada modelo. Para obtener más información sobre las clases de facturación, consulte los planes de facturación de watsonx.

Modelos de IBM Slate

Nombre del modeloIdentificador de modelo de APIClase de facturaciónMáximo de tokens de entradaNúmero de dimensionesMás información
slate-125m-english-rtrvribm/slate-125m-english-rtrvrClase C1                  512                768Tarjeta modelo
slate-30m-english-rtrvribm/slate-30m-english-rtrvrClase C1                  512                384Tarjeta modelo

 

slate-125m-english-rtrvr

IBM proporciona el modelo fundacional slate-125m-english-rtrvr. El modelo fundacional slate-125m-english-rtrvr genera incorporaciones para diversas entradas, como consultas, fragmentos o documentos. El objetivo de entrenamiento es maximizar la similitud de coseno entre una consulta y un fragmento. Este proceso produce dos incorporaciones de oraciones, una que representa la pregunta y otra que representa el fragmento, lo que permite la comparación de los dos a través de la similitud del coseno.

Uso: dos o tres veces más lento, pero funciona ligeramente mejor que el modelo slate-30m-english-rtrvr. Idiomas admitidos: 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 incorporación slate-30m-english-rtrvr está entrenado para maximizar la similitud del coseno entre dos entradas de texto, de modo que las incorporaciones puedan evaluarse en función de la similitud más adelante.

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

Modelos de incorporación de terceros disponibles con watsonx

Nombre del modeloIdentificador de modelo de APIProveedorClase de facturaciónMáximo de tokens de entradaNúmero de dimensionesMás información
all-minilm-l12-v2sentence-transformers/all-minilm-l12-v2Comunidad de procesamiento de lenguaje natural (PLN) y visión por computadora (CV) de código abiertoClase C1           256           384Tarjeta modelo
multilingual-e5-largeintfloat/multilingual-e5-largeMicrosoftClase C1            512           1024Tarjeta de modelo, trabajo de investigación
all-minilm-l12-v2

El modelo de incorporación all-minilm-l12-v2 está construido por la comunidad de procesamiento de lenguaje natural y visión por computadora de código abierto y proporcionado por HuggingFace.

Idiomas admitidos: inglés

multilingual-e5-large

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

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

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

Inicio rápido con incorporaciones watsonx Python SDK

Instalar la biblioteca Python IBM watsonx IA
pip install -U ibm-watsonx-ai
Utilice la API de incorporación de watsonx y los modelos de incorporación disponibles para generar incorporaciones 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

# Set the truncate_input_tokens to a value that is equal to or less than the maximum allowed tokens for the embedding model that you are using. 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 = Incorporaciones( model_id=EmbeddingTypes.IBM_SLATE_30M_ENG, credenciales=credentials, params=embed_params, project_id=project_id, space_id=None, verificar=False ) q = [ "Un modelo fundacional es una IA generativa a gran escala modelo que se puede adaptar a una amplia gama de tareas posteriores."
 "La IA generativa es una clase de algoritmos de IA que pueden producir varios tipos de contenido, incluyendo texto, código fuente, imágenes, audio y datos sintéticos."
]

embedding_vectors = embedding.embed_documents(textos=q)

print(embedding_vectors)

Cuaderno de ejemplo

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

Integraciones

Explore más

Obtenga los últimos patrones tecnológicos, arquitecturas de soluciones y publicaciones de arquitectura de IBM.

  1. Ir al Centro de Arquitectura de IBM
Colaboradores

Luke Major, Dean Sacoransky

Actualizado: 15 de noviembre de 2024