mrj-crom commited on
Commit
9fa5ab2
Β·
verified Β·
1 Parent(s): 5dcd9c0

sync: scripts/benchmark_codebooks.sh

Browse files
Files changed (1) hide show
  1. scripts/benchmark_codebooks.sh +154 -0
scripts/benchmark_codebooks.sh ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ # ╔══════════════════════════════════════════════════════════════╗
3
+ # β•‘ 🧬 CROM-IA V2: Benchmark Comparativo de Codebooks DNA β•‘
4
+ # β•‘ β•‘
5
+ # β•‘ Executa todas as combinaΓ§Γ΅es (4 taxas Γ— 2 modos) β•‘
6
+ # β•‘ e gera relatΓ³rio comparativo β•‘
7
+ # β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
8
+
9
+ set -euo pipefail
10
+
11
+ BASE_DIR="$(cd "$(dirname "$0")/.." && pwd)"
12
+ MODELS_DIR="$BASE_DIR/models"
13
+ CODEBOOKS_DIR="$BASE_DIR/codebooks"
14
+ SCRIPTS_DIR="$BASE_DIR/scripts"
15
+ LLAMA_CLI="/home/j/Área de trabalho/crompressor/pesquisa/ia_llm/102-native_llm_humble_pc/bin/llama-cli"
16
+ DECODER="$SCRIPTS_DIR/dna_decoder.py"
17
+
18
+ # Perguntas de benchmark (10 simples, 10 mΓ©dias, 10 complexas)
19
+ PERGUNTAS_SIMPLES=(
20
+ "O que Γ© o sol?"
21
+ "Qual Γ© a capital do Brasil?"
22
+ "Quanto Γ© 2+2?"
23
+ "O que Γ© Γ‘gua?"
24
+ "Qual Γ© a cor do cΓ©u?"
25
+ "Quantos dias tem uma semana?"
26
+ "O que Γ© um gato?"
27
+ "Qual Γ© o maior planeta?"
28
+ "O que Γ© uma Γ‘rvore?"
29
+ "Quem inventou o telefone?"
30
+ )
31
+
32
+ PERGUNTAS_MEDIAS=(
33
+ "Explique gravidade em 3 frases."
34
+ "Como funciona a internet?"
35
+ "O que Γ© fotossΓ­ntese?"
36
+ "Explique o que Γ© DNA."
37
+ "Como funciona um motor a combustΓ£o?"
38
+ "O que causa terremotos?"
39
+ "Explique o ciclo da Γ‘gua."
40
+ "O que Γ© a teoria da evoluΓ§Γ£o?"
41
+ "Como funciona uma vacina?"
42
+ "O que Γ© inteligΓͺncia artificial?"
43
+ )
44
+
45
+ PERGUNTAS_COMPLEXAS=(
46
+ "Compare democracia e autocracia."
47
+ "Explique a teoria das cordas."
48
+ "Qual a relaΓ§Γ£o entre entropia e informaΓ§Γ£o?"
49
+ "Explique o problema da consciΓͺncia na filosofia."
50
+ "Compare capitalismo e socialismo."
51
+ "O que Γ© computaΓ§Γ£o quΓ’ntica?"
52
+ "Explique a teoria da relatividade."
53
+ "Compare energia nuclear e solar."
54
+ "Explique o paradoxo de Fermi."
55
+ "O que Γ© a singularidade tecnolΓ³gica?"
56
+ )
57
+
58
+ echo "╔══════════════════════════════════════════════════════════╗"
59
+ echo "β•‘ CROM-IA V2: BENCHMARK COMPLETO DNA COMPRESSION β•‘"
60
+ echo "╠══════════════════════════════════════════════════════════╣"
61
+ echo "β•‘ Motor : $LLAMA_CLI"
62
+ echo "β•‘ Decoder : $DECODER"
63
+ echo "β•‘ Codebooks : $CODEBOOKS_DIR"
64
+ echo "β•‘ Models : $MODELS_DIR"
65
+ echo "β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"
66
+ echo ""
67
+
68
+ # Verificar requisitos
69
+ if [ ! -f "$LLAMA_CLI" ]; then
70
+ echo "❌ llama-cli não encontrado: $LLAMA_CLI"
71
+ exit 1
72
+ fi
73
+
74
+ TAXAS=("1x3" "1x5" "1x10" "1x20")
75
+ MODOS=("fixo" "dinamico")
76
+
77
+ RESULTS_FILE="$BASE_DIR/benchmark_results_$(date +%Y%m%d_%H%M%S).txt"
78
+
79
+ echo "╔══════════════════════════════════════════════════════════╗" | tee "$RESULTS_FILE"
80
+ echo "β•‘ CROM-IA V2: BENCHMARK DNA COMPRESSION β•‘" | tee -a "$RESULTS_FILE"
81
+ echo "╠══════════════════════════════════════════════════════════╣" | tee -a "$RESULTS_FILE"
82
+ echo "β•‘ Taxa β”‚ Modo β”‚ Palavras/s β”‚ Hit Rate β”‚ Veredicto β•‘" | tee -a "$RESULTS_FILE"
83
+ echo "║────────┼──────────┼────────────┼──────────┼─────────────║" | tee -a "$RESULTS_FILE"
84
+
85
+ for taxa in "${TAXAS[@]}"; do
86
+ for modo in "${MODOS[@]}"; do
87
+ MODEL="$MODELS_DIR/crom-dna-${taxa}-${modo}.gguf"
88
+ CODEBOOK="$CODEBOOKS_DIR/codebook_${taxa}_${modo}.json"
89
+
90
+ if [ ! -f "$MODEL" ]; then
91
+ echo "β•‘ ${taxa} β”‚ ${modo} β”‚ N/A β”‚ N/A β”‚ ⬜ Sem modeloβ•‘" | tee -a "$RESULTS_FILE"
92
+ continue
93
+ fi
94
+
95
+ if [ ! -f "$CODEBOOK" ]; then
96
+ echo "β•‘ ${taxa} β”‚ ${modo} β”‚ N/A β”‚ N/A β”‚ ⬜ Sem codebookβ•‘" | tee -a "$RESULTS_FILE"
97
+ continue
98
+ fi
99
+
100
+ echo "[>] Testando ${taxa} / ${modo}..."
101
+
102
+ # Teste com 3 perguntas (1 de cada nΓ­vel)
103
+ TOTAL_PALAVRAS=0
104
+ TOTAL_TEMPO=0
105
+ TOTAL_HITS=0
106
+ TOTAL_TOKENS=0
107
+
108
+ for PERGUNTA in "${PERGUNTAS_SIMPLES[0]}" "${PERGUNTAS_MEDIAS[0]}" "${PERGUNTAS_COMPLEXAS[0]}"; do
109
+ PROMPT="<|im_start|>system\nVocΓͺ Γ© um compressor CROM DNA (taxa ${taxa/x/:}). Comprima a resposta usando cΓ³digos do codebook semΓ’ntico DNA.<|im_end|>\n<|im_start|>user\n${PERGUNTA}<|im_end|>\n<|im_start|>assistant\n"
110
+
111
+ T_START=$(date +%s%N)
112
+ RESULTADO=$("$LLAMA_CLI" \
113
+ -m "$MODEL" \
114
+ --threads 2 \
115
+ -c 1024 \
116
+ -n 64 \
117
+ --temp 0.2 \
118
+ -p "$PROMPT" \
119
+ --log-disable 2>/dev/null | \
120
+ python3 "$DECODER" --codebook "$CODEBOOK" --quiet 2>/dev/null)
121
+ T_END=$(date +%s%N)
122
+
123
+ ELAPSED=$(( (T_END - T_START) / 1000000 )) # ms
124
+ PALAVRAS=$(echo "$RESULTADO" | wc -w)
125
+
126
+ TOTAL_PALAVRAS=$((TOTAL_PALAVRAS + PALAVRAS))
127
+ TOTAL_TEMPO=$((TOTAL_TEMPO + ELAPSED))
128
+ done
129
+
130
+ # Calcular mΓ©dias
131
+ if [ $TOTAL_TEMPO -gt 0 ]; then
132
+ PALAVRAS_POR_S=$((TOTAL_PALAVRAS * 1000 / TOTAL_TEMPO))
133
+ else
134
+ PALAVRAS_POR_S=0
135
+ fi
136
+
137
+ # Determinar veredicto
138
+ if [ $PALAVRAS_POR_S -gt 40 ]; then
139
+ VEREDICTO="βœ… ViΓ‘vel"
140
+ elif [ $PALAVRAS_POR_S -gt 20 ]; then
141
+ VEREDICTO="⚠️ Parcial"
142
+ else
143
+ VEREDICTO="❌ Lento"
144
+ fi
145
+
146
+ printf "β•‘ %-5s β”‚ %-8s β”‚ %8d/s β”‚ --- β”‚ %-12sβ•‘\n" \
147
+ "$taxa" "$modo" "$PALAVRAS_POR_S" "$VEREDICTO" | tee -a "$RESULTS_FILE"
148
+ done
149
+ done
150
+
151
+ echo "β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•" | tee -a "$RESULTS_FILE"
152
+ echo "" | tee -a "$RESULTS_FILE"
153
+ echo "πŸ“„ Resultados salvos em: $RESULTS_FILE" | tee -a "$RESULTS_FILE"
154
+ echo "πŸš€ Benchmark concluΓ­do!"