Llama.py - это вилка llama.cpp, которая обеспечивает привязки Python для выполнения вывода для модели Llama в Pure 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 Получите исходные веса модели ламы и поместите их в каталог 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.
Поскольку модели в настоящее время полностью загружены в память, вам понадобится достаточное количество дискового пространства, чтобы сохранить их и достаточное количество оперативной памяти для их загрузки. На данный момент требования к памяти и диска одинаковы.
| модель | Оригинальный размер | квантованный размер (4-битный) |
|---|---|---|
| 7b | 13 ГБ | 3,9 ГБ |
| 13b | 24 ГБ | 7,8 ГБ |
| 30b | 60 ГБ | 19,5 ГБ |
| 65b | 120 ГБ | 38,5 ГБ |