Skip to content

TataneSan/llm_engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moteur – moteur d'inférence LLM (CPU) optimisé en C++

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).

Prérequis

  • CMake ≥ 3.20
  • Compilateur C++20 (clang ou gcc)

Build

Option A: Make (sans CMake)

make -j

Option B: CMake

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j

Utilisation

Le 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

LLaMA / Mistral (HF safetensors + SentencePiece)

./moteur \
  --arch llama \
  --model-dir ./llama \
  --tokenizer-model ./llama/tokenizer.model \
  --prompt "Bonjour," \
  --n-predict 64 --threads 8

Notes:

  • Les modèles GPT‑2 HF peuvent être en shards (model-00001-of-000xx.safetensors). Vous pouvez aussi passer --model-dir pour charger tous les .safetensors d'un dossier.
  • Le moteur utilise config.json (s'il est présent à côté du modèle) pour n_layer/n_head/... sinon il déduit n_layer depuis les clés et n_head via head_dim=64 (heuristique GPT‑2).
  • Pour LLaMA/Mistral, config.json est requis (dimensions/heads/rope/etc) et tokenizer.model doit être fourni.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages