Comparación entre Llama 2 Chat y ChatGPT: cómo se desempeñan en la respuesta a preguntas
La comunidad de IA se ha entusiasmado con el reciente lanzamiento de Llama 2 por parte de Meta AI. A diferencia de su contraparte de código cerrado, ChatGPT, Llama 2 es de código abierto y está disponible para su uso gratuito en aplicaciones comerciales. Con su impresionante escala y calidad de respuestas competitiva, Llama 2 causará un impacto significativo en la inteligencia artificial.
En esta publicación, presentaremos brevemente Llama 2 y evaluaremos su rendimiento al responder preguntas en comparación con ChatGPT.
¿Qué es Llama 2?
Llama 2 es el modelo de lenguaje grande (LLM) de código abierto más reciente de Meta AI, desarrollado en respuesta a los modelos GPT de OpenAI y al modelo PaLM 2 de Google. Llama 2 es gratuito para que cualquiera lo use con fines de investigación o comerciales.
Llama 2 viene en tres tamaños, con unos impresionantes 70 mil millones, 130 mil millones y 700 mil millones de parámetros. Esta variedad permite a los desarrolladores elegir el modelo que mejor se adapte a los requisitos de su proyecto. Los modelos preentrenados de Llama 2 se entrenan con 2 billones de tokens y admiten longitudes de contexto de hasta 4096 tokens, equivalentes a GPT-3.
Llama Chat, el modelo ajustado de Llama 2, ha sido entrenado con más de 1 millón de anotaciones humanas y está específicamente adaptado para escenarios de IA conversacional. Este modelo resulta atractivo para quienes buscan crear chatbots, asistentes virtuales o cualquier sistema conversacional impulsado por IA.
Alucinación de Llama 2 y RAG
Como muchos otros LLM, Llama 2 ha sido preentrenado con datos disponibles públicamente y enfrenta problemas de alucinación cuando necesita conocimientos más relevantes. La comunidad de IA ha introducido el concepto de Retrieval Augmented Generation (RAG) para abordar estos desafíos. RAG aprovecha el conocimiento recuperado externamente como contexto para mejorar la precisión de las respuestas generadas por el modelo.
Cómo funciona RAG con una canalización de Towhee
Hay muchas herramientas disponibles en el mercado para mejorar los LLM con conocimiento externo. Towhee es uno de los principales ejemplos. Es una canalización de aprendizaje automático de código abierto que se integra con Llama 2 en su arquitectura y admite un procesamiento de datos flexible. Esta sección usará un pequeño ejemplo de la Towhee Pipeline para demostrar cómo funciona la solución RAG.
Si le preguntas a Llama 2 "cómo instalar Towhee", te proporcionará respuestas factualmente incorrectas, irrelevantes o sin sentido, ya que Llama 2 no sabe nada sobre Towhee.
Para abordar este problema, usamos una canalización de Towhee para combinar información adicional sobre Towhee y el historial de chat con la pregunta original para Llama 2. Luego, Llama 2 proporcionará una respuesta más precisa basada en las noticias.
A continuación se muestra el prompt aumentado para Llama 2.
from towhee import pipe, ops
p = (
pipe.input('question', 'docs', 'history')
.map(('question', 'docs', 'history'), 'prompt', ops.prompt.question_answer())
.map('prompt', 'answer', ops.LLM.Llama_2('llama-2-13b-chat'))
.output('answer')
)
# Retrieve chat history and additional knowledge.
history=[('What is Towhee?', 'Towhee is a cutting-edge framework designed to streamline the processing of unstructured data through the use of Large Language Model (LLM) based pipeline orchestration.')]
knowledge = ['You can install towhee via `pip install towhee`.']
# Query with retrieved info.
question = 'How to install it?'
answer = p(question, knowledge, history).get()[0]
# Example answer is:
# To install Towhee, you can use the following command in your terminal or
# command prompt:\n```\npip install towhee\n\n```\n\n\n\n'
Para obtener más información sobre cómo crear chatbots complejos basados en RAG usando Towhee, consulta Akcio, un proyecto de demostración de código abierto para generación aumentada por recuperación.
Evaluación de Llama 2 y ChatGPT
Esta sección evaluará dos modelos de chatbot: Llama 2 Chat (13B), un modelo Llama 2 con 13B parámetros ajustado para instrucciones de chat, y ChatGPT impulsado por GPT-3.5. Probaremos ambos modelos usando los mismos prompts en varios escenarios comunes.
Nota: El conocimiento externo que proporcionamos con Llama 2 y ChatGPT es extenso. Por lo tanto, no mostraremos el prompt completo en este blog. Si te interesa el prompt completo, consulta el Conocimiento externo proporcionado a Llama2 y ChatGPT en un documento separado como referencia.
Caso 1: Responder preguntas cuando se proporciona conocimiento relevante
Proporcionamos a Llama 2 y ChatGPT noticias financieras sobre la inversión de Volkswagen en XPENG. Luego, pedimos a ambos modelos que respondieran una pregunta basada en la información proporcionada.
Prompt
Eres un recuperador de información. Necesitas usar el contenido en [Knowledge] para responder preguntas; cuando el conocimiento sea diferente de tu conocimiento, [Knowledge] tiene mayor prioridad.
[Knowledge Start]:
Volkswagen dijo el miércoles que ha firmado un acuerdo para desarrollar conjuntamente dos nuevos vehículos eléctricos para China con el fabricante chino de vehículos eléctricos Xpeng. Como parte del acuerdo, Volkswagen invertirá alrededor de 700 millones de dólares en Xpeng, adquiriendo una participación del 4,99%…
[Knowledge End]:
¿Cuánto invirtió Volkswagen en XPENG?
Respuestas
ChatGPT: Volkswagen invirtió alrededor de 700 millones de dólares en Xpeng, adquiriendo una participación del 4,99% en el fabricante chino de vehículos eléctricos.
Llama 2-chat: Según la información proporcionada en la sección Knowledge, Volkswagen invirtió alrededor de 700 millones de dólares en Xpeng, lo que equivale aproximadamente a una participación del 4,99%.
Ambos modelos respondieron con precisión a la pregunta basándose en el conocimiento proporcionado.
Caso 2: Responder preguntas cuando se proporciona información irrelevante
Simulamos un escenario en el que la información recuperada no está relacionada con la pregunta y probamos si ambos modelos pueden responder honestamente con "No lo sé." Proporcionamos a ambos modelos información sobre la inversión de Volkswagen en XPeng Motors, pero hicimos una pregunta irrelevante sobre cuánto invirtió Audi en XPeng.
Prompt
Eres un recuperador de información. Necesitas usar el contenido en [Knowledge] para responder preguntas; cuando el conocimiento sea diferente de tu conocimiento, [Knowledge] tiene mayor prioridad.
[Knowledge Start]:
Volkswagen dijo el miércoles que ha firmado un acuerdo para desarrollar conjuntamente dos nuevos vehículos eléctricos para China con el fabricante chino de vehículos eléctricos Xpeng. Como parte del acuerdo, Volkswagen invertirá alrededor de 700 millones de dólares en Xpeng, adquiriendo una participación del 4,99%…
[Knowledge End]:
¿Cuánto invirtió Audi en XPENG?
Respuestas
ChatGPT:
Según el conocimiento proporcionado, no se menciona que Audi invirtiera directamente en Xpeng. La información indica que Volkswagen, que es la empresa matriz de Audi, ha firmado un acuerdo separado con su antiguo socio de empresa conjunta chino, SAIC Motor, para desarrollar conjuntamente nuevos vehículos eléctricos de marca Audi para el mercado chino. Sin embargo, no hay información sobre que Audi haya realizado ninguna inversión directa en Xpeng. La inversión de alrededor de 700 millones de dólares en Xpeng fue realizada por Volkswagen, no por Audi.
Llama2-chat:
Según la información proporcionada, Audi no invirtió dinero en Xpeng. Es Volkswagen quien invirtió alrededor de 700 millones de dólares en Xpeng, adquiriendo una participación del 4,99% en el fabricante chino de vehículos eléctricos.
Llama 2 y ChatGPT identificaron correctamente la laguna de conocimiento y respondieron honestamente.
Caso 3: Responder preguntas cuando se proporciona información ilegible
En escenarios empresariales del mundo real, los documentos de texto pueden venir en varios formatos. Por lo tanto, en este caso, ofrecimos a ambos modelos texto sin formato e ilegible sobre Tailwind CSS en GitHub. Luego, les pedimos que respondieran preguntas relacionadas.
Prompt
Eres un recuperador de información. Necesitas usar el contenido en [Knowledge] para responder preguntas; cuando el conocimiento sea diferente de tu conocimiento, [Knowledge] tiene mayor prioridad.
[Knowledge Start]:
[['Q: ¿Cuáles son algunos ejemplos de sitios web que usan Tailwind CSS?', 'A: ## Sites e cursos para aprender Tailwind CSS\n- [Tailwind CSS 3 Crash Course](https://www.youtube.com/watch?v=LyRWNJK8I6U&ab_channel=codedamn)\n- [Tailwind in 100 Seconds]...
[Knowledge End]:
Dime algunos sitios web que usen Tailwind?
Respuestas
ChatGPT:
¡Claro! Según el [Knowledge] proporcionado, aquí hay algunos sitios web que usan Tailwind CSS:
Tailwind CSS 3 Crash Course (https://www.youtube.com/watch?v=LyRWNJK8I6U&ab_channel=codedamn)
Tailwind in 100 Seconds(https://www.youtube.com/watch?v=mr15Xzb1Ook&ab_channel=Fireship)
Rebuilding Bartik(https://www.oliverdavies.uk/articles/rebuilding-bartik-with-vuejs-tailwind-css) - Reconstruyendo Bartik (el tema predeterminado de Drupal) con Vue.js y Tailwind CSS.
Rebuilding Airbnb's Home Page(https://web-crunch.com/re-create-airbnbs-home-page-with-tailwind-css) - Reconstruyendo la página de inicio de Airbnb con Tailwind CSS.
Typographic defaults in Tailwind CSS(https://www.themes.dev/blog/typographic-defaults-in-tailwind-css/)
Create a responsive navigation menu in Tailwind CSS(https://www.themes.dev/blog/responsive-navigation-menu-tailwind-css/)
Laracasts Weekly Stream: Tailwind(https://www.youtube.com/watch?v=HIPgzWS-Bxg)
More experimentation with Tailwind CSS(https://www.youtube.com/watch?v=nBzfVK3QUzM)
Rebuilding Spotify(https://youtu.be/SLGb2RLie9w)
Estos sitios web muestran varios casos de uso y ejemplos de sitios web creados usando Tailwind CSS.
Llama2-chat:
Claro, aquí hay algunos ejemplos de sitios web que usan Tailwind CSS:
GitHub - La documentación y las páginas de marketing de GitHub usan Tailwind CSS para sus estilos.
Shopify - Shopify usa Tailwind CSS para dar estilo a su panel de administración y otras herramientas internas.
Atlassian - El producto Confluence de Atlassian usa Tailwind CSS para su diseño adaptable y estilos.
React Magazine - El sitio web de React Magazine está construido usando Tailwind CSS y presenta un diseño limpio y moderno.
The Verge - Las páginas de artículos de The Verge usan Tailwind CSS para su tipografía y espaciado.
Dribbble - El sitio web de Dribbble usa Tailwind CSS para su sistema de cuadrícula y tipografía.
Smashing Magazine - El sitio web de Smashing Magazine fue rediseñado usando Tailwind CSS en 2020.
Laracasts - Laracasts, un popular sitio de tutoriales de Laravel, usa Tailwind CSS para sus estilos.
Statamic - Statamic, un generador de sitios estáticos, usa Tailwind CSS como parte de su configuración predeterminada.
Figma - Las páginas de blog y documentación de Figma usan Tailwind CSS para su tipografía y espaciado.
Estos son solo algunos ejemplos de sitios web que usan Tailwind CSS. Muchos otros sitios web y aplicaciones también lo usan, y la lista continúa creciendo a medida que más desarrolladores descubren la potencia y flexibilidad de este framework.
ChatGPT puede comprender con precisión la información textual incluso cuando se presenta en marcado Markdown complejo y proporciona respuestas de alta calidad. En cambio, Llama2-chat no logra comprender la información proporcionada y ofrece una respuesta de menor calidad basada únicamente en su conocimiento.
Además de los tres casos mencionados anteriormente, probamos Llama 2 y ChatGPT en preguntas y respuestas con conocimiento específico del dominio e información reformateada. Para obtener más detalles, consulta el documento External knowledge provided to Llama2 and ChatGPT.
Conclusiones clave
Tanto Llama2 como ChatGPT destacan al responder preguntas basadas en conocimiento del mundo real.
Ambos modelos pueden determinar si el conocimiento proporcionado respalda respuestas específicas a preguntas.
ChatGPT es mejor que Llama 2 para comprender información sin formato e ilegible. Sin embargo, Llama 2 puede proporcionar respuestas más precisas cuando organizamos la información sin formato.
Evaluación del rendimiento de Llama 2
En esta sección, evaluaremos el rendimiento y el costo de implementación del modelo Llama 2 (13b). Lo ejecutaremos en llama.cpp y mediremos su rendimiento de inferencia con cuantización entera de 4 bits y 8 bits ejecutando repetidamente prompts muestreados. Usaremos el operador Llama 2 del framework Towhee más reciente, que nos permite llamar a Llama 2 con solo unas pocas líneas de código y preprocesar datos para ensamblar el prompt cómodamente.
from towhee import ops
chat = ops.LLM.Llama_2('path/to/model_file.bin', max_tokens=2048, echo=True)
message = [{"question": "Building a website can be done in 10 simple steps:"}]
answer = chat(message)
Resultados de las pruebas
Probamos el modelo Llama 2 (13b) usando una GPU A100 de gama alta equipada con 80 GB de memoria y una GPU 2080 estándar de escritorio con 12 GB de memoria.
Rendimiento de inferencia de Llama 2 (13b) con cuantización entera de 8 bits
| Tarjeta gráfica | Número de modelos | Uso de la tarjeta gráfica | VRAM | TPS |
|---|---|---|---|---|
| 1 x NVIDIA A100 (80G) | 1 | 87% | 19G | 37 tokens/s |
| 1 x NVIDIA A100 (80G) | 2 | 100% | 38G | 45 tokens/s |
| 1 x GeForce RTX 2080 (12G) | GPU insuficiente | / | / | / |
| 2 x GeForce RTX 2080 (12G) | 1 | 40%,40% | 8G + 8G | 18 tokens/s |
Rendimiento de inferencia de Llama 2 (13b) con cuantización entera de 4 bits
| Tarjeta gráfica | Número de modelos | Uso de la tarjeta gráfica | VRAM | TPS |
|---|---|---|---|---|
| 1 x NVIDIA A100 (80G) | 1 | 80% | 11G | 45 tokens/s |
| 1 x NVIDIA A100 (80G) | 2 | 100% | 22G | 56 tokens/s |
| 1 x GeForce RTX 2080 (12G) | 1 | 86% | 9.3G | 37 tokens/s |
Conclusiones clave
Usando cuantización de pocos bits, podemos ejecutar sin problemas el modelo Llama 2 (13b) en una sola GPU de escritorio. Este enfoque te permite maximizar el poder de Llama 2 mientras reduces los costos.
El uso de memoria de la GPU es bajo al implementar el modelo Llama 2 (13b) en una A100.
Aunque no hay una diferencia significativa de rendimiento entre ejecutar Llama 2 (13b) en una GPU A100 o una GPU 2080, las GPU de escritorio tienen un tamaño menor y solo pueden cargar modelos más pequeños en una sola tarjeta.
Resumen
En esta publicación, hemos profundizado en las capacidades de Llama 2 Chat (13b) en el ámbito RAG y su rendimiento en el modo de implementación llama.cpp.
Llama 2 comprende eficazmente el texto de conocimiento y responde con precisión preguntas simples que rivalizan con ChatGPT. Sin embargo, enfrenta desafíos para mantener la calidad de las respuestas cuando se encuentra con formatos de texto complejos.
Llama 2 destaca por no requerir GPU de gama alta. Funciona sin problemas en GPU de nivel de escritorio, especialmente después de someterse a cuantización de pocos bits, logrando un rendimiento impresionante en una sola tarjeta NVIDIA A100. Además, puedes aumentar el rendimiento ejecutando varios modelos en una sola GPU.
La capacidad de Llama 2 para procesar información textual lo hace adecuado para diversos escenarios RAG. Cuando se combina con bases de datos de conocimiento como Milvus, puede proporcionar respuestas de alta calidad.
En conclusión, Llama 2 y otros modelos de IA de código abierto prometen impulsar la innovación en el panorama de la IA. Tienen el potencial de ofrecer experiencias excepcionales de preguntas y respuestas para usuarios y desarrolladores, lo que los convierte en incorporaciones emocionantes al mundo de los modelos lingüísticos de IA.
Sigue leyendo

Introducing Loon: A New Storage Engine for Vector Data That Never Stops Changing
Loon is a new storage engine for Milvus 3.0 and Zilliz Vector Lakebase, built to manage evolving vector datasets with ColumnGroups, row ID alignment, and Manifests.

From Vector Database to Vector Lakebase
Zilliz offers a fully managed Vector Lakebase powered by Milvus, unifying real-time vector search, lake-scale discovery, and Al data operations.

8 Latest RAG Advancements Every Developer Should Know
Explore eight advanced RAG variants that can solve real problems you might be facing: slow retrieval, poor context understanding, multimodal data handling, and resource optimization.



