You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Сравнение с предыдущим экспериментом (50 книг, плохой токенизатор)
Показатель
50 книг
militera
Val loss (эпоха 1)
~7.8
3.43
Perplexity
~2400
30.8
Вывод
Токенизатор, обученный на большом корпусе (4+ ГБ), дает осмысленные субворды. Модель выучивает семантику, а не знаки препинания. Perplexity 30.8 означает, что модель выбирает правильный токен из ~30 вариантов (вместо случайного угадывания из 50000).
Пунктуация, прилипшая к слову (огня. → предсказания сбиваются)
Имена собственные не восстанавливаются (ожидаемо для BERT-tiny)
Вывод
Модель успешно выучила семантику военно-исторических текстов. Perplexity 30.8 на валидации и осмысленные предсказания на реальных примерах подтверждают, что эксперимент достиг цели.
Следующий шаг: завершить эпохи 2-5 и оценить улучшение.
(venv) audetv@home:~/go/src/github.com/terratensor/book2bert$ python scripts/test_mlm.py
Using device: cuda
Model loaded successfully
Loading real examples from militera corpus...
============================================================
MLM Predictions on military-historical texts (after epoch 1)
============================================================
Original: Представляется, что на краткосрочную перспективу первый из названных процессов будет развиваться все-таки быстрее второг...
Masked: Представляется, что на краткосрочную перспективу первый из [MASK] процессов будет развиваться все-таки быстрее второго.
Masked word: 'названных' → Predictions: ['этих', 'основных', 'таких', 'конкретных', 'важнейших', 'других', 'всех', 'теоретических']
Original: После трудных переговоров конференция привела к соглашению о прекращении огня....
Masked: После трудных переговоров конференция привела к соглашению о прекращении [MASK]
Masked word: 'огня.' → Predictions: ['…', 'переговоров', 'и']
Original: После таких пропагандистских заявлений «Египет — по словам Киссинджера — мог заняться проблемой разъединения войск — воп...
Masked: После таких пропагандистских заявлений «Египет — по словам Киссинджера — мог заняться проблемой разъединения войск — вопросом, [MASK] Фахми, между прочим, не затронул в своей речи» .
Masked word: 'который' → Predictions: ['что', 'которые', 'между', 'как', 'какими', 'с', 'а', 'и']
Original: Вернувшись назад, я стал что-то невнятное бормотать Рубинчику про постигшую меня неудачу....
Masked: Вернувшись назад, я стал что-то невнятное [MASK] Рубинчику про постигшую меня неудачу.
Masked word: 'бормотать' → Predictions: ['письмо', 'заявление', 'послание', 'замечание', 'мне', 'предложение', 'лицо', 'слово']
Original: Такого давно уже с нами не случалось, с уходом корифея всего и вся мои литературные дела неплохо наладились....
Masked: Такого давно уже с нами не [MASK] с уходом корифея всего и вся мои литературные дела неплохо наладились.
Masked word: 'случалось,' → Predictions: ['было', 'произошло', 'случилось', 'удалось', 'оставалось', 'только', 'осталось', 'будет']
Original: — Я готов держать какое угодно пари, что русские не станут отбивать у нас Малахова!...
Masked: — Я готов держать какое угодно пари, что русские не станут [MASK] у нас Малахова!
Masked word: 'отбивать' → Predictions: ['преследовать', 'оставить', 'искать', 'взять', 'делать', 'удержать', 'расстреливать', 'иметь']
Original: Необходимость защищать свою честь закаляла его с каждым днем, преображала на глазах у жены....
Masked: Необходимость защищать свою [MASK] закаляла его с каждым днем, преображала на глазах у жены.
Masked word: 'честь' → Predictions: ['жизнь', 'волю', 'очередь', 'силу', 'мать', 'душу', 'долю', 'страну']
Original: Одновременно с победой над турецким флотом русские сухопутные силы одержали под командой Андронникова при крепости Ахалц...
Masked: Одновременно с победой над турецким флотом русские сухопутные силы одержали под командой [MASK] при крепости Ахалцых крупную победу над большим отрядом турок.
Masked word: 'Андронникова' → Predictions: ['турок', 'англичан', 'русских', 'французов', 'шведов', 'противника', 'японцев', 'немцев']
План улучшения токенизатора для следующего эксперимента (полный корпус 40 ГБ)
Проблема
В текущем словаре присутствуют CJK-символы (китайские, японские, корейские) и тайские символы, которые являются шумом (OCR-ошибки, редкие вкрапления).
Решение
Фильтровать CJK и тайские символы при сборе корпуса для токенизатора
Оставить русский + английский (латиница)
Установить limit_alphabet для ограничения базовых символов