Views
No views yet
model_quantization/
├── merge_lora_and_quantize.py # 合并 LoRA 权重脚本
├── test_quantized.py # 使用 llama-cli.exe 测试量化模型
├── test_quantized_llamacpp.py # 使用 Python llama-cpp-python 测试量化模型
├── qwen1.5-0.5b-model/ # 基础模型(Qwen1.5-0.5B)
├── legal_translate_optimized/ # LoRA 适配器权重
├── qwen1.5-0.5b-legal-merged/ # 合并后的模型
├── qwen1.5-0.5b-legal.f16.gguf # FP16 GGUF 格式模型
├── qwen1.5-0.5b-legal.q4_0.gguf # Q4_0 量化模型
└── llama.cpp/ # llama.cpp 工具集pip install transformers peft torch1# CPU 版本(推荐新手)
2pip install llama-cpp-python
3
4# CUDA 版本(需要根据你的 CUDA 版本选择)
5# CUDA 12.1
6pip install llama-cpp-python-cu121
7# CUDA 12.0
8pip install llama-cpp-python-cu120
9# CUDA 11.8
10pip install llama-cpp-python-cu1181cd llama.cpp
2cmake -S . -B build -A x64
3cmake --build build --config Release -jpython merge_lora_and_quantize.pyqwen1.5-0.5b-modellegal_translate_optimizedqwen1.5-0.5b-legal-merged1cd llama.cpp
2python convert_hf_to_gguf.py ../qwen1.5-0.5b-legal-merged/ ../qwen1.5-0.5b-legal.f16.gguf --outtype f16llama-quantize.exe 进行量化:1# 在 llama.cpp 目录下
2.\llama-quantize.exe ..\qwen1.5-0.5b-legal.f16.gguf ..\qwen1.5-0.5b-legal.q4_0.gguf Q4_0Q4_0、Q8_0 等C:\models\)后再量化1# 基本测试(CPU)
2python test_quantized_llamacpp.py
3
4# 启用 CUDA 加速
5$env:USE_CUDA=1
6$env:NGL=35 # GPU 层数,根据显存调整
7python test_quantized_llamacpp.py1cd llama.cpp
2.\llama-cli.exe -m ..\qwen1.5-0.5b-legal.q4_0.gguf -p "请解释法律术语:举证责任" -n 100 -c 1024 -ngl 0-m: 模型文件路径-p: 提示词-n: 生成 token 数量-c: 上下文大小-ngl: GPU 层数(0 表示仅使用 CPU,>0 表示使用 GPU)C:\models\)test_quantized_llamacpp.py 脚本,它会自动处理中文路径llama-cli.exe 输出使用了非 UTF-8 编码。test_quantized_llamacpp.py 脚本(已处理编码问题)PYTHONIOENCODING=utf-8Q4_0)-ngl 0 强制 CPU 模式)-ngl 参数(GPU 层数)-c 参数(上下文大小)Q4_0 而不是 Q8_0)| 量化类型 | 位宽 | 质量 | 速度 | 显存占用 |
|---|---|---|---|---|
| F16 | 16 | 最高 | 慢 | 高 |
| Q8_0 | 8 | 高 | 中 | 中 |
| Q4_0 | 4 | 中 | 快 | 低 |
| Q4_1 | 4 | 中 | 快 | 低 |
USE_CUDA: 启用 CUDA(设置为 1 或 true)NGL: GPU 层数(默认 35,CPU 模式为 0)CTX: 上下文大小(默认 1024)THREADS: CPU 线程数(默认自动检测)NPRED: 生成 token 数量(默认 64)