Wpis z mikrobloga

#programista15k #datascience #artificialintelligence #sztucznainteligencja #python

Hej mirki,
szukam ciekawego papera dotyczącego trenowania wielolabelowych modeli z nierównomiernie rozłożonym datasetem.
Danych jest niewiele. Z moich badań wyszło, że najlepiej radzi sobie linear SVC na tfidf (accuracy 92), ale zastanawiam się, czy jest coś lepszego.

Przykładowo, kiedyś, przy niewielkiej liczbie klas pisałem 1vs all na wszystkich klasach i działało to fajnie. Wtedy jednak robiłem to na jakimś
transformerze, a teraz mam do dyspozycji jedynie bardzo podstawowe modele. LSTM to najbardziej zastosowana rzecz, jaką mogę użyć.
  • 10
@Bejro gdybym tylko mógł ( ͡° ͜ʖ ͡°). Przede wszystkim jest to nlp. Po preprocessingu mam dataset treningowy z trzema kolumnami: freetext który trzeba z klasyfikować, około 1k znaków; jeden z 4 labeli i index labeli. Co do rozkładu labeli, jedna kategoria ma ok 35%, reszta równomiernie rozłożona. Ok 1200 rekordów.
@JamesJoyce Ok, ale to nie jest szczególnie niezbalansowany dataset. A czemu nie możesz użyć innych modeli? Brzmi to na problem na 10 minut i niczego nie trzeba uczyć. Wygeneruj BERT embeddings dla całego zbioru, generujesz to samo dla nowego inputu, knn i gotowe pora na CSa, czy ma to chodzić na Arduino?
@Bejro tak, to nie jest trudny problem, ale klientem jest firma która wszystko ma zamknięte. Nie ma mowy o żadnym llmie. Plus trenowanie na procesorze. W skrócie: migracja na azure jest w trakcie, póki nie nadejdzie, wszystko postawione na tym co da się zrobić z nadgorliwym security i na procku.
@JamesJoyce: Przecież model typu BERT pójdzie na CPU na luzie - a trenowanie nie jest potrzebne tu wcale. BERT-Base ma 110M parametrów i pewnie będzie potrzebować kilka sekund na iterację ale jak rozumiem próbek do analizy nie ma dużo. Jest też tinyBERT o prawie takiej samej jakości ale ma tylko 14M parametrów - to nawet na malinie będzie płynnie chodzić. A KNN przy pomocy faiss na CPU śmiga w milisekundy przy
@Bejro: Zgadza się, ale jest jeszcze jeden problem. Musiałbym użyć berta czy t5 z biblioteki, która nie wymaga by był on pobrany w binarce. Próbowałem już z t5 i nie da się. Security blokuje binarki jako potencjalne malware. Nie można też używać biblioteki "transformers".
@JamesJoyce: No to z fartem. Ale przecież paczki jak torch czy transformers są budowalne ze źródła. Jeśli masz torcha, to bert to tylko max kila plików z kodem skopiowanych z transformers. A tak to weź może spacy, zrób wektoryzację (embedding) zdania po zdaniu, projekcję (gęsta, konwolucja, może z tzw. implicit kernel) i uczenie kontrastowe w jakiejś uproszczonej przestrzeni aby "porozsuwać" klastry.
@Bejro: No syf. Co więcej mogę powiedzieć ( ͡° ͜ʖ ͡°). Ja tam jestem od paru msc, ale ich zespół AI klepie od 7 lat, w taki sposób. Bawiłem się ze spacy, ale wyniki raczej gorsze od svm.