2023-03-17 10:47:06 +01:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
|
|
|
|
# Read the first argument into a variable
|
|
|
|
arg1="$1"
|
|
|
|
|
|
|
|
# Shift the arguments to remove the first one
|
|
|
|
shift
|
|
|
|
|
2023-07-13 15:49:14 +02:00
|
|
|
if [[ "$arg1" == '--convert' || "$arg1" == '-c' ]]; then
|
2023-08-30 18:14:53 +02:00
|
|
|
python3 ./convert.py "$@"
|
2023-07-13 15:49:14 +02:00
|
|
|
elif [[ "$arg1" == '--quantize' || "$arg1" == '-q' ]]; then
|
2023-08-30 18:14:53 +02:00
|
|
|
./quantize "$@"
|
2023-07-13 15:49:14 +02:00
|
|
|
elif [[ "$arg1" == '--run' || "$arg1" == '-r' ]]; then
|
2023-08-30 18:14:53 +02:00
|
|
|
./main "$@"
|
2023-11-30 22:46:01 +01:00
|
|
|
elif [[ "$arg1" == '--finetune' || "$arg1" == '-f' ]]; then
|
|
|
|
./finetune "$@"
|
2023-07-13 15:49:14 +02:00
|
|
|
elif [[ "$arg1" == '--all-in-one' || "$arg1" == '-a' ]]; then
|
2023-03-17 10:47:06 +01:00
|
|
|
echo "Converting PTH to GGML..."
|
|
|
|
for i in `ls $1/$2/ggml-model-f16.bin*`; do
|
|
|
|
if [ -f "${i/f16/q4_0}" ]; then
|
|
|
|
echo "Skip model quantization, it already exists: ${i/f16/q4_0}"
|
|
|
|
else
|
|
|
|
echo "Converting PTH to GGML: $i into ${i/f16/q4_0}..."
|
2023-04-26 18:43:27 +02:00
|
|
|
./quantize "$i" "${i/f16/q4_0}" q4_0
|
2023-03-17 10:47:06 +01:00
|
|
|
fi
|
|
|
|
done
|
2023-07-13 15:49:14 +02:00
|
|
|
elif [[ "$arg1" == '--server' || "$arg1" == '-s' ]]; then
|
2023-08-30 18:14:53 +02:00
|
|
|
./server "$@"
|
2023-03-17 10:47:06 +01:00
|
|
|
else
|
|
|
|
echo "Unknown command: $arg1"
|
|
|
|
echo "Available commands: "
|
|
|
|
echo " --run (-r): Run a model previously converted into ggml"
|
2023-03-17 18:47:35 +01:00
|
|
|
echo " ex: -m /models/7B/ggml-model-q4_0.bin -p \"Building a website can be done in 10 simple steps:\" -n 512"
|
2023-03-17 10:47:06 +01:00
|
|
|
echo " --convert (-c): Convert a llama model into ggml"
|
2023-06-03 14:11:53 +02:00
|
|
|
echo " ex: --outtype f16 \"/models/7B/\" "
|
2023-03-17 10:47:06 +01:00
|
|
|
echo " --quantize (-q): Optimize with quantization process ggml"
|
|
|
|
echo " ex: \"/models/7B/ggml-model-f16.bin\" \"/models/7B/ggml-model-q4_0.bin\" 2"
|
2023-11-30 22:46:01 +01:00
|
|
|
echo " --finetune (-f): Run finetune command to create a lora finetune of the model"
|
|
|
|
echo " See documentation for finetune for command-line parameters"
|
2023-03-23 21:39:44 +01:00
|
|
|
echo " --all-in-one (-a): Execute --convert & --quantize"
|
2023-03-17 10:47:06 +01:00
|
|
|
echo " ex: \"/models/\" 7B"
|
2023-07-11 18:12:35 +02:00
|
|
|
echo " --server (-s): Run a model on the server"
|
|
|
|
echo " ex: -m /models/7B/ggml-model-q4_0.bin -c 2048 -ngl 43 -mg 1 --port 8080"
|
2023-03-17 10:47:06 +01:00
|
|
|
fi
|