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).
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).
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 modelo | Identificador de modelo de API | Clase de facturación | Máximo de tokens de entrada | Número de dimensiones | Más información |
|---|---|---|---|---|---|
| slate-125m-english-rtrvr | ibm/slate-125m-english-rtrvr | Clase C1 | 512 | 768 | Tarjeta modelo |
| slate-30m-english-rtrvr | ibm/slate-30m-english-rtrvr | Clase C1 | 512 | 384 | Tarjeta modelo |
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
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 modelo | Identificador de modelo de API | Proveedor | Clase de facturación | Máximo de tokens de entrada | Número de dimensiones | Más información |
|---|---|---|---|---|---|---|
| all-minilm-l12-v2 | sentence-transformers/all-minilm-l12-v2 | Comunidad de procesamiento de lenguaje natural (PLN) y visión por computadora (CV) de código abierto | Clase C1 | 256 | 384 | Tarjeta modelo |
| multilingual-e5-large | intfloat/multilingual-e5-large | Microsoft | Clase C1 | 512 | 1024 | Tarjeta de modelo, trabajo de investigación |
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
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.
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)
Utilice watsonx Granite Model Series e incorporaciones, Chroma y LangChain para responder preguntas (RAG) y LangChain
Actualizado: 15 de noviembre de 2024