From b2070d17ccf3db7d6ec8fb5a8ec62cd2bca5b59f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Mureau?= Date: Thu, 10 Sep 2026 14:23:37 +0200 Subject: [PATCH] Profil bilingue EN/FR, anglais en premier, comme les repos OC. --- README.fr.md | 67 ++++++++++++++++++++++++++++++++++++++++++++ README.md | 78 +++++++++++++++++++++++++++------------------------- 2 files changed, 107 insertions(+), 38 deletions(-) create mode 100644 README.fr.md diff --git a/README.fr.md b/README.fr.md new file mode 100644 index 0000000..1ff858c --- /dev/null +++ b/README.fr.md @@ -0,0 +1,67 @@ +# Grégoire Mureau + +📘 Ce profil est également disponible en [anglais 🇬🇧](https://git.gregoiremureau.com/grgmro/.profile/src/branch/main/README.md) + +**Ingénieur ML / data — RAG · serving LLM · homelab Kubernetes** + +Diplômé **AI Engineer (Data Science Expert)**. 18 mois d’ingénierie de données en production à l’[Ifremer](https://www.ifremer.fr/) (Copernicus Marine, millions d’observations in situ / jour ; [3 publications scientifiques](https://www.researchgate.net/profile/Gregoire_Mureau)). + +Cette instance Forgejo **fait partie** de l’infra : ce n’est pas un hébergeur tiers. GitHub ([GrgMdmn](https://github.com/GrgMdmn)) est le miroir public ; ici, c’est le quotidien. + +## Homelab — une machine calcule, l’autre expose + +Deux **Ubuntu Server**, deux clusters **k3s indépendants** (pas de fédération : l’indisponibilité de l’une ne doit pas emporter l’autre). Liaison Tailscale. + +| | **Mini PC** (calcul) | **NAS** (mise à disposition) | +|---|---|---| +| Matériel | AMD Ryzen 7 8745HS · iGPU Radeon 780M · 48 Go RAM unifiée | Intel N100 · 31 Go · MergerFS + SnapRAID | +| Rôle | Inférence GPU, runners CI, observabilité | Bordure publique : Traefik, git, cloud, démos ML | +| Orchestration | k3s (single-node) | k3s (single-node) | + +La 780M est une iGPU modeste, **sans VRAM dédiée**. Une dGPU dans le même format (mini PC / laptop) plafonne en général à 8–16 Go de VRAM ; ici les poids tiennent dans la **RAM unifiée** (GTT, plusieurs dizaines de Gio). C’est ce qui permet d’héberger et de servir un MoE comme Qwen3-30B-A3B, trop volumineux pour la VRAM d’une carte discrète équivalente. + +**Démo LLM** (chat temporaire, rien n’est conservé) : [Qwen3-30B MoE via Open WebUI](https://llm.gregoiremureau.com/auto-login.html?temporary-chat=true&model=qwen3:30b-a3b-q6k) + +Aussi servis par le NAS : [APIs ML](https://api.gregoiremureau.com/ml/) · Forgejo (cette page). + +Les dépôts listés sous ce compte user sont surtout **homelab / infra**. Le Master OpenClassrooms vit dans l’organisation **[openclassroom-ai](https://git.gregoiremureau.com/openclassroom-ai)** (Forgejo n’épingle pas les repos d’org sur un profil user). + +## Étude de cas — communauté migrée vers une plateforme souveraine + +Communauté ouverte en 2007 (19 ans, bientôt 20), d’abord sur une plateforme propriétaire, puis une deuxième, migrée vers **Discourse** (open source) sur un **VPS dédié** que j’administre — pas sur le NAS : **[depiedencap.org](https://depiedencap.org/)**. + +- 22 230 sujets · 424 835 messages · 7 102 comptes mappés · 93 884 images (8,8 Go) +- Plugins Discourse custom (onboarding, locale FR/PWA, citations RAG) +- Mail & RGPD : campagnes de réactivation, droit à l’effacement avec dossiers de preuve +- RAG sur le corpus des **fils** (embeddings **bge-m3** → pgvector → Qwen3-30B sur le mini PC) — l’assistant n’indexe pas les profils + +Le code de scraping et les données membres restent privés. Ici : l’architecture et les résultats. + +## Master AI Engineer — OpenClassrooms + +Organisation : **[openclassroom-ai](https://git.gregoiremureau.com/openclassroom-ai)** +Miroirs GitHub (mêmes noms) : [github.com/GrgMdmn](https://github.com/GrgMdmn) + +| # | Projet | Forgejo | Live | +|---|---|---|---| +| 2 | Paris trees (Pandas, Folium) | [oc-p02-paris-trees](https://git.gregoiremureau.com/openclassroom-ai/oc-p02-paris-trees) | — | +| 3 | OpenFoodFacts (nettoyage, ACP, ANOVA) | [oc-p03-openfoodfacts](https://git.gregoiremureau.com/openclassroom-ai/oc-p03-openfoodfacts) | — | +| 4 | Scoring crédit (LightGBM, SHAP, LIME) | [oc-p04-credit-scoring](https://git.gregoiremureau.com/openclassroom-ai/oc-p04-credit-scoring) | — | +| 5 | Segmentation client Olist (RFM, K-means) | [oc-p05-customer-segmentation](https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation) | — | +| 6 | Classification produits (NLP + CV) | [oc-p06-product-classification](https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification) | — | +| 7 | Analyse de sentiment (LSTM, DistilBERT, FastAPI) | [oc-p07-sentiment-api](https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api) | [démo](https://api.gregoiremureau.com/ml/sentiment/) | +| 8 | Street vision (U-Net, FPN) | [oc-p08-street-vision](https://git.gregoiremureau.com/openclassroom-ai/oc-p08-street-vision) | [démo](https://api.gregoiremureau.com/ml/street-vision/) | +| 9 | Street vision PoC (SegFormer vs FPN) | [oc-p09-street-vision-poc](https://git.gregoiremureau.com/openclassroom-ai/oc-p09-street-vision-poc) | [démo](https://api.gregoiremureau.com/ml/street-vision-poc/) | +| 10 | Recommandation de contenu | [oc-p10-content-recommendation](https://git.gregoiremureau.com/openclassroom-ai/oc-p10-content-recommendation) | — | +| 11 | Big data fruits (PySpark, EMR) | [oc-p11-bigdata-fruits](https://git.gregoiremureau.com/openclassroom-ai/oc-p11-bigdata-fruits) | — | +| 12 | Cadrage Fashion-Insta | [oc-p12-fashion-insta](https://git.gregoiremureau.com/openclassroom-ai/oc-p12-fashion-insta) | — | + +Landing ML : [api.gregoiremureau.com/ml/](https://api.gregoiremureau.com/ml/) + +## Liens + +- Site : [gregoiremureau.com](https://www.gregoiremureau.com) +- GitHub : [github.com/GrgMdmn](https://github.com/GrgMdmn) +- LinkedIn : [gregoire-mureau](https://www.linkedin.com/in/gregoire-mureau-a7455a19b/) +- Publications : [ResearchGate](https://www.researchgate.net/profile/Gregoire_Mureau) +- Produce Estimates (PWA React, démo anonymisée) : [demo.gregoiremureau.com/estimaciones_demo/](https://demo.gregoiremureau.com/estimaciones_demo/) diff --git a/README.md b/README.md index c628f51..6c10845 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,67 @@ # Grégoire Mureau -**Ingénieur ML / data — RAG · serving LLM · homelab Kubernetes** +📘 This profile is also available in [French 🇫🇷](https://git.gregoiremureau.com/grgmro/.profile/src/branch/main/README.fr.md) -Diplômé **AI Engineer (Data Science Expert)**. 18 mois d’ingénierie de données en production à l’[Ifremer](https://www.ifremer.fr/) (Copernicus Marine, millions d’observations in situ / jour ; [3 publications scientifiques](https://www.researchgate.net/profile/Gregoire_Mureau)). +**ML / data engineer — RAG · LLM serving · homelab Kubernetes** -Cette instance Forgejo **fait partie** de l’infra : ce n’est pas un hébergeur tiers. GitHub ([GrgMdmn](https://github.com/GrgMdmn)) est le miroir public ; ici, c’est le quotidien. +Graduate **AI Engineer (Data Science Expert)**. Eighteen months in production data engineering at [Ifremer](https://www.ifremer.fr/) (Copernicus Marine, millions of in-situ observations per day; [3 scientific publications](https://www.researchgate.net/profile/Gregoire_Mureau)). -## Homelab — une machine calcule, l’autre expose +This Forgejo instance **is part of** the infra: it is not a third-party host. GitHub ([GrgMdmn](https://github.com/GrgMdmn)) is the public mirror; this is day-to-day. -Deux **Ubuntu Server**, deux clusters **k3s indépendants** (pas de fédération : l’indisponibilité de l’une ne doit pas emporter l’autre). Liaison Tailscale. +## Homelab — compute vs serve -| | **Mini PC** (calcul) | **NAS** (mise à disposition) | +Two **Ubuntu Server** machines, two independent **k3s** clusters (not federated: if one is down, the other must keep serving). They talk over Tailscale. + +| | **Mini PC** (compute) | **NAS** (serve) | |---|---|---| -| Matériel | AMD Ryzen 7 8745HS · iGPU Radeon 780M · 48 Go RAM unifiée | Intel N100 · 31 Go · MergerFS + SnapRAID | -| Rôle | Inférence GPU, runners CI, observabilité | Bordure publique : Traefik, git, cloud, démos ML | +| Hardware | AMD Ryzen 7 8745HS · Radeon 780M iGPU · 48 GB unified RAM | Intel N100 · 31 GB · MergerFS + SnapRAID | +| Role | Inference, CI runners, observability | Public edge: Traefik, git, cloud, ML demos | | Orchestration | k3s (single-node) | k3s (single-node) | -La 780M est une iGPU modeste, **sans VRAM dédiée**. Une dGPU dans le même format (mini PC / laptop) plafonne en général à 8–16 Go de VRAM ; ici les poids tiennent dans la **RAM unifiée** (GTT, plusieurs dizaines de Gio). C’est ce qui permet d’héberger et de servir un MoE comme Qwen3-30B-A3B, trop volumineux pour la VRAM d’une carte discrète équivalente. +The 780M is a modest iGPU **with no dedicated VRAM**. A discrete GPU in the same form factor (mini PC / laptop) typically tops out at 8–16 GB of VRAM; here model weights sit in **unified memory** (GTT, tens of GiB). That is what makes it possible to host and serve an MoE such as Qwen3-30B-A3B, which would not fit in the VRAM of an equivalent dGPU. -**Démo LLM** (chat temporaire, rien n’est conservé) : [Qwen3-30B MoE via Open WebUI](https://llm.gregoiremureau.com/auto-login.html?temporary-chat=true&model=qwen3:30b-a3b-q6k) +**Try it** (temporary chat, nothing persisted): [Qwen3-30B MoE via Open WebUI](https://llm.gregoiremureau.com/auto-login.html?temporary-chat=true&model=qwen3:30b-a3b-q6k) -Aussi servis par le NAS : [APIs ML](https://api.gregoiremureau.com/ml/) · Forgejo (cette page). +Also live from the NAS: [ML APIs](https://api.gregoiremureau.com/ml/) · Forgejo (this page). -Les dépôts listés sous ce compte user sont surtout **homelab / infra**. Le Master OpenClassrooms vit dans l’organisation **[openclassroom-ai](https://git.gregoiremureau.com/openclassroom-ai)** (Forgejo n’épingle pas les repos d’org sur un profil user). +Repositories listed under this user account are mostly **homelab / infra**. The OpenClassrooms Master lives in the **[openclassroom-ai](https://git.gregoiremureau.com/openclassroom-ai)** organisation (Forgejo does not pin org repos on a user profile). -## Étude de cas — communauté migrée vers une plateforme souveraine +## Case study — sovereign community platform -Communauté ouverte en 2007 (19 ans, bientôt 20), d’abord sur une plateforme propriétaire, puis une deuxième, migrée vers **Discourse** (open source) sur un **VPS dédié** que j’administre — pas sur le NAS : **[depiedencap.org](https://depiedencap.org/)**. +A community founded in 2007 (19 years, approaching 20), hosted first on one proprietary platform then a second, migrated to open-source **Discourse on a dedicated VPS I operate** (not on the NAS): **[depiedencap.org](https://depiedencap.org/)**. -- 22 230 sujets · 424 835 messages · 7 102 comptes mappés · 93 884 images (8,8 Go) -- Plugins Discourse custom (onboarding, locale FR/PWA, citations RAG) -- Mail & RGPD : campagnes de réactivation, droit à l’effacement avec dossiers de preuve -- RAG sur le corpus des **fils** (embeddings **bge-m3** → pgvector → Qwen3-30B sur le mini PC) — l’assistant n’indexe pas les profils +- 22,230 topics · 424,835 posts · 7,102 accounts mapped · 93,884 images (8.8 GB) +- Custom Discourse plugins (onboarding, French locale/PWA, RAG citations) +- Mail & GDPR ops: reactivation campaigns, erasure workflow with evidence files +- RAG on the thread corpus (embeddings **bge-m3** → pgvector → Qwen3-30B on the mini PC). Indexes **topics**, not user profiles. -Le code de scraping et les données membres restent privés. Ici : l’architecture et les résultats. +Scraping pipelines and member data stay private — this page is architecture and outcomes, not a source dump. ## Master AI Engineer — OpenClassrooms -Organisation : **[openclassroom-ai](https://git.gregoiremureau.com/openclassroom-ai)** -Miroirs GitHub (mêmes noms) : [github.com/GrgMdmn](https://github.com/GrgMdmn) +Organisation: **[openclassroom-ai](https://git.gregoiremureau.com/openclassroom-ai)** +GitHub mirrors (same names): [github.com/GrgMdmn](https://github.com/GrgMdmn) -| # | Projet | Forgejo | Live | +| # | Project | Forgejo | Live | |---|---|---|---| | 2 | Paris trees (Pandas, Folium) | [oc-p02-paris-trees](https://git.gregoiremureau.com/openclassroom-ai/oc-p02-paris-trees) | — | -| 3 | OpenFoodFacts (nettoyage, ACP, ANOVA) | [oc-p03-openfoodfacts](https://git.gregoiremureau.com/openclassroom-ai/oc-p03-openfoodfacts) | — | -| 4 | Scoring crédit (LightGBM, SHAP, LIME) | [oc-p04-credit-scoring](https://git.gregoiremureau.com/openclassroom-ai/oc-p04-credit-scoring) | — | -| 5 | Segmentation client Olist (RFM, K-means) | [oc-p05-customer-segmentation](https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation) | — | -| 6 | Classification produits (NLP + CV) | [oc-p06-product-classification](https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification) | — | -| 7 | Analyse de sentiment (LSTM, DistilBERT, FastAPI) | [oc-p07-sentiment-api](https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api) | [démo](https://api.gregoiremureau.com/ml/sentiment/) | -| 8 | Street vision (U-Net, FPN) | [oc-p08-street-vision](https://git.gregoiremureau.com/openclassroom-ai/oc-p08-street-vision) | [démo](https://api.gregoiremureau.com/ml/street-vision/) | -| 9 | Street vision PoC (SegFormer vs FPN) | [oc-p09-street-vision-poc](https://git.gregoiremureau.com/openclassroom-ai/oc-p09-street-vision-poc) | [démo](https://api.gregoiremureau.com/ml/street-vision-poc/) | -| 10 | Recommandation de contenu | [oc-p10-content-recommendation](https://git.gregoiremureau.com/openclassroom-ai/oc-p10-content-recommendation) | — | +| 3 | OpenFoodFacts (cleaning, PCA, ANOVA) | [oc-p03-openfoodfacts](https://git.gregoiremureau.com/openclassroom-ai/oc-p03-openfoodfacts) | — | +| 4 | Credit scoring (LightGBM, SHAP, LIME) | [oc-p04-credit-scoring](https://git.gregoiremureau.com/openclassroom-ai/oc-p04-credit-scoring) | — | +| 5 | Olist customer segmentation (RFM, K-means) | [oc-p05-customer-segmentation](https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation) | — | +| 6 | Product classification (NLP + CV) | [oc-p06-product-classification](https://git.gregoiremureau.com/openclassroom-ai/oc-p06-product-classification) | — | +| 7 | Sentiment analysis (LSTM, DistilBERT, FastAPI) | [oc-p07-sentiment-api](https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api) | [demo](https://api.gregoiremureau.com/ml/sentiment/) | +| 8 | Street vision (U-Net, FPN) | [oc-p08-street-vision](https://git.gregoiremureau.com/openclassroom-ai/oc-p08-street-vision) | [demo](https://api.gregoiremureau.com/ml/street-vision/) | +| 9 | Street vision PoC (SegFormer vs FPN) | [oc-p09-street-vision-poc](https://git.gregoiremureau.com/openclassroom-ai/oc-p09-street-vision-poc) | [demo](https://api.gregoiremureau.com/ml/street-vision-poc/) | +| 10 | Content recommendation | [oc-p10-content-recommendation](https://git.gregoiremureau.com/openclassroom-ai/oc-p10-content-recommendation) | — | | 11 | Big data fruits (PySpark, EMR) | [oc-p11-bigdata-fruits](https://git.gregoiremureau.com/openclassroom-ai/oc-p11-bigdata-fruits) | — | -| 12 | Cadrage Fashion-Insta | [oc-p12-fashion-insta](https://git.gregoiremureau.com/openclassroom-ai/oc-p12-fashion-insta) | — | +| 12 | Fashion-Insta project framing | [oc-p12-fashion-insta](https://git.gregoiremureau.com/openclassroom-ai/oc-p12-fashion-insta) | — | -Landing ML : [api.gregoiremureau.com/ml/](https://api.gregoiremureau.com/ml/) +ML landing: [api.gregoiremureau.com/ml/](https://api.gregoiremureau.com/ml/) -## Liens +## Links -- Site : [gregoiremureau.com](https://www.gregoiremureau.com) -- GitHub : [github.com/GrgMdmn](https://github.com/GrgMdmn) -- LinkedIn : [gregoire-mureau](https://www.linkedin.com/in/gregoire-mureau-a7455a19b/) -- Publications : [ResearchGate](https://www.researchgate.net/profile/Gregoire_Mureau) -- Produce Estimates (PWA React, démo anonymisée) : [demo.gregoiremureau.com/estimaciones_demo/](https://demo.gregoiremureau.com/estimaciones_demo/) +- Website: [gregoiremureau.com](https://www.gregoiremureau.com) +- GitHub: [github.com/GrgMdmn](https://github.com/GrgMdmn) +- LinkedIn: [gregoire-mureau](https://www.linkedin.com/in/gregoire-mureau-a7455a19b/) +- Publications: [ResearchGate](https://www.researchgate.net/profile/Gregoire_Mureau) +- Produce Estimates (React PWA, anonymised demo): [demo.gregoiremureau.com/estimaciones_demo/](https://demo.gregoiremureau.com/estimaciones_demo/)