El conocimiento es el nuevo dinero.
Aprender es la nueva manera en la que inviertes
Acceso Cursos

Llama3 sacale el máximo provecho

Hay una Llama en mi oficina.

· 4 min de lectura
Llama3 sacale el máximo provecho

Todos nos hemos ido montando en esta ola de la AI y todo lo nuevo que nos ofrece. Desde asistentes superinteligentes hasta tu propio agendador de reservas.

Pero cuando nos vemos de cara para responder preguntas frecuentes, algo que relativamente podría ser tan fácil como pasarle todo un texto grande a nuestro modelo de inteligencia artificial y dejar que él sepa mágicamente lo que debe responder.

No obstante esa magia cuesta dinero y mucho y si nuestro negocio recive mensajes masivos pues no querras ver esa factura :).

Cotiza tu asistente aquí

Gracias al avance que ha tenido el open source y la bondades que nos ofrecen grandes empresas podemos reducir nuestros costes tanto como puedas aplicar estas nuevas tecnologías emergentes y de gratis acceso.

Hoy te traigo una modalidad conversacional algo avanzada pero que reducirá tus costes significativamente, te hablo de Groq / Llama3, Langchain y Builderbot.

Como siempre te dejo los links para que aprendas más del tema :)

Groqcloud

Langchain

Builderbot

Comenzemos!

Sí vienes ya del mundo de los Llm y la modalidad para interactuar con ellos, ya tendras conocimiento o te habras visto con los prompts (EL LENGUAJE PARA COMUNICAR TAREAS A LLM’S)

Hasta acá no hay nada nuevo, únicamente un pequeño fragmento indicando la tarea que debe completar el Llm. (EN ALGÚN MOMENTO TE COMPARTO UNA GUIA PARA HACER PROMPTS AVANZADOS)

Para nuestro Llm usaremos Groq junto a su promesa 15x faster

seteamos nuestro modelo a llama3-8b-8192 (RECUERDA QUE ESTAMOS USANDO SOLO OPENSOURCE)

Si te resulta extraño el uso de la palabra withStructuredOutput es por el hecho qué es una técnica muy provechosa para sacar todo el poder y control de nuestro Llm. (YA PUES QUÉ SI TE DIGO, DE ESTO DA PARA OTRA ENTRADA ;) )

En esta etapa imagina que tienes en tu raiz un archivo llamado data.txt en el contienes cada renglon de datos que necesitas responder a una pregunta data.

Para que este pequeño fragmento de código funcione deberás agregar a cada culminanción de parrafo la palabra [END] eso le indicará a nuestro dataloader donde debe partir el parrafo antes de la ingesta de datos.

Con lo que hicimos arriba nos daría todo lo que necesitamos para nuestro asistente pero OJO no todo lo fácil promete buenos resultados, las modalidades anteriores llamadas “VANILLAS” hacian uso de un solo retriever (Es quien tiene nuestros datos y los retorna haciendo uso de similitudes), en este ejemplo usaremos 3 extras:

HNSWLib

Matryoshka Retriever

MultiQuery Retriever

Contextual compression

Si pudieramos ponerlo en un diagrama seria algo como esto:

Dejame darte un recorrido rápido:

  • HNSW es un algoritmo de cercanía basado en vertices o grafos, siendo los más cercanos quienes tienen mayor similitud.
  • Matryoshka hace de la búsqueda por matrices una evolución dado que aplica un vector pequeño y con menos score para hacer una segunda búsqueda sobre un vector más grande y junto al re ranking logra obtener mejor resultado.
  • Multiquery vector mejora  el input query inicial para hacer un mejor uso del retriever dado que envuelve la query incial en una mejora notable y que puede convertirse en una búsqueda con mejor accuracy.
  • Contextual Compression usa una pequeña inferencia para convertir el resultado de la búsqueda en algo con sentido a lo que se necesita.

Para que nuestro asistente pueda responder a preguntas, nos hace falta crear un Runnable:

Un Runnable en Langchain es una interfaz con la cual podemos crear Llm’s repotenciados, en nuestro caso haremos uso de uno que maneje el historico de conversación, y si!, como se observa usa postgres como manager.

Te dejo la doc, copiatela esta fácil. 😀

Exportamos nuestra función para acoplarla a nuestro asistente de WhatsApp.

Para nuestro asistente de WhatsApp haremos uso de Builderbot nuestro gran amigo

Creamos nuestro fichero inicial, configuramos nuestro proveedor, database y flujo.

Para efectos de prueba con un solo flujo nos basta.

Soy Elimeleth Capuano, Programador y Divulgador de Chatbots.