llama.py
1.0.0
llama.py는 순수한 C/C ++의 LLAMA 모델에 대한 추론 런타임에 Python 바인딩을 제공하는 llama.cpp의 포크입니다.
주요 목표는 랩톱에서 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 인터페이스를 실행하십시오.
모델이 현재 메모리에 완전히로드되어 있으므로 저장할 수있는 적절한 디스크 공간이 필요하고 RAM을로드하기에 충분한 RAM이 필요합니다. 현재 메모리와 디스크 요구 사항은 동일합니다.
| 모델 | 원래 크기 | 양자 크기 (4 비트) |
|---|---|---|
| 7b | 13GB | 3.9 GB |
| 13b | 24GB | 7.8 GB |
| 30b | 60GB | 19.5GB |
| 65b | 120GB | 38.5GB |