1#!/usr/bin/env bash
 2
 3set -e
 4
 5CONVERTED_MODEL="${1:-"$CONVERTED_MODEL"}"
 6BUILD_DIR="${2:-"$BUILD_DIR"}"
 7
 8# Final check if we have a model path
 9if [ -z "$CONVERTED_MODEL" ]; then
10    echo "Error: Model path must be provided either as:" >&2
11    echo "  1. Command line argument" >&2
12    echo "  2. CONVERTED_MODEL environment variable" >&2
13    exit 1
14fi
15
16# Check if data/wikitext-2-raw directory exists
17if [ ! -d "ppl/wikitext-2-raw" ]; then
18    echo "ppl/wikitext-2-raw directory does not exist. Downloading..." >&2
19    mkdir -p ppl
20    pushd ppl
21    ./../../../scripts/get-wikitext-2.sh
22    popd
23fi
24
25mkdir -p ppl
26OUTPUTFILE="ppl/$(basename $CONVERTED_MODEL).kld"
27echo "Model: $CONVERTED_MODEL"
28
29if [ -z "$BUILD_DIR" ]; then
30    BUILD_DIR="../../build"
31fi
32
33cmake --build $BUILD_DIR --target llama-perplexity -j8
34
35${BUILD_DIR}/bin/llama-perplexity -m $CONVERTED_MODEL \
36    -f ppl/wikitext-2-raw/wiki.test.raw \
37    --kl-divergence-base $OUTPUTFILE
38
39echo "Generated logits in $OUTPUTFILE"
40