]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
extra : update 'quantize-all.sh' to quantize all downloaded models (#1054)
authorthefinaldegree <redacted>
Wed, 28 Jun 2023 19:07:02 +0000 (07:07 +1200)
committerGitHub <redacted>
Wed, 28 Jun 2023 19:07:02 +0000 (22:07 +0300)
Script will now do what it says: quantize everything except testing models in the 'models'  directory.

extra/quantize-all.sh

index 60ffde1bf99455d95693ec7ae1446c3e47117c0e..bfef21eddada0d1ab939b9548139ab4f2ce01689 100755 (executable)
@@ -10,36 +10,48 @@ fi
 qtype0="q5_0"
 qtype1="q5_1"
 upload="$1"
+declare -a filedex
 
 cd `dirname $0`
 cd ../
 
-./quantize ./models/ggml-tiny.en.bin   ./models/ggml-tiny.en-${qtype1}.bin ${qtype1}
-./quantize ./models/ggml-tiny.bin      ./models/ggml-tiny-${qtype1}.bin    ${qtype1}
+# Let's loop across all the objects in the 'models' dir:
+for i in ./models/*; do
+    # Check to see if it's a file or directory
+    if [ -d "$i" ]; then
+        # It's a directory! We should make sure it's not empty first:
+        if [ "$(ls -A $i)" ]; then
+            # Passed! Let's go searching for bin files (shouldn't need to go more than a layer deep here)
+            for f in "$i"/*.bin; do
+                # [Neuron Activation]
+                newfile=`echo "${f##*/}" | cut -d _ -f 1`;
+                if [ "$newfile" != "q5" ]; then
+                    ./quantize "${f}" "${i:-4}/${i:9:${#i}-4}-${qtype1}.bin" ${qtype1};
+                    ./quantize "${f}" "${i:-4}/${i:9:${#i}-4}-${qtype0}.bin" ${qtype0};
+                    filedex+=( "${i:-4}/${i:9:${#i}-4}-${qtype1}.bin" "${i:-4}/${i:9:${#i}-4}-${qtype0}.bin" )
+                fi
+            done
+        fi
+    else
+        # It's a file! Let's make sure it's the right type:
+        if [ "${i##*.}" == "bin" ]; then
+            # And we probably want to skip the testing files
+            if [ "${i:9:8}" != "for-test" ]; then
+                # [Neuron Activation]
+                ./quantize "${i}" "${i:-4}-${qtype1}.bin" ${qtype1};
+                ./quantize "${i}" "${i:-4}-${qtype0}.bin" ${qtype0};
+                filedex+=( "${i:-4}-${qtype1}.bin" "${i:-4}-${qtype0}.bin" )
+            fi
+        fi
+    fi
+done
 
-./quantize ./models/ggml-base.en.bin   ./models/ggml-base.en-${qtype1}.bin ${qtype1}
-./quantize ./models/ggml-base.bin      ./models/ggml-base-${qtype1}.bin    ${qtype1}
 
-./quantize ./models/ggml-small.en.bin  ./models/ggml-small.en-${qtype1}.bin ${qtype1}
-./quantize ./models/ggml-small.bin     ./models/ggml-small-${qtype1}.bin    ${qtype1}
-
-./quantize ./models/ggml-medium.en.bin ./models/ggml-medium.en-${qtype0}.bin ${qtype0}
-./quantize ./models/ggml-medium.bin    ./models/ggml-medium-${qtype0}.bin    ${qtype0}
-
-./quantize ./models/ggml-large.bin     ./models/ggml-large-${qtype0}.bin ${qtype0}
 
 if [ "$upload" == "1" ]; then
-    scp ./models/ggml-tiny.en-${qtype1}.bin   root@linode0:/mnt/Data/ggml/ggml-model-whisper-tiny.en-${qtype1}.bin
-    scp ./models/ggml-tiny-${qtype1}.bin      root@linode0:/mnt/Data/ggml/ggml-model-whisper-tiny-${qtype1}.bin
-
-    scp ./models/ggml-base.en-${qtype1}.bin   root@linode0:/mnt/Data/ggml/ggml-model-whisper-base.en-${qtype1}.bin
-    scp ./models/ggml-base-${qtype1}.bin      root@linode0:/mnt/Data/ggml/ggml-model-whisper-base-${qtype1}.bin
-
-    scp ./models/ggml-small.en-${qtype1}.bin  root@linode0:/mnt/Data/ggml/ggml-model-whisper-small.en-${qtype1}.bin
-    scp ./models/ggml-small-${qtype1}.bin     root@linode0:/mnt/Data/ggml/ggml-model-whisper-small-${qtype1}.bin
-
-    scp ./models/ggml-medium.en-${qtype0}.bin root@linode0:/mnt/Data/ggml/ggml-model-whisper-medium.en-${qtype0}.bin
-    scp ./models/ggml-medium-${qtype0}.bin    root@linode0:/mnt/Data/ggml/ggml-model-whisper-medium-${qtype0}.bin
-
-    scp ./models/ggml-large-${qtype0}.bin     root@linode0:/mnt/Data/ggml/ggml-model-whisper-large-${qtype0}.bin
+    for i in ${!filedex[@]}; do
+        if [ "${filedex[$i]:9:8}" != "for-test" ]; then
+            scp ${filedex[$i]} root@linode0:/mnt/Data/ggml/ggml-model-${filedex[$i]:9}
+        fi
+    done
 fi