登陸huggingface賬戶
pip install --upgrade huggingface_hub
huggingface-cli login
通過snapshot_download下載模型
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="bigscience/bloom-560m",
local_dir="/data/user/test",
local_dir_use_symlinks=False,
proxies={"https": "http://localhost:7890"}
)
如果需要登陸token:
import huggingface_hub
huggingface_hub.login("HF_TOKEN") # token 從 https://huggingface.co/settings/tokens 獲取
modelscope模型下載
#驗證SDK token
from modelscope.hub.api import HubApi
api = HubApi()
api.login('xxxxxx')
#模型下載
from modelscope import snapshot_download
model_dir = snapshot_download('xxx/Meta-Llama-3-8B')
hf格式轉(zhuǎn)gguf
python convert-hf-to-gguf.py --model /workspace/models/Qwen/14B
gguf量化
./quantize models/Qwen/14B/ggml-model-f16.gguf q4_0 # q4_0代表進(jìn)行INT4量化
典型的精度參考:
q2_k:特定張量 (Tensor) 采用較高的精度設(shè)置煤搜,而其他的則保持基礎(chǔ)級別。
q3_k_l牍疏、q3_k_m榨崩、q3_k_s:這些變體在不同張量上使用不同級別的精度笋鄙,從而達(dá)到性能和效率的平衡悔捶。
q4_0:這是最初的量化方案搅幅,使用 4 位精度热监。
q4_1和q4_k_m喂走、q4_k_s:這些提供了不同程度的準(zhǔn)確性和推理速度殃饿,適合需要平衡資源使用的場景。
q5_0芋肠、q5_1乎芳、q5_k_m、q5_k_s:這些版本在保證更高準(zhǔn)確度的同時帖池,會使用更多的資源並且推理速度較慢奈惑。
q6_k和q8_0:這些提供了最高的精度,但是因為高資源消耗和慢速度睡汹,可能不適合所有用戶肴甸。
llama.cpp推理
# chat.sh
./main -m ./models/Qwen/14B/ggml-model-Q4_0.gguf -c 512 -b 1024 -n 256 --keep 48 \
--repeat_penalty 1.0 --color -i \
-r "User:" -f prompts/chat-with-bob.txt
執(zhí)行命令:
sh examples/chat.sh
執(zhí)行后,即可進(jìn)入聊天界面
精度評測
llama.cpp提供了perplexity可執(zhí)行文件來驗證模型的PPL精度囚巴,這里以wikitext語料來簡單測試一下千問14B的性能(通義千問可能更偏向于中文原在,wikitext-2多數(shù)都是英文語料)。需要先下載解壓wikitext-2到本地彤叉,這里解壓到了llama.cpp/wikitext-2-raw/目錄下庶柿,運(yùn)行以下命令:
./perplexity -m models/Qwen/14B/ggml-model-Q4_0.gguf -f wikitext-2-raw/wiki.test.raw
ollama導(dǎo)入gguf模型
創(chuàng)建一個名為Modelfile的文件,并在其中添加FROM指令秽浇,指定要導(dǎo)入的模型的本地文件路徑浮庐。
FROM ./vicuna-33b.Q4_0.gguf
在Ollama中創(chuàng)建模型
ollama create example -f Modelfile
運(yùn)行模型
ollama run example