Hugging Face va Qdrant yordamida Zero-shot Matn Tasniflash

Hugging Face va Qdrant yordamida Zero-shot Matn Tasniflash

13-iyul, 2022

Kirish

Bugun sizlarga Hugging Face'ning Tabiiy Til Interferentsiya (NLI) modellaridan va Qdrant'dan foydalanib, model o'qitmasdan matnlaringizni qanday tasniflash mumkinligini ko'rsataman.

captionless image

Tasniflash uchun model o'qitishga yetarlicha katta ma'lumotlar to'plamingiz bo'lishi mumkin, ammo buning uchun yetarli hisoblash resurslari yoki vaqtingiz bo'lmasligi ham mumkin. Aynan shu yerda metrik o'qitish ishga kiradi!

Zero-shot tasniflash shuni anglatadiki, modellar avval o'qitilmagan teglarni ham tasniflashi mumkin. Odatda zero-shot tasniflash tasniflash qurilmasi uchun yetarli ma'lumot bo'lmagan hollarda qo'llaniladi. Biroq hozirgi kunda modellar tobora kattalaship bormoqda va ularni o'qitish uchun juda ko'p vaqt ketyapti.

Shu sababli, bunday qo'llanma yaratish sizga o'qitmasdan daqiqalar ichida tasniflash qurilmasi tuzish imkonini beradi va yaxshi boshlang'ich modellar olish uchun poydevor bo'ladi, deb o'yladim!

Ma'lumotlar To'plami

Men 120 ming ta sharh o'z ichiga olgan va to'rtta tegdan — Jahon, Sport, Biznes va Fan/Texnologiyadan iborat Yangiliklar ma'lumotlar to'plamidan foydalanaman. Ma'lumotlar to'plamiga bu yerdan kirishingiz mumkin. Shuni eslatib o'tamanki, bu ma'lumotlar to'plami faqat qo'llanma maqsadlari uchun mo'ljallangan. Turli va ancha kattaroq ma'lumotlar to'plamlari bilan erkin sinab ko'ring!

captionless image

Ma'lumotlar to'plamini yuklash uchun Hugging Face transformers kutubxonasidan foydalanamiz.

Model

"sentence-transformers/stsb-distilbert-base" modelidan foydalanaman. Xohlasangiz bu modelni almashtirish mumkin. Boshqa til yoki boshqa NLI modelidan foydalanmoqchi bo'lishingiz mumkin.

Endi modelimiz va ma'lumotlarimiz tayyor. Matndan xususiyatlar ajratib olish uchun NLI modelidan foydalanamiz va eng yaqinlarini aniqlash uchun ushbu vektorlardan foydalanamiz.

Ushbu kod ma'lumotlar to'plami hajmi va xotirangizga qarab vaqt olishi mumkin. Jarayonni tezlashtirish uchun xotirangizga qarab batch_size ni o'zgartiring.

Qdrant

Qdrant'dan qanday foydalanishni allaqachon bilsangiz, bu bosqichni o'tkazib yuborishingiz mumkin.

Vektorlarimiz tayyor! Endi qidirishdan oldin ularni qdrant'ga yuklash kerak. Qdrant asosan vektor qidirish ma'lumotlar bazasi. Qdrant'ni vektorlar uchun Redis deb tasavvur qilishingiz mumkin. Kalit berish o'rniga vektor berasiz va u eng yaqin vektorlarni hamda ularning yuk ma'lumotlarini qaytaradi.

Kompyuteringizda docker bo'lmasa ushbu havolaga amal qiling. Qdrant ochiq manbali loyiha bo'lib, docker tasvirini to'g'ridan-to'g'ri tortib olishingiz mumkin.

docker pull qdrant/qdrant

Tortib olish tugagandan so'ng qdrant konteynerini ishga tushirishingiz mumkin.

Vektorlarni Qdrant'ga Yuklash

Hamma narsa tayyor! Keling modelimizni sinab ko'ramiz.

Tasniflash

Kirish matnini qidirish uchun avval uning vektori kerak. So'ngra vektor bilan qdrant'da qidirishimiz mumkin.

Shundan so'ng siz eng yaqin jumlalarni va ularning tegini ko'rasiz. Yaqin natijalar sonini oshirish yoki kamaytirish uchun limitni o'zgartirishingiz mumkin.

Returned vectors from qdrant

Ko'rib turganingizdek, u 5 ta eng yaqin qatorni topdi va ularning yuk ma'lumotlarini qaytardi. Ularning teglari 3 — bu Tech/Science tegi uchun mo'ljallangan label. Turli kirish ma'lumotlarini sinab ko'rib natijalaringizni ko'rishingiz mumkin!

Manbalar

← Barcha maqolalar