Back home

Po ograniczeniu chińskiego modelu open source pierwszą rzeczą, którą należy zmienić, jest wersja i kaliber ewaluacji.

Model można nadal rozciągnąć, ale ten sam zestaw linii bazowych zaczyna być niewyrównany.

Po zniesieniu takich ograniczeń pierwszą rzeczą, która się psuje, zwykle nie jest pytanie: „Czy nadal można to pobrać?” ale „czy nadal może opierać się na tym samym zestawie wyników?”

Sam model nadal istnieje, a odbicie lustrzane można zsynchronizować, ale problem zaczyna przesuwać się od wejścia do porównania. Wersja, która dzisiaj działa dobrze, będzie miała niewielkie różnice na innej maszynie ze względu na podział wagi, wersję tokenizatora, parametry wnioskowania lub opóźnienia lustrzane. Patrząc na każde wyjście, wydaje się, że nadal działa; po ponownym umieszczeniu w zbiorze regresji krzywa zaczyna się rozszerzać. Kiedyś wystarczyło spojrzeć na całkowity wynik, aby zdecydować, czy dokonać aktualizacji, ale teraz trzeba najpierw rozpakować, czy ta zmiana pochodzi z modelu, czy ze stosu usług.

Prawdziwy problem spowodowany ograniczeniami nie leży w samym pobieraniu, ale w niszczeniu relacji porównawczych. W przeszłości trzeba było skupiać się tylko na jednej wersji źródłowej, ale teraz często istnieją jednocześnie oficjalne źródła, źródła lustrzane, wewnętrzne pamięci podręczne, wersje skwantowane i wersje tymczasowego przywracania. Można uruchomić każdą linię, ale wyniki nie mają już tej samej linii bazowej. Po rozwidleniu zestawu ewaluacyjnego zespół szybko straci wspólny język: Dział Badań i Rozwoju twierdzi, że ta wersja została ulepszona, a produkt twierdzi, że korzystanie z Internetu nie uległo zmianie. Osoby rozwiązujące problemy muszą najpierw potwierdzić, czy model się zmienił lub czy zmieniło się środowisko wnioskowania.

Najbardziej kłopotliwą rzeczą w tego typu widelcach jest to, że nie objawia się to od razu awarią. Pierwszego dnia różnica między obydwoma środowiskami wynosiła zaledwie 0,3 punktu. Drugiego dnia pewna próbka długiego tekstu zaczęła dryfować. Po wycofaniu trzeciego dnia stwierdziłem, że nie można odtworzyć starych wyników. Na tym etapie dyskusja nie dotyczy już pytania „czy możemy dostać model?” ale „czy to, co otrzymujemy, jest tym samym”.

To, co naprawdę powinno zostać zamknięte w pierwszej kolejności, to nie wejście do pobierania, ale linia bazowa. Przynajmniej następujące rzeczy muszą zostać przybite:

  • Hash, wersja tokenizera, metoda kwantyzacji i parametry wnioskowania pliku modelu.
  • Zestaw ocen, słowa podpowiedzi, parametry próbkowania i logika przetwarzania końcowego.
  • Hermetyzacja wnioskowania współdzielona przez usługi online i regresja offline, aby zapobiec dryfowaniu dwóch zestawów implementacji.
  • Zachowaj stary obraz i linię bazową podczas wycofywania, bez polegania na rekonstrukcji pamięci.

Te rzeczy mogą wydawać się trywialne, ale kiedy dostęp do modeli zaczyna być ograniczany, właśnie ta warstwa banalności jest naprawdę cenna. Bez nich zespół może jedynie postawić na następną aktualizację, stwierdzając: „tym razem wygląda dobrze”; dzięki nim mogą przynajmniej potwierdzić, czy problem leży w modelu, stosie wnioskowań, czy samym zbiorze danych.

Kiedy więc ta sprawa w końcu padnie na projekt, ocena stanie się bardzo prosta: czy model uda się uzyskać, to dopiero początek; to, czy ten sam zestaw danych wejściowych, ten sam zestaw parametrów i ten sam zestaw próbek można w sposób ciągły uruchamiać na tej samej linii, decyduje o tym, czy nadal można jej używać stabilnie. Dopóki zachowany zostanie kaliber porównawczy, w modelu nadal jest pole manewru; gdy kaliber będzie się różnił jako pierwszy, późniejsza wymiana, wycofanie i rozwiązywanie problemów staną się droższe.