webcoder-3b / README.md
kanaton's picture
Upload README.md with huggingface_hub
11a3358 verified
|
Raw History Blame Contribute Delete
4.22 kB
metadata
language:
  - fr
  - en
license: apache-2.0
library_name: llama.cpp
pipeline_tag: text-generation
base_model: Qwen/Qwen2.5-Coder-3B-Instruct
tags:
  - code
  - php
  - html
  - css
  - sql
  - javascript
  - gguf
  - llama.cpp
  - lora
  - peft
  - cpu
  - webcoder
  - fr
model_name: webcoder-3b

WebCoder 3B (webcoder-3b)

Assistant local de développement Web (PHP, HTML, CSS, SQL, JavaScript), adapté par LoRA, fusionné puis quantifié en GGUF. Conçu pour tourner sur CPU, sans GPU.

  • Auteur / identité : WebCoder, créé par Pierre Jean Duvivier (l'identité est apprise et vérifiée).
  • Base : Qwen/Qwen2.5-Coder-3B-Instruct @ 488639f1ff808d1d3d0ba301aef8c11461451ec5 (Apache-2.0).
  • Format : GGUF (Q8_0), prêt pour llama.cpp / llama-server.
  • Fichier : webcoder-3b-q8_0.gguf (~3,06 Gio).

Description

webcoder-3b est un petit modèle spécialisé pour écrire et corriger du code Web. Il combine :

  1. une base Qwen2.5-Coder-3B-Instruct (même famille que le 1,5B utilisé auparavant) ;
  2. un LoRA « seed » (rang 8, q_proj/v_proj) appris sur des corpus d'identité, de chat et de worker (`format de blocs file:CHEMIN pour éditer des fichiers) ;
  3. une fusion dans les poids de base, puis une quantification Q8_0 en GGUF.

Le modèle répond en français par défaut, connaît son identité (« WebCoder »), et sait produire du code Web dans le format worker (un bloc par fichier, contenu complet).

Utilisation (llama.cpp / llama-server, CPU)

llama-server --model webcoder-3b-q8_0.gguf \
  --ctx-size 4096 --parallel 1 --n-gpu-layers 0 \
  --threads 6 --host 127.0.0.1 --port 8081

Puis, via l'API OpenAI-compatible :

curl http://127.0.0.1:8081/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "webcoder-3b",
  "messages": [{"role":"user","content":"Ecris une fonction PHP qui inverse une chaine."}],
  "max_tokens": 256, "temperature": 0.2
}'

Le format worker attend un bloc par fichier modifié :

```file:src/exemple.php
<?php
...contenu complet du fichier...
```

Entraînement (résumé)

Élément Valeur
Base Qwen2.5-Coder-3B-Instruct @ 488639f1…
Méthode LoRA (PEFT), rang 8, alpha 16, dropout 0.05–0.1, cibles q_proj,v_proj
Corpus seed identité + chat + worker (chat_corpus + t28g_corpus, 317 ex.)
Pas 150 microsteps, LR 5e-5, sélection sur validation
Précision base FP32 (CPU, sans GPU)
Export fusion (PEFT merge_and_unload) → GGUF f16 → llama-quantize Q8_0
Dtype servi Q8_0 (~3,06 Gio)

Entraînement CPU uniquement (politique CPU-first du projet).

Évaluation (banc interne « apps PHP », format worker)

Réussite au 1er essai sur des tâches PHP from-scratch (réserve tenue à l'écart) :

Famille Score
Fonctions courtes (facile) 8/8
Multi-fonctions / état (z) 5/5
Divers (y) 4/5
Programmes multi-fichiers (p) 2/4
Identité (identity_check) OK
Chat (4 questions) 4/4

Comparé à un modèle 1,5B (même recette), la 3B est nettement meilleure sur les tâches dures (la capacité était le facteur limitant).

Limites

  • Pas agentique : pas de tool-calling structuré ; à utiliser comme assistant de code / worker derrière un orchestrateur déterministe.
  • Applications Web complètes depuis zéro (ex. un jeu du pendu web fonctionnel) : encore hors de portée (échec mesuré ; persistance d'état en session).
  • Le code généré n'est pas garanti sûr ; revue humaine requise pour paiements, authentification, migrations.
  • Qualité hors du périmètre Web (PHP/HTML/CSS/SQL/JS) non mesurée.
  • Inférence CPU lente au premier message (préfill), rapide ensuite (cache KV).

Licence

Modèle de base sous Apache-2.0. Les adaptations et l'export conservent cette licence. Voir le LICENSE du modèle de base.

Citation / attribution

WebCoder 3B (webcoder-3b) — Pierre Jean Duvivier.
Base : Qwen2.5-Coder-3B-Instruct (Alibaba Cloud, Apache-2.0).