Dificultate
Maximul tău
N/A
Un sistem automat analizează recenzii de filme și stabilește dacă sentimentul este negativ sau pozitiv. Modelul a fost însă antrenat pe date în care anumite note editoriale artificiale erau corelate cu eticheta. Aceste note nu descriu opinia autorului, dar modelul a învățat să le folosească drept scurtătură.
Modelul trebuie să uite influența stilului editorial fără acces la datele originale de antrenare. Mai mult, uitarea trebuie să rămână stabilă după ce evaluatorul continuă pseudo-antrenarea modelului, deoarece informația eliminată poate reapărea în timpul actualizărilor ulterioare.
Pentru rezolvarea acestei probleme, primești modelul inițial, date auxiliare curate și o specificație a familiei de note editoriale. Trebuie să producă un nou set de parametri care păstrează clasificarea sentimentului, ignoră notele editoriale și rezistă pseudo-antrenării ascunse.
Din motive de reproductibilitate și cost, problema utilizează un clasificator logistic compact peste două reprezentări fixe:
Reprezentările folosesc hashing determinist și au în total 8192 de coordonate. Participanții nu pot schimba extractorul de caracteristici sau arhitectura; pot modifica parametrii clasificatorului și pot îngheța selectiv cel mult 15% dintre coordonate.
Etichetele sunt:
| Valoare | Sentiment |
|---|---|
0 | negative |
1 | positive |
Pachetul public conține:
pretrained_model/ state.pkl meta.jsondata_public/ proxy_train.csv proxy_val.csv proxy_challenge.csv public_stability_stream.csv forget_spec.json labels.jsonstarter_submission/ solution.py common.py README.mdproxy_train.csv și proxy_val.csv conțin exemple curate din SST-2:
| Coloană | Descriere |
|---|---|
datapointID | identificator unic |
subtaskID | valoarea 1 |
text | textul recenziei |
answer | sentimentul corect, 0 sau 1 |
forget_spec.json descrie gramatica notelor editoriale. Toate expresiile generate de această gramatică sunt metadate neutre și nu trebuie să schimbe predicția modelului. Combinațiile exacte folosite la evaluare sunt ascunse.
proxy_challenge.csv conține perechi publice text_clean / text_marked, iar public_stability_stream.csv permite testarea locală a unor actualizări de tip knowledge distillation.
Datele originale folosite la antrenarea modelului inițial nu sunt oferite.
Participanții trimit o arhivă ZIP care conține obligatoriu solution.py direct în rădăcină. Fișierul trebuie să definească exact funcția:
def unlearn(proxy_train_csv, pretrained_model_dir, forget_spec_json, output_dir, seed): ...Funcția trebuie să salveze în output_dir:
state.pklmeta.jsonmanifest.jsonși să returneze calea către manifest.json.
manifest.json trebuie să aibă forma:
{ "format_version": 1, "model_files": ["state.pkl", "meta.json"]}state.pkl trebuie să conțină un dicționar cu:
{ "format_version": 1, "feature_signature": "...", "weights": numpy.ndarray, # shape (8192,) "bias": float, "frozen_mask": numpy.ndarray # bool, shape (8192,)}Cel mult 15% dintre valorile din frozen_mask pot fi True. În etapa de stabilitate, evaluatorul nu actualizează coordonatele înghețate.
solution.py utilizează funcții, clase sau constante definite în common.py, atunci fișierul common.py trebuie inclus obligatoriu în arhiva ZIP trimisă, direct în rădăcina acesteia.
Pentru fiecare exemplu ascuns există un text curat x și o variantă x* care conține o notă editorială opusă etichetei reale.
U = Macro-F1 pe textele curateSe calculează:
C = Macro-F1 pe variantele cu note editorialeI = 1 - media(|p(positive | x) - p(positive | x*)|)F = harmonic_mean(C, I)M_immediate = harmonic_mean(U, F)Evaluatorul continuă modelul prin knowledge distillation către modelul inițial, folosind un flux ascuns. Modelul este verificat după 25, 50, 100, 200 și 400 de actualizări.
Pentru fiecare checkpoint se recalculează media armonică dintre utility și forgetting. Scorul de stabilitate este cea mai mică valoare observată:
M_stable = min(M_25, M_50, M_100, M_200, M_400)Metrica finală este:
metric = harmonic_mean(M_immediate, M_stable)score = 0, dacă metric ≤ 0.50score = 100, dacă metric ≥ 0.76score = 100 * (metric - 0.50) / 0.26, în restEvaluatorul raportează și:
subtask1: immediate unlearning;subtask2: stable unlearning.Scorul public este calculat pe 20% din exemplele ascunse, iar scorul complet pe întregul set. Clasamentul final folosește scorul complet.
100 MB și 300 de fișiere;20 MB;15% coordonate înghețate;