CoolFace
Datasetpublic

echodict/llama.cpp

version https://git-lfs.github.com/spec/v1 oid sha256:cfc44b7ba25614df70e6b65e3341cae0310163bd32fd31a6b928a542df433faf size 30786

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes765downloads
tests.sh200 linesDownload Raw Back to mtmd
1#!/usr/bin/env bash2 3# make sure we are in the right directory4SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )5cd $SCRIPT_DIR6 7#export LLAMA_CACHE="$SCRIPT_DIR/tmp"8 9set -eux10 11mkdir -p $SCRIPT_DIR/output12 13PROJ_ROOT="$SCRIPT_DIR/../.."14cd $PROJ_ROOT15 16# Check if the first argument is "big", then run test with big models17# This is useful if we're running the script on a larger machine, so we can test the big models18RUN_BIG_TESTS=false19if [ "${1:-}" = "big" ]; then20    RUN_BIG_TESTS=true21    echo "Include BIG models..."22fi23 24RUN_HUGE_TESTS=false25if [ "${1:-}" = "huge" ]; then26    RUN_HUGE_TESTS=true27    RUN_BIG_TESTS=true28    echo "Include BIG and HUGE models..."29fi30 31# Check if the second argument is "flash", then enable flash attention32# This is useful to test if flash attention off works correctly33FLASH_ATTN="on"34if [ "${2:-}" = "flash_off" ] || [ "${1:-}" = "flash_off" ]; then35    FLASH_ATTN="off"36    echo "Flash attention disabled..."37fi38 39###############40 41arr_prefix=()42arr_hf=()43arr_extra_args=()44arr_file=()45 46add_test_vision() {47    local hf=$148    shift49    local extra_args=""50    if [ $# -gt 0 ]; then51        extra_args=$(printf " %q" "$@")52    fi53    arr_prefix+=("[vision]")54    arr_hf+=("$hf")55    arr_extra_args+=("$extra_args")56    arr_file+=("test-1.jpeg")57}58 59add_test_audio() {60    local hf=$161    shift62    local extra_args=""63    if [ $# -gt 0 ]; then64        extra_args=$(printf " %q" "$@")65    fi66    arr_prefix+=("[audio] ")67    arr_hf+=("$hf")68    arr_extra_args+=("$extra_args")69    arr_file+=("test-2.mp3")70}71 72add_test_vision "ggml-org/SmolVLM-500M-Instruct-GGUF:Q8_0"73add_test_vision "ggml-org/SmolVLM2-2.2B-Instruct-GGUF:Q4_K_M"74add_test_vision "ggml-org/SmolVLM2-500M-Video-Instruct-GGUF:Q8_0"75add_test_vision "ggml-org/gemma-3-4b-it-GGUF:Q4_K_M"76add_test_vision "THUDM/glm-edge-v-5b-gguf:Q4_K_M" -p "name of the newspaper?<__media__>"77add_test_vision "second-state/Llava-v1.5-7B-GGUF:Q2_K" --chat-template vicuna78add_test_vision "cjpais/llava-1.6-mistral-7b-gguf:Q3_K_M" --chat-template vicuna79add_test_vision "ibm-research/granite-vision-3.2-2b-GGUF:Q4_K_M"80add_test_vision "second-state/MiniCPM-Llama3-V-2_5-GGUF:Q2_K"  # model from openbmb is corrupted81add_test_vision "openbmb/MiniCPM-V-2_6-gguf:Q2_K"82add_test_vision "openbmb/MiniCPM-o-2_6-gguf:Q4_0"83add_test_vision "bartowski/Qwen2-VL-2B-Instruct-GGUF:Q4_K_M"84add_test_vision "ggml-org/Qwen2.5-VL-3B-Instruct-GGUF:Q4_K_M"85add_test_vision "ggml-org/InternVL2_5-1B-GGUF:Q8_0"86add_test_vision "ggml-org/InternVL3-1B-Instruct-GGUF:Q8_0"87add_test_vision "ggml-org/Qwen2.5-Omni-3B-GGUF:Q4_K_M"88add_test_vision "ggml-org/LFM2-VL-450M-GGUF:Q8_0"89add_test_vision "ggml-org/granite-docling-258M-GGUF:Q8_0"90add_test_vision "ggml-org/LightOnOCR-1B-1025-GGUF:Q8_0"91add_test_vision "ggml-org/DeepSeek-OCR-GGUF:Q8_0" -p "Free OCR." --chat-template deepseek-ocr92add_test_vision "ggml-org/dots.ocr-GGUF:Q8_0" -p "OCR"93add_test_vision "ggml-org/HunyuanOCR-GGUF:Q8_0" -p "OCR"94add_test_vision "ggml-org/gemma-4-E2B-it-GGUF:Q8_0" --jinja95 96add_test_audio  "ggml-org/ultravox-v0_5-llama-3_2-1b-GGUF:Q8_0"97add_test_audio  "ggml-org/Qwen2.5-Omni-3B-GGUF:Q4_K_M"98add_test_audio  "ggml-org/Voxtral-Mini-3B-2507-GGUF:Q4_K_M"99add_test_audio  "ggml-org/LFM2-Audio-1.5B-GGUF:Q8_0"100add_test_audio  "ggml-org/gemma-4-E2B-it-GGUF:Q8_0" --jinja101add_test_audio  "ggml-org/Qwen3-ASR-0.6B-GGUF:Q8_0"102 103# to test the big models, run: ./tests.sh big104if [ "$RUN_BIG_TESTS" = true ]; then105    add_test_vision "ggml-org/pixtral-12b-GGUF:Q4_K_M"106    add_test_vision "ggml-org/Mistral-Small-3.1-24B-Instruct-2503-GGUF" --chat-template mistral-v7107    add_test_vision "ggml-org/Qwen2-VL-2B-Instruct-GGUF:Q4_K_M"108    add_test_vision "ggml-org/Qwen2-VL-7B-Instruct-GGUF:Q4_K_M"109    add_test_vision "ggml-org/Qwen2.5-VL-3B-Instruct-GGUF:Q4_K_M"110    add_test_vision "ggml-org/Qwen2.5-VL-7B-Instruct-GGUF:Q4_K_M"111    add_test_vision "ggml-org/Qwen3-VL-2B-Instruct-GGUF:Q8_0"112    add_test_vision "ggml-org/InternVL3-8B-Instruct-GGUF:Q4_K_M"113    add_test_vision "ggml-org/InternVL3-14B-Instruct-GGUF:Q4_K_M"114    add_test_vision "ggml-org/Qwen2.5-Omni-7B-GGUF:Q4_K_M"115    # add_test_vision "ggml-org/Qwen2.5-VL-32B-Instruct-GGUF:Q4_K_M" # does not work on my mac M3 Ultra116    # add_test_vision "ggml-org/Kimi-VL-A3B-Thinking-2506-GGUF:Q4_K_M" # not always working117    add_test_vision "ggml-org/GLM-4.6V-Flash-GGUF:Q4_K_M" -p "extract all texts from this image"118 119    add_test_audio  "ggml-org/ultravox-v0_5-llama-3_1-8b-GGUF:Q4_K_M"120    add_test_audio  "ggml-org/Qwen2.5-Omni-7B-GGUF:Q4_K_M"121fi122 123# to test the huge models, run: ./tests.sh huge124# this will run both the big and huge models125# huge models are > 32B parameters126if [ "$RUN_HUGE_TESTS" = true ]; then127    add_test_vision "ggml-org/Qwen2.5-VL-72B-Instruct-GGUF:Q4_K_M"128    add_test_vision "ggml-org/Llama-4-Scout-17B-16E-Instruct-GGUF:IQ1_S"129fi130 131# these models always give the wrong answer, not sure why132# add_test_vision "ggml-org/SmolVLM-Instruct-GGUF:Q4_K_M"133# add_test_vision "ggml-org/SmolVLM-256M-Instruct-GGUF:Q8_0"134# add_test_vision "ggml-org/SmolVLM2-256M-Video-Instruct-GGUF:Q8_0"135 136# this model has broken chat template, not usable137# add_test_vision "cmp-nct/Yi-VL-6B-GGUF:Q5_K"138# add_test_vision "guinmoon/MobileVLM-3B-GGUF:Q4_K_M" "deepseek"139 140###############141 142cmake --build build -j --target llama-mtmd-cli143 144arr_res=()145 146for i in "${!arr_hf[@]}"; do147    bin="llama-mtmd-cli"148    prefix="${arr_prefix[$i]}"149    hf="${arr_hf[$i]}"150    extra_args="${arr_extra_args[$i]}"151    inp_file="${arr_file[$i]}"152 153    echo "Running test with binary: $bin and HF model: $hf"154    echo ""155    echo ""156 157    cmd="$(printf %q "$PROJ_ROOT/build/bin/$bin") \158        -hf $(printf %q "$hf") \159        --image $(printf %q "$SCRIPT_DIR/$inp_file") \160        --temp 0 -n 128 \161        --flash-attn $(printf %q "$FLASH_ATTN") \162        ${extra_args}"163 164    # if extra_args does not contain -p, we add a default prompt165    if ! [[ "$extra_args" =~ "-p" ]]; then166        cmd+=" -p \"what is the publisher name of the newspaper?\""167    fi168 169    output=$(eval "$cmd" 2>&1 | tee /dev/tty)170 171    echo "$output" > $SCRIPT_DIR/output/$bin-$(echo "$hf" | tr '/' '-').log172 173    # either contains "new york" or both "men" and "walk"174    if echo "$output" | grep -iq "new york" \175            || (echo "$output" | grep -iq "men" && echo "$output" | grep -iq "walk")176    then177        result="$prefix \033[32mOK\033[0m:   $hf"178    else179        result="$prefix \033[31mFAIL\033[0m: $hf"180    fi181    echo -e "$result"182    arr_res+=("$result")183 184    echo ""185    echo ""186    echo ""187    echo "#################################################"188    echo "#################################################"189    echo ""190    echo ""191done192 193set +x194 195for i in "${!arr_res[@]}"; do196    echo -e "${arr_res[$i]}"197done198echo ""199echo "Output logs are saved in $SCRIPT_DIR/output"200