跳转至

模型比较

在调用 ollama 时,您可以传递一个文件,以便依次运行文件中的所有提示:

ollama run llama2 < sourcequestions.txt

以下示例使用了这个概念。

在模型间比较

comparemodels.sh 是一个脚本,它使用您从 Ollama Library 中拉取的或在本地创建的任意四个模型运行 sourcequestions.txt 文件中的所有问题。

源码

comparemodels.sh

#! /usr/bin/env bash
# Compare multiple models by running them with the same questions

NUMBEROFCHOICES=4
SELECTIONS=()
declare -a SUMS=()

# Get the list of models
CHOICES=$(ollama list | awk '{print $1}')

# Select which models to run as a comparison
echo "Select $NUMBEROFCHOICES models to compare:"
select ITEM in $CHOICES; do
    if [[ -n $ITEM ]]; then
        echo "You have selected $ITEM"
        SELECTIONS+=("$ITEM")
        ((COUNT++))
        if [[ $COUNT -eq $NUMBEROFCHOICES ]]; then
            break
        fi
    else
        echo "Invalid selection"
    fi
done

# Loop through each of the selected models
for ITEM in "${SELECTIONS[@]}"; do
    echo "--------------------------------------------------------------"
    echo "Loading the model $ITEM into memory"
    ollama run "$ITEM" ""
    echo "--------------------------------------------------------------"
    echo "Running the questions through the model $ITEM"
    COMMAND_OUTPUT=$(ollama run "$ITEM" --verbose < sourcequestions.txt 2>&1| tee /dev/stderr)

    # eval duration is sometimes listed in seconds and sometimes in milliseconds.
    # Add up the values for each model
    SUM=$(echo "$COMMAND_OUTPUT" | awk '
    /eval duration:/ {
        value = $3
        if (index(value, "ms") > 0) {
            gsub("ms", "", value)
            value /= 1000
        } else {
            gsub("s", "", value)
        }
        sum += value
    }
    END { print sum }')


    SUMS+=("All questions for $ITEM completed in $SUM seconds")
done

echo ""
echo "--------------------------------------------------------------"
echo -e "Sums of eval durations for each run:"
for val in "${SUMS[@]}"; do
    echo "$val"
done

echo "--------------------------------------------------------------"
echo "Comparison complete. Now you can decide"
echo "which model is best."
echo "--------------------------------------------------------------"

sourcequestions.txt

Why is the sky blue
What is a black hole
Explain the big bang theory like I am 5?
What is the quickest way to win a game of Monopoly with 3 others?
Why does a vacuum bottle keep my coffee hot and my milkshake cold?
What is the difference between a meteor, a meteorite, and a meteoroid?
Create an array with 5 items and print to the console. Do this in Python, C#, Typescript, and Rust.

仓库地址

bash-comparemodels