comparemodels.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #! /usr/bin/env bash
  2. NUMBEROFCHOICES=4
  3. CHOICES=$(ollama list | awk '{print $1}')
  4. SELECTIONS=()
  5. declare -a SUMS=()
  6. echo "Select $NUMBEROFCHOICES models to compare:"
  7. select ITEM in $CHOICES; do
  8. if [[ -n $ITEM ]]; then
  9. echo "You have selected $ITEM"
  10. SELECTIONS+=("$ITEM")
  11. ((COUNT++))
  12. if [[ $COUNT -eq $NUMBEROFCHOICES ]]; then
  13. break
  14. fi
  15. else
  16. echo "Invalid selection"
  17. fi
  18. done
  19. for ITEM in "${SELECTIONS[@]}"; do
  20. echo "--------------------------------------------------------------"
  21. echo "Loading the model $ITEM into memory"
  22. ollama run "$ITEM" ""
  23. echo "--------------------------------------------------------------"
  24. echo "Running the questions through the model $ITEM"
  25. COMMAND_OUTPUT=$(ollama run "$ITEM" --verbose < sourcequestions 2>&1| tee /dev/stderr)
  26. SUM=$(echo "$COMMAND_OUTPUT" | awk '
  27. /eval duration:/ {
  28. value = $3
  29. if (index(value, "ms") > 0) {
  30. gsub("ms", "", value)
  31. value /= 1000
  32. } else {
  33. gsub("s", "", value)
  34. }
  35. sum += value
  36. }
  37. END { print sum }')
  38. SUMS+=("All questions for $ITEM completed in $SUM seconds")
  39. done
  40. echo ""
  41. echo "--------------------------------------------------------------"
  42. echo -e "Sums of eval durations for each run:"
  43. for val in "${SUMS[@]}"; do
  44. echo "$val"
  45. done
  46. echo "--------------------------------------------------------------"
  47. echo "Comparison complete. Now you can decide"
  48. echo "which model is best."
  49. echo "--------------------------------------------------------------"