ChatGPT solo en mis cosas

Jan 22 2023
ChatGPT es genial, pero no quiero respuestas de todo Internet. Realmente solo quiero que dé respuestas sobre mis cosas.

ChatGPT es genial, pero no quiero respuestas de todo Internet. Realmente solo quiero que dé respuestas sobre mis cosas. No me gusta cuando inventa cosas que parecen reales pero que en realidad no existen. ¿Hay algo por el estilo?

La gente de LangChain, en colaboración con Zahid Khawaja, lanzó recientemente una demostración que hace exactamente eso. Han combinado hábilmente la búsqueda semántica con indicaciones especializadas para GPT-3 que imitan la experiencia del usuario de ChatGPT, pero las respuestas están ancladas para responder solo preguntas sobre la propia documentación técnica de LangChain.

Puedes consultar su entrada en el blog aquí .

Búsqueda semántica

El proceso comienza con la búsqueda semántica, que implica dividir documentos en fragmentos y luego representar esos fragmentos de documentos con vectores incrustados. Estos vectores pueden calcularse por adelantado para sus documentos y almacenarse en una tienda de vectores. Luego, cuando un usuario hace una pregunta, esa pregunta se convierte en un vector utilizando el mismo modelo de incrustación. Una búsqueda de similitud semántica devuelve los fragmentos de documento que son más similares a la consulta.

La gente ha estado haciendo búsquedas semánticas por un tiempo usando modelos como BERT para convertir documentos en vectores incrustados. La búsqueda semántica es capaz de responder con las frases o párrafos que con mayor probabilidad contienen la respuesta que busca el usuario, pero no responde totalmente a la pregunta. Parte de lo que hace que la gente esté tan entusiasmada con ChatGPT es que proporciona una respuesta que suena más natural a una pregunta.

Modelo de lenguaje grande (LLM)

Un modelo de lenguaje grande hace algo diferente a una búsqueda semántica. Toma un aviso y produce una respuesta basada en ese aviso. Un aviso puede ser una pregunta, pero también puede incluir más instrucciones además de la pregunta. Entonces, si envío un gran modelo de lenguaje con un conjunto de instrucciones, dependiendo de esas instrucciones, puedo obtener comportamientos muy diferentes. El mismo modelo se puede utilizar para resumir un artículo técnico, responder preguntas o traducir del inglés al alemán.

Es con un aviso inteligente que LangChain dobla GPT-3 a su voluntad. El mensaje que usa LangChain en su demostración se muestra aquí:

You are an AI assistant for the open source library LangChain. The documentation is located at https://langchain.readthedocs.io.
You are given the following extracted parts of a long document and a question. Provide a conversational answer with a hyperlink to the documentation.
You should only use hyperlinks that are explicitly listed as a source in the context. Do NOT make up a hyperlink that is not listed.
If the question includes a request for code, provide a code block directly from the documentation.
If you don't know the answer, just say "Hmm, I'm not sure." Don't try to make up an answer.
If the question is not about LangChain, politely inform them that you are tuned to only answer questions about LangChain.
Question: {question}
=========
{context}
=========
Answer in Markdown:

Si no sabe la respuesta, simplemente diga "Hmm, no estoy seguro". No intentes inventar una respuesta.

Esto reduce aún más la posibilidad de resultados falsos positivos, que a la gente no le gusta de ChatGPT.

La pregunta del usuario se colocará donde se muestra { pregunta } en este aviso. Los resultados de la búsqueda semántica se incluirán en el { contexto }. La construcción de este indicador le dice a GPT-3 que solo proporcione respuestas que provengan del contexto. Esas respuestas siempre tendrán enlaces que fueron seleccionados del contexto. Finalmente, la respuesta está formateada en Markdown para que los desarrolladores puedan mostrar bien la respuesta en su aplicación.

La búsqueda semántica hizo parte del trabajo, ya que solo mostró las secciones de la documentación técnica que son relevantes para la pregunta en cuestión. Luego, GPT-3 termina el trabajo con una respuesta de estilo conversacional que se limita explícitamente al contexto proporcionado. Así es como LangChain puede ofrecer la experiencia de ChatGPT, pero limita el alcance para hablar solo sobre sus documentos.

Preguntas de seguimiento

Una característica importante y diferenciadora de la experiencia ChatGPT es la capacidad de hacer preguntas de seguimiento. La memoria del historial de chat se tiene en cuenta al generar la siguiente respuesta. La experiencia de preguntas de seguimiento se entrega en esta aplicación con otro aviso inteligente. Los desarrolladores envían tanto el historial de chat como la nueva pregunta a GPT-3 y solicitan al LLM que genere una nueva pregunta única. Esta nueva pregunta única luego se ejecuta a través del proceso que hemos descrito anteriormente. El mensaje para esta solicitud se ve así:

Given the following conversation and a follow up question, rephrase 
the follow up question to be a standalone question. You should assume 
that the question is related to LangChain.

Mayor consideracion

En general, esta es una gran demostración que muestra cómo las personas pueden lograr ese punto óptimo al ofrecer las capacidades que a las personas les encantan de ChatGPT mientras limitan el alcance a un conjunto específico de documentos. Este enfoque podría aplicarse a muchos casos de uso en un entorno corporativo. Hay una preocupación que tengo con el diseño de la aplicación cuando lo pienso en el contexto corporativo. Todas las preguntas que hacen mis clientes sobre mi producto junto con la información correspondiente sobre mi producto se envían a un tercero, en este caso OpenAI.

En un nivel fundamental, esto simplemente no parece una buena idea para que otra persona tenga este conjunto de datos de todas las preguntas de mis clientes sobre mi producto. Un actor nefasto podría potencialmente extraer estos datos para explotar mis debilidades. Una posible solución es alojar un LLM de código abierto (como Flan-T5 o GPT-2) en su propia nube privada. Luego, en cada paso del diagrama en el que llamamos a un LLM, estamos llamando a nuestra propia instancia privada de ese LLM. Este enfoque significa que debe tener suficiente potencia de ingeniería para alojar un modelo grande en su infraestructura de nube, pero eso viene con la tranquilidad de que no está enviando los datos de su empresa al éter.

Conclusión

La combinación de búsqueda semántica y LLM es muy prometedora para muchas aplicaciones comerciales. El marco desarrollado por LangChain facilitará la creación de esas aplicaciones. Así que mantén esa biblioteca en tu radar.