Cialtion commited on
Commit
af6bd26
·
verified ·
1 Parent(s): aa7584f

Delete llama-cpp-quantize.sh with huggingface_hub

Browse files
Files changed (1) hide show
  1. llama-cpp-quantize.sh +0 -151
llama-cpp-quantize.sh DELETED
@@ -1,151 +0,0 @@
1
- #!/bin/bash
2
-
3
- # ============================================================
4
- # llama.cpp GGUF 批量量化脚本
5
- # 用途:将F16 GGUF模型量化为Ollama主流格式
6
- # ============================================================
7
-
8
- # 配置区
9
- # 配置区
10
- LLAMA_CPP_DIR="/inspire/hdd/global_user/shixiaoxin-253107030017/sxx/llama.cpp"
11
- QUANTIZE_BIN="${LLAMA_CPP_DIR}/build/bin/llama-quantize"
12
- INPUT_DIR="./gguf_models"
13
- OUTPUT_DIR="./gguf_quantized"
14
-
15
- export LD_LIBRARY_PATH="${LLAMA_CPP_DIR}/build/bin:${LD_LIBRARY_PATH}"
16
-
17
- # Ollama主流量化格式(按推荐程度排序)
18
- # Q4_K_M: 最流行,平衡质量与大小(推荐)
19
- # Q5_K_M: 质量更好,文件稍大
20
- # Q8_0: 高质量,文件较大
21
- # Q4_0: 基础4bit,兼容性好
22
- # Q3_K_M: 更小文件,质量损失较大
23
- QUANT_TYPES=("Q4_K_M" "Q5_K_M" "Q8_0")
24
-
25
- # ============================================================
26
- # 检查环境
27
- # ============================================================
28
- echo "🔧 检查环境..."
29
-
30
- # 检查量化工具是否存在
31
- if [ ! -f "$QUANTIZE_BIN" ]; then
32
- echo "❌ 错误:找不到量化工具 $QUANTIZE_BIN"
33
- echo "请先编译llama.cpp:"
34
- echo " cd $LLAMA_CPP_DIR"
35
- echo " mkdir -p build && cd build"
36
- echo " cmake .. -DGGML_CUDA=ON"
37
- echo " make -j$(nproc)"
38
- exit 1
39
- fi
40
-
41
- # 检查输入目录
42
- if [ ! -d "$INPUT_DIR" ]; then
43
- echo "❌ 错误:输入目录不存在 $INPUT_DIR"
44
- echo "请先运行convert_hf_to_gguf.py转换模型"
45
- exit 1
46
- fi
47
-
48
- # 创建输出目录
49
- mkdir -p "$OUTPUT_DIR"
50
-
51
- echo "✅ 环境检查通过"
52
- echo ""
53
-
54
- # ============================================================
55
- # 获取待量化模型列表
56
- # ============================================================
57
- echo "📂 扫描待量化模型..."
58
-
59
- MODELS=($(find "$INPUT_DIR" -maxdepth 1 -name "*.gguf" -type f))
60
-
61
- if [ ${#MODELS[@]} -eq 0 ]; then
62
- echo "❌ 未找到任何.gguf文件在 $INPUT_DIR"
63
- exit 1
64
- fi
65
-
66
- echo "✅ 找到 ${#MODELS[@]} 个模型待量化"
67
- for m in "${MODELS[@]}"; do
68
- echo " - $(basename "$m")"
69
- done
70
- echo ""
71
-
72
- # ============================================================
73
- # 批量量化
74
- # ============================================================
75
- echo "🚀 开始批量量化..."
76
- echo "量化格式: ${QUANT_TYPES[*]}"
77
- echo ""
78
-
79
- TOTAL=$((${#MODELS[@]} * ${#QUANT_TYPES[@]}))
80
- CURRENT=0
81
- SUCCESS=0
82
- FAILED=0
83
-
84
- for MODEL_PATH in "${MODELS[@]}"; do
85
- MODEL_NAME=$(basename "$MODEL_PATH" .gguf)
86
-
87
- for QTYPE in "${QUANT_TYPES[@]}"; do
88
- CURRENT=$((CURRENT + 1))
89
- OUTPUT_FILE="${OUTPUT_DIR}/${MODEL_NAME}-${QTYPE}.gguf"
90
-
91
- echo "=============================================="
92
- echo "[$CURRENT/$TOTAL] 量化: ${MODEL_NAME} -> ${QTYPE}"
93
- echo "输入: $MODEL_PATH"
94
- echo "输出: $OUTPUT_FILE"
95
- echo "=============================================="
96
-
97
- # 跳过已存在的文件
98
- if [ -f "$OUTPUT_FILE" ]; then
99
- echo "⏭️ 文件已存在,跳过"
100
- SUCCESS=$((SUCCESS + 1))
101
- continue
102
- fi
103
-
104
- # 执行量化
105
- "$QUANTIZE_BIN" "$MODEL_PATH" "$OUTPUT_FILE" "$QTYPE"
106
-
107
- if [ $? -eq 0 ]; then
108
- # 显示文件大小
109
- SIZE=$(du -h "$OUTPUT_FILE" | cut -f1)
110
- echo "✅ 成功!文件大小: $SIZE"
111
- SUCCESS=$((SUCCESS + 1))
112
- else
113
- echo "❌ 量化失败"
114
- FAILED=$((FAILED + 1))
115
- fi
116
- echo ""
117
- done
118
- done
119
-
120
- # ============================================================
121
- # 汇总报告
122
- # ============================================================
123
- echo ""
124
- echo "=============================================="
125
- echo "📊 批量量化完成"
126
- echo "=============================================="
127
- echo "✅ 成功: $SUCCESS"
128
- echo "❌ 失败: $FAILED"
129
- echo ""
130
- echo "输出目录: $OUTPUT_DIR"
131
- echo ""
132
-
133
- # 列出所有生成的文件
134
- echo "生成的模型文件:"
135
- ls -lh "$OUTPUT_DIR"/*.gguf 2>/dev/null | awk '{print " " $9 " (" $5 ")"}'
136
-
137
- echo ""
138
- echo "=============================================="
139
- echo "📦 Ollama发布指南"
140
- echo "=============================================="
141
- echo "1. 创建Modelfile:"
142
- echo ' FROM ./your_model-Q4_K_M.gguf'
143
- echo ' TEMPLATE """{{ .Prompt }}"""'
144
- echo ' PARAMETER temperature 0.7'
145
- echo ""
146
- echo "2. 创建本地模型:"
147
- echo " ollama create your-model-name -f Modelfile"
148
- echo ""
149
- echo "3. 推送到Ollama Hub:"
150
- echo " ollama push username/model-name"
151
- echo "=============================================="