Sobes.tech
Middle — Senior
44

Snorkel және әлсіз қадағалау дегеніміз не?

Сұралған компаниялар
OZONOZON

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 әлсіз сигналдар көмегімен оқыту жиынтығын тез құруға мүмкіндік береді, бұл белгіленген деректер шектеулі болған кезде өте пайдалы.