Oppy — Qwen3-8B LoRA (oppy-qwen3-lora)

Adaptador LoRA / QLoRA sobre Qwen/Qwen3-8B para el agente Oppy: encontrar y recomendar oportunidades en Bolivia.

Este repo contiene solo el adaptador, no el modelo base completo.

Qué sabe hacer

Skill Descripción
extraction Texto libre → JSON de oportunidad
classification Tipo: beca, pasantía, curso, evento, empleo junior, voluntariado
matching Compatibilidad usuario ↔ oportunidad (alto/medio/bajo/nulo + score + reason)
decision Acción del agente: send_alert / skip / watch

Cómo usarlo (base + LoRA)

import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

base_id = "Qwen/Qwen3-8B"
adapter_id = "0PValencia/oppy-qwen3-lora"

bnb = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_use_double_quant=True,
    bnb_4bit_compute_dtype=torch.float16,
)

tokenizer = AutoTokenizer.from_pretrained(base_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    base_id,
    quantization_config=bnb,
    device_map="auto",
    trust_remote_code=True,
)
model = PeftModel.from_pretrained(model, adapter_id)
model.eval()

messages = [
    {
        "role": "system",
        "content": (
            "Eres Oppy, un agente que encuentra y recomienda oportunidades "
            "en Bolivia. Cuando pidan estructura, responde solo JSON válido."
        ),
    },
    {
        "role": "user",
        "content": (
            "Clasifica esta oportunidad. Responde solo con JSON válido.\n\n"
            "Convocatoria de beca para estudiantes universitarios en Bolivia."
        ),
    },
]

prompt = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True, enable_thinking=False
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256, do_sample=False)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))

Datos de entrenamiento

Entrenamiento

  • Método: SFT + QLoRA (4-bit)
  • Base: Qwen/Qwen3-8B
  • Hardware: Google Colab (Tesla T4)
  • Epochs: 2
  • Samples approx.: train 322 / val 39

Frameworks

  • PEFT 0.19.x
  • TRL 1.9.x
  • Transformers 5.x
  • PyTorch 2.x + CUDA

Limitaciones

  • Optimizado para español / Bolivia
  • Extraction aún imperfecta en campos finos (skills, ciudad exacta)
  • Requiere GPU para inferencia cómoda del 8B en 4-bit
  • No incluye Explorer/Follow-up del sistema multi-agente completo (eso vive en orquestación/backend)

Licencia

Apache-2.0 (respetar también la licencia del modelo base Qwen3).

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for 0PValencia/oppy-qwen3-lora

Finetuned
Qwen/Qwen3-8B
Adapter
(1945)
this model