Middle — Senior
44
Snorkel және әлсіз қадағалау дегеніміз не?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
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 әлсіз сигналдар көмегімен оқыту жиынтығын тез құруға мүмкіндік береді, бұл белгіленген деректер шектеулі болған кезде өте пайдалы.