Qwen3-0.6B LoRA для извлечения навыков из вакансий

LoRA адаптер для модели Qwen3-0.6B, обученный на задаче извлечения требований (навыков, опыта, образования) из текстов вакансий на русском языке.

Использование

Установка зависимостей

pip install transformers peft torch

Инференс

from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

# Загрузка базовой модели и адаптера
base_model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-0.6B",
    torch_dtype="auto",
    device_map="auto"
)
model = PeftModel.from_pretrained(base_model, "koskokos/qwen3-0.6b-skills-lora")
tokenizer = AutoTokenizer.from_pretrained("koskokos/qwen3-0.6b-skills-lora")

# Формирование промпта
system_prompt = 'Ты — HR-ассистент. Извлеки из описания вакансии все требования к кандидату (навыки, образование, опыт работы, личные качества). Верни JSON: {"requirements": ["требование1", "требование2", ...]}'

vacancy_text = """
Требуется Python-разработчик.
Обязанности: разработка backend на FastAPI, работа с PostgreSQL.
Требования: опыт от 2 лет, знание Docker, Git, CI/CD.
"""

messages = [
    {"role": "system", "content": system_prompt},
    {"role": "user", "content": vacancy_text}
]

# Генерация
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)

outputs = model.generate(
    **inputs,
    max_new_tokens=512,
    temperature=0.1,
    do_sample=True,
    pad_token_id=tokenizer.eos_token_id
)

response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(response)

Ожидаемый вывод

{"requirements": ["Python", "FastAPI", "PostgreSQL", "Docker", "Git", "CI/CD", "опыт от 2 лет"]}

Формат данных

Вход (User)

Текст вакансии на русском языке (описание должности, обязанности, условия, требования к кандидату).

Выход (Assistant)

JSON объект с массивом извлечённых требований:

{"requirements": ["навык1", "навык2", "личное качество", "опыт работы", ...]}

System Prompt

Ты — HR-ассистент. Извлеки из описания вакансии все требования к кандидату (навыки, образование, опыт работы, личные качества). Верни JSON: {"requirements": ["требование1", "требование2", ...]}

Параметры обучения

Параметр Значение
Base Model Qwen/Qwen3-0.6B
LoRA Rank (r) 16
LoRA Alpha 32
LoRA Dropout 0.05
Target Modules q_proj, k_proj, v_proj, o_proj
Learning Rate 3e-4
Batch Size 1 (gradient accumulation: 16)
Epochs ~10 (early stopping)
Max Length 2048 tokens
Precision FP16

Метрики

Метрика Значение
Test Loss 1.76
Perplexity 5.83
Trainable Parameters 4.6M (0.76% от базовой модели)

Ограничения

  • Модель обучена на русскоязычных вакансиях
  • Оптимальная работа на текстах до 2048 токенов
  • Выход всегда в формате JSON

Лицензия

Apache 2.0

Цитирование

@misc{qwen3-skills-lora,
  title={Qwen3-0.6B LoRA для извлечения навыков из вакансий},
  author={koskokos},
  year={2025},
  publisher={Hugging Face}
}

Framework Versions

  • PEFT: 0.17.1
  • Transformers: 4.x
  • PyTorch: 2.x
Downloads last month
88
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for koskokos/qwen3-0.6b-skills-lora

Finetuned
Qwen/Qwen3-0.6B
Adapter
(161)
this model