Ce dépôt fournit un moteur d'inférence CPU pour un Transformer décodeur de type GPT‑2 (BPE byte-level), conçu pour être simple à intégrer et à optimiser (FP16 pour les poids, KV‑cache, multi‑threading sur les matvec).
- CMake ≥ 3.20
- Compilateur C++20 (clang ou gcc)
make -jcmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -jLe moteur charge des poids au format safetensors (HF) et un tokenizer GPT‑2 (vocab.json + merges.txt).
./build/moteur \
--arch gpt2 \
--model ./gpt2/model.safetensors \
--vocab ./gpt2/vocab.json \
--merges ./gpt2/merges.txt \
--prompt "Bonjour, je m'appelle" \
--n-predict 64 \
--threads 8 \
--top-k 40 --top-p 0.9 --temp 0.8./moteur \
--arch llama \
--model-dir ./llama \
--tokenizer-model ./llama/tokenizer.model \
--prompt "Bonjour," \
--n-predict 64 --threads 8Notes:
- Les modèles GPT‑2 HF peuvent être en shards (
model-00001-of-000xx.safetensors). Vous pouvez aussi passer--model-dirpour charger tous les.safetensorsd'un dossier. - Le moteur utilise
config.json(s'il est présent à côté du modèle) pourn_layer/n_head/...sinon il déduitn_layerdepuis les clés etn_headviahead_dim=64(heuristique GPT‑2). - Pour LLaMA/Mistral,
config.jsonest requis (dimensions/heads/rope/etc) ettokenizer.modeldoit être fourni.