Jak uzyskiwać spójne wyniki z modeli lokalnych
Modele lokalne wydają się nieprzewidywalne, gdy ten sam Prompt za każdym razem daje inny kształt: raz punkty, raz wypracowanie, raz przeprosiny plus wypracowanie. Większość tego to ustawienia i brak ograniczeń, a nie zepsuta instalacja. Da się sprawić, żeby streszczenia, wyciąganie i małe zadania kodu były na tyle powtarzalne, by używać ich w codziennej pracy.
Ta strona zakłada, że już piszesz jasny Prompt. Jeśli sformułowanie nadal jest luźne, najpierw przeczytaj Jak pisać lepsze Prompty do lokalnych modeli AI. Metody, które przeżywają testy, są zebrane w Co naprawdę działa.
Dlaczego odpowiedź się zmienia
Próbkowanie wybiera następny Token z pewną losowością. Wyższa temperatura (temperature) oznacza więcej losowości. Długi czat oznacza, że wcześniejsze reguły są dalej od ostatniego pytania. Otwarty Prompt („napisz coś pomocnego”) ma wiele poprawnych dokończeń, więc próbnik ma miejsce, żeby zbaczać. Zmniejszasz rozrzut, zmniejszając to miejsce: niższa temperatura, Seed gdy potrzebujesz prawdziwego powtórzenia, format z małą swobodą, krótki kontekst i model, którego nie prosisz o pięć zadań naraz.
1. Obniż temperaturę, zanim przepiszesz Prompt
Przy zadaniu, które chcesz powtarzać, ustaw temperaturę między 0,1 a 0,3. Zostaw top-p na domyślnej wartości aplikacji, chyba że wiesz, po co ją zmieniasz. Potem uruchom identyczny Prompt trzy razy.
Ten sam Prompt, trzy zamiary:
- Temperatura 0,9: możesz dostać 3, 5 albo 4 zasady plus przyjazny wstęp przy części uruchomień. Sformułowania skaczą. Nie oceniaj jeszcze Promptu.
- Temperatura 0,2: w większości uruchomień powinieneś dostać 4 zasady. Sformułowanie nadal trochę się zmienia. To normalne.
- Temperatura 0: najbardziej powtarzalna i czasem najbardziej mdła. Użyj jej do wyciągania. Do pisania zwykle wystarcza 0,2.
Zmieniłeś za dużo i zostawiłeś ustawienie, które tasuje wynik. Zamroź Prompt, obniż temperaturę i dopiero wtedy popraw jedną linię, jeśli format nadal jest zły.
2. Użyj Seed, gdy porównujesz Prompty
Ollama, LM Studio i część innych programów pozwala ustawić Seed. Ten sam model, ten sam Prompt, ten sam Seed i te same ustawienia próbkowania powinny wrócić prawie identyczne. Tak sprawdzasz, czy zmiana sformułowania pomogła.
Praktyczne porównanie:
- Ustaw temperaturę na 0,2 i Seed na 42.
- Zapisz wynik Promptu A.
- Zmień jedną linię, żeby zrobić Prompt B. Zostaw Seed.
- Porównaj A i B. Jeśli B jest lepsze, zostaw je, a potem raz spróbuj Seed 43, żeby zobaczyć, czy format nadal się trzyma.
Jeśli aplikacja nie ma sterowania Seed, nie dostaniesz powtórzeń co do bitu. Nadal możesz wymagać formatu i niskiej temperatury, a tego właśnie potrzebujesz na co dzień. Seed jest do testów, nie dla kogoś, kto czyta streszczenie.
3. Zrób format, od którego trudno zboczyć
Im ciaśniejszy kształt, tym mniej może zrobić próbnik. Etykiety są lepsze niż „uporządkuj to”.
Jeśli model nadal dokleja zalecaną odpowiedź, postaw zakaz w osobnej ostatniej linii: „Nie pisz odpowiedzi.” Reguły z ostatniej linii są słuchane częściej niż reguły zakopane w środku.
4. Dodaj jednoliniowe sprawdzenie przy kruchych formatach
Użyj tego do JSON, tabel i dokładnych liczb. Nie używaj tego do zwykłej prozy.
Przeczytaj wynik. Jeśli widzisz akapit zaczynający się od „Sprawdziłem JSON”, model pokazuje sprawdzenie. Dodaj „Zwróć tylko JSON” albo usuń sprawdzenie i polegaj na liście kluczy. Niektóre małe modele nie potrafią sprawdzić po cichu. Wtedy sama lista kluczy jest lepszym Promptem.
Nie ma czego sprawdzać. Dostaniesz sztywną wiadomość, a czasem akapit o jakości. Zamiast tego ogranicz liczbę słów.
5. Trzymaj kontekst krótko
Reguły sprzed dziesięciu wiadomości łatwo wypadają małemu modelowi. Przy zadaniu, które ma się powtarzać, nie ciągnij czatu. Zacznij nową sesję albo wklej reguły jeszcze raz na górze ostatniej wiadomości.
Układ, który zostaje stabilny:
- Jedna wiadomość systemowa albo pierwsza z regułami.
- Jedna wiadomość użytkownika z tekstem źródłowym.
- Jeśli potrzebujesz poprawki: nowy czat, który zawiera reguły plus poprzedni wynik, a nie całą historię.
Często nie wie. Wklej format jeszcze raz. „Tak jak wcześniej” nie jest formatem.
6. Dopasuj rozmiar modelu do zadania
Mniejszy model z wąskim Promptem często jest bardziej spójny niż większy model ogólny z niechlujnym Promptem, ale to nie magia. Użyj małego modelu do przeróbek, wyciągania i krótkich streszczeń tekstu, który sam podajesz. Użyj większego modelu lokalnego, gdy zadanie wymaga dłuższego kodu albo rozumowania w kilku krokach. Nie proś modelu 3B o recenzję pliku na 400 linii i nie oczekuj stabilnej recenzji.
Jeśli format trzyma się na modelu 7B, a rozpada na modelu 3B, zostaw Prompt i zmień model. Nie dokładaj reguł, aż mały model zostanie zasypany.
Lista, którą da się powtarzać
- Zapisz format jako etykiety, liczbę albo klucze JSON.
- Tekst źródłowy daj po regułach, za wyraźną etykietą.
- Ustaw temperaturę na 0,2 przy wszystkim, czemu chcesz ufać.
- Ustaw maksymalny limit Tokenów trochę powyżej odpowiedzi, o którą prosiłeś.
- Uruchom dwa razy. Jeśli kształt się różni, zacieśnij ostatnią linię, zanim dodasz nowe reguły.
- Jeśli porównujesz dwa sformułowania, ustaw Seed.
- Jeśli czat jest długi, zacznij od nowa i wklej reguły jeszcze raz.
Czym spójność nie jest
- To nie są identyczne zdania za każdym razem, chyba że temperatura jest blisko 0, a Prompt jest bardzo ciasny.
- Nie sprawia, że model cytuje prawdziwe źródła, których nie widzi. Wklej źródło.
- Nie zdejmuje obowiązku przeczytania wyniku. Stabilna zła odpowiedź nadal jest zła. Przy wyciąganiu sprawdź dwa pola względem oryginalnego tekstu.
- Nie poprawia jej wklejenie ogromnego wstępu „jesteś ekspertem, który nigdy nie popełnia błędów”. Ta linia nie zmienia próbkowania.
Gdy Prompt jest stabilny, zapisz go. Biblioteka Promptów to zestaw punktów startowych, które możesz trzymać obok własnych. Jeśli nie wiesz, czy zapisany Prompt jest za długi na okno kontekstu, oszacuj go Licznikiem Tokenów, zanim dołączysz duży plik.