これは、科学論文 Evaluating Context Segmentation in Locally Deployable SLMs for Cybersecurity CTF Tasks で提案されたソリューションの実装です。
Python 3.12.3+ がインストールされていること、および Docker engine があることを確認してください。
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
Vulkanでllama.cppを起動する
docker compose --profile vulkan up -d
またはCudaで
docker compose --profile cuda up -d
HuggingFaceから希望する大規模言語モデル(LLM)をGGUF形式でダウンロードし、intercode-ctfコンテナをビルドします。
docker exec -it llamacpp ./llama-cli -hf unsloth/gemma-4-E2B-it-GGUF:Q4_K_M # or any other GGUF model on HF
docker build -t intercode-ctf -f intercode/docker/ctf.Dockerfile ./intercode
docker restart llamacpp
戦略(plainまたはexplorer)のベンチマークをN回実行する
これは結果を $MODEL_NAME.$STRATEGY.bench ファイルに蓄積します
OPENAI_API_BASE=http://127.0.0.1:8080/ \
OPENAI_API_KEY=1234 \ #Mock key (we run locally)
python3 intercode_test.py \
--model unsloth/gemma-4-E2B-it-GGUF:Q4_K_M \ #HF model
--strategy plain \ #plain or explorer
--count 1 #N
ベンチマーク結果を確認する
jq '.' gemma-4-E2b-it-GGUF:Q4_K_M.plain.bench
ディレクトリ intercode 内のコードは princeton-nlp/intercode から取得し、私たちのセットアップで動作するように調整したものです。