Views
No views yet
usuario → [ otro LLM ] → texto base → [ Mombeu ] → continuación culturaltransformers. El texto base puede venir de cualquier
fuente: otro modelo local, una API externa, o texto escrito a mano.El bosque de Camp Clover alberga desde colibríes iridiscentes hasta águilas que sobrevuelan
el lago en busca de peces, un mundo de aves que conviven en distintos estratos del bosque.Detente un segundo antes de seguir.
El bosque de Camp Clover alberga desde colibríes iridiscentes hasta águilas que sobrevuelan
el lago en busca de peces, un mundo de aves que conviven en distintos estratos del bosque.
Ese canto que llena los árboles tiene un eco en la cultura guaraní que pocos conocen.
El Pájaro de Campana es uno de los pájaros más raros de nuestros bosques — parecido a una
paloma blanca con cola cenicienta, su canto tiene la misma vibración metálica de una campana
que toca a duelo.1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
3
4# Paso 1 — generar texto base con pipeline
5base_pipe = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.3")
6base_text = base_pipe(
7 "Describí la fauna del Chaco paraguayo en dos oraciones.",
8 max_new_tokens=150,
9 do_sample=False,
10)[0]["generated_text"]
11
12# Paso 2 — cargar Mombeu con AutoModelForCausalLM
13MODEL_ID = "somosnlp-hackathon-2026/mombeu-LFM2-1.2B"
14tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
15model = AutoModelForCausalLM.from_pretrained(MODEL_ID, torch_dtype=torch.bfloat16, device_map="auto")
16device = next(model.parameters()).device
17
18# Paso 3 — generar la continuación cultural
19inputs = tokenizer(
20 tokenizer.apply_chat_template(
21 [{"role": "user", "content": base_text}],
22 tokenize=False,
23 add_generation_prompt=True,
24 ),
25 return_tensors="pt",
26).to(device)
27
28with torch.no_grad():
29 outputs = model.generate(
30 **inputs,
31 max_new_tokens=512,
32 do_sample=True,
33 temperature=0.7,
34 top_p=0.9,
35 repetition_penalty=1.1,
36 pad_token_id=tokenizer.eos_token_id,
37 )
38
39print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))1import torch
2from openai import OpenAI
3from transformers import AutoModelForCausalLM, AutoTokenizer
4
5# Paso 1 — generar texto base vía API
6client = OpenAI(api_key="TU_API_KEY")
7base_text = client.chat.completions.create(
8 model="gpt-4o-mini",
9 messages=[{"role": "user", "content": "Describí la fauna del Chaco paraguayo en dos oraciones."}],
10).choices[0].message.content
11
12# Paso 2 — cargar Mombeu con AutoModelForCausalLM
13MODEL_ID = "somosnlp-hackathon-2026/mombeu-LFM2-1.2B"
14tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
15model = AutoModelForCausalLM.from_pretrained(MODEL_ID, torch_dtype=torch.bfloat16, device_map="auto")
16device = next(model.parameters()).device
17
18# Paso 3 — generar la continuación cultural
19inputs = tokenizer(
20 tokenizer.apply_chat_template(
21 [{"role": "user", "content": base_text}],
22 tokenize=False,
23 add_generation_prompt=True,
24 ),
25 return_tensors="pt",
26).to(device)
27
28with torch.no_grad():
29 outputs = model.generate(
30 **inputs,
31 max_new_tokens=512,
32 do_sample=True,
33 temperature=0.7,
34 top_p=0.9,
35 repetition_penalty=1.1,
36 pad_token_id=tokenizer.eos_token_id,
37 )
38
39print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))liquid/lfm2-1.2b
↓ SFT (2,700 ejemplos — config sft)
mombeu-sft
↓ DPO (1,500 pares — config dpo)
mombeu-LFM2-1.2B ✓| Fase | Config | Ejemplos |
|---|---|---|
| SFT | sft | 2,700 train · 300 val |
| DPO | dpo | 1,500 train · 200 val · 300 test |
1@misc{mombeu2026,
2 title = {Mombeu: Cultural Alignment for Paraguayan Heritage via LFM2},
3 author = {thinkPy},
4 year = {2026},
5 howpublished = {Hugging Face},
6 url = {https://huggingface.co/somosnlp-hackathon-2026/mombeu-LFM2-1.2B},
7 note = {SomosNLP Hackathon 2026}
8}