У артыкуле пра mT5 пералічаная 101 мова і беларуская сярод іх. У дадатку ёсць табліца з аб’ёмам кожнай мовы ў mC4, корпусе, на якім mT5 навучалі. Беларуская мае 2,0 мільярда токенаў, руская 713 мільярдаў. Я чытаў гэтую табліцу не раз і браў з яе толькі суадносіны. Мала, але ёсць. Што гэтыя 2 мільярды токенаў гэта беларускі тэкст, я проста меркаваў, хоць файлы адкрытыя і я ні разу ў іх не зазіраў.
Дык я ў іх зазірнуў. mC4 ляжыць на Hugging Face у копіі AllenAI, беларуская частка гэта 128 файлаў і 3,4 ГБ у сціснутым выглядзе. Побач я ўзяў CC-100, корпус, на якім навучаны XLM-R, там беларуская гэта 1 файл на 0,72 ГБ. Корпусы я не захоўваў на дыску. Кожны дакумент прайшоў праз 2 вызначальнікі мовы на Python і для кожнага дакумента я запісаў адзін радок прыкмет. Першы гэта CLD3, той самы вызначальнік, якім mC4 выбіраў мову старонкі. Другі гэта fastText 0.9.2 з мадэллю lid.176 2017 года. mC4 яе не выкарыстоўваў. CC-100 выкарыстоўваў. Гэта я даведаўся толькі пасля падліку і ніжэй гэта важна.
Я не першы, хто глядзіць унутр. Kreutzer з суаўтарамі ўручную праверылі выбаркі са шматлікіх вэб-корпусаў і апублікавалі гэта сёлета ў TACL. Для беларускай у mC4 яны ацанілі каля 100 сказаў. 92% аказаліся правільнымі, 4% на іншай мове, астатняе ўвогуле не мова. Да падліку я запісаў, чаго чакаю: fastText назаве беларускімі не менш за 90% дакументаў mC4 і не менш за 95% дакументаў CC-100. Ніжэй за 80% я б назваў пазнаку ненадзейнай.
Аб’ём
Рускай у mC4 у 408 разоў больш, чым беларускай, па сціснутых байтах і ў 357 разоў па колькасці токенаў з табліцы mT5. mC4 сабраны са здымкаў Common Crawl да 2020 года. Для параўнання, апошні здымак, які я ўзяў, студзеньскі 2022 года, пазначае беларускімі 0,0153% старонак і на кожную беларускую старонку ў ім 408 рускіх. Супадзенне 408 выпадковае. Тут старонкі супраць байтаў і здымак, якога mC4 не бачыў. Гэта параўнанне кажа толькі пра тое, што парадак велічыні той самы.
З CC-100 інакш. Там рускай усяго ў 68 разоў больш, чым беларускай. Англійскай у 121 раз больш, а ў mC4 у 1174. Абодва корпусы пачынаюцца з Common Crawl, але CC-100 узяў 1 здымак для англійскай і 12 для астатніх моў. Гэта тлумачыць значную частку разрыву па англійскай. Па рускай 2 корпусы разыходзяцца ў 6 разоў і гэтага я растлумачыць не магу. У CC-100 яшчэ свая фільтрацыя і я не разбіраўся, які крок дае розніцу.
Што ляжыць у беларускай тэчцы
У беларускай частцы mC4 1742030 дакументаў. CLD3 называе беларускімі ўсе. Гэта чаканы вынік, бо менавіта так яны ў тэчку і трапілі. fastText згодны ў 81,6% выпадкаў. У 14,3% ён кажа “руская”, у 1,6% “украінская”. Значыць, мае 90% не спраўдзіліся і вынік лёг крыху вышэй за рысу, якую я правёў для ненадзейнай пазнакі.
Потым я палічыў словы замест дакументаў. Калі лічыць па колькасці слоў, fastText называе беларускімі 93,2% і рускімі ўсяго 2,7%. Гэта блізка да 92% з ручной праверкі. Я нейкі час думаў, што мае лікі разыходзяцца з Kreutzer, пакуль не зразумеў, што яны лічылі сказы, а я дакументы. Словы таксама не сказы, так што супадзенне часткова выпадковае. Але прычына разрыву зразумелая: рускія дакументы малюсенькія.
Іх 249162. Медыянная даўжыня 27 слоў, 3 з 4 карацейшыя за 50 слоў. 146160 з іх ляжаць на даменах .ru. Я прачытаў 47, якія трапілі ў выпадковую выбарку з 400 дакументаў. 14,3% далі б 57, але 400 гэта малая выбарка. 26 з іх гэта яўна старонкі крам: сухая пастэль, матрацы 90x205 у Самары, душавыя кабіны, акумулятар для SonyEricsson K770. Яшчэ 5 гэта спісы тавараў на старонках, якія не зусім крамы. Астатняе торэнты, тэма на форуме, спіс лекараў, казіно, рэцэпт і падобнае. 3 з 47 не чыста рускія. Ніводнага звычайнага артыкула сярод іх я не знайшоў. На старонцы з назваў тавараў амаль няма звычайных рускіх слоў, таму літары, якія адрозніваюць рускую ад беларускай, амаль не трапляюцца.
Я ўзяў адну такую старонку з грылем з расійскай інтэрнэт-крамы. Я падаваў CLD3 яе радкі, дадаючы па адным. Калі даць толькі першы радок, ён кажа “руская”. З другога радка ён кажа “беларуская” да радка 7, дзе слова “доставка” вяртае рускую. Калі даць усе 8 радкоў, зноў беларуская, з упэўненасцю 0,797. mC4 адкідаў старонкі з упэўненасцю ніжэй за 0,7, так што гэтая прайшла.
CC-100 выглядае чысцейшым. fastText называе беларускімі 98,8% з 1450734 дакументаў CC-100 і 99,96% слоў. Мае 95% спраўдзіліся. Але CC-100 фільтравалі той самай мадэллю lid.176, так што тут fastText у асноўным пацвярджае ўласнае ранейшае рашэнне.
Што гэта значыць для mT5
mT5 навучалі 1 мільён крокаў на батчах з 1024 паслядоўнасцей па 1024 токены, гэта каля 1,05 трыльёна токенаў. Пры выбарцы моў беларускай дасталася 0,59% з іх. Гэта 6,19 мільярда токенаў пры тым што ўсяго ў тэчцы 2,0 мільярда, гэта значыць мадэль прайшла беларускую тэчку прыкладна 3 разы. Гэта ўваходныя токены пасля маскавання адрэзкаў (span corruption), так што сапраўдны лік, магчыма, крыху большы. Рускай дасталася 3,71% навучальных токенаў, але рускай так шмат, што мадэль адзін раз убачыла толькі каля 5,5% яе.
Выходзіць, мадэль паўтарае беларускую тэчку 3 разы, разам з рускамоўнымі старонкамі крам. З усяго рускага масіву яна чытае каля 5,5%. Па колькасці слоў руская гэта 2,7% таго, што паўтараецца. У маёй выбарцы большая частка гэтага крамы. Для мадэлі гэта, мусіць, не праблема. Але калі вы бераце выпадковыя дакументы з mC4, каб нешта палічыць, fastText назаве рускай кожную сёмую “беларускую” старонку.
2 правапісы ў адной тэчцы
У беларускай мове 2 правапісы ў ужытку, афіцыйны і класічны, які называюць тарашкевіцай. Тарашкевіцай пішуць пераважна незалежныя медыя і ў яе ёсць свая Вікіпедыя. Корпусы іх не раздзяляюць. Я шукаў падлік тарашкевіцы ў mC4 або CC-100 і не знайшоў.
У класічным правапісе мяккі знак паміж зычнымі пішацца там, дзе ў афіцыйным яго няма: сьнег супраць снег, жыцьцё супраць жыццё. Я склаў спіс такіх спалучэнняў плюс літару ґ і праверыў яго прыкладна на 200 выпадковых артыкулах з абедзвюх беларускіх Вікіпедый. У афіцыйнай ён не знайшоў нічога. У класічнай злавіў 49 з 52 артыкулаў даўжынёй ад 100 да 200 слоў і ўсе даўжэйшыя.
Сярод беларускіх дакументаў даўжынёй ад 100 слоў класічны правапіс у 22,0% у mC4 і ў 20,9% у CC-100. Я чакаў ад 15% да 40%. Выходзіць, прыкладна кожны пяты доўгі беларускі тэкст у абодвух корпусах напісаны класічным правапісам, якога афіцыйныя правілы не прызнаюць.
Чаго я не правяраў
fastText не эталон. Кароткія беларускія старонкі з малой колькасцю літар цяжкія для любога вызначальніка. У артыкуле пра mT5 сказана, што mC4 пакідаў толькі старонкі, дзе хоць бы 3 радкі не карацейшыя за 200 знакаў. Рускія старонкі ў тэчцы значна карацейшыя. Магчыма, доўгія радкі потым выдалілі як дублікаты, але я гэтага не правяраў. Падлік тарашкевіцы прапускае частку тэкстаў ад 100 да 200 слоў, 3 з 52 у праверцы на Вікіпедыі, так што 22,0% крыху заніжана. Кароткія тэксты я не лічыў зусім. І дакумент залічваецца класічным, нават калі ў ім адна цытата гэтым правапісам. Я нічога не навучаў, так што як рускія крамы ўплываюць на беларускую ў mT5, я магу толькі здагадвацца.