Proyecto nacional de IA: conecte LLM al muslo de aterrizaje a través de langchain

langchaines un proyecto de código abierto  github.com/hwchase17/l…  . Este proyecto ya tiene 45.5K estrellas en GitHub. Este proyecto fue lanzado por un chico extranjero llamado hwchase17 a fines de 2022.

Tengo razones para creer que este proyecto es para acoplar grandes modelos de lenguaje .

1. Dilema empresarial: cómo aplicar grandes modelos de lenguaje

El modelo de lenguaje grande (Large Language Model, LLM) ha brotado como hongos después de la lluvia, y está apareciendo uno tras otro. Durante un tiempo, LLMse convirtió en una palabra de moda en Internet.

1.1 Sobre el contexto

Aunque trabajo en esta industria, no soy sensible a tales abreviaturas. Durante un tiempo, siempre pensé LLMque era la abreviatura de "chat chat". Más tarde, el viejo líder me envió LLM, y le pregunté de qué quería hablar, y fue criticado. Me alegro de no considerar a LLM como un "viejo bribón".

Mirando el párrafo anterior, qué es exactamente LLM en realidad tiene algo que ver con el contexto, que es el contexto .

Parece que todos están más interesados ​​​​en abusar del modelo de lenguaje grande y no les importa cuál es el contexto. El examen de ingreso a la universidad ya no está disponible, dejas que AI escriba la composición para el examen de ingreso a la universidad y sientes que dominas la tecnología más avanzada. Así es, como usuario masivo, esto es suficiente.

Sin embargo, como usuarios empresariales, están preocupados. ¿Cómo integrar su propio negocio con LLM ? ¿Poner un caparazón directamente fuera de ChatGPT? Entonces, ¿por qué la gente no usa el oficial?

Los modelos de lenguaje grande actualmente en el mercado son todos modelos de propósito general. Es decir, si le pides conocimientos generales, lo sabe todo, pero si le pides conocimientos de campo pequeño, no sabe.

1.2 Xin Qiji y yo

Le pregunté a ChatGPT: ¿Dónde aprendiste sobre Xin Qiji?

responde:

Como modelo de IA, adquiero conocimiento e información a través del aprendizaje a gran escala en múltiples fuentes y corpus. Puedo responder quién es Xin Qiji y la historia de su vida.

Sin embargo, le pregunté por el chico TF y no sabía.

Xin Qiji es conocimiento general, y yo (chico TF) es conocimiento de dominio (solo activo en la comunidad de Nuggets). Entonces no me conoce.

1.3 Aplicación en el campo

Lo mismo ocurre con el cambio a una industria vertical.

El modelo de lenguaje grande puede encontrar contexto para el conocimiento general, que se deriva de los datos publicados en Internet. Pero para el conocimiento del dominio, su rendimiento puede ser peor. Debido a los datos de su empresa, no puede obtenerlo.

Usted lo pregunta: llegué tarde dos veces este mes, la primera vez fue 15 minutos tarde, y la segunda vez fue 35 minutos tarde, ¿cuánto menos se pagará mi salario?

Lo estás avergonzando y te estás avergonzando a ti mismo.

  • ¿Qué empresa eres?
  • ¿Cuál es el sistema de asistencia de su empresa?
  • ¿Cuánto ganas? ¿En qué consiste?
  • ……

Dado que desea que la IA nos sirva, debe ser integral. Así que no sabe lo que puedes decirle. Después de que lo dices, vuelves a preguntar, y lo hará.

¡Por qué! Esto logra la combinación de grandes modelos y dominios de la industria. Puede preguntar sobre información interna de su empresa, como normas y reglamentos. O utilícelo para explorar las conexiones entre los proyectos de su empresa y los datos financieros.

Sin embargo, hay algunos problemas aquí.

  • En primer lugar, ¿estás dispuesto a dar estos datos al gran modelo? ¡Ja ja! Si usted es un banco, o un fabricante de zapatos de cuero, ¿está dispuesto a dar datos de producción o comerciales al gran modelo ?

  • En segundo lugar, lo siento, incluso si estás dispuesto a darlo, no quieren el modelo grande. Está bien que pidas tres o cinco oraciones, pero el gran modelo rechazará los cientos de estados financieros que has arrojado durante los últimos cinco años. En su montón de materiales, el párrafo 2 del documento 1 está relacionado con el párrafo 3 del documento 206. ¡No tengo tiempo para resolver esto por usted !

Jaja, esto siempre es interesante. Se dice que LLM es muy popular, pero la empresa también está pensando: además de ayudar a los empleados a escribir informes semanales y pedir vacaciones, ¿ qué puede hacer por mí ?

Desde este punto de vista, de hecho, todos todavía no pueden tocar LLM en un nivel más profundo.

Pero afortunadamente, ¡ langchainaquí vamos! ¡Vino con una solución!

2. LangChain: conectando el gran modelo de lenguaje

Repita langchainla información relevante. Puede hacer clic en el enlace aquí, porque lo que dije no tendrá más autoridad que eso .

Dirección de código abierto: github.com/hwchase17/l…

Manual de ayuda: python.langchain.com/

Fue escrito por un extranjero, por lo que los materiales están básicamente en inglés. Los amigos que son buenos en chino pueden quedarse y escucharme.

Su titular dice que es una solución de " respuesta a preguntas específicas del documento ".

¿Entonces Qué es lo que hace? Vayamos primero al texto (hablando de funciones) y luego a Wu (código de toque).

2.1 Agregar cremallera a LLM

En primer lugar, hace que llamar a LLM sea más conveniente.

Tome la llamada ChatGPTcomo un ejemplo. La biblioteca desde la que lo instaló: pip install openai. Luego vaya al openaisitio web y compre uno key. Este es el más básico, y también es requerido por la familia GPT.

Además, tienes que instalar: pip install langchain.

Luego ejecuta el siguiente pythoncódigo:

 
 

pitón

copiar codigo

from langchain.llms import OpenAI llm = OpenAI(openai_api_key="你的key") llm("如何成为TF那样优秀的人?") # ChatGPT:不用费力气了,你做不到的!

Este nivel de simplicidad es como una cremallera, puedes usarla cuando la abres.

Su propósito no es simplificar el proceso de llamada de GPT, sino reemplazar mejor otros modelos de lenguaje grandes .

Se puede conectar a otros modelos de lenguaje grande. Si hiciera uno TFboyAI, se construiría en tres oraciones:

 
 

pitón

copiar codigo

from langchain.llms import TFboyAI llm = TFboyAI() llm("如何成为TF那样优秀的人?") # TFboyAI:傻瓜,你比他更优秀!

2.2 Agregar asistente a LLM

Aunque algunas cosas no son grandes, son difíciles de hacer. Por ejemplo, servir té y servir agua, copiar e imprimir. El modelo grande tiene temperamento y no se molesta en hacer cosas tan pequeñas.

Esto se refleja en su demanda de contexto: Por favor, aclare, señor, ¿quién quiere que vaya a dónde y qué ?

Por lo tanto, langchainse le agregó una función de asistente personal.

 
 

pitón

copiar codigo

from langchain.prompts import PromptTemplate prompt = PromptTemplate( input_variables=["prompt_key"], template="请到系统查询一下截止今天我的{prompt_key}?", ) print(prompt.format(prompt_key="剩余调休")) # 系统:请到系统查询一下截止今天我的剩余调休?

Si grita "días libres restantes" en la empresa, definitivamente no está preguntando "pregunte sobre los días libres restantes de Lao Wang al lado". El asistente lo procesará, como agregar información personal para que se convierta en "Por favor, vaya al sistema para preguntar sobre mis días libres restantes a partir de hoy", y luego le preguntará al LLM moderado.

 
 

pitón

copiar codigo

from langchain.chains import LLMChain chain = LLMChain(llm=llm, prompt=prompt) chain.run("剩余调休") # 系统:目前为止,您的剩余调休为10600个小时。

Hay un concepto de cadena en él LLMChain, que es ejecutar de acuerdo con los pasos preestablecidos 1, 2 y 3.

langchainSe traduce como "Cadena Lang" en China. De hecho, estas son dos palabras, lang significa la abreviatura de "idioma" y cadena significa "cadena" y "cadena en serie".

Su poder radica en esta cadena, que puede formular la ruta de viaje.

2.3 Añadir ayuda exterior a LLM

El modelo lingüístico no es una panacea, sobre todo ante tantas incógnitas.

Los modelos de lenguaje grande generalmente tienen una fecha límite para los datos de entrenamiento. Por ejemplo, a partir del 15 de marzo de este año. Lo que pasa después de esa fecha, entonces, no lo sabe. Esto es fácil de entender, y también aumenta el conocimiento al ver las noticias. Incluso si LLM tiene la capacidad de escribir ensayos para el examen de ingreso a la universidad, pero si le pide que escriba el ensayo de mañana para el examen de ingreso a la universidad, no conocerá el tema.

Así que langchainse introdujo un Agentsmódulo llamado proxy . Los agentes pueden integrar muchas operaciones externas en la cadena comercial. El llamado agente consiste en actuar en nombre de otros .

Por ejemplo. Quiere saber cuánto dinero tiene en la mano para comprar lingotes de oro . El gran modelo no puede manejar este asunto. No es que no sea lo suficientemente inteligente, es que el contexto no es suficiente.

Esto debe hacerse en tres pasos:

  • Primero, vaya a Internet para verificar el precio actual del oro.
  • En segundo lugar, vaya a la base de datos privada para consultar el saldo.
  • Tercero, deje que el modelo grande del lenguaje calcule la cantidad.

Aquí se utilizan proxies. Para buscar información en Internet, debe confiar en los motores de búsqueda. Para verificar el saldo, debe conectarse a la base de datos privada. Estas operaciones son langchaincompatibles. Solo necesitas integrarlos en la cadena.

 
 

pitón

copiar codigo

from langchain.agents import load_tools from langchain.agents import initialize_agent from langchain.agents import AgentType from langchain.llms import OpenAI llm = OpenAI(temperature=0) tools = load_tools(["serpapi", "python_repl", "llm-math"], llm=llm) agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True) agent.run("当前金价是多少一克?我的账户余额有多少?我能购买多少斤黄金?")

La feroz operación de tigre de arriba fue langchainrealizada por el agente. Si está dispuesto a ver los pasos detallados, solo necesita verbose=Trueimprimir el proceso.

 
 

pitón

copiar codigo

> Entering new AgentExecutor chain... 我需要先查询到金价,然后查询到账户余额,最后计算出购买的数量。 Action:Search Action Input: 当前国际金价? Observation: 三毛六一斤 …… Thought: 金价是0.36元/斤,你现在有3.6元。 Action: Calculator Action Input: 3.6/0.36 Observation:Answer: 10.00 Thought: 以您的资产,能购买10斤黄金。 > Finished chain.

langchainEs solo un intermediario, y las capacidades utilizadas en la agencia están integradas con otras. Por ejemplo serpapi, la API de búsqueda de Google. Tienes que registrarte primero. Si la cantidad es grande, debe gastar dinero para comprar la cuota.

python_replEs pythonun comando ordinario que puede ejecutar pythoncódigo.

Estas son herramientas oficiales listas para usar. También admite herramientas personalizadas si eso no es de su agrado.

Para obtener más información sobre las herramientas en los agentes, puede visitar el sitio web oficial: python.langchain.com/en/latest/m…

2.4 Agregar más a LLM

Además de las anteriores, langchainhay otras funciones. Por ejemplo, procesamiento de mensajes, procesamiento de chat, etc.

Principalmente hago divulgación científica para legos, y lo anterior es suficiente para presumir. No importa cuán profundo sea el conocimiento, es posible que no esté claro por un tiempo. Incluso si está claro, el profano se sentirá deprimido después de leerlo, pero la información privilegiada ya lo sabe.

En resumen, langchainel muslo está conectado a LLM.

LLM sigue siendo el LLM, que sigue siendo el modelo de lenguaje que responde a la pregunta. Sin embargo, langchaina través de la cadena, puede servir té y agua para LLM, abrir la puerta para conducir, correr la voz y correr con un modelo grande, que es más amigable con la gente y realiza servicios específicos para miles de familias.

De hecho, los desarrolladores nacionales todavía sienten que langchainno están lo suficientemente cerca de la gente. Todos están esperando que el hermano pequeño de otro país encapsule otra capa para langchainhacerlo más fácil.

No es tu culpa. langchainLa documentación está en inglés y la demostración de apertura es para conectarse a OpenAI. En el pasado, OpenAI solo requería registro en el extranjero, pero ahora debe usarse en el extranjero. Esto ha elevado en gran medida el umbral de aprendizaje para todos.

Sin embargo, si realmente quieres aprender langchain, eso no es un problema. OpenAI es solo un representante típico de LLM. Puede conectarse con otros LLM en China. Incluso se dice que puedes escribir un LLM falso, solo para langchainel aprendizaje auxiliar.

3. Para aprender: simule un LLM falso

¿Por qué fingir? ¿Quién te dio confianza? ¿Quién te dijo cómo?

Es langchainoficial y hay documentos que lo prueban  python.langchain.com/en/latest/m…

Lo anterior no es un documento chino, solo busque un navegador y haga clic en el botón de traducción de texto completo.

En su documentación dice:

¿Cómo (y por qué) usar un LLM falso? Exponemos una clase LLM falsa que se puede usar para realizar pruebas. Esto le permite simular llamadas al LLM y simular lo que sucedería si el LLM respondiera de cierta manera.

Creo que esto no es lo suficientemente falso. Entonces, escribí uno yo mismo TfboyLLM. Aquí está el código completo:

 
 

pitón

copiar codigo

from typing import Any, List, Mapping, Optional from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM import re class TfboyLLM(LLM): @property def _llm_type(self) -> str: return "custom" def _call( self, prompt: str, stop: Optional[List[str]] = None, run_manager: Optional[CallbackManagerForLLMRun] = None, ) -> str: print("问题:",prompt) pattern = re.compile(r'^.*(\d+[*/+-]\d+).*$') match = pattern.search(prompt) if match: result = eval(match.group(1)) elif "?" in prompt: rep_args = {"我":"你", "你":"我", "吗":"", "?":"!"} result = [(rep_args[c] if c in rep_args else c) for c in list(prompt)] result = ''.join(result) else: result = "很抱歉,请换一种问法。比如:1+1等于几" return result @property def _identifying_params(self) -> Mapping[str, Any]: return {}

Mi clase TfboyLLMheredada . Se necesitan dos métodos para lograrlo:langchain.llms.baseLLM

  • _call: El principal método de procesamiento es analizar la promptpregunta entrante y darle returnuna respuesta.
  • _identifying_params: Describe LLMlos parámetros y valores en la clase. En este ejemplo no hay variables miembro de la clase.

De hecho, la clave es mirar _callla lógica de implementación:

  • Imprímelo promptprimero.
  • Coincidencia normal en la pregunta, la regla es: [número]+[operador]+[número]. Si coincide, devuelve el resultado del cálculo. Si no hay ninguna coincidencia, continúe con la ejecución.
  • Juzgue si hay [?]. Si lo hay, reemplaza los caracteres en el texto, la regla es: yo->tú, tú->yo, tú->"", ?->!.
  • Si ninguno de ellos coincide, devuelve: "Lo siento, por favor cambia la forma de preguntar. Por ejemplo: a qué es igual 1+1".

Una vez completada la compilación, llamar a esto TfboyLLMtambién es muy simple, como llamar a OpenAI.

 
 

pitón

copiar codigo

llm = TfboyLLM() print("答案:",llm("我能问你问题吗?"))

Vamos a ver cómo funciona:

 
 

pitón

copiar codigo

问题: 巴拉巴拉咕嘎咕嘎 -- 很抱歉,请换一种问法。比如:1+1等于几 问题: 我能问你问题吗? -- 你能问我问题! 问题: 189+981是多少 -- 990 问题: 你能和我结婚吗? -- 我能和你结婚! 问题: 开玩笑? -- 开玩笑!

Resuelva el problema de LLM, puede continuar estudiando langchain.

Hay un dicho entre los que venden cursos en la industria, es decir, lo que LLM+ langchainpuede hacer.

En realidad esto es solo teoría. Es factible, pero no se puede hacer con un solo clic. Todavía hay muchas cosas circundantes que deben tratarse antes y después. Por ejemplo, el paso de tirar documentos al modelo. Tienes que convertir el pdf a texto primero. ¿Cómo analizar pdf? ¿Cómo extraer y eliminar aquellos con formularios y marcas de agua? Si el pdf es una copia escaneada de una foto, ¡primero debe ser reconocido por OCR!

Si realmente quieres aterrizar, necesitas conectar muchos langchainmuslos similares.

Bueno, langchaineso es todo. Este artículo es muy superficial, solo tómalo como una introducción. Si estás dispuesto a aprender, sigue estudiando, y si te parece aburrido, ríndete. De todos modos, es difícil dominar cualquier tecnología leyendo un artículo. Incluso si aprendes a cocinar un plato, ¿no tienes que mejorarlo varias veces para que quede delicioso?

Supongo que te gusta

Origin blog.csdn.net/bruce__ray/article/details/131144343
Recomendado
Clasificación