diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-02-12 20:57:17 +0100 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-02-12 20:57:17 +0100 |
| commit | b333b06772c89d96aacb5490d6a219fba7c09cc6 (patch) | |
| tree | 211df60083a5946baa2ed61d33d8121b7e251b06 /llama.cpp/examples/model-conversion/scripts/causal/compare-embeddings-logits.sh | |
| download | llmnpc-b333b06772c89d96aacb5490d6a219fba7c09cc6.tar.gz | |
Engage!
Diffstat (limited to 'llama.cpp/examples/model-conversion/scripts/causal/compare-embeddings-logits.sh')
| -rwxr-xr-x | llama.cpp/examples/model-conversion/scripts/causal/compare-embeddings-logits.sh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/llama.cpp/examples/model-conversion/scripts/causal/compare-embeddings-logits.sh b/llama.cpp/examples/model-conversion/scripts/causal/compare-embeddings-logits.sh new file mode 100755 index 0000000..2ae4dc7 --- /dev/null +++ b/llama.cpp/examples/model-conversion/scripts/causal/compare-embeddings-logits.sh | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | #!/usr/bin/env bash | ||
| 2 | |||
| 3 | set -e | ||
| 4 | |||
| 5 | MODEL_PATH="${1:-"$MODEL_PATH"}" | ||
| 6 | MODEL_NAME="${2:-$(basename "$MODEL_PATH")}" | ||
| 7 | |||
| 8 | CONVERTED_MODEL_PATH="${1:-"$CONVERTED_MODEL"}" | ||
| 9 | CONVERTED_MODEL_NAME="${2:-$(basename "$CONVERTED_MODEL_PATH" ".gguf")}" | ||
| 10 | |||
| 11 | if [ -t 0 ]; then | ||
| 12 | CPP_EMBEDDINGS="data/llamacpp-${CONVERTED_MODEL_NAME}-embeddings.bin" | ||
| 13 | else | ||
| 14 | # Process piped JSON data and convert to binary (matching logits.cpp format) | ||
| 15 | TEMP_FILE=$(mktemp /tmp/tmp.XXXXXX.binn) | ||
| 16 | python3 -c " | ||
| 17 | import json | ||
| 18 | import sys | ||
| 19 | import struct | ||
| 20 | |||
| 21 | data = json.load(sys.stdin) | ||
| 22 | |||
| 23 | # Flatten all embeddings completely | ||
| 24 | flattened = [] | ||
| 25 | for item in data: | ||
| 26 | embedding = item['embedding'] | ||
| 27 | for token_embedding in embedding: | ||
| 28 | flattened.extend(token_embedding) | ||
| 29 | |||
| 30 | print(f'Total embedding values: {len(flattened)}', file=sys.stderr) | ||
| 31 | |||
| 32 | # Write as binary floats - matches logitc.cpp fwrite format | ||
| 33 | with open('$TEMP_FILE', 'wb') as f: | ||
| 34 | for value in flattened: | ||
| 35 | f.write(struct.pack('f', value)) | ||
| 36 | " | ||
| 37 | CPP_EMBEDDINGS="$TEMP_FILE" | ||
| 38 | trap "rm -f $TEMP_FILE" EXIT | ||
| 39 | fi | ||
| 40 | |||
| 41 | python scripts/utils/semantic_check.py --model-path $MODEL_PATH \ | ||
| 42 | --python-embeddings data/pytorch-${MODEL_NAME}-embeddings.bin \ | ||
| 43 | --cpp-embeddings $CPP_EMBEDDINGS \ | ||
| 44 | --prompt "Hello world today" \ | ||
| 45 | --causal | ||
| 46 | |||
