Як створювався RUKOPYS — перший відкритий датасет українського рукописного тексту. Частина 1
Мене звати Дмитро. Я працюю на перетині штучного інтелекту, машинного навчання та цифрової трансформації держави — як CTO, AI/ML-інженер і консультант з AI-проєктів. За останні роки мені довелося брати участь у багатьох ініціативах — від комерційних продуктів до державних програм, спрямованих на розвиток сучасних технологій в Україні.
Сьогодні ми багато говоримо про великі мовні моделі та цифровізацію. Я хочу розповісти про проєкт, що поєднав обидва напрями — перший відкритий датасет українського рукописного тексту RUKOPYS. Це історія про архівну спадщину, українську мову та складний шлях перетворення рукописних документів на ресурс, з яким можуть працювати сучасні AI-системи. Вона буде цікавою
Ми презентували RUKOPYS у квітні цього року. Він охоплює понад століття письма: від архівних документів
Українська сьогодні є однією з найпоширеніших слов’янських мов, однак досі не мала відкритого датасету для розпізнавання рукописного тексту. Саме тому цей датасет має не лише технологічну, а й важливу соціальну цінність. Він допоможе OCR/HTR моделям краще розуміти українську мову, а отже — сприятиме її ширшій присутності у глобальному цифровому просторі.
Водночас для України це важливий фундамент для розвитку власних AI-рішень. Адже саме RUKOPYS став основою AI-челенджу Handwritten to Data, у межах якого учасники створюватимуть open-source моделі для розпізнавання документів, кращі з яких отримають можливість пілотуватися, зокрема, у державних сервісах.
RUKOPYS dataset: посилання
Все почалось з «єДозвіл»
Я очолюю напрям AI/ML у національній освітній платформі «Мрія» та є радником з питань штучного інтелекту в Міністерстві економіки України. Саме в межах роботи Міністерства виник проєкт, який згодом став відправною точкою для створення датасету RUKOPYS і самого змагання Handwritten to Data.
Йдеться про проєкт «єДозвіл» — систему, що автоматизує видачу дозволів на ведення підприємницької діяльності в Україні. Раніше для отримання таких дозволів людям доводилося готувати пакети паперових документів і сканів та нести їх до відповідної державної установи. Із запуском «єДозволу» цей процес перетворився на цифровий сервіс у межах порталу «Дія». Тепер користувачеві не потрібно фізично подавати заяву — це можна зробити онлайн через портал. Якщо ж, наприклад, диплом ще не внесено до електронних реєстрів, достатньо просто завантажити його фото або скан.
Щоб пришвидшити роботу системи та зменшити навантаження на бек-офіс «єДозволу», ми створили AI-систему, яка виконує роль попереднього валідатора. Вона аналізує скани заявок і документів, підтягує доступні дані з державних реєстрів і комплексно перевіряє всю інформацію. Оскільки система працює з великою кількістю персональних даних, ми будували її на відкритих моделях у власному фізичному контурі.
Одним із головних викликів, з якими ми зіткнулися, стала якість розпізнавання документів. По-перше, ми мали справу далеко не завжди з якісними зображеннями. По-друге — з надзвичайно широким спектром документів різної структури й років , у тому числі й таких, де частина тексту написана від руки або ж документ повністю є рукописним. Відповідно, існуючі відкриті моделі (у тому числі vision language models), які сьогодні можна локально розгорнути на сервері чи персональному комп’ютері, дають доволі невисоку точність на таких прикладах.
Звісно, сучасні state-of-the-art моделі на кшталт GPT, Gemini чи Claude Opus демонструють значно кращі результати. Однак через роботу з персональними даними ми не могли використовувати їх у цьому кейсі.
Тоді ми почали досліджувати питання: якщо модель має працювати локально, як підвищити її якість до такого рівня, щоб вона справді ефективно виконувала поставлені завдання? Найочевиднішим рішенням було навчання або донавчання моделей на власних даних. Проте проблема полягала в тому, що тренування на заявах, поданих у «єДозвіл», є неможливим, з огляду на наявність у кожному документі вже зазначених раніше персональних даних. А у відкритому доступі фактично не існувало датасетів, які добре покривали б подібні сценарії.
Одним із варіантів було використання синтетичних даних. Але цей підхід має суттєве обмеження: він недостатньо гнучкий, а моделі, навчені переважно на синтетиці, часто погано генералізуються на реальні сценарії. Саме тоді ми й почали шукати справжні, «живі» дані, які дозволили б навчити модель працювати в умовах реального світу.
Швидко стало зрозуміло, що масштаб задачі виходить далеко за межі однієї державної установи. Для повноцінної реалізації проєкту потрібно було ширше коло партнерів: академічна інституція, яка зможе виступити видавцем датасету, технологічний партнер для побудови інфраструктури та експертна команда для якісної анотації. Так, до ініціативи долучилися Український католицький університет (УКУ), AI House, а також команда Keymakr, про роль якої я ще розповім далі.
Джерела RUKOPYS: від історичних архівів до сучасних диктантів
Держархів
Історія пошуку даних почалася зі співпраці з Держархівом та його проєктом «Україна в кольорі», у межах якого відбувається цифровізація культурної спадщини на основі архівних фондів. До цієї взаємодії також долучилося Міністерство цифрової трансформації України.
До речі, разом із Мінцифри ми також беремо участь у комітеті з розробки української
Проблема полягає в тому, що обсяг українськомовних даних в інтернеті досі залишається доволі обмеженим. І йдеться не лише про рукописний текст, а й про українські тексти загалом. Сьогодні неможливо просто взяти модель масштабу GPT і навчити її виключно українською мовою, адже доступний корпус даних буде в сотні разів меншим за той, на якому тренуються глобальні флагманські моделі.
У державних архівах зберігається величезний масив ще неоцифрованих матеріалів, які мають потенційну цінність не лише для задач структурування культурної спадщини, а й для створення нових українських датасетів. В тому числі частину архівів можна використати як джерело даних для навчання українських мовних моделей, зокрема «Сяйва».
У результаті нам передали першу партію архівних матеріалів із фондів, спеціально відібраних для проєкту RUKOPYS. Окрім цього, Держархів також передав близько 10 терабайтів архівних даних для розробки «Сяйва». Ми також отримали доступ до цих матеріалів. Саме це стало першим великим джерелом даних для створення нашого датасету.


Столітня історія
Документи, які нам передала Державна архівна служба України, були створені понад сто років тому. І вибір саме цього історичного періоду був зовсім не випадковим.
Найбільший масив україномовного контенту в архівах, як не дивно, зосереджений саме у
Для нас це стало перевагою ще й з юридичної точки зору. Оскільки термін дії авторського права на ці документи вже сплив. Це дозволило нам вільно використовувати їх для дослідницьких задач і, зокрема, відкрито опублікувати датасет — що ми зрештою і зробили.
Школи
Окрім архівних матеріалів, у нас є ще один надзвичайно цікавий напрям — шкільні домашні роботи, які нам надали два партнерські навчальні заклади. Йдеться про домашні завдання з практично всіх предметів української шкільної програми.
Це фотографії учнівських зошитів, які ми попередньо анонімізували, очистили й обробили. З матеріалів видалилася вся інформація, що не стосується української мови, наприклад, фрагменти з іноземних мов чи інші нерелевантні елементи.


Університети
Ще одним важливим джерелом даних для RUKOPYS стали студентські роботи. Київська школа економіки та Державний торговельно-економічний університет надали нам екзаменаційні роботи, а також частину домашніх завдань і тестів, які студенти виконували від руки.
До речі, під час пошуку матеріалів від університетів ми зіткнулися з певними викликами. Не секрет, що у школах рукописні домашні завдання залишаються нормою — дітей навчають писати вручну, і це важлива частина освітнього процесу. В університетах ситуація зовсім інша. Особливо це стосується технічних спеціальностей, де комп’ютери є базовим інструментом навчання. Відповідно, кількість рукописних робіт там значно менша.


Саме тому нам довелося витратити чимало часу на пошук університетів і напрямів, де рукописні матеріали все ще зберігаються у достатньому обсязі. По суті, це своєрідна «друга ітерація» шкільних робіт — але вже на значно складнішому рівні. Формули тут набагато комплексніші, структура сторінок — менш передбачувана, а самі документи значно важчі для обробки.
Національні диктанти
Окремим і дуже цінним напрямом для формування RUKOPYS стали тексти Всеукраїнського радіодиктанту національної єдності — того самого щорічного диктанту, який пишуть люди по всій Україні та далеко за її межами.
Ми домовилися із Суспільним Мовленням, яке є власником і організатором цього формату, про передачу фотографій робіт учасників. Загалом таких диктантів було 26, адже сам проєкт існує ще з 2000 року.


RUKOPYS dataset: посилання
Щоправда, сьогодні ми маємо доступ лише до робіт за окремі періоди, оскільки зразки далеко не за всі роки мають цифрові версії. Фактично йдеться про обмежену кількість «канонічних» текстів. Але водночас кожен із них існує у величезній кількості варіацій: люди пишуть на різних типах паперу, різними почерками, по-різному структурують текст, роблять помилки, скорочення чи виправлення. І саме це різноманіття стало для нас надзвичайно цінним.
Куди далі: нові партнери
Якщо говорити про інших партнерів, яким наш проєкт став би у великій нагоді, то зараз ми на етапі перемовин щодо співпраці з Міністерством охорони здоров’я України. У медичній сфері досі існує величезний масив документів, написаних від руки: довідки, записи лікарів, клінічні нотатки, документація з госпіталів і медичних установ. Усе це потенційно може бути оцифроване. На наш погляд, такий напрям міг би стати важливим як для розвитку мовних моделей загального призначення, так і для створення спеціалізованих AI-систем у медичному домені.
Паралельно ми працюємо над тим, щоб до цієї ініціативи долучилася і Національна поліція України. У правоохоронній сфері також залишається велика кількість документів, які досі заповнюються вручну. Найпростіший приклад — адміністративні протоколи, де значна частина інформації існує саме у вигляді рукописного тексту.
Окремий напрям, щодо якого ми теж розпочинаємо перемовини, пов’язаний із проєктом «єСУД» — однією з нових ініціатив Міністерства цифрової трансформації України, спрямованих на автоматизацію та цифровізацію української судової системи. Там зберігаються величезні архіви судових справ, частина з матеріалів яких теж повністю рукописна.
Цифровізація рукописної спадщини
Про технічну організацію та пайплайн підготовки RUKOPYS я детальніше розповім у другій частині матеріалу. Бо на практиці створення подібних датасетів — це значно складніший процес, ніж може здатися на перший погляд. Нашою задачею було побудувати систему підготовки, яка дозволила б максимально ефективно масштабувати обробку даних, не втрачаючи при цьому якості та точності розмітки.
Звичайно ж, там, де це було можливо, ми використовували LLM на кшталт Gemini для попередньої автоматичної розмітки. Але надзвичайно важливою для нас стала підтримка Keymakr, компанії, що спеціалізується на створенні data solutions для Computer Vision та
Бо якщо підсумувати, то RUKOPYS давно вийшов за межі класичного HTR/OCR. Йдеться про побудову повноцінної системи роботи з неструктурованими документами: різними типами почерку, історичними варіаціями написання, низькою якістю документів та великою кількістю неоднозначних випадків, які потребують людської інтерпретації.
Поява RUKOPYS для української AI-індустрії — це також ще один крок до цифровізації архівів і збереження культурної спадщини України. І тут важливо розуміти різницю між простим скануванням документів і справжньою цифровізацією.
Україна вже зараз є однією з країн-лідерів за темпами сканування архівних матеріалів. На порталі Державної архівної служби доступна величезна кількість документів в електронному вигляді. Проте в більшості випадків це все ще зображення документів без розпізнаного тексту. А отже — без можливості повноцінного AI-пошуку, аналізу чи роботи з цими даними на рівні сучасних цифрових сервісів.
У світі, де люди звикли до AI-інтерфейсів і можливості знаходити потрібну інформацію одним реченням, справжня цифровізація відкриває зовсім інший рівень доступу до архівів. Такі системи можуть допомогти швидше знаходити історичні документи, досліджувати власний родовід, працювати з архівними фондами або автоматизувати підготовку історичних довідок.
Саме тому ми бачимо в датасеті дуже перспективний напрям і вважаємо важливим розвиток власних AI-рішень для роботи з українськими архівами. Схожим шляхом уже пішла Швеція, де поступово формується ціла екосистема AI-продуктів для розпізнавання та транскрипції архівних текстів. І в Україні є всі можливості, щоб побудувати щось подібне й у себе.

15 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівРозпізнавання архівів — це прям круто і потрібно багатьом! Gemini з цим не дуже добре зараз справляється на прикладі потрібних мені метричних книг, тому продивляюсь все очима по кілька разів. І це займає багато часу і зусиль. Успіхів вам!
На мою думку, це складне й важке завдання.
Причини:
1. Мова написання. Тут їх за замовчуванням може бути чотири: польська, українська, російська та староруська. Навіть якщо форма анкети після 1918 року українською, заповнювати її могли російською — і навпаки. Іноді анкету заповнювали кількома мовами: ПІБ українською, а інші слова — російською. Усе це до того, що просто добре навчений OCR взагалі не варіант. Після розпізнавання там використовуються словники, але як зрозуміти, яке саме слово ми очікуємо і якою мовою?
2. Брудні форми. Через давність років матеріал вицвів, іноді рукописного тексту майже не видно. Часто ставлять печатки й штампи, які накладаються на рукописний текст. Є великий розкид у рукописному тексті: перетин друкованого й рукописного. Усе це до того, що потрібно використовувати окремі нейромережі для сегментації, щоб відокремити рукописний текст від друкованого, штампів і просто сміття — артефактів зберігання.
3. OCR сама по собі частково обмежена й ніколи не зможе дати 100% точності. І тут не допоможе навіть величезний датасет із мільйонами сніпетів для навчання. У мене було 4 мільйони англійською, і я не можу сказати, що досяг видатного результату й обійшов усіх. Це не так.
Водночас, зі свого досвіду можу сказати, що поєднання OCR і LLM завжди дає хороший результат. Коли ми даємо мультимодальній моделі — GPT, Qwen, Gemini та іншим — не просто картинку, а картинку, варіанти розпізнавання від OCR і few-shot приклади, це завжди виграшний підхід. Це краще, ніж просто OCR, і краще, ніж просто модель. Але знову ж таки, 100% точність недосяжна і в цьому варіанті.
У мене архіви в основному до 1918, тому можуть бути ще румунська кирилиця (десь до 1865) та румунська латиниця (приблизно після 1865). Причому румунську я ні в зуб ногою, тому доводиться ШІшку мучити. Друкованого там немає, але з рукописною латиницею Gemini розбирається краще, ніж з кирилицею. Часто сперечаємось, що це за слово, бо розпізнає якусь єресь. Якби ж я ще приблизно розуміла, що там може бути написано (наприклад, яка причина смерті тощо), то було б легше, але це не завжди реально.1840-х вже більш-менш нормально все видно (принаймні, в моїх метричних книгах). Як розпізнати більш ранні — для мене загадка. Поки що теж тільки очима. Що не зрозуміла, то не зрозуміла.
Тексти так, є дуже поганої якості, але десь з
Сподіваюсь, колись це все буде не тільки відскановане, а ще й оцифроване, але у мене поки що сил і часу не вистачає на індексацію книг і виправлення помилок ШІшки. Ну і знань в роботі з ШІшкою, щоб її тренувати для своїх потреб, теж не вистачає.
О як цікаво! Я теж займався українським рукописом, теж маю власний датасет зі шкільними зошитами та бухгалтерськими документами, купу моделей для розмітки, моделі для OCR. А де саме можна подивитися ваш відкритий датасет та спробувати на тестах мій OCR, наприклад?
До речі, ще почав працювати над відкритим та публічним датасетом (вже частково оцифрованим) з метричними даними народжених у 1920..30 роках. Детектую там потрібні зони, перевіряю співпадіння зони сніппета та вже готову розмітку за допомогою LLM.
Можу частково передати свою розмітку та датасет, якщо є бажання співпрацювати.
P.S. Також є датасати з рукописом лікарів, та окремий датасет з цифрами (телефони, дати народження та інше)
це дуже цікаво. сам датасет і опис до нього ось: huggingface.co/...atholicUniversity/rukopys
дійсно буду радий обговорити можливі точки дотику — можете написати мені в особисті, зв’яжемося
Дуже дякую! Обов’язково скачаю, зроблю тести, повідомлю свої поточні результати, якщо цікаво. Щодо моєї розмітки, я не проти поділитися. Напишу в приватні повідомлення.
Ще раз дякую за цю роботу. Я знаю скільки часу вона займає, бо сам працював з власним датасетом на тисячах зображень.
А ще питання, Дмитро. На вашому датасеті який результат метрик (CER, WER, Accuracy) на тесті? Чи це не публічна інформація?
публічна інформація — це тільки агрегована метрика яку ми використовуємо в змаганні. CER в ній має найбільшу вагу, але також є компоненти пов’язані з розпізнаванням регіонів:
www.kaggle.com/...itten-to-data/leaderboard
ось тут можна почитати про метрику:
www.kaggle.com/competitions/handwritten-to-data/overview/evaluation
Дякую. Нажаль я вже не встигну прийняття участь у змаганні, бо тільки сьогодні дізнався про нього. Але дуже цікаво буде порівняти свої результати з конкурсантами.
У датасет включено лікарський почерк?
поки що немає, оскільки більшість медичних документів з якими ми стикалися містять персональні дані.
але в планах додати в наступній ітерації — найбільш імовірно це будуть матеріали з медичних університетів.
pii.it-sprout.org.ua — допоможе
Мопед не мій, я тільки задеплоїв
Запропонуйте автору зарплату чи гроші за продукт
Розв’яжіть проблему з персональними даними
дякую! зразу скоригую що проблема не в тому що ми не можемо прибрати персональні дані (звісно що ми можемо і це в нашому датасеті так само робили), а в тому що часто в довідках вони становлять більшу частину інформації і без них документ просто втрачає сенс)
а те що ви скинули — це про інше) це класичні PII детектори, які працюють з текстами, а не з картинками. і працюють дійсно дуже добре — завдяки NER моделями, адаптованим регуляркам і тд.
а для нас розпізнавання персональних даних відбувається на картинках — це по суті така сама OCR/HTR модель як ми будуємо в рамках нашого проєкту. ну і відповідно для зображень цю проблему розв’язати значно складніше.
звісно що моделі які ми отримаємо сподіваюся можна буде і для цього використовувати, але все одно треба розуміти що завдяки значно більшій варіативності того як на зображеннях може виглядати PII — це все одно не повністю автоматична обробка без людського контролю
Вибачаюсь, не тому відповів.
тут ще проблема з публікацією матеріалів які підпадають під лікарську таємницю, а це якраз той випадок) тому нюансів вистачає)