llama.py ist eine gabel von llama.cpp, die Python -Bindungen an eine Inferenzlaufzeit für das Lama -Modell in reinem C/C ++ liefert.
Das Hauptziel ist es, das Modell mit einer 4-Bit-Quantisierung auf einem Laptop auszuführen.
Die Anweisung erstellen folgt.
cmake -S . -B build/release
cmake --build build/release
ln -s build/release/llama/cc/_llama.cpython-310-x86_64-linux-gnu.so llama Erhalten Sie die ursprünglichen Lama -Modellgewichte und legen Sie sie in data/model .
python -m llama pull -m data/model/7B -s 7BDa Modellgewichte erfolgreich abgerufen werden, sollte die Verzeichnisstruktur nach unten aussehen.
data/model
├── 7B
│ ├── checklist.chk
│ ├── consolidated.00.pth
│ └── params.json
├── tokenizer_checklist.chk
└── tokenizer.model
Dann sollte man das 7B -Modell in das GGML -FP16 -Format konvertieren.
python -m llama convert data/model/7BUnd quantisieren Sie das Modell auf 4-Bit.
python -m llama quantize data/model/7BDann kann man den Python -Dolmetscher beginnen und mit nackten Bindungen spielen.
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 )Oder führen Sie die CLI -Schnittstelle aus.
Da die Modelle derzeit voll in den Speicher geladen sind, benötigen Sie einen ausreichenden Speicherplatz, um sie zu speichern, und ausreichend RAM, um sie zu laden. Im Moment sind Speicher- und Festplattenanforderungen gleich.
| Modell | Originalgröße | quantisierte Größe (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 |