qwen3-4b-finqa-lora
LoRA-адаптер для вычислений по финансовым таблицам
Адаптер для Qwen/Qwen3-4B, который отвечает на числовые вопросы по странице финансового отчёта: не считает сам, а пишет программу на DSL FinQA, например subtract(3538, 3480), divide(#0, 3480). Программа исполняется на Python. Обучен на 6 251 тренировочном вопросе FinQA.
📝 Ключевые особенности
- 🤓 Base — Qwen/Qwen3-4B, LoRA r=16, alpha=32 на q, k, v, o, gate, up и down projections.
- 👍 На FinQA test execution accuracy 75.3% [72.8, 77.9], program accuracy 71.0%.
- 📝 Промпт должен совпадать с тренировочным: system prompt с описанием DSL, затем страница и вопрос.
- 🤝 Для serving адаптер можно смёржить и запускать через vLLM.
- 😔 Обучен только на английских годовых отчётах S&P 500 1999–2019; на других документах и языках качество неизвестно.
⌨ Пример
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
from finqa_ft.prompts import messages, render, extract_program
from finqa_ft.program import execute
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3-4B")
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-4B", torch_dtype="bfloat16", device_map="auto")
model = PeftModel.from_pretrained(model, "Tanatas298/qwen3-4b-finqa-lora")
Полный пример с таблицей и запуском execute(program, table) — в карточке и репозитории.
Подробнее
FinQA test: 1 147 вопросов, execution accuracy 75.3%, program accuracy 71.0%.Обучение: один RTX 3090 (24 ГБ), около 1 ч 45 мин, пик 9.6 ГБ; 2 эпохи, 782 шага.
Примерно каждый четвёртый ответ на test неверен; часть gold-меток FinQA сама ошибочна или неоднозначна (оценка 7–12%).
Не финансовый совет: результаты нельзя использовать для инвестиционных, бухгалтерских или аудиторских решений без независимой проверки.








Комментарии