Code Llama
Főnév
Code Llama (tsz. Code Llamas)
- (informatika) A Code Llama a Meta AI (korábban Facebook AI) által fejlesztett nyílt forráskódú generatív mesterséges intelligencia modell, amelyet kifejezetten programkód írására, értelmezésére és kiegészítésére optimalizáltak. A modell a LLaMA 2 nyelvi modellcsaládra épül, de azt kód-specifikus adatokon továbbképezték.
A Code Llama célja, hogy fejlesztőknek segítsen kódgenerálásban, hibakeresésben, dokumentációban és algoritmikus feladatokban – nyílt és szabadon felhasználható alternatívaként olyan zárt modellek mellett, mint a GitHub Copilot vagy az AlphaCode.
📦 Modellváltozatok
A Meta 2023 augusztusában adta ki a Code Llama-t, amely három fő változatban érhető el:
| Változat | Leírás |
|---|---|
| Code Llama | Alapmodell, általános célú kódgenerálásra |
| Code Llama – Python | Python nyelvre finomhangolt, még jobb teljesítmény Python-feladatokon |
| Code Llama – Instruct | Kérdés-válasz és utasítás-alapú feladatokra optimalizált változat |
Mindegyik változat elérhető több méretben: 7B, 13B, és 34B paraméteres hálózatok (a B a milliárd paramétert jelöli).
🧩 Mire képes?
- 🔧 Kódkiegészítés: pl. egy félbemaradt függvény befejezése
- 🧾 Kommentek alapján kód generálása: pl.
# Két szám összege→def add(a, b): return a + b - 🧪 Egységteszt generálás
- 🧠 Kódmagyarázat emberi nyelven
- 🧯 Hibajavítás (bug fixing)
- 🧮 Algoritmus-implementáció (pl. BFS, merge sort, stb.)
- 🌐 Több nyelv támogatása: Python, C++, Java, JavaScript, HTML, Bash, stb.
🔬 Hogyan működik?
A Code Llama egy transformer-alapú, autoregresszív nyelvi modell, amely szövegként tekint a programkódra.
Képzés:
- LLaMA 2 modellek szolgáltak alapul
- Több tízmilliárd sor kód felhasználásával finomhangolták (pl. GitHub-adatok, Stack Overflow jellegű példák)
- Speciális tokenizálással és formázással dolgozik, hogy a kód strukturált és értelmezhető legyen
Használat:
- A modellt utasításszöveggel (prompt) lehet vezérelni
- Pl.
"Írj egy Python-függvényt, ami megfordítja a karakterláncot!"
🧪 Példa
Prompt:
# Egy függvény, amely visszaadja a listában lévő páros számok összegét
Kimenet:
def sum_even_numbers(lst):
return sum(x for x in lst if x % 2 == 0)
⚙️ Használat Pythonban (Hugging Face Transformers)
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
tokenizer = AutoTokenizer.from_pretrained("codellama/CodeLlama-7b-Python-hf")
model = AutoModelForCausalLM.from_pretrained("codellama/CodeLlama-7b-Python-hf")
generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
output = generator("# Függvény, ami eldönti, hogy szám prímszám-e", max_length=100)
print(output[0]["generated_text"])
📊 Teljesítmény
| Teszt / benchmark | Eredmény |
|---|---|
| HumanEval (Python) | ~53–60% pass@1 (modellmérettől függően) |
| MBPP (kódgenerálás) | Jó általánosítási képességek |
| BigCode vs Code Llama | Code Llama jobb Python-teljesítményt mutat |
A Code Llama teljesítménye közelíti vagy felülmúlja a Codex, PaLM-Coder, StarCoder, Incoder modellek egyes képességeit, főként Python nyelven.
✅ Előnyök
- Nyílt forráskódú és szabadon használható (nem kereskedelmi korlátozásokkal)
- Offline is futtatható → nem függ felhős API-tól
- Fejlett kódértés és -generálás
- Instruct-változat emberi nyelven írt kérdésekre is jól reagál
- Python specializáció magas szintű pontosságot biztosít
⚠️ Hátrányok
- Nagy méret → erőforrásigényes (a 34B modell több GPU-t igényel)
- Hosszabb kódoknál időigényes lehet
- Nem tudja, hogy helyes-e a generált kód – csak „valószínű” kimenetet ad
- Nem érti a valóságot, csak szintaktikai mintákat követ
🛠️ Hol használható?
| Terület | Példák |
|---|---|
| Fejlesztői asszisztens | Kódbeillesztés, magyarázat, dokumentáció |
| Oktatás | Algoritmus tanulás, feladatmegoldás, magyarázat generálás |
| Automatizálás | Scriptgenerálás, konfigurációk előállítása |
| Kódkarbantartás | Refaktorálás, kompatibilitás, újrafogalmazás |
| Tudományos kutatás | Reprezentatív megoldások, benchmark-összehasonlítások |
🔮 A jövője
A Code Llama a nyílt AI-fejlesztés jövőjét képviseli:
- Várhatóak további specializált nyelvi változatok
- Egyre jobb instruct tuning (kódon kívül kérdés-válasz formátumok)
- Oktatási célra ideális – mivel nem függ kereskedelmi platformoktól
- Integrálható más MI-rendszerekbe (pl. chatbot, IDE-plugin, Gradio demo)
🧾 Összefoglalás
| Tulajdonság | Részletek |
|---|---|
| Fejlesztő | Meta AI (Facebook) |
| Cél | Kódgenerálás, fejlesztői támogatás |
| Modellméretek | 7B, 13B, 34B |
| Specializáció | Python, Instruct verzió is elérhető |
| Licenc | Nyílt, kutatási és kereskedelmi célra használható (feltételekkel) |
| Alternatívák | DeepSeek-Coder, StarCoder, CodeGen, Codex, AlphaCode |
- Code Llama - Szótár.net (en-hu)
- Code Llama - Sztaki (en-hu)
- Code Llama - Merriam–Webster
- Code Llama - Cambridge
- Code Llama - WordNet
- Code Llama - Яндекс (en-ru)
- Code Llama - Google (en-hu)
- Code Llama - Wikidata
- Code Llama - Wikipédia (angol)