Clasificarea Text Zero-Shot cu Hugging Face și Qdrant

Clasificarea Text Zero-Shot cu Hugging Face și Qdrant

13 iulie 2022

Introducere

Astăzi îți voi arăta cum poți folosi modelele de Natural Language Inference (NLI) de la Hugging Face și Qdrant pentru a clasifica textul în loc să antrenezi un model.

captionless image

Este posibil să ai o cantitate mare de date pentru a antrena un model de clasificare, dar resurse de calcul sau timp insuficiente pentru a o face. Exact aici intervine metric learning!

Clasificarea zero-shot înseamnă că modelele pot clasifica etichete pe care nu au fost antrenate. În general, clasificarea zero-shot este utilizată atunci când nu avem suficiente date pentru a crea un clasificator. Cu toate acestea, în zilele noastre, modelele devin din ce în ce mai mari și antrenarea lor durează foarte mult.

Prin urmare, am considerat că realizarea unui tutorial de acest tip îți va permite să creezi un clasificator în câteva minute fără antrenament și să obții modele de bază performante!

Setul de Date

Voi folosi setul de date News, care conține 120 de mii de recenzii și patru etichete: World, Sports, Business și Science/Tech. Poți accesa setul de date de aici. Reamintesc că acest set de date este doar în scopuri tutorial. Nu ezita să încerci seturi de date diferite și mult mai mari!

captionless image

Pentru a încărca setul de date, vom folosi transformatoarele Hugging Face.

Modelul

Voi folosi modelul „sentence-transformers/stsb-distilbert-base" model. Poți schimba acest model dacă dorești. Poate vrei să folosești o altă limbă sau un alt model NLI.

Acum că avem modelul și datele noastre, vom folosi modelul NLI pentru a extrage caracteristici din text și a folosi acești vectori pentru a determina cei mai apropiați.

Acest cod va dura în funcție de dimensiunea setului de date și de memorie. Modifică batch_size în funcție de memoria ta pentru a accelera procesul.

Qdrant

Dacă știi deja cum să folosești Qdrant, poți sări peste acești pași.

Vectorii noștri sunt gata! Acum trebuie să îi încărcăm în Qdrant înainte de a căuta. Qdrant este în esență o bază de date pentru căutare vectorială. Poți gândi Qdrant ca pe Redis pentru vectori. În loc să dai o cheie, dai un vector și returnează cei mai apropiați vectori și payload-urile lor.

Dacă nu ai Docker pe computer, te rugăm să urmezi acest link. Qdrant este un proiect open-source și poți trage direct imaginea Docker.

docker pull qdrant/qdrant

După finalizarea descărcării, poți rula containerul Qdrant.

Încărcarea Vectorilor în Qdrant

Totul este pregătit! Hai să testăm modelul.

Clasificare

Pentru a căuta un text de intrare, mai întâi avem nevoie de vectorul său. Apoi putem căuta vectorul cu Qdrant.

După aceasta vei vedea cele mai apropiate propoziții și eticheta lor. Poți schimba limita pentru a obține un număr mai mare sau mai mic de rezultate apropiate.

Vectori returnați din Qdrant

După cum poți vedea, a găsit cele mai apropiate 5 rânduri și a returnat payload-urile lor. Etichetele lor sunt 3, care este eticheta pentru Tech/Science. Poți încerca intrări diferite și să vezi rezultatele!

Referințe

← Toate articolele