en
Feedback
Muhammadsaid - Blog

Muhammadsaid - Blog

Open in Telegram

Dasturchilik, sun’iy intellekt va tilshunoslik haqida. Tahrirchi loyihasining asoschisi @tahrirchi_uz

Show more
Uzbekistan138 338The category is not specified
224
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
Inkubatsuya, akseleratsiya, mentorlar, treninglar Chet elda o’xshagan metodlarni korrupsiyaga va nepotizmga bitgan mamlakatga qo’llasa, menimcha bizdagi startaplar ekosistemasi bo’ladi. Har xil “startaplar” uchun o’tkaziladigan tadbirlar bizda ishlamaydi — shunchaki faoliyat tusini berib turadi. Tajribamga tayanib aytyapman. Xo’sh, nima qilish kerak? P U L. Haqiqiy pul beradigan akseleratsiya qilish kerak, galochka uchun qilinadigani emas. Plug’n’Play bunga yaxshi misol. Bizga aynan u yoki Y Combinator kabi startaplar maktabini qilish kerak. Haqiqiy pul tikib, MVP’gacha oboradigan maktab. Dasturchi och bo’lsa, yoki nohaq bozorda bo’lsa, hech qanday trening yoki akseleratsiya yordam bermaydi. @muhammadsaid_dev

O‘zlashma so‘zlarni o‘zbekcha muqobili bilan almashtirib beradigan model chiqadi bunaqa ketishda!
O‘zlashma so‘zlarni o‘zbekcha muqobili bilan almashtirib beradigan model chiqadi bunaqa ketishda!

Bu esa "haqiqiy" xatoliklar jadvali! Ikkala so‘z ham imloviy jihatdan to‘g‘ri, lekin kontekstga mos kelmagan. Bunday so‘zlarn
Bu esa "haqiqiy" xatoliklar jadvali! Ikkala so‘z ham imloviy jihatdan to‘g‘ri, lekin kontekstga mos kelmagan. Bunday so‘zlarning aksari paronimlar, o‘zlashma so‘zlar va boshqa o‘zbek tilida uchraydigan tasodifiy ohangdosh juftliklar. @muhammadsaid_dev

Bu tahrirchilar tomonidan eng ko‘p o‘chirilgan va eng ko‘p qo‘shilgan so‘zlar ro‘yxati. Ko‘rib turganingizdek, biz odatda sin
+1
Bu tahrirchilar tomonidan eng ko‘p o‘chirilgan va eng ko‘p qo‘shilgan so‘zlar ro‘yxati. Ko‘rib turganingizdek, biz odatda sintaktik rol uchun xizmat qiladigan gaplarni ortiqcha yozarkanmiz yoki tushirib qoldirarkanmiz. Bular bog‘lovchilar, ko‘makchilar, olmoshlar, yuklamalar, va boshqa har xil modal so‘zlar. Eng ko‘p tushirib qoldiradigan so‘zimiz bu "nafar" ekan. Eng ko‘p ortiqcha yozadigan so‘zimiz esa "va" va "ham". @muhammadsaid_dev

Kelishiklar Ko‘rib turganingiz — bu 50,000 ta tahrirdan yig‘ilgan har xil grammatik xatoliklar jadvali. Har bir ustun va qato
Kelishiklar Ko‘rib turganingiz — bu 50,000 ta tahrirdan yig‘ilgan har xil grammatik xatoliklar jadvali. Har bir ustun va qatorda qandaydir qo‘shimcha ishlatilgan. Bu yerda odamlar qaysi qo‘shimchani qaysi qo‘shimcha bilan adashtirishi aks ettirilgan. Bu to‘q nuqta — tushum va qaratqich kelishigi, -ni va -ning. Bu eng ko‘p adashtiriladigan qo‘shimcha, uning to‘qligi sabab boshqa xatolarni sezmayapmiz. Endi savol: grammatik tekshiruvi faqatgina -ni/-ning adashgan paytlarini to‘g‘rilashi kerakmi? Yoki boshqa, kam uchraydigan yoki umuman uchramaydigan xatolarni ham aniqlashi kerakmi? @muhammadsaid_dev

Cheki yo’q Web Bilasiz, biz Tahrirchining brauzerlar uchun kengaytmasini shu yozda ommaga taqdim qilishni reja qilganmiz. Jamoada yagona frontendchi o’zim — lekin frontendni uncha yoqtirmayman. Va bunga sabablar talaygina. Frontend juda chalkash va pala-partish joy. Bitta narsani qilishning o’nlab usuli bor, va ular orasidagi farq juda nozikdir. Masalan, qizil qilib so’zlarning tagiga chizish bo’yicha PhD qilsa bo’ladi — chunki bu juda murakkab narsa bo'lib chiqdi. Begona saytga kirib, u yerdagi tahrirlash joyiga o'rnashib, jimgina orqa fonda jonli tahrirlab turish boshlanishiga oson ko'rinishi mumkin. Lekin aslida, bu yerda berilmalar strukturasidan tortib noodatiy API larni ishlatish kerak ekan. Xullas, bu haqida "Grammarly"ning o'zi maqola yozgan ekan. Va WebSpellChecker ham. Va yana ko’plab boshqa kengaytmalarda shu muammolar bo’lgan. Xulosa? Frontend oson narsa emas. Hozirda yoshlar bu sohani uncha mensimay qolgan. Mening tavsiyam birinchi bo'lib frontendni o'rganib, keyinchalik yo'nalish tanlash, chunki frontendni yetarlicha bilgan injener dasturchilik qanchalik qiyin va chalkashligini, har doim o'z bilimiga tayanishni o'rganadi. @muhammadsaid_dev

Bugun Adliya vazirligi qoshidagi AKT rivojlantirish tashkilotiga Tahrirchini integratsiya qildik! Endi Tahrirchi Adliya vazirligidagi ichki tizimlarda OnlyOffice (MS Word veb-versiyasi) uchun kengaytma sifatida ishlaydi! Integratsiya mahalliy bo’lib, barcha ma’lumotlar Adliya tizimida qoladi Fikrimcha, bu tajriba keyinchalik boshqa davlat idoralari bilan integratsiyaga yo’l ochib beradi. @muhammadsaid_dev

Hatto nomi ham, Tahrirlovchi, g'aliz, yasama so'z... Bir milliard so'm-a... @muhammadsaid_dev

Keyin yana nega startaplar, g‘oyalar yo‘q deymiz... UzInfocom kabi kompaniyalar birovlarning g‘oyalarini o‘g‘irlab, velosipedni yaratib bozor muhitini buzmoqda. Axir shu mablag‘ni raqobatchilarga tarqatsa bo‘lardi-ku (tender yo‘li bilan)? Men shu pulga butun boshli o‘zbek tili uchun NLP bazani qilib berardim! Afsus, bunday hodisalar har kuni bo‘ladi, va ularga hech kim parvo qilmay qo‘ygan... Shunday ekan, biz kabi yoshlar ertaga chetga chiqib, yaxshi kompaniyalarda ishlaganda, "Nega yurti uchun ishlamayapti?" degan savol berganingizda shu holatni eslang. @muhammadsaid_dev

O'zbek tilida matnni tekshiradigan dasturlar ko'p — Matn.uz, Savodxon.uz, Korrektor.uz va biz, Tahrirchi.uz degan saytlar bor
O'zbek tilida matnni tekshiradigan dasturlar ko'p — Matn.uz, Savodxon.uz, Korrektor.uz va biz, Tahrirchi.uz degan saytlar bor. Biz ulardan nima farqimiz bor desangiz bizning javob bu tezlik, aniqlik va qulaylik bo'ladi. Lekin Tahrirlovchi.uz degan sayt haqida eshitganmisiz? Ushbu "startap" davlat budjetidan moliyalashtirilib, UzInfocom zimmasiga yuklatilgan ekan. Nega? Nega tendersiz, to'g'ridan-to'g'ri, bozorda bu loyihaning analoglari bo'lib turib yana davlat budjetidan pul berilgan? Va kam pul ham emas, qariyb bir milliard so'm! Saytni ochib, matn tekshiraman desangiz, uch yil yangilanmagan Matn.uz dan yomon. Bu nima degan gap? Velosipedni ham eplolmasdan yaratish necha puldan bo'lyapti? Bir milliard so'mdan. Lug'atiga kelsak, u boshdan-oyoq Savodxonnikidan surbetlarcha ko'chirilgan. @muhammadsaid_dev

Ushbu taxminimizni tekshirish uchun biz o'zimiz dataset yaratishga tushdik. Tahrirgoh platformamizda tahrirchilar allaqachon yetarlicha tahrirlar qilib qo'ygan edi. Biz u tahrirlardan faqat punktuatsiyaga oid bo'lganlarini olib, datasetni quyidagicha tayyorladik: Demak siz dasturchi ekansiz. Tahrirdan keyin: Demak, siz dasturchi ekansiz. Va datasetimiz: Demak $APPEND_COMMA siz $KEEP dasturchi $KEEP ekansiz $KEEP . $KEEP ko'rinishiga keladi. Haqiqiy grammatik tekshiruvi, faqatgina punktuatsiya uchun qilingan. Tayyorlangan 2,000 ta gapni modelga berganimizdan keyin, natijalar bizni quvontirdi: english bert — 7.5% rifkat/uztext-3Gb-BPE-Roberta — 26.44% tahrirchi/5gb-67m-roberta — 29.63% tahrirchi/16gb-110m-bert — 33.4% Ko'rsatkichlar pastligiga qaramay, nisbatan modellarimiz o'zini yaxshi tutdi. Kattaroq modellar yaxshiroq natijani ko'rsatdi. Bu taxminimizni isbotlabgina qolmay, grammatika tekshiruvini o'zbek tiliga qilish mumkinligini bizga ko'rsatdi. @muhammadsaid_dev

O'rgatgan modellarimizni bir nechta vazifa ustida o'rgatib chiqdik. Natijalar quyidagicha (F1-score): Sentiment Analysis [dataset] rifkat/uztext-3Gb-BPE-Roberta — 88.4% tahrirchi/5gb-67m-roberta — 87.63% tahrirchi/16gb-110m-bert — 87.57% News Classification [dataset] rifkat/uztext-3Gb-BPE-Roberta — 89.35% tahrirchi/5gb-67m-roberta — 89.1% tahrirchi/16gb-110m-bert — 88.63% Shu yerda o'ylanib qoldik, nahotki biz shuncha yig'gan dataset oxirida 3 GB lik model bilan teng bo'lsa? Keyin inglizcha modelni olib, News Classification ustida o'rgatdik — natija 88.02%. Inglizcha model o'zbekcha yangiliklarni o'rgandi! Bu yerda nimadir xato ketgan: yoki biz bergan vazifa juda sodda (model shunchaki yodlab chiqa oladi) yoki rostdanam 3 GB bilan 16 GB model orasida farq yo'q.

Aytgancha, biz qilgan model monolingval modeldir. Faqat lotinchaga o‘rgatilgan. Biz boshlanishiga oddiyroq qilishga kelishgandik. Endi esa biz bilingval (kirill+lotin) dataset qilib, modelning datasetini ikki barobarga ko‘paytirishimiz mumkin. Ustiga-ustak, cross-lingual transfer, ya’ni ikki til (yoki bizning holatimizda kirill/lotin) orasida o‘xshashlik bo‘lsa, model yanada ko‘proq o‘rganishi mumkin (nazariy jihatdan). Kitoblardagi xatoliklarni biz datasetning hajmi bilan yengishimiz mumkin deb o‘ylayapmiz. Chunki boshqa yechim ham yo‘q — o‘zbek tilining yuragi raqamli dunyoga o'tishga ulgurmadi, va bizda faqatgina ko‘p kitob to‘plab, qo‘ldan kelgancha skan qilib, datasetga tiqish qoldi. Ularni qo‘lda birma-bir to‘g‘rilab chiqishga na mualliflik huquqi, na hafsala ham yetmaydi. @muhammadsaid_dev

Keyingi etapda biz bu modelni grammatik xatoliklar tekshiruviga o‘rgatib ko‘ramiz. Bu juda qiziq va mashaqqatli bo‘lishi kutilmoqda, shunisi bilan ham bu qiziq) Parallel ravishda bizda yana 15,000 ta kitob qo‘shilish arafasida turibdi, va jami dataset 30 GB bo‘ladi. Kattaroq dataset ustida bir nechta modellarni o‘rgatib ko‘ramiz, va eng yaxshilarini huggingface’ga open-source qilib qo‘shamiz.

Kitoblar ko'pi sifatsiz edi (word error rate < 20%)! Buni inobatga olgan holatda biz bu modelni ehtiyotkorlik bilan ishlatishimiz kerak. Yaqin orada modelni boshqa o'zbekcha modellar bilan har xil vazifalarda taqqoslab ko'ramiz, va datasetning hajmi qanchalik muhimligini bilib olamiz.

Model parametrlari: bert-base-uncased, 110 million parametr, BPE tokenayzer, 16 GB dataset O'rgatish jarayonida har bitta batch 1024 razmerli, max_seq_length 512, va jarayon 30,000 ta batch davomida o'rgatildi. Bu hammasi 8xA6000 48 GB lik klasterda o'rgatildi. Jami 30 soat vaqt ketdi.

Datasetning kattaligini model o'rgangan bilimda ko'rish mumkin. Geografiyani ozgina o'rganibdi :D
Datasetning kattaligini model o'rgangan bilimda ko'rish mumkin. Geografiyani ozgina o'rganibdi :D

Raund 2
+2
Raund 2

Ikkinchi raund! 20 soat o'tdi. Yana 10 soat kerak. Bu safar o'xshaydi deb umid qilaman
Ikkinchi raund! 20 soat o'tdi. Yana 10 soat kerak. Bu safar o'xshaydi deb umid qilaman

Vikipediyadan ma'lumot olib ko'ray desam, butun maqolalar matn bo'lganida 300 MB gina chiqdi xolos. Bu 35 millionta so'z. Har bir o'zbekistonlikka bittadan so'z to'g'ri kelarkan :D #dataset_beringlar