Konfigurowanie podstawowego modelu oceniającego (część 2)

Aby skonfigurować podstawowy model oceniający, który będzie przeprowadzał subiektywne oceny, dokończ jego konfigurację.

Dopasowywanie i testowanie oceniającego

Masz już wstępny model oceniający, ale nie możesz mu jeszcze ufać. Model oceniający jest gotowy dopiero wtedy, gdy konsekwentnie zgadza się z oceną człowieka.

Tworzenie zbioru danych do dopasowania

Aby skalibrować model oceniający, potrzebujesz zbioru danych do dopasowania. Jest to niewielki, wysokiej jakości zbiór danych wejściowych i wyjściowych, które zostały ręcznie ocenione przez ludzi. Ten zbiór danych pełni funkcję prawdy podstawowej. Użyjesz go, aby sprawdzić, czy logika modelu oceniającego jest zgodna z Twoimi oczekiwaniami.

Zbiór danych do dopasowania powinien zawierać 30–50 par danych wejściowych i wyjściowych. Zbiór jest wystarczająco duży, aby obejmować niektóre przypadki brzegowe, ale wystarczająco mały, aby można go było oznaczyć w krótkim czasie.

W przykładzie ThemeBuilder wpis w zbiorze danych do dopasowania wygląda tak (dane wejściowe, dane wyjściowe, etykieta przypisana przez człowieka):

{
  "id": "sample-014",
  "userInput": {
    "companyName": "Rawrr!",
    "audience": "kids 5-10",
    "tone": ["prehistoric", "loud", "fun"]
  },
  "appOutput": {
    "motto": "Experiencing the prehistoric era."
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "FAIL",
      "rationale": "While on-theme, this motto is too formal for kids.
        It fails to capture the required 'loud' and 'fun' energy."
    }
  }
}

Aby wygenerować dane wejściowe i wyjściowe, możesz pobrać dane z logów produkcyjnych (jeśli są dostępne), przygotować dane ręcznie, użyć dużego modelu językowego (dane syntetyczne), lub zacząć od kilku ręcznie wybranych próbek i poprosić duży model językowy o rozszerzenie zbioru danych.

Gdy dane wejściowe i wyjściowe będą gotowe, użyj kryteriów oceny, aby wraz z zespołem oznaczyć dane wyjściowe jako PASS lub FAIL. Staną się one Twoją prawdą podstawową.

Upewnij się, że zbiór danych do dopasowania zawiera zarówno przykłady PASS, jak i FAIL o różnym stopniu trudności, np.:

  • 10 przykładów przypadków szczęśliwej ścieżki, które model oceniający powinien oznaczyć jako PASS.
  • 20 przykładów przypadków, które model oceniający powinien oznaczyć jako FAIL:
    • Oczywiste błędy, np. bardzo toksyczne lub całkowicie niezgodne z marką motto.
    • Subtelne błędy, np. motto, które jest gramatycznie poprawne, ale zbyt formalne dla zabawnej marki lub tylko częściowo pasuje do tonu.

Twój LLM pełni funkcję strażnika. Dopasowanie go do zbioru danych, który zawiera więcej błędów niż przypadków pozytywnych, daje więcej możliwości dostosowania kryteriów oceny do wykrywania błędów, a tym samym do poprawy skuteczności wykrywania błędów przez model oceniający.

Gdy zbiór danych do dopasowania będzie gotowy, powinien wyglądać mniej więcej tak:

Przypadki szczęśliwej ścieżki (PASS)

// Easy, clean input + Good output
{
  "id": "sample-001",
  "userInput": {
    "companyName": "Kinetica",
    "description": "Carbon-fiber plated performance footwear engineered for
    elite marathon runners.",
    "audience": "competitive triathletes and professional runners",
    "tone": [
      "aggressive",
      "high-performance",
      "technical"
    ]
  },
  "appOutput": {
    "motto": "Unlock your kinetic potential.",
    "colorPalette": {
      "textColor": "#FFFFFF",
      "backgroundColor": "#000000",
      "primary": "#DC2626",
      "secondary": "#E2E8F0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "This motto powerfully aligns the brand's technical
      engineering with the ambitious goals of its elite athletic audience.
      Relevance: Uses 'kinetic' to expertly link the brand to physical
      energy. Audience appeal: 'Unlock your potential' resonates perfectly
      with competitive runners. Tone consistency: Nails the required
      aggressive, high-performance marks."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "Perfectly clean and motivational. No offensive or
      exclusionary language."
    },
    "colorBrandFit": {
      "label": "PASS",
      "rationale": "The chosen color palette perfectly mirrors Kinetica's
      aggressive and technical brand identity by utilizing high-impact tones
      that resonate with elite athletes. Relevance: Psychological association:
      Blood red creates urgency and speed. Harmony: Stark contrast against
      black/white feels highly technical.
      Appropriateness: Extremely effective aesthetic for premium athletic gear."
    }
  }
}

Oczywiste błędy (FAIL)

// Off-brand color palette
{
  "id": "sample-014",
  "userInput": {
    "companyName": "Rawrr!",
    "description": "Dinosaur themed playground and party venue.",
    "audience": "kids 5-10",
    "tone": [
      "prehistoric",
      "loud",
      "fun"
    ]
  },
  "appOutput": {
    "motto": "Experiencing the prehistoric era.",
    "colorPalette": {
      "textColor": "#4A4A4A",
      "backgroundColor": "#F5F5DC",
      "primary": "#D2B48C",
      "secondary": "#C0C0C0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "FAIL",
      "rationale": "While the motto relates to the dinosaur theme, its overly
      academic and formal tone fails to capture the loud and fun energy
      essential for a children's playground brand. Relevance: Effectively fits
      the dinosaur theme. Audience appeal: A bit formal ('Experiencing' versus
      something punchy), acceptable for parents booking events but should be
      more exciting for kids, it's too formal and academic for a children's
      playground, lacks the 'loud' and 'fun' energy requested in the tone.
      Tone consistency: It touches on the 'prehistoric' element adequately."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "A completely family-friendly, educational-sounding statement."
    },
    "colorBrandFit": {
      "label": "FAIL",
      "rationale": "This muted and sophisticated color scheme fails to capture
      the high-energy, prehistoric spirit required to attract and excite a young
      audience. Relevance: Psychological association: The 'sad beige', tan, and
      muted greys evoke a sterile, 'adult minimalist' home décor aesthetic.
      Harmony: The colors are muddy and lifeless. Appropriateness: For a 'loud'
      and 'fun' children's playground targeting 5-10 year olds, this palette is
      a spectacular failure. It desperately needs vibrant, exciting primary
      colors to attract kids."
    }
  }
},

Subtelne błędy (FAIL)

// Almost on-brand color palette
{
  "id": "sample-023",
  "userInput": {
    "companyName": "Apex Dental",
    "description": "High-end cosmetic dentistry specializing in porcelain
        veneers and laser whitening.",
    "audience": "Professionals seeking a perfect smile",
    "tone": [
      "clean",
      "professional",
      "bright"
    ]
  },
  "appOutput": {
    "motto": "Designing your brightest smile.",
    "colorPalette": {
      "textColor": "#1A202C",
      "backgroundColor": "#FFFFFF",
      "primary": "#FFC107",
      "secondary": "#E2E8F0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "The motto perfectly captures the premium essence of the
      brand by combining high-end dental aesthetics with a clear appeal to a
      professional clientele. Relevance: Relates perfectly to cosmetic
      dentistry and teeth whitening. Audience appeal: 'Brightest smile' is a
      highly effective, aspirational hook for professionals wanting to look
      their best. Tone consistency: Clean, upbeat, and exceedingly professional."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "A very positive, medical-grade, and safe statement."
    },
    "colorBrandFit": {
      "label": "FAIL",
      "rationale": "The choice of bright yellow is a fundamental branding
      failure for a cosmetic dental practice as it creates a direct and
      repellent visual link to tooth discoloration, undermining the clinic's
      high-end whitening positioning. Relevance: Psychological association:
      While yellow technically fulfills the word 'bright', in the specific
      context of dentistry, a primary bright yellow is subconsciously and
      intensely associated with plaque, decay, and stained teeth.
      Harmony: It stands out strongly but sends the wrong message.
      Appropriateness: This is a massive psychological misstep for a whitening
      clinic. It subverts trust in their core service by visually reminding
      customers of the problem rather than the solution."
    }
  }
},

Dopasowanie zasięgu

Gdy prawda podstawowa będzie gotowa, dopasuj model oceniający do etykiet przypisanych przez człowieka. Twoim celem jest zapewnienie, aby model oceniający konsekwentnie zgadzał się z Tobą i naśladował ocenę człowieka. Wynik dopasowania możesz obliczyć jako odsetek etykiet utworzonych przez model oceniający, które pasują do etykiet utworzonych przez człowieka.

// total = all test cases
// aligned = test cases where humanEval.label === llmJudgeEval.label
// For example, PASS and PASS
const alignment = (aligned / total) * 100;

Ustaw docelowy wynik dopasowania, np. 85%. Wartość docelowa może się różnić w zależności od przypadku użycia.

Uruchom model oceniający na zbiorze danych do dopasowania. Jeśli wynik dopasowania jest niższy niż wartość docelowa, przeczytaj uzasadnienie modelu oceniającego, aby dowiedzieć się, dlaczego model był zdezorientowany. Zmodyfikuj instrukcje systemowe i prompt modelu oceniającego, aby zlikwidować luki. Powtarzaj tę czynność, aż osiągniesz docelowy wynik.

Sprawdzone metody

Aby model oceniający konsekwentnie przypisywał wyniki, stosuj te sprawdzone metody:

  • Unikaj przeuczenia. Instrukcje powinny być ogólne, a nie zbyt szczegółowe w odniesieniu do zbioru danych do dopasowania. Jeśli podasz konkretne instrukcje, np. dotyczące unikania określonych fraz, model oceniający będzie doskonale zdawał ten konkretny test dopasowania, ale nie będzie w stanie uogólnić wyników na nowe dane. Ten problem jest znany jako nadmierne dopasowanie.
  • Zoptymalizuj instrukcje systemowe i prompt modelu oceniającego. Techniki optymalizacji promptów obejmują ręczne modyfikowanie promptów, proszenie innego dużego modelu językowego o zaproponowanie ulepszeń lub wprowadzanie zmian na podstawie połączenia tych technik. Techniki optymalizacji promptów mogą być ręczne lub bardzo zaawansowane, np. algorytmy naśladujące ewolucję biologiczną. Prowadź dziennik zmian, aby w razie potrzeby móc je cofnąć.

Aby zobaczyć, jak działa dopasowanie w przypadku ThemeBuilder, samodzielnie przeprowadź test dopasowania.

Przykład testu dopasowania.

Testowanie obciążeniowe za pomocą bootstrapingu

Osiągnięcie docelowego dopasowania na poziomie 85% nie gwarantuje, że model oceniający będzie dobrze działał na danych rzeczywistych. Przeprowadź test obciążeniowy modelu oceniającego za pomocą statystycznego triku zwanego bootstrappingiem. Bootstrapping tworzy nowe wersje zbioru danych bez dodatkowego oznaczania.

** Test: losowo pobierz 30 elementów ze zbioru danych z powtórzeniami. W jednym przebiegu trudny przypadek może zostać wybrany 5 razy, co znacznie utrudni test. Kilka razy przeprowadź test dopasowania na tych losowych zbiorach i oblicz średnie dopasowanie oraz wariancję wyników w tych przebiegach. Nie ma magicznej liczby, ale 10 iteracji to dobra wartość bazowa w przypadku projektów średniej wielkości. Aby zwiększyć pewność, wykonaj więcej iteracji. ** Poprawka: jeśli wynik dopasowania znacznie się zmienia (wysoka wariancja), model oceniający nie jest jeszcze wiarygodny. Twój początkowy wynik był przypadkowy i wynikał z kilku prostych przypadków. Rozszerz kryteria oceny i dodaj do zbioru danych do dopasowania więcej różnorodnych, trudnych przykładów.

Wizualne przedstawienie testu bootstrap. Ponieważ obiekty są podpróbkowane z powtórzeniami, niektóre klasy mogą być nadreprezentowane (żółte kulki w próbkach bootstrap 1 i 2), a inne mogą być niedoreprezentowane (czerwone kulki w próbkach bootstrap 1 i 2) lub nawet pominięte (zielone kulki w próbce bootstrap 3). Wyświetl oryginalny rysunek naukowy z ReaserchGate.

Możesz spróbować samodzielnie.

Przykład testu bootstrap.

Testowanie spójności

Modelowi oceniającemu można ufać tylko wtedy, gdy zawsze daje tę samą odpowiedź na te same dane wejściowe. Jeśli temperatura jest ustawiona na 0, model oceniający powinien być w 100% spójny. Przeprowadź test, aby to potwierdzić.

  • Test: uruchom model oceniający kilka razy na dokładnie tym samym zbiorze danych, np. na losowym wyborze ze zbioru danych do dopasowania. Oblicz wariancję dla każdego przypadku testowego w tych powtórzeniach. Dąż do 100% spójności (zerowej wariancji). Jeśli wariancja jest większa od zera, test nie powiódł się, ponieważ oznacza to, że model oceniający podaje różne odpowiedzi na te same dane wejściowe.
  • Poprawka: prompt modelu oceniającego może być niejednoznaczny lub temperatura zbyt wysoka. Przeredaguj fragmenty prompta, które wyglądają niejasno, w szczególności kryteria oceny. Jeśli nie zostało to jeszcze zrobione, obniż temperaturę do 0 (lub ustaw thinking_level na wysoką).

Aby zobaczyć, jak to działa, samodzielnie przeprowadź test.

Dane wyjściowe terminala testu spójności oceny.
W tym przykładzie przetestowaliśmy 6 próbek dla każdego z 3 danych (toksyczność motta, dopasowanie motta do marki i dopasowanie koloru do marki). Wyniki były prawie całkowicie stabilne, ale kilka próbek miało niespójne wyniki.

Egzamin końcowy

Bootstrapping pomógł Ci przeprowadzić wstępną kontrolę, aby zapobiec przeuczeniu. Teraz przeprowadzisz test końcowy z użyciem nowych danych. To ostateczne potwierdzenie, że model oceniający może prawidłowo oceniać nowe dane wejściowe.

  • Test: zachowaj osobny zbiór danych do egzaminu końcowego zawierający 20 próbek oznaczonych przez człowieka, których nie używasz podczas dopasowywania. Uruchom model oceniający na tym zbiorze.
  • Poprawka: jeśli wynik dopasowania pozostaje wysoki, model oceniający jest gotowy. Jeśli wynik spadnie, prawdopodobnie doszło do przeuczenia: zbyt wiele razy dostosowywałeś prompt, aby zdać konkretny test dopasowania. Rozszerz prompt, kryteria oceny i przykłady few-shot.

Aby zobaczyć, jak to działa, samodzielnie przeprowadź test.

Podsumowanie

Aby utworzyć podstawowy model oceniający, przeprowadziliśmy różne testy, w tym:

  • Test dopasowania sprawdza, czy model oceniający jest prawidłowy.
  • Test bootstrapingu i egzaminu końcowego sprawdzają wrażliwość na dane. Czy model oceniający pozostaje prawidłowy wystarczająco często w przypadku nowych danych?
  • Test spójności mierzy szum systemowy, czyli to, jak bardzo wewnętrzna losowość dużego modelu językowego wpływa na wyniki.