¿Cómo utilizar la selección por relevancia marginal máxima (MMR) en LangChain?

Como Utilizar La Seleccion Por Relevancia Marginal Maxima Mmr En Langchain



LangChain es un módulo que se puede utilizar para crear modelos de lenguaje para interactuar con humanos en lenguajes naturales. Los humanos proporcionan el mensaje en forma textual y el modelo utiliza un selector de ejemplo para extraer el resultado mediante la consulta. Los selectores de ejemplo se utilizan para obtener la salida en función de la entrada eligiendo el ejemplo relevante más cercano a la consulta o mensaje.

Esta guía ilustrará el proceso de uso del selector de ejemplo de selección por relevancia marginal máxima en LangChain.

¿Cómo utilizar la selección por relevancia marginal máxima (MMR) en LangChain?

El selector de ejemplo de Relevancia marginal máxima se utiliza para extraer información utilizando la similitud del coseno del mensaje y el ejemplo. La similitud del coseno se calcula después de aplicar los métodos de incrustación a los datos y convertir el texto a formato numérico.







Para conocer el proceso de uso del selector de ejemplo de MMR en LangChain, simplemente siga los pasos enumerados:



Paso 1: instalar módulos



Inicie el proceso instalando las dependencias de LangChain usando el comando pip:





pip instalar cadena larga

Instale el módulo OpenAI para usar su entorno para aplicar el método OpenAIEmbedding():



instalación de pip en openai

Instale el marco FAISS que se puede utilizar para obtener el resultado mediante similitud semántica:

pip instala faiss-gpu

Ahora, instale el tokenizador tiktoken para dividir el texto en fragmentos más pequeños usando el siguiente código:

instalar pip tiktoken

Paso 2: uso de bibliotecas y ejemplos

El siguiente paso es importar bibliotecas para crear un selector de ejemplo de MMR, FAISS, OpenAIEmbeddings y PromptTemplate. Después de importar las bibliotecas, simplemente cree un conjunto de ejemplo que proporcione entradas y salidas para sus respectivas entradas en múltiples matrices:

de cadena larga. indicaciones . selector_ejemplo importar (
MaxMarginalRelevanceExampleSelector ,
SemánticaSimilitudEjemploSelector ,
)
de cadena larga. vectorestiendas importar FAISS
de cadena larga. incrustaciones importar Incrustaciones de OpenAI
de cadena larga. indicaciones importar Plantilla de solicitud de FewShot , Plantilla de aviso

mensaje_ejemplo = Plantilla de aviso (
variables_entrada = [ 'aporte' , 'producción' ] ,
plantilla = 'Entrada: {entrada} \norte Salida: {salida}' ,
)

ejemplos = [
    { 'aporte' : 'feliz' , 'producción' : 'triste' } ,
    { 'aporte' : 'alto' , 'producción' : 'corto' } ,
    { 'aporte' : 'energético' , 'producción' : 'letárgico' } ,
    { 'aporte' : 'soleado' , 'producción' : 'sombrío' } ,
    { 'aporte' : 'ventoso' , 'producción' : 'calma' } ,
]

Paso 3: Selector de ejemplo de construcción

Ahora, comience a crear el selector de ejemplo de MMR utilizando el método MaxMarginalRelevanceExampleSelector() que contiene diferentes parámetros:

selector_ejemplo = MaxMarginalRelevanceExampleSelector. de_ejemplos (
ejemplos ,
Incrustaciones de OpenAI ( ) ,
FAISS ,
k = 2 ,
)
mmr_prompt = Plantilla de solicitud de FewShot (
selector_ejemplo = selector_ejemplo ,
mensaje_ejemplo = mensaje_ejemplo ,
prefijo = 'Da el antónimo de cada entrada' ,
sufijo = 'Entrada: {adjetivo} \norte Producción:' ,
variables_entrada = [ 'adjetivo' ] ,
)

Paso 4: Probar el selector de ejemplo de MMR

Pruebe el selector de ejemplo MMR de relevancia marginal máxima llamándolo en el método print() con la entrada:

imprimir ( mmr_prompt. formato ( adjetivo = 'preocupado' ) )

Paso 5: uso de similitud semántica

Este paso usa el método SemanticSimilarityExampleSelector() y luego usa el método FewShotPromptTemplate() que es compatible con LangChain:

selector_ejemplo = Selector de ejemplos de similitud semántica. de_ejemplos (
ejemplos ,
Incrustaciones de OpenAI ( ) ,
FAISS ,
k = 2 ,
)
aviso_similar = Plantilla de solicitud de FewShot (
selector_ejemplo = selector_ejemplo ,
mensaje_ejemplo = mensaje_ejemplo ,
prefijo = 'Da el antónimo de cada entrada' ,
sufijo = 'Entrada: {adjetivo} \norte Producción:' ,
variables_entrada = [ 'adjetivo' ] ,
)
imprimir ( aviso_similar. formato ( adjetivo = 'preocupado' ) )

Se trata de utilizar la selección por máxima relevancia marginal o MMR en LangChain.

Conclusión

Para utilizar la selección por relevancia marginal máxima o el selector de ejemplo MMR en LangChain, instale los módulos necesarios. Después de eso, importe las bibliotecas para crear el conjunto de ejemplo utilizando la plantilla de mensajes de entrada y salida. Cree el selector de ejemplo de MMR para probarlo usando el selector de ejemplo de MMR y el método FewShotPromptTemplate() para obtener resultados relevantes. Esta guía ha ilustrado el proceso de uso del selector de ejemplo de selección por MMR en LangChain.