რა არის Snorkel და სუსტი ზედამხედველობა?
sobes.tech AI
პასუხი AI-სგან
Snorkel არის სქემა სუსტი ზედამხედველობისთვის, რომელიც ეხმარება სასწავლო მონაცემთა ნაკრებების შექმნას პროგრამული წესების გამოყენებით, ნაცვლად ხელით მონიშნული მონაცემების. სუსტი ზედამხედველობა არის მიდგომა, სადაც გამოიყენება არაზუსტი, ხმაურიანი ან ირიბი ნიშნების წყაროები მოდელების სწავლებისთვის, რაც მნიშვნელოვნად ამცირებს ანოტაციის ხარჯებს.
Snorkel-ის მთავარი იდეაა სხვადასხვა სუსტი სიგნალის (მაგალითად, წესები, გარე ცოდნის ბაზები, მოდელები) გაერთიანება ერთ პრობაბილისტიკურ მოდელში, რომელიც წარმოქმნის ხარისხიან ნიშნებს სწავლებისთვის.
Snorkel-ის გამოყენების მაგალითი:
from snorkel.labeling import labeling_function, LabelModel, PandasLFApplier
import pandas as pd
# ნიშნების განსაზღვრა
POSITIVE = 1
NEGATIVE = 0
ABSTAIN = -1
# მაგალითის მონაცემები
data = pd.DataFrame({'text': ['მიყვარს ეს პროდუქტი', 'ეს ცუდია', 'არ ვარ დარწმუნებული ამაზე']})
# მარტივი ნიშნების ფუნქციების შექმნა
@labeling_function()
def positive_words(x):
return POSITIVE if 'მიყვარს' in x.text else ABSTAIN
@labeling_function()
def negative_words(x):
return NEGATIVE if 'ცუდია' in x.text else ABSTAIN
lfs = [positive_words, negative_words]
applier = PandasLFApplier(lfs)
labeled_matrix = applier.apply(data)
# მოდელის სწავლა ნიშნების გაერთიანებისთვის
label_model = LabelModel(cardinality=2, verbose=True)
label_model.fit(labeled_matrix=labeled_matrix, n_epochs=500, log_freq=100)
# საბოლოო ნიშნების მიღება
data['label'] = label_model.predict(labeled_matrix)
print(data)
ამ გზით, Snorkel საშუალებას აძლევს სწრაფად შექმნას სასწავლო მონაცემთა ნაკრები სუსტი სიგნალების გამოყენებით, რაც განსაკუთრებით სასარგებლოა, როდესაც მონაცემების რაოდენობა შეზღუდულია.