Synthetic Data Generation for Multilingual Instruction Following
@abhash-er ya está trabajando en esto.
Desde el 13/7/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Goal
The goal is to generate high-quality multilingual instruction-following (IF) data from a multilingual-capable frontier model. This dataset boosts multilingual performance after instruction finetuning, complementing the English-heavy Dolci-Instruct SFT distribution used to train OLMo-3-7B.
Description
This is a complementary issue to the #186.
The Plan:
- We use Gemma 4 (
gemma-4-31B-it, bf16) served locally with vLLM on Leonardo (TP=2, A100) to generate the data : cheaper than the OpenRouter API at production scale and gives full bf16 quality. - Two-stage generation per example: first synthesize a diverse instruction prompt, then generate its response. Prompts are sampled across a meta-prompt axis space (topics × personas × constraints, see
synthgen/prompts.py). - Generation runs in three phases:
- Pilot — generate a small batch and eyeball it.
- Back-translation QC — translate a generated non-English example back to English and inspect for fidelity, fluency, and instruction integrity.
- Scale to production — once quality is acceptable, run the full per-language target.
- Long-running jobs use checkpoint/resume by id (
generate_vllm.py), chaining 2–5 jobs since a single 24h job can't finish the whole run. - Post-generation: leakage/contamination filter, then dedupe by
(lang, normalized-prompt), then verify pass (language-id + constraint-compliance checks).
Deliverable scope
For now, High-quality synthetic IF samples for 11 European languages: es, fr, de, it, pt, pl, nl, cs, ro, el, uk. The first iteration is available at openeurollm/EU-Instruct-Synthetic
Production target was 200k/language (n_per_lang_phase3 = 200_000, → 2.2M, to match Dolci-Instruct scale). Actual shipped corpus after leakage filter + dedupe:
- 1,497,276 unique SFT pairs.
- Per-language n ranges ~119k (fr) → ~150k (cs); response median 720–925 chars.
- Verify yield: language-id 94–98%, constraint-compliance 93–97%.
Dependencies
- Local vLLM serving stack on Leonardo (
gemma-4-31B-itweights), exposed tosynthgen generatevia an--endpoints-dirof*.endpointfiles. OPENROUTER_API_KEY— only for the optional back-translation spot-check (paid).- Downstream: mixing into open-instruct for OLMo 3 7B SFT #186
- Lenguaje dominante
- Sin datos de lenguaje
- Estrellas
- 3
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenEuroLLM/Taskboard
-
[nucleus sparse] Experiment setupPosiblemente ocupada @aaronkl la tomó hace 7 días. AbiertoT4.1 - Optimization HPC T4.2 - model exploration
OpenEuroLLM/Taskboard#439 · 1 reacción · 1 asignado ·
-
Qwen3.5 35B-A3B hybrid MoE weak and strong scalingPosiblemente ocupada @ibaucells la tomó hace 8 días. AbiertoT4.1 - Optimization HPC
OpenEuroLLM/Taskboard#438 · 2 comentarios · 1 asignado ·
-
Synthetic Generation for Multilingual Instruction TuningPosiblemente ocupada @abhash-er la tomó hace 9 días. Abierto4.6 post-training
OpenEuroLLM/Taskboard#437 · 1 asignado ·
-
Safety and alignment evaluationPosiblemente ocupada @BirgerMoell la tomó hace 9 días. Abierto4.6 post-training
OpenEuroLLM/Taskboard#436 · 1 asignado ·
-
Finding optimal dataset mixtures for DPOPosiblemente ocupada @geoalgo la tomó hace 9 días. Abierto4.6 post-training
OpenEuroLLM/Taskboard#435 · 3 asignados ·