llama.py adalah garpu llama.cpp yang menyediakan ikatan python ke runtime inferensi untuk model llama dalam c/c ++ murni.
Tujuan utamanya adalah menjalankan model menggunakan kuantisasi 4-bit pada laptop.
Bangun instruksi berikut.
cmake -S . -B build/release
cmake --build build/release
ln -s build/release/llama/cc/_llama.cpython-310-x86_64-linux-gnu.so llama Dapatkan bobot model llama asli dan tempatkan di direktori data/model .
python -m llama pull -m data/model/7B -s 7BKarena bobot model berhasil diambil, struktur direktori harus terlihat seperti di bawah ini.
data/model
├── 7B
│ ├── checklist.chk
│ ├── consolidated.00.pth
│ └── params.json
├── tokenizer_checklist.chk
└── tokenizer.model
Maka seseorang harus mengonversi model 7b ke format GGML FP16.
python -m llama convert data/model/7BDan menghitung model menjadi 4-bit.
python -m llama quantize data/model/7BKemudian seseorang dapat memulai interpreter Python dan bermain dengan binding telanjang.
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 )Atau jalankan antarmuka CLI.
Karena model saat ini sepenuhnya dimuat ke dalam memori, Anda akan membutuhkan ruang disk yang memadai untuk menyimpannya dan RAM yang cukup untuk memuatnya. Saat ini, persyaratan memori dan disk adalah sama.
| model | Ukuran asli | Ukuran terkuantisasi (4-bit) |
|---|---|---|
| 7b | 13 GB | 3,9 GB |
| 13b | 24 GB | 7,8 GB |
| 30b | 60 GB | 19,5 GB |
| 65b | 120 GB | 38,5 GB |