PoCInnovation / PoCInnovation/MLBlock
Patterns & baselines drag-and-drop : CNN, clustering, classification/régression, transformers
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Contexte
Demande de Pierre BAUD : le produit doit proposer des patterns prêts à l'emploi — des pipelines baseline que l'utilisateur glisse directement dans la sandbox :
un pattern = charger les données -> traitement des données -> évaluation -> visualisation
une baseline -> une pipeline que l'utilisateur peut directement drag and drop dans la sandbox, par exemple la baseline du clustering : on charge les data -> on fait une pca ou un kmeans -> une tsne qui est la visu
Patterns demandés :
- CNN / convolution (imagerie, etc.)
- Clustering (kmeans, pca, t-SNE pour la visualisation, etc.)
- Classification & régression (polynomiale, linéaire, knn)
- LLM / transformers (+ eval)
État actuel (sourcé)
Vérifié sur dev/chedli contre les signatures réelles (backend/mlblock/blocks/*) et docs/UX_Blocks_Rework/coverage.md (6/12 exos PASS) :
| Pattern | État | Détail |
|---|---|---|
| CNN / imagerie | ✅ OK | A1 PASS (11/11 arêtes). conv2d_layer, to_tensor, normalize chaînent proprement |
| Clustering kmeans/pca/t-SNE | ❌ Cassé | B3 FAIL : scaler.scaled (ndarray) -> kmeans (df) incompatible. tsne est en modeles (S2), pas une visu : sa sortie ndarray n'a aucun consommateur (plot_predictions veut object + df). kmeans(Model) -> tsne(df) et pca(dict) -> tsne(df) rejetés |
| Classification / régression | ⚠️ Presque | polynomial_features(df)->df + linear_regression(df)->Model + evaluate(Model,df)->float OK (B1 PASS). Mais knn, decision_tree, svm retournent object au lieu de Model → evaluate les refuse (wildcard seulement côté cible dans core/types.py) |
| LLM / transformers | ❌ Vide | Seulement multihead_attention (couche nue), embedding, lstm/gru/rnn. A6 FAIL : encoder(ndarray) -> trainer(DataLoader), lstm(Tensor) -> fc(Module). Pas de bloc transformer, pas d'éval séquentielle |
| Baseline drag-and-drop | ❌ Absent | Exos au format backend {graph: {nodes, edges}}, frontend n'importe que le format plat. Pas de route /api/exos, pas de galerie. 6/12 exos ne valident pas |
Travail demandé
P0 — Réparer les patterns existants
- Retypage
knn/decision_tree/svm:-> objectvers-> Model(3 lignes, débloqueevaluate) - Trancher
tsne: vrai bloc visu (df + labels -> bytes) OU pontndarrayconsommable ; sortirtsnedemodelessi visu - Unifier
standard_scaler/normalize(gap P0.4) : un seul comportement par famille, chaîne clustering sans rupturendarray -> df
P1 — Baselines importables
- Convertisseur format exo (
graph: {...}) → format frontend plat (nodes,edges+ positions auto-layout) - Route
GET /api/exos(ou JSON statique frontend) + bouton galerie dans la palette/éditeur - Figer 4–5 baselines depuis les exos PASS : CNN (A1), clustering (B2/B3 réparé), classification (B1), régression (poly+linreg), time-series (A7)
- Ne proposer que des baselines qui valident (
validate()vert)
Hors scope
- Pattern LLM / transformers complet (pas de briques suffisantes : ni bloc transformer, ni tokeniseur subword, ni éval séquentielle) — à spécifier séparément, ne pas promettre ici
Critères d'acceptation
- Chaque pattern listé a une baseline qui passe
validate()sans erreur - Chaque baseline s'importe en 1 clic dans le canvas avec positions lisibles
tsnebranché dans la baseline clustering (en visu ou en traitement chaîné)knn,decision_tree,svmévaluables viaevaluate
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with docs/UX_Blocks_Rework/coverage.md and the referenced exercises, then inspect backend/mlblock/blocks/* and core/types.py to understand the current signatures and validation rules. Check how the frontend represents nodes and edges before choosing the import path. Done means the listed baselines import into the canvas, pass validate(), and satisfy the acceptance criteria without promising the out-of-scope transformer pattern.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- full-stack, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100