Что это
LoRA-адаптер (r=16, alpha=32) поверх Qwen2.5-3B-Instruct.
Обучается на школьных задачах по-русски: математика (дроби, степени,
квадратные уравнения, проценты, вероятность, геометрия), русский язык,
информатика, химия, физика. Адаптер — 30M обучаемых параметров (0.96% базы),
поэтому качается отдельно, а не вся модель.
Как применить
import torchfrom transformers import AutoModelForCausalLM, AutoTokenizerfrom peft import PeftModel BASE = "Qwen/Qwen2.5-3B-Instruct" model = AutoModelForCausalLM.from_pretrained( BASE, torch_dtype=torch.bfloat16, device_map="auto")tokenizer = AutoTokenizer.from_pretrained(BASE)model = PeftModel.from_pretrained(model, "polternet/polternet-lora-v3-dpo")model = model.merge_and_unload() # слитая модель готова
Базовые веса в этот репозиторий НЕ входят: они тянутся с HuggingFace.
Замеры
- этот адаптер: 89.0% на холдауте-200
- для сравнения:
qwen2.5-coder:7b даёт 86.0% на том же банке
Методика: холдаут-200 собран генератором, ни один вопрос не встречается
в обучении (проверено сравнением и дословно, и по «скелету» из чисел).
Ответ проверяется численно через Fraction, а не подстрочным поиском.
Числа вида 77.5% из ранних замеров недостоверны — тогда чекер принимал
ответ «1/2» за GT «1», а банк содержал 9 физически невозможных условий.
Ограничение честного замера: холдаут из тех же генераторов, что и часть
обучающих данных, поэтому цифра показывает следование формату и арифметике,
а не перенос на совершенно новые задачи.
Что дальше
Следующие шаги по модели: вернуть формат решения (половина оставшихся
ошибок — ответ без показанных вычислений), затем self-verification вместо
голосования большинством: проверено, что голосование из 5 проб даёт на 11 п.п.
ХУЖЕ жадного ответа, а вот потолок «хотя бы один верен» — 94%.