@@ -17,12 +17,21 @@ set -e
17
17
# cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)
18
18
19
19
export TOKENIZERS_PARALLELISM=false
20
+ LLAMA_CPP_PATH=/Users/appthreat/work/llama.cpp
21
+ cd $LLAMA_CPP_PATH
22
+ source .venv/bin/activate
23
+ CDXGEN_FT_PATH=/Users/appthreat/work/cdxgen/contrib/fine-tuning
20
24
21
25
TUNING_TOOL=mlx
22
26
FORMAT=GGUF
23
27
HF_ORG=CycloneDX
24
28
TOOL_BASE_MODEL=${1:- cdx1}
29
+ MODEL_FILE_PATH=${CDXGEN_FT_PATH} /Modelfile
25
30
case " $TOOL_BASE_MODEL " in
31
+ cdx1-mini)
32
+ PARAM_SIZE=" 4B"
33
+ MODEL_FILE_PATH=${CDXGEN_FT_PATH} /Modelfile-mini
34
+ ;;
26
35
cdx1-pro)
27
36
PARAM_SIZE=" 30B"
28
37
;;
@@ -33,10 +42,6 @@ case "$TOOL_BASE_MODEL" in
33
42
PARAM_SIZE=" gguf"
34
43
;;
35
44
esac
36
- LLAMA_CPP_PATH=/Users/appthreat/work/llama.cpp
37
- cd $LLAMA_CPP_PATH
38
- source .venv/bin/activate
39
- CDXGEN_FT_PATH=/Users/appthreat/work/cdxgen/contrib/fine-tuning
40
45
41
46
GGUF_MODEL_Q8_0_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q8_0-${FORMAT}
42
47
GGUF_MODEL_Q8_0_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q8_0-${FORMAT}
@@ -45,44 +50,55 @@ FUSED_MODEL=${CDXGEN_FT_PATH}/${HF_ORG}/${TOOL_BASE_MODEL}-${TUNING_TOOL}
45
50
rm -rf ${GGUF_MODEL_Q8_0_PATH}
46
51
mkdir -p ${GGUF_MODEL_Q8_0_PATH}
47
52
python convert_hf_to_gguf.py --outtype q8_0 --outfile ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q8_0-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -q8_0.gguf --model-name ${GGUF_MODEL_Q8_0_NAME} ${FUSED_MODEL}
48
- cp ${CDXGEN_FT_PATH} /Modelfile ${GGUF_MODEL_Q8_0_PATH} /
53
+ cp ${MODEL_FILE_PATH} ${GGUF_MODEL_Q8_0_PATH} /Modelfile
49
54
cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_Q8_0_PATH} /
50
55
51
56
GGUF_MODEL_BF16_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT}
52
57
GGUF_MODEL_BF16_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT}
53
58
rm -rf ${GGUF_MODEL_BF16_PATH}
54
59
mkdir -p ${GGUF_MODEL_BF16_PATH}
55
60
python convert_hf_to_gguf.py --outtype bf16 --outfile ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -bf16.gguf --model-name ${GGUF_MODEL_BF16_NAME} ${FUSED_MODEL}
56
- cp ${CDXGEN_FT_PATH} /Modelfile ${GGUF_MODEL_BF16_PATH} /
61
+ cp ${MODEL_FILE_PATH} ${GGUF_MODEL_BF16_PATH} /Modelfile
57
62
sed -i ' ' ' s|./cdx1-${PARAM_SIZE}-q8_0.gguf|./cdx1-${PARAM_SIZE}-bf16.gguf|g' ${GGUF_MODEL_BF16_PATH} /Modelfile
58
63
cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_BF16_PATH} /
59
64
60
- GGUF_MODEL_Q4_K_M_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q4_K_M-${FORMAT}
61
- GGUF_MODEL_Q4_K_M_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q4_K_M-${FORMAT}
62
- rm -rf ${GGUF_MODEL_Q4_K_M_PATH}
63
- mkdir -p ${GGUF_MODEL_Q4_K_M_PATH}
64
- llama-quantize ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -bf16.gguf ${GGUF_MODEL_Q4_K_M_PATH} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q4_K_M.gguf Q4_K_M
65
- cp ${CDXGEN_FT_PATH} /Modelfile ${GGUF_MODEL_Q4_K_M_PATH} /
66
- sed -i ' ' ' s|./cdx1-${PARAM_SIZE}-q8_0.gguf|./cdx1-${PARAM_SIZE}-Q4_K_M.gguf|g' ${GGUF_MODEL_Q4_K_M_PATH} /Modelfile
67
- cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_Q4_K_M_PATH} /
68
-
69
- GGUF_MODEL_IQ4_NL_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -IQ4_NL-${FORMAT}
70
- GGUF_MODEL_IQ4_NL_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -IQ4_NL-${FORMAT}
71
- rm -rf ${GGUF_MODEL_IQ4_NL_PATH}
72
- mkdir -p ${GGUF_MODEL_IQ4_NL_PATH}
73
- llama-quantize ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -bf16.gguf ${GGUF_MODEL_IQ4_NL_PATH} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -IQ4_NL.gguf IQ4_NL
74
- cp ${CDXGEN_FT_PATH} /Modelfile ${GGUF_MODEL_IQ4_NL_PATH} /
75
- sed -i ' ' ' s|./cdx1-${PARAM_SIZE}-q8_0.gguf|./cdx1-${PARAM_SIZE}-IQ4_NL.gguf|g' ${GGUF_MODEL_IQ4_NL_PATH} /Modelfile
76
- cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_IQ4_NL_PATH} /
77
-
78
- GGUF_MODEL_Q2_K_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q2_K-${FORMAT}
79
- GGUF_MODEL_Q2_K_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q2_K-${FORMAT}
80
- rm -rf ${GGUF_MODEL_Q2_K_PATH}
81
- mkdir -p ${GGUF_MODEL_Q2_K_PATH}
82
- llama-quantize ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -bf16.gguf ${GGUF_MODEL_Q2_K_PATH} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q2_K.gguf Q2_K
83
- cp ${CDXGEN_FT_PATH} /Modelfile ${GGUF_MODEL_Q2_K_PATH} /
84
- sed -i ' ' ' s|./cdx1-${PARAM_SIZE}-q8_0.gguf|./cdx1-${PARAM_SIZE}-Q2_K.gguf|g' ${GGUF_MODEL_Q2_K_PATH} /Modelfile
85
- cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_Q2_K_PATH} /
65
+ if [ " $TOOL_BASE_MODEL " == " cdx1-mini" ]; then
66
+ GGUF_MODEL_Q6_K_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q6_K-${FORMAT}
67
+ GGUF_MODEL_Q6_K_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q6_K-${FORMAT}
68
+ rm -rf ${GGUF_MODEL_Q6_K_PATH}
69
+ mkdir -p ${GGUF_MODEL_Q6_K_PATH}
70
+ llama-quantize ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -bf16.gguf ${GGUF_MODEL_Q6_K_PATH} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q6_K.gguf Q6_K
71
+ cp ${MODEL_FILE_PATH} ${GGUF_MODEL_Q6_K_PATH} /Modelfile
72
+ sed -i ' ' ' s|./cdx1-${PARAM_SIZE}-q8_0.gguf|./cdx1-${PARAM_SIZE}-Q6_K.gguf|g' ${GGUF_MODEL_Q6_K_PATH} /Modelfile
73
+ cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_Q6_K_PATH} /
74
+ else
75
+ GGUF_MODEL_Q4_K_M_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q4_K_M-${FORMAT}
76
+ GGUF_MODEL_Q4_K_M_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q4_K_M-${FORMAT}
77
+ rm -rf ${GGUF_MODEL_Q4_K_M_PATH}
78
+ mkdir -p ${GGUF_MODEL_Q4_K_M_PATH}
79
+ llama-quantize ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -bf16.gguf ${GGUF_MODEL_Q4_K_M_PATH} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q4_K_M.gguf Q4_K_M
80
+ cp ${MODEL_FILE_PATH} ${GGUF_MODEL_Q4_K_M_PATH} /Modelfile
81
+ sed -i ' ' ' s|./cdx1-${PARAM_SIZE}-q8_0.gguf|./cdx1-${PARAM_SIZE}-Q4_K_M.gguf|g' ${GGUF_MODEL_Q4_K_M_PATH} /Modelfile
82
+ cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_Q4_K_M_PATH} /
83
+
84
+ GGUF_MODEL_IQ4_NL_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -IQ4_NL-${FORMAT}
85
+ GGUF_MODEL_IQ4_NL_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -IQ4_NL-${FORMAT}
86
+ rm -rf ${GGUF_MODEL_IQ4_NL_PATH}
87
+ mkdir -p ${GGUF_MODEL_IQ4_NL_PATH}
88
+ llama-quantize ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -bf16.gguf ${GGUF_MODEL_IQ4_NL_PATH} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -IQ4_NL.gguf IQ4_NL
89
+ cp ${MODEL_FILE_PATH} ${GGUF_MODEL_IQ4_NL_PATH} /Modelfile
90
+ sed -i ' ' ' s|./cdx1-${PARAM_SIZE}-q8_0.gguf|./cdx1-${PARAM_SIZE}-IQ4_NL.gguf|g' ${GGUF_MODEL_IQ4_NL_PATH} /Modelfile
91
+ cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_IQ4_NL_PATH} /
92
+
93
+ GGUF_MODEL_Q2_K_NAME=${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q2_K-${FORMAT}
94
+ GGUF_MODEL_Q2_K_PATH=${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q2_K-${FORMAT}
95
+ rm -rf ${GGUF_MODEL_Q2_K_PATH}
96
+ mkdir -p ${GGUF_MODEL_Q2_K_PATH}
97
+ llama-quantize ${CDXGEN_FT_PATH} /${HF_ORG} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -BF16-${FORMAT} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -bf16.gguf ${GGUF_MODEL_Q2_K_PATH} /${TOOL_BASE_MODEL} -${PARAM_SIZE} -Q2_K.gguf Q2_K
98
+ cp ${MODEL_FILE_PATH} ${GGUF_MODEL_Q2_K_PATH} /Modelfile
99
+ sed -i ' ' ' s|./cdx1-${PARAM_SIZE}-q8_0.gguf|./cdx1-${PARAM_SIZE}-Q2_K.gguf|g' ${GGUF_MODEL_Q2_K_PATH} /Modelfile
100
+ cp ${FUSED_MODEL} /* .json ${FUSED_MODEL} /merges.txt ${GGUF_MODEL_Q2_K_PATH} /
101
+ fi
86
102
87
103
# ## Testing with ollama
88
104
# cd ${GGUF_MODEL_Q8_0_PATH}
@@ -93,30 +109,41 @@ cp ${FUSED_MODEL}/*.json ${FUSED_MODEL}/merges.txt ${GGUF_MODEL_Q2_K_PATH}/
93
109
export HF_HUB_ENABLE_HF_TRANSFER=0
94
110
hf auth whoami
95
111
hf upload --quiet --repo-type model ${GGUF_MODEL_Q8_0_NAME} ${GGUF_MODEL_Q8_0_PATH} .
96
- hf upload --quiet --repo-type model ${GGUF_MODEL_Q4_K_M_NAME} ${GGUF_MODEL_Q4_K_M_PATH} .
97
- hf upload --quiet --repo-type model ${GGUF_MODEL_IQ4_NL_NAME} ${GGUF_MODEL_IQ4_NL_PATH} .
98
- hf upload --quiet --repo-type model ${GGUF_MODEL_Q2_K_NAME} ${GGUF_MODEL_Q2_K_PATH} .
112
+ if [ " $TOOL_BASE_MODEL " == " cdx1-mini" ]; then
113
+ hf upload --quiet --repo-type model ${GGUF_MODEL_Q6_K_NAME} ${GGUF_MODEL_Q6_K_PATH} .
114
+ else
115
+ hf upload --quiet --repo-type model ${GGUF_MODEL_Q4_K_M_NAME} ${GGUF_MODEL_Q4_K_M_PATH} .
116
+ hf upload --quiet --repo-type model ${GGUF_MODEL_IQ4_NL_NAME} ${GGUF_MODEL_IQ4_NL_PATH} .
117
+ hf upload --quiet --repo-type model ${GGUF_MODEL_Q2_K_NAME} ${GGUF_MODEL_Q2_K_PATH} .
118
+ fi
99
119
hf upload --quiet --repo-type model ${GGUF_MODEL_BF16_NAME} ${GGUF_MODEL_BF16_PATH} .
100
120
101
121
ollama pull hf.co/${GGUF_MODEL_Q8_0_NAME}
102
122
ollama cp hf.co/${GGUF_MODEL_Q8_0_NAME} ${GGUF_MODEL_Q8_0_NAME}
103
123
ollama push ${GGUF_MODEL_Q8_0_NAME}
104
124
ollama rm hf.co/${GGUF_MODEL_Q8_0_NAME}
105
125
106
- ollama pull hf.co/${GGUF_MODEL_Q4_K_M_NAME}
107
- ollama cp hf.co/${GGUF_MODEL_Q4_K_M_NAME} ${GGUF_MODEL_Q4_K_M_NAME}
108
- ollama push ${GGUF_MODEL_Q4_K_M_NAME}
109
- ollama rm hf.co/${GGUF_MODEL_Q4_K_M_NAME}
110
-
111
- ollama pull hf.co/${GGUF_MODEL_IQ4_NL_NAME}
112
- ollama cp hf.co/${GGUF_MODEL_IQ4_NL_NAME} ${GGUF_MODEL_IQ4_NL_NAME}
113
- ollama push ${GGUF_MODEL_IQ4_NL_NAME}
114
- ollama rm hf.co/${GGUF_MODEL_IQ4_NL_NAME}
115
-
116
- ollama pull hf.co/${GGUF_MODEL_Q2_K_NAME}
117
- ollama cp hf.co/${GGUF_MODEL_Q2_K_NAME} ${GGUF_MODEL_Q2_K_NAME}
118
- ollama push ${GGUF_MODEL_Q2_K_NAME}
119
- ollama rm hf.co/${GGUF_MODEL_Q2_K_NAME}
126
+ if [ " $TOOL_BASE_MODEL " == " cdx1-mini" ]; then
127
+ ollama pull hf.co/${GGUF_MODEL_Q6_K_NAME}
128
+ ollama cp hf.co/${GGUF_MODEL_Q6_K_NAME} ${GGUF_MODEL_Q6_K_NAME}
129
+ ollama push ${GGUF_MODEL_Q6_K_NAME}
130
+ ollama rm hf.co/${GGUF_MODEL_Q6_K_NAME}
131
+ else
132
+ ollama pull hf.co/${GGUF_MODEL_Q4_K_M_NAME}
133
+ ollama cp hf.co/${GGUF_MODEL_Q4_K_M_NAME} ${GGUF_MODEL_Q4_K_M_NAME}
134
+ ollama push ${GGUF_MODEL_Q4_K_M_NAME}
135
+ ollama rm hf.co/${GGUF_MODEL_Q4_K_M_NAME}
136
+
137
+ ollama pull hf.co/${GGUF_MODEL_IQ4_NL_NAME}
138
+ ollama cp hf.co/${GGUF_MODEL_IQ4_NL_NAME} ${GGUF_MODEL_IQ4_NL_NAME}
139
+ ollama push ${GGUF_MODEL_IQ4_NL_NAME}
140
+ ollama rm hf.co/${GGUF_MODEL_IQ4_NL_NAME}
141
+
142
+ ollama pull hf.co/${GGUF_MODEL_Q2_K_NAME}
143
+ ollama cp hf.co/${GGUF_MODEL_Q2_K_NAME} ${GGUF_MODEL_Q2_K_NAME}
144
+ ollama push ${GGUF_MODEL_Q2_K_NAME}
145
+ ollama rm hf.co/${GGUF_MODEL_Q2_K_NAME}
146
+ fi
120
147
121
148
ollama pull hf.co/${GGUF_MODEL_BF16_NAME}
122
149
ollama cp hf.co/${GGUF_MODEL_BF16_NAME} ${GGUF_MODEL_BF16_NAME}
0 commit comments