Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Synthetic Data Generation for Multilingual Instruction Following

Abierto
#345 5 comentarios 0 reacciones 1 asignado Ver en GitHub

@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:
    1. Pilot — generate a small batch and eyeball it.
    2. Back-translation QC — translate a generated non-English example back to English and inspect for fidelity, fluency, and instruction integrity.
    3. 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-it weights), exposed to synthgen generate via an --endpoints-dir of *.endpoint files.
  • 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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de OpenEuroLLM/Taskboard

Todos los issues de OpenEuroLLM/Taskboard

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.