Wir leben in einer bemerkenswerten Zeit, in der von engagierten Communities getragene Open-Source-Projekte mit teuren proprietären Lösungen großer Konzerne mithalten. Zu den spannendsten Fortschritten zählen kleinere, aber äußerst effiziente Sprachmodelle wie Vicuna, Koala, Alpaca und StableLM. Sie benötigen nur wenig Rechenleistung und liefern dennoch Ergebnisse auf dem Niveau von ChatGPT. Gemeinsame Basis all dieser Modelle sind die LLaMA-Modelle von Meta AI.
Lies 12 GPT-4 Open-Source-Alternativen, um weitere populäre Open-Source-Entwicklungen in der Sprachtechnologie kennenzulernen.
In diesem Beitrag schauen wir uns Meta AIs LLaMA-Modelle an, erklären ihre Funktionsweise, greifen über die transformers-Bibliothek darauf zu, vergleichen ihre Leistung und sprechen über Herausforderungen und Grenzen. Seit der Erstveröffentlichung dieses Artikels sind sowohl LLaMA 2 als auch LLaMA 3 erschienen – Details zu beiden findest du in unseren separaten Artikeln.
Was ist LLaMA?
LLaMA (Large Language Model Meta AI) ist eine Sammlung führender Foundation-Modelle mit 7 bis 65 Milliarden Parametern. Sie sind kompakter, liefern aber außergewöhnliche Leistung und reduzieren den Rechenaufwand erheblich – ideal, um neue Methoden zu testen, Ergebnisse zu validieren und innovative Anwendungsfälle zu erkunden.
Die Foundation-Modelle wurden auf großen, unlabeleten Datensätzen trainiert und eignen sich dadurch hervorragend zum Finetuning für unterschiedlichste Aufgaben. Das Training nutzte unter anderem folgende Quellen:
- 67,0% CommonCrawl
- 15,0% C4
- 4,5% GitHub
- 4,5% Wikipedia
- 4,5% Bücher
- 2,5% ArXiv
- 2,0% StackExchange
Diese Vielfalt an Datensätzen verhilft den Modellen zu Spitzenleistungen, die mit führenden Modellen wie Chinchilla-70B und PaLM-540B konkurrieren.
Verschaffe dir zudem einen Überblick über die Entwicklung der OpenAI-Modelle – von GPT-1, GPT-2 und GPT-3 bis hin zum aktuellen Stand mit GPT-4 – in What is GPT-4 and Why Does it Matter?
Wie funktioniert Metas LLaMA?
LLaMA ist ein autoregressives Sprachmodell auf Basis der Transformer-Architektur. Wie andere große Sprachmodelle nimmt LLaMA eine Wortsequenz als Eingabe und sagt das nächste Wort voraus – so entsteht Text rekursiv Wort für Wort.
Besonders ist das Training auf einer öffentlich verfügbaren, sehr breiten Textbasis in vielen Sprachen, darunter Bulgarisch, Katalanisch, Tschechisch, Dänisch, Deutsch, Englisch, Spanisch, Französisch, Kroatisch, Ungarisch, Italienisch, Niederländisch, Polnisch, Portugiesisch, Rumänisch, Russisch, Slowenisch, Serbisch, Schwedisch und Ukrainisch. Seit 2024 ist LLaMA 2 verfügbar – mit verbesserter Architektur und Trainingsmethoden, was die Mehrsprachigkeit und Effizienz weiter steigert.
Die LLaMA-Modelle gibt es in mehreren Größen: 7B, 13B, 33B und 65B Parameter. Du findest sie auf Hugging Face (für Transformers konvertierte LLaMA-Modelle) oder im offiziellen Repository facebookresearch/llama.
Erste Schritte mit LLaMA-Modellen
Der offizielle Inferenz-Code ist im Repository facebookresearch/llama verfügbar. Für einen einfachen Einstieg verwenden wir jedoch das LLaMA-Modul der Hugging-Face-Bibliothek `transformers`, um das Modell zu laden und Text zu generieren.
1. Installiere alle notwendigen Python-Bibliotheken, um das Modul auszuführen.
Hinweis: Wir verwenden Google Colab für die LLaMA-Inferenz.
%%capture
%pip install transformers SentencePiece accelerate
2. Lade LLaMA-Tokenizer und Modellgewichte.
Hinweis: „decapoda-research/llama-7b-hf“ sind nicht die offiziellen Modellgewichte. Decapoda Research hat die Originalgewichte für die Nutzung mit Transformers konvertiert.
import transformers, torch
from transformers import LlamaTokenizer, LlamaForCausalLM, GenerationConfig
tokenizer = LlamaTokenizer.from_pretrained("decapoda-research/llama-7b-hf")
model = LlamaForCausalLM.from_pretrained(
"decapoda-research/llama-7b-hf",
load_in_8bit=False,
torch_dtype=torch.float16,
device_map="auto",
)
3. Formuliere die Frage.
4. Wandle den Text in Tokens um.
5. Lege die Generierungskonfiguration fest.
6. Verwende Tokens und Konfiguration, um den Ausgabetext zu erzeugen.
7. Dekodiere die Ausgabe und gib die Antwort aus.
instruction = "How old is the universe?"
inputs = tokenizer(
f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction: {instruction}
### Response:""",
return_tensors="pt",
)
input_ids = inputs["input_ids"].to("cuda")
generation_config = transformers.GenerationConfig(
do_sample=True,
temperature=0.1,
top_p=0.75,
top_k=80,
repetition_penalty=1.5,
max_new_tokens=128,
)
with torch.no_grad():
generation_output = model.generate(
input_ids=input_ids,
attention_mask=torch.ones_like(input_ids),
generation_config=generation_config,
)
output_text = tokenizer.decode(
generation_output[0].cuda(), skip_special_tokens=True
).strip()
print(output_text)
Ausgabe:
Das Modell liefert nicht nur eine präzise Schätzung von 13 Milliarden Jahren für das Alter des Universums, sondern erläutert auch die zugrunde liegende Herleitung.
Below is an instruction that describes a task. Write a response that
appropriately completes the request.
### Instruction: How old is the universe?
### Response: The age of our Universe can be calculated by measuring
how fast it expands and then using this information to calculate its
size at different points in time, which allows us determine when
things happened relative to each other (evolutionary biology). This
method has been used for many years now with great success; however
there are still some uncertainties about what exactly we're seeing
because light takes so long travel from distant galaxies back here on
Earth! So while scientists have determined roughly 13 billion
year-old as being correct they don't know if their calculations were
off or not due to these limitations mentioned above
Außerdem lassen sich mit transformers vielfältige Aufgaben und Datensätze feinabstimmen, was Genauigkeit und Performance deutlich verbessern kann.
Wenn dich die praktische Seite der Open-Source-Entwicklung interessiert, schau dir zur Inspiration den Beitrag 5 Projects Build with Generative Models an.
Wodurch unterscheidet sich LLaMA von anderen KI-Modellen?
Das Paper bietet eine umfassende Bewertung der LLaMA-Modelle im Vergleich zu anderen Spitzenmodellen wie GPT-3, GPT-NeoX, Gopher, Chinchilla und PaLM. Die Benchmarks umfassen Alltagslogik, Trivia, Leseverständnis, Fragebeantwortung, mathematisches Schlussfolgern, Codegenerierung und allgemeines Domänenwissen.
- Alltagslogik. Das LLaMA-65B-Modell übertrifft SOTA-Architekturen in den PIQA-, SIQA- und OpenBookQA-Benchmarks. Selbst das kleinere 33B-Modell liegt in ARC – sowohl „easy“ als auch „challenge“ – vorn.
- Closed-Book-Fragebeantwortung & Trivia. Der Test misst die Fähigkeit eines LLM, realistische, menschliche Fragen zu interpretieren und zu beantworten. LLaMA übertrifft in den Benchmarks Natural Questions und TriviaQA konstant GPT‑3, Gopher, Chinchilla und PaLM.
- Leseverständnis. Zum Einsatz kommen RACE-middle- und RACE-high-Benchmarks. LLaMA-Modelle schneiden besser ab als GPT‑3 und erreichen eine ähnliche Performance wie PaLM 540B.
- Mathematisches Schlussfolgern. LLaMA wurde nicht auf mathematischen Daten feinabgestimmt und schneidet im Vergleich zu Minerva deutlich schlechter ab.
- Codegenerierung. Verwendet werden die Benchmarks HumanEval und MBPP. LLaMA übertrifft sowohl LAMDA als auch PaLM in HumanEval@100, MBP@1 und MBP@80.
Domänenwissen. LLaMA-Modelle liegen hinter dem sehr großen PaLM-Modell mit 540B Parametern zurück. PaLM deckt aufgrund der höheren Parameterzahl ein breiteres Domänenwissen ab.

Herausforderungen und Grenzen von LLaMA
Wie andere große Sprachmodelle neigt auch LLaMA zu Halluzinationen und kann faktisch falsche Informationen erzeugen.
Darüber hinaus gilt:
- Da der Großteil des Datensatzes aus englischen Texten besteht, kann die Leistung in anderen Sprachen vergleichsweise geringer ausfallen.
- Die LLaMA-Modelle sind primär für Forschungszwecke gedacht (nicht-kommerzielle Lizenz). Die Veröffentlichung soll Forschenden helfen, Themen wie Verzerrungen, Risiken, toxische Inhalte und Halluzinationen zu evaluieren und zu adressieren.
- LLaMA ist ein Basismodell und sollte nicht ohne Risikoanalyse und -minderung zur Entwicklung von Anwendungen eingesetzt werden.
- In mathematischem Schlussfolgern und Domänenwissen ist die Leistung schwächer.
Für Einblicke in Closed-Source-Entwicklungen lies The Latest On OpenAI, Google AI, and What it Means For Data Science. Der Beitrag beleuchtet disruptive Sprach-, Bild- und Multimodal-Technologien und wie sie unsere Produktivität steigern.
Mit der Veröffentlichung von LLaMA 2 und LLaMA 3 wurden neue Herausforderungen und Grenzen sichtbar. Es gab Verbesserungen etwa bei der Kontextlänge, und mithilfe von Finetuning lassen sich Aufgaben mit tiefem domänenspezifischem Wissen zunehmend besser bewältigen. Wie immer arbeitet die Community aktiv daran, Robustheit und Praxistauglichkeit weiter zu erhöhen.
Fazit
Die LLaMA-Modelle haben eine neue Welle der Open-Source-KI-Entwicklung ausgelöst. Dass schon das kleinere Foundation-Modell LLaMA‑13B GPT‑3 übertrifft und LLaMA‑65B eine Leistung auf Augenhöhe mit Modellen wie Chinchilla‑70B und PaLM‑540B zeigt, unterstreicht das Potenzial, mit öffentlich verfügbaren Daten und vergleichsweise wenig Rechenressourcen Ergebnisse auf Spitzenniveau zu erreichen.
Das Paper hebt zudem hervor, dass sich die Leistung durch instruktionenbasiertes Finetuning weiter steigern lässt. Bemerkenswert sind hier Vicuna und Stanford Alpaca, die auf LLaMA basieren und für das Befolgen von Anweisungen feinabgestimmt wurden – mit Ergebnissen ähnlich zu ChatGPT und Bard.
Wenn du große Sprachmodelle in deinen Data-Science-Projekten nutzen möchtest, sieh dir A Guide to Using ChatGPT For Data Science Projects an. Außerdem kannst du deine Kompetenzen im Prompt Engineering mit den ChatGPT Cheat Sheets for Data Science ausbauen.
Als zertifizierter Data Scientist ist es meine Leidenschaft, modernste Technologien zu nutzen, um innovative Machine Learning-Anwendungen zu entwickeln. Mit meinem fundierten Hintergrund in den Bereichen Spracherkennung, Datenanalyse und Reporting, MLOps, KI und NLP habe ich meine Fähigkeiten bei der Entwicklung intelligenter Systeme verfeinert, die wirklich etwas bewirken können. Neben meinem technischen Fachwissen bin ich auch ein geschickter Kommunikator mit dem Talent, komplexe Konzepte in eine klare und prägnante Sprache zu fassen. Das hat dazu geführt, dass ich ein gefragter Blogger zum Thema Datenwissenschaft geworden bin und meine Erkenntnisse und Erfahrungen mit einer wachsenden Gemeinschaft von Datenexperten teile. Zurzeit konzentriere ich mich auf die Erstellung und Bearbeitung von Inhalten und arbeite mit großen Sprachmodellen, um aussagekräftige und ansprechende Inhalte zu entwickeln, die sowohl Unternehmen als auch Privatpersonen helfen, das Beste aus ihren Daten zu machen.
