Aller au contenu

Guide développeur

Cette page cible les contributeurs qui travaillent sur le code du projet.

Structure du dépôt

src/labcore_llm/
  config/      # loader TOML et defaults
  data/        # abstractions dataset
  model/       # implementation GPT
  tokenizer/   # tokenizers char + BPE
  trainer/     # boucle training, scheduler, checkpointing

scripts/       # helpers data prep, export, quantize, fine-tune
  data/        # préparation des données
  export/      # export HF + quantization GGUF
  finetune/    # fine-tuning instruction LoRA
  benchmark/   # benchmark d'inférence
  demo/        # pointeur vers l'entrypoint démo racine

configs/       # presets TOML et profils de base
  base/        # presets de base
  presets/     # familles de presets modèle/tokenizer
  hardware/    # variantes orientées matériel
  experimental/# presets en cours d'expérimentation

tests/
  unit/        # tests unitaires isolés
  integration/ # tests de workflow end-to-end

Environnement de développement local

python -m venv .venv
## PowerShell
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[torch,dev]"

Commandes de validation

Lancer les tests:

python -m pytest -q

Lancer le lint aligné sur la CI:

ruff check src scripts tests train.py generate.py demo_gradio.py --select E9,F63,F7,F82

Workflows CI

  • .github/workflows/ci.yml: lint + tests
  • .github/workflows/docs.yml: build et déploiement MkDocs

Niveau de qualité des contributions

  • Gardez les commits focalisés et atomiques.
  • Mettez à jour la documentation lors des changements de comportement/CLI.
  • Ajoutez des tests pour les corrections de bugs et les nouvelles logiques.
  • Ne commitez pas de gros artefacts de données/modèles.

Notes de packaging

  • Le projet utilise une structure src/ avec setuptools.
  • Les groupes de dépendances optionnelles sont dans pyproject.toml.
  • Les scripts d'entrée sont des fichiers Python, pas des wrappers console-script.