Mistral-7B bond extraction LoRA
условия облигаций в JSON
Это QLoRA-адаптер для mistralai/Mistral-7B-Instruct-v0.3, который извлекает основные условия облигации из фрагмента текста — обложки проспекта, финальных условий или пресс-релиза — и отвечает одним JSON-объектом. Поля: issuer, currency, nominal, coupon_pct, coupon_frequency, issue_date, maturity_date, seniority. Обучение шло на синтетических англо- и франкоязычных описаниях.
⚙ Ключевые особенности
- 🧩 QLoRA: база в 4-bit NF4, LoRA r=16, alpha=32, 41.9 млн обучаемых параметров (0.58%).
- 📐 Фиксированный JSON из 8 полей; даты в
YYYY-MM-DD,nominalцелым числом,coupon_pctчислом. - 🔎 Обучение на 900 синтетических примерах (en/fr): 700 train / 50 val / 150 test.
- ⚙ Промпт должен точно совпадать с тем, на котором обучали адаптер.
- 🛑 Рассчитан на короткие фрагменты до 768 токенов;
seniorityопределяется ненадёжно.
🐍 Пример
Фрагмент запуска; промпт нужно брать из карточки без изменений.
from peft import PeftModel
model = PeftModel.from_pretrained(model, 'Hoho03/mistral7b-bond-extraction-lora')
ids = tok(prompt, return_tensors='pt').to(model.device)
out = model.generate(**ids, max_new_tokens=200, do_sample=False)
print(tok.decode(out[0][ids['input_ids'].shape[1]:], skip_special_tokens=True))
Подробнее
На 24 реальных фрагментах проспектов exact match по всем полям: 0.333 → 0.500; currency: 0.625 → 0.917; issue_date: 0.667 → 0.905.Seniority не улучшилась: 0.364; в половине реальных примеров есть хотя бы одна ошибка.
QLoRA обучен примерно за 26 минут на одной Colab T4, финальный loss 0.012; последовательности до 768 токенов.
Ограничения: только синтетика в обучении, нет floating-rate, zero-coupon, step-up и callable структур.








Комментарии