unclemusclez commited on
Commit
9f09c60
·
verified ·
1 Parent(s): ee892c2

Create ollamafy.sh

Browse files

working quant push code

Files changed (1) hide show
  1. ollamafy.sh +78 -0
ollamafy.sh ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ QUANTIZATIONS=(
4
+ "q4_0"
5
+ "q4_1"
6
+ "q5_0"
7
+ "q5_1"
8
+ "q8_0"
9
+ "q3_K_S"
10
+ "q3_K_M"
11
+ "q3_K_L"
12
+ "q4_K_S"
13
+ "q4_K_M"
14
+ "q5_K_S"
15
+ "q5_K_M"
16
+ "q6_K"
17
+ "q2_K"
18
+ "fp16"
19
+ )
20
+
21
+ while [[ $# -gt 0 ]]; do
22
+ case $1 in
23
+ -q|--quant) QUANTIZATION="$2"; shift 2 ;;
24
+ -u|--username) USERNAME="$2"; shift 2 ;;
25
+ -m|--model) MODEL_NAME="$2"; shift 2 ;;
26
+ -v|--version) VERSION="$2"; shift 2 ;;
27
+ -p|--parameters) PARAMETERS="$2"; shift 2 ;;
28
+ -l|--latest) LATEST="$2"; shift 2 ;;
29
+ -f|--file) MODEL_FILE="$2"; shift 2 ;;
30
+ *) echo "Unknown flag: $1"; exit 1 ;;
31
+ esac
32
+ done
33
+
34
+ if [ -z "$USERNAME" ] || [ -z "$MODEL_NAME" ] || [ -z "$MODEL_FILE" ]; then
35
+ echo "Error: --username, --model, and --file are required"
36
+ exit 1
37
+ fi
38
+
39
+ USERNAME=$(echo "$USERNAME" | tr '[:upper:]' '[:lower:]')
40
+ MODEL_NAME=$(echo "$MODEL_NAME" | tr '[:upper:]' '[:lower:]')
41
+ VERSION=$(echo "$VERSION" | tr '[:upper:]' '[:lower:]')
42
+ PARAMETERS=$(echo "$PARAMETERS" | tr '[:upper:]' '[:lower:]')
43
+ LATEST=$(echo "$LATEST" | tr '[:upper:]' '[:lower:]')
44
+
45
+ if [ -n "$LATEST" ] && [[ ! " ${QUANTIZATIONS[@]} " =~ " $LATEST " ]]; then
46
+ echo "Error: LATEST must be one of the available quantizations"
47
+ exit 1
48
+ fi
49
+
50
+ if [ -n "$QUANTIZATION" ]; then
51
+ QUANTIZATIONS=("$QUANTIZATION")
52
+ fi
53
+
54
+ for QUANT in "${QUANTIZATIONS[@]}"; do
55
+ MODEL_TAG="$USERNAME/$MODEL_NAME:$QUANT"
56
+
57
+ [ -n "$PARAMETERS" ] && [ -n "$VERSION" ] && MODEL_TAG="$USERNAME/$MODEL_NAME:$PARAMETERS-$VERSION-$QUANT"
58
+ [ -n "$PARAMETERS" ] && MODEL_TAG="$USERNAME/$MODEL_NAME:$PARAMETERS-$QUANT"
59
+ [ -n "$VERSION" ] && MODEL_TAG="$USERNAME/$MODEL_NAME:$VERSION-$QUANT"
60
+
61
+
62
+ if [ "$QUANT" = "fp16" ]; then
63
+ ollama create -f "$MODEL_FILE" "$MODEL_TAG"
64
+ else
65
+ ollama create --quantize "$QUANT" -f "$MODEL_FILE" "$MODEL_TAG"
66
+ fi
67
+
68
+ ollama push "$MODEL_TAG"
69
+
70
+ if [ "$LATEST" = "$QUANT" ]; then
71
+ ollama cp "$MODEL_TAG" "$USERNAME/$MODEL_NAME:latest"
72
+ ollama push "$USERNAME/$MODEL_NAME:latest"
73
+
74
+ [ -n "$VERSION" ] && ( ollama cp "$MODEL_TAG" "$USERNAME/$MODEL_NAME:$VERSION"; ollama push "$USERNAME/$MODEL_NAME:$VERSION" )
75
+ fi
76
+
77
+
78
+ done