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