Confronto tra Llama 2 Chat e ChatGPT: come si comportano nella risposta alle domande
La community dell'IA è entusiasta del recente rilascio di Llama 2 da parte di Meta AI. A differenza della sua controparte closed-source, ChatGPT, Llama 2 è open-source e disponibile per l'uso gratuito in applicazioni commerciali. Con la sua scala impressionante e la qualità competitiva delle risposte, Llama 2 farà grandi passi avanti nell'intelligenza artificiale.
In questo post, presenteremo brevemente Llama 2 e valuteremo le sue prestazioni nel rispondere alle domande rispetto a ChatGPT.
Che cos'è Llama 2?
Llama 2 è l'ultimo modello linguistico di grandi dimensioni (LLM) open-source di Meta AI, sviluppato in risposta ai modelli GPT di OpenAI e al modello PaLM 2 di Google. Llama 2 è gratuito per chiunque voglia usarlo per scopi di ricerca o commerciali.
Llama 2 è disponibile in tre dimensioni, vantando rispettivamente 70 miliardi, 130 miliardi e 700 miliardi di parametri. Questa varietà consente agli sviluppatori di scegliere il modello che meglio si adatta ai requisiti del loro progetto. I modelli pre-addestrati di Llama 2 sono addestrati su 2 trilioni di token e supportano lunghezze di contesto fino a 4096 token, equivalenti a GPT-3.
Llama Chat, il modello ottimizzato di Llama 2, è stato addestrato su oltre 1 milione di annotazioni umane ed è specificamente adattato per scenari di IA conversazionale. Questo modello è interessante per chi desidera creare chatbot, assistenti virtuali o qualsiasi sistema conversazionale basato sull'IA.
Allucinazione di Llama 2 e RAG
Come molti altri LLM, Llama 2 è stato pre-addestrato su dati disponibili pubblicamente e affronta problemi di allucinazione quando necessita di conoscenze più pertinenti. La community dell'IA ha introdotto il concetto di Retrieval Augmented Generation (RAG) per affrontare queste sfide. RAG sfrutta conoscenze recuperate esternamente come contesto per migliorare l'accuratezza delle risposte generate dal modello.
Come funziona RAG con una pipeline Towhee
Sul mercato sono disponibili molti strumenti per arricchire gli LLM con conoscenze esterne. Towhee è uno degli esempi principali. È una pipeline di machine learning open-source che si integra con Llama 2 nella sua architettura e supporta l'elaborazione flessibile dei dati. Questa sezione utilizzerà un piccolo esempio dalla Towhee Pipeline per dimostrare come funziona la soluzione RAG.
Se chiedi a Llama 2 "come installare Towhee", ti fornirà risposte fattualmente errate, irrilevanti o prive di senso, poiché Llama 2 non sa nulla di Towhee.
Per affrontare questo problema, utilizziamo una pipeline Towhee per combinare informazioni aggiuntive su Towhee e la cronologia della chat con la domanda originale per Llama 2. Llama 2 fornirà quindi una risposta più accurata basata sulle notizie.
Di seguito è riportato il prompt aumentato per 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'
Per saperne di più sulla creazione di chatbot complessi basati su RAG utilizzando Towhee, dai un'occhiata ad Akcio, un progetto dimostrativo open-source per la retrieval augmented generation.
Valutazione di Llama 2 e ChatGPT
Questa sezione valuterà due modelli di chatbot: Llama 2 Chat (13B), un modello Llama 2 con 13B parametri ottimizzato per istruzioni di chat, e ChatGPT alimentato da GPT-3.5. Testeremo entrambi i modelli utilizzando gli stessi prompt in diversi scenari comuni.
Nota: La conoscenza esterna che forniamo con Llama 2 e ChatGPT è lunga. Pertanto, non mostreremo l'intero prompt in questo blog. Se sei interessato al prompt completo, consulta External knowledge provided to Llama2 and ChatGPT in un documento separato come riferimento.
Caso 1: Rispondere a domande quando vengono fornite conoscenze pertinenti
Abbiamo fornito a Llama 2 e ChatGPT notizie finanziarie sull'investimento di Volkswagen in XPENG. Poi abbiamo chiesto a entrambi i modelli di rispondere a una domanda basata sulle informazioni fornite.
Prompt
You are an information retriever. You need to use content in [Knowledge] to answer questions, when the knowledge is different from your knowledge, the [Knowledge] has higher priority.
[Knowledge Start]:
Volkswagen said Wednesday that it has signed a deal to jointly develop two new electric vehicles for China with Chinese EV maker Xpeng . As part of the deal, Volkswagen will invest about $700 million in Xpeng, taking a 4.99% stake…
[Knowledge End]:
How much did Volkswagen invest to XPENG?
Risposte
ChatGPT: Volkswagen ha investito circa $ 700 milioni in Xpeng, acquisendo una quota del 4,99% nel produttore cinese di veicoli elettrici.
Llama 2-chat: Secondo le informazioni fornite nella sezione Knowledge, Volkswagen ha investito circa $700 milioni in Xpeng, che corrisponde a una quota di circa il 4,99%.
Entrambi i modelli hanno risposto accuratamente alla domanda in base alla conoscenza fornita.
Caso 2: Rispondere a domande quando vengono fornite informazioni irrilevanti
Abbiamo simulato uno scenario in cui le informazioni recuperate non sono correlate alla domanda e abbiamo testato se entrambi i modelli possono rispondere onestamente con "Non lo so." Abbiamo fornito a entrambi i modelli informazioni sull'investimento di Volkswagen in XPeng Motors, ma abbiamo posto una domanda irrilevante su quanto Audi abbia investito in XPeng.
Prompt
You are an information retriever. You need to use content in [Knowledge] to answer questions, when the knowledge is different from your knowledge, the [Knowledge] has higher priority.
[Knowledge Start]:
Volkswagen said Wednesday that it has signed a deal to jointly develop two new electric vehicles for China with Chinese EV maker Xpeng . As part of the deal, Volkswagen will invest about $700 million in Xpeng, taking a 4.99% stake…
[Knowledge End]:
How much did Audi invest to XPENG?
Risposte
ChatGPT:
Secondo la conoscenza fornita, non vi è alcuna menzione di un investimento diretto di Audi in Xpeng. Le informazioni indicano che Volkswagen, che è la società madre di Audi, ha firmato un accordo separato con il suo storico partner di joint venture cinese, SAIC Motor, per sviluppare congiuntamente nuovi EV a marchio Audi per il mercato cinese. Tuttavia, non ci sono informazioni su alcun investimento diretto di Audi in Xpeng. L'investimento di circa $700 milioni in Xpeng è stato effettuato da Volkswagen, non da Audi.
Llama2-chat:
Secondo le informazioni fornite, Audi non ha investito denaro in Xpeng. È Volkswagen che ha investito circa $700 milioni in Xpeng, acquisendo una quota del 4,99% nel produttore cinese di veicoli elettrici.
Llama 2 e ChatGPT hanno identificato correttamente la lacuna nella conoscenza e hanno risposto onestamente.
Caso 3: Rispondere a domande quando vengono fornite informazioni illeggibili
Negli scenari aziendali reali, i documenti di testo possono presentarsi in vari formati. Pertanto, in questo caso, abbiamo fornito a entrambi i modelli un testo non formattato e illeggibile su Tailwind CSS su GitHub. Poi abbiamo chiesto loro di rispondere a domande correlate.
Prompt
Sei un recuperatore di informazioni. Devi utilizzare il contenuto in [Knowledge] per rispondere alle domande; quando la conoscenza è diversa dalla tua conoscenza, [Knowledge] ha priorità più alta.
[Knowledge Start]:
[['Q: Quali sono alcuni esempi di siti web che utilizzano 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]:
Dimmi alcuni siti web che utilizzano Tailwind?
Risposte
ChatGPT:
Certo! In base al [Knowledge] fornito, ecco alcuni siti web che utilizzano 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) - Ricostruire Bartik (il tema predefinito di Drupal) con Vue.js e Tailwind CSS.
Rebuilding Airbnb's Home Page(https://web-crunch.com/re-create-airbnbs-home-page-with-tailwind-css) - Ricostruire la Home Page di 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)
Questi siti web mostrano vari casi d’uso ed esempi di siti web realizzati utilizzando Tailwind CSS.
Llama2-chat:
Certo, ecco alcuni esempi di siti web che utilizzano Tailwind CSS:
GitHub - La documentazione e le pagine di marketing di GitHub utilizzano Tailwind CSS per il loro stile.
Shopify - Shopify utilizza Tailwind CSS per lo stile della dashboard di amministrazione e di altri strumenti interni.
Atlassian - Il prodotto Confluence di Atlassian utilizza Tailwind CSS per il suo layout responsivo e lo stile.
React Magazine - Il sito web di React Magazine è realizzato utilizzando Tailwind CSS e presenta un design pulito e moderno.
The Verge - Le pagine degli articoli di The Verge utilizzano Tailwind CSS per la tipografia e la spaziatura.
Dribbble - Il sito web di Dribbble utilizza Tailwind CSS per il suo sistema a griglia e la tipografia.
Smashing Magazine - Il sito web di Smashing Magazine è stato riprogettato utilizzando Tailwind CSS nel 2020.
Laracasts - Laracasts, un popolare sito di tutorial su Laravel, utilizza Tailwind CSS per il suo stile.
Statamic - Statamic, un generatore di siti statici, utilizza Tailwind CSS come parte della sua configurazione predefinita.
Figma - Le pagine del blog e della documentazione di Figma utilizzano Tailwind CSS per la tipografia e la spaziatura.
Questi sono solo alcuni esempi di siti web che utilizzano Tailwind CSS. Molti altri siti web e applicazioni lo utilizzano, e l’elenco continua a crescere man mano che sempre più sviluppatori scoprono la potenza e la flessibilità di questo framework.
ChatGPT riesce a comprendere accuratamente le informazioni testuali anche quando sono presentate in un markup Markdown complesso e fornisce risposte di alta qualità. Al contrario, Llama2-chat non riesce a comprendere le informazioni fornite e fornisce una risposta di qualità inferiore basata esclusivamente sulla propria conoscenza.
Oltre ai tre casi menzionati sopra, abbiamo testato Llama 2 e ChatGPT nel question answering con conoscenze specifiche di dominio e informazioni riformattate. Per maggiori dettagli, consulta il documento External knowledge provided to Llama2 and ChatGPT.
Punti chiave
Sia Llama2 sia ChatGPT eccellono nel rispondere a domande basate sulla conoscenza del mondo reale.
Entrambi i modelli possono determinare se la conoscenza fornita supporta risposte specifiche alle domande.
ChatGPT è migliore di Llama 2 nel comprendere informazioni non formattate e illeggibili. Tuttavia, Llama 2 può fornire risposte più accurate quando organizziamo le informazioni non formattate.
Valutazione delle prestazioni di Llama 2
In questa sezione, valuteremo le prestazioni e il costo di distribuzione del modello Llama 2 (13b). Lo eseguiremo su llama.cpp e misureremo le sue prestazioni di inferenza con quantizzazione intera a 4 bit e 8 bit eseguendo ripetutamente prompt campionati. Utilizzeremo l’operatore Llama 2 dell’ultimo framework Towhee, che ci consente di chiamare Llama 2 con poche righe di codice e preelaborare i dati per assemblare comodamente il prompt.
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)
Risultati dei test
Abbiamo testato il modello Llama 2 (13b) utilizzando una GPU A100 di fascia alta dotata di 80GB di memoria e una GPU 2080 standard di livello desktop con 12GB di memoria.
Prestazioni di inferenza di Llama 2 (13b) con quantizzazione intera a 8 bit
| Scheda grafica | Numero di modelli | Utilizzo della scheda grafica | VRAM | TPS |
|---|---|---|---|---|
| 1 x NVIDIA A100 (80G) | 1 | 87% | 19G | 37 token/s |
| 1 x NVIDIA A100 (80G) | 2 | 100% | 38G | 45 token/s |
| 1 x GeForce RTX 2080 (12G) | GPU insufficiente | / | / | / |
| 2 x GeForce RTX 2080 (12G) | 1 | 40%,40% | 8G + 8G | 18 token/s |
Prestazioni di inferenza di Llama 2 (13b) con quantizzazione intera a 4 bit
| Scheda grafica | Numero di modelli | Utilizzo della scheda grafica | VRAM | TPS |
|---|---|---|---|---|
| 1 x NVIDIA A100 (80G) | 1 | 80% | 11G | 45 token/s |
| 1 x NVIDIA A100 (80G) | 2 | 100% | 22G | 56 token/s |
| 1 x GeForce RTX 2080 (12G) | 1 | 86% | 9.3G | 37 token/s |
Punti chiave
Utilizzando la quantizzazione a basso bit, possiamo eseguire senza problemi il modello Llama 2 (13b) su una singola GPU di livello desktop. Questo approccio ti consente di massimizzare la potenza di Llama 2 riducendo al contempo i costi.
L’utilizzo della memoria GPU è basso quando si distribuisce il modello Llama 2 (13b) su una A100.
Sebbene non vi sia una differenza significativa nelle prestazioni tra l’esecuzione di Llama 2 (13b) su una GPU A100 o su una GPU 2080, le GPU desktop hanno dimensioni inferiori e possono caricare solo modelli più piccoli su una singola scheda.
Riepilogo
In questo post, abbiamo approfondito le capacità di Llama 2 Chat (13b) nell’ambito RAG e le sue prestazioni nella modalità di distribuzione llama.cpp.
Llama 2 comprende efficacemente il testo di conoscenza, rispondendo accuratamente a domande semplici in modo paragonabile a ChatGPT. Tuttavia, affronta difficoltà nel mantenere la qualità delle risposte quando si confronta con una formattazione testuale complessa.
Llama 2 si distingue perché non richiede GPU di fascia alta. Funziona senza problemi su GPU di livello desktop, soprattutto dopo essere stato sottoposto a quantizzazione a basso bit, ottenendo un throughput impressionante su una singola scheda NVIDIA A100. Inoltre, puoi aumentare le prestazioni eseguendo più modelli su una singola GPU.
La capacità di Llama 2 di elaborare informazioni testuali lo rende adatto a vari scenari RAG. Se abbinato a database di conoscenza come Milvus, può fornire risposte di alta qualità.
In conclusione, Llama 2 e altri modelli di IA open-source promettono di promuovere l'innovazione nel panorama dell'IA. Hanno il potenziale per offrire esperienze eccezionali di domanda e risposta per utenti e sviluppatori, rendendoli aggiunte entusiasmanti al mondo dei modelli linguistici di IA.
Continua a leggere

Why We Built Vector Lakebase: Rethinking Unstructured Data Architecture for AI
Vector Lakebase: a unified, lake-native data foundation for AI workloads — and an answer to what happens after vector databases succeed.

Announcing VDBBench 1.0: Open-Source VectorDB Benchmarking with Your Real-World Production Workloads
Discover VDBBench 1.0, an open-source tool for benchmarking vector databases with real-world production data, streaming ingestion, and concurrent workloads.

Cosmos World Foundation Model Platform for Physical AI
NVIDIA's Cosmos platform enables safe, digital twin training of GenAI models for physical applications, overcoming data scarcity and safety challenges.



