llama.py
1.0.0
Llama.py是Llama.cpp的叉子,可為純C/C ++的Llama模型提供Python綁定。
主要目標是使用筆記本電腦上的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然後,人們可以啟動Python的解釋器並使用裸綁定。
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接口。
由於目前將模型完全加載到內存中,因此您將需要足夠的磁盤空間來節省它們並充分加載RAM。目前,內存和磁盤要求相同。
| 模型 | 原始大小 | 量化尺寸(4位) |
|---|---|---|
| 7b | 13 GB | 3.9 GB |
| 13b | 24 GB | 7.8 GB |
| 30b | 60 GB | 19.5 GB |
| 65B | 120 GB | 38.5 GB |