llama.py
1.0.0
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 รับน้ำหนักรุ่น 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 |