.profile/README.md

67 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Grégoire Mureau
📘 This profile is also available in [French 🇫🇷](https://git.gregoiremureau.com/grgmro/.profile/src/branch/main/README.fr.md)
**ML / data engineer — RAG · LLM serving · homelab Kubernetes**
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)).
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.
## Homelab — compute vs serve
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) |
|---|---|---|
| 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) |
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.
**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)
Also live from the NAS: [ML APIs](https://api.gregoiremureau.com/ml/) · Forgejo (this page).
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).
## Case study — sovereign community platform
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 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.
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)**
GitHub mirrors (same names): [github.com/GrgMdmn](https://github.com/GrgMdmn)
| # | Project | Forgejo | Live |
|---|---|---|---|
| 2 | Paris trees (Pandas, Folium) | [oc-p02-paris-trees](https://git.gregoiremureau.com/openclassroom-ai/oc-p02-paris-trees) | — |
| 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 | Fashion-Insta project framing | [oc-p12-fashion-insta](https://git.gregoiremureau.com/openclassroom-ai/oc-p12-fashion-insta) | — |
ML landing: [api.gregoiremureau.com/ml/](https://api.gregoiremureau.com/ml/)
## Links
- 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/)