llama.py
1.0.0
llama.py هو شوكة llama.cpp التي توفر روابط Python لوقت الاستنتاج لنموذج Llama في C/C ++ النقي.
الهدف الرئيسي هو تشغيل النموذج باستخدام كمية 4 بت على جهاز كمبيوتر محمول.
بناء التعليمات يلي.
cmake -S . -B build/release
cmake --build build/release
ln -s build/release/llama/cc/_llama.cpython-310-x86_64-linux-gnu.so llama الحصول على أوزان نموذج Llama الأصلي ووضعها في دليل data/model .
python -m llama pull -m data/model/7B -s 7Bنظرًا لأن الأوزان النموذجية يتم جلبها بنجاح ، يجب أن يبدو بنية الدليل أدناه.
data/model
├── 7B
│ ├── checklist.chk
│ ├── consolidated.00.pth
│ └── params.json
├── tokenizer_checklist.chk
└── tokenizer.model
ثم يجب على المرء تحويل طراز 7B إلى تنسيق GGML FP16.
python -m llama convert data/model/7Bوعيش النموذج إلى 4 بت.
python -m llama quantize data/model/7Bثم يمكن للمرء أن يبدأ مترجم بيثون واللعب مع روابط عارية.
from llama . _llama import *
nothreads = 8
model = LLaMA . load ( './data/model/7B/ggml-model-q4_0.bin' , 512 , GGMLType . F32 )
mem_per_token = model . estimate_mem_per_token ( nothreads )
logits = model . apply ( context , context_size , mem_per_token , nothreads )
token_id = sample_next_token ( context , logits )
tokenizer = model . get_tokenizer ()
tokenizer . decode ( token_id )أو تشغيل واجهة CLI.
نظرًا لأن النماذج يتم تحميلها بشكل كامل في الذاكرة ، فستحتاج إلى مساحة كافية من القرص لحفظها وذاكرة الوصول العشوائي الكافية لتحميلها. في الوقت الحالي ، تكون متطلبات الذاكرة والقرص هي نفسها.
| نموذج | الحجم الأصلي | الحجم الكمي (4 بت) |
|---|---|---|
| 7 ب | 13 غيغابايت | 3.9 جيجابايت |
| 13 ب | 24 غيغابايت | 7.8 جيجابايت |
| 30 ب | 60 جيجابايت | 19.5 غيغابايت |
| 65 ب | 120 غيغابايت | 38.5 جيجابايت |