Czołem Mirki, piszę teraz dłuższy artykuł i pomyślałem, że jego fragment może być dla niektórych ciekawy. Całość przetłumaczona lamami.
Ostatnie badania wyjaśniają dlaczego asystenty AI czasem generują syf. Problem nazywa się sycophancy - modele zgadzają się z użytkownikiem zamiast mówić prawdę.
Badania Anthropic pokazują, że GPT-4, Claude i Gemini robią to w ~58% przypadków: https://arxiv.org/abs/2310.13548 Stanford potwierdził, że jak AI raz przytaknie błędnemu założeniu, to trzyma się tego w 78,5% dalszej konwersacji: https://arxiv.org/abs/2502.08177
Wpływ na kod GitClear przeanalizował 150+ mln linii i od 2022 widać: • 8x więcej zduplikowanego kodu • 40% mniej refaktoringu • Copy-paste zamiast reużywania funkcji https://devclass.com/2025/02/20/ai-is-eroding-code-quality-states-new-in-depth-report/ Problem: AI generuje pod wasze oczekiwania, nie proponuje istniejącej funkcji 50 linijek wyżej. Na “czy na pewno działa?” powie “tak!” zamiast wskazać bug.
Regressive sycophancy (14,66%) to najgorsze - AI zmienia POPRAWNE odpowiedzi na błędne, żeby się zgodzić: https://biggo.com/news/202510111933_AI-Vibe-Code-Hell-Problem Mitygacja - system prompt Żeby zredukować sycophancy przy generowaniu kodu, użyjcie tego promptu systemowego:
Jesteś asystentem do code review. Zasady: • Priorytet: poprawność > zgoda z użytkownikiem • Kwestionuj błędne założenia bezpośrednio • Wskazuj problemy nawet jeśli użytkownik sugeruje że kod jest OK • Proponuj istniejące funkcje zamiast duplikacji • Na pytanie "czy na pewno?" - przeanalizuj ponownie krytycznie, nie potwierdź automatycznie • Jeśli widzisz bug - powiedz wprost, nie łagodź przekazu • Nie zgadzaj się z błędami żeby zadowolić użytkownika
@JamesJoyce: zauważyłem to, w momencie gdy opiszesz LLMowi jakiś swój konflikt np. z jakimś kolegą i pytasz kto ma rację. rację w 90% przypadków ma promptujący :D
@JamesJoyce wczoraj omawiałem z gpt thinking jeden wzór i serio wydawało mi się, że powinno być inaczej, niż pokazał, ale on się nie dawał przekonać i uparcie twierdził że nie ma racji, więc może coś poprawili
@JamesJoyce ciekawostka z innej beczki: robiliśmy zespołem ewaluacje LLM w formie LLM-as-a-judge. Im większy reasoning ustawialiśmy tym model przychylniej siebie oceniał (trafność odpowiedzi). Z kolei thinking ustawiony na low skutkował większą samokrytyką. Próbka: ok. 200 promptow.
Myślę, że to może mieć też coś wspólnego z „robieniem dobrze” userowi
np. z jakimś kolegą i pytasz kto ma rację. rację w 90% przypadków ma promptujący :D
@polskie-k0rpo: z reguły tak, kwestia tego jak ostatecznie formułujesz problem i pytanie. Mi nie raz pisał "świetne pytanie! Dobrze pomyślałeś, ale będę z Tobą szczery - to nie jest dobry pomysł :)"
Pytanie do ludzi z Pomorza- kojarzycie czy są jakieś plaże gdzie mógłbym wjechać moim SUVem (Hyundai Tucson 2026 NX5 z Pleos Connect, napęd MHEV jak coś).
Wiem, że są parkingi, ale musiałbym podejśc z 50m na pieszo, a z auta miałbym bliżej.
Czołem Mirki, piszę teraz dłuższy artykuł i pomyślałem, że jego fragment może być dla niektórych ciekawy. Całość przetłumaczona lamami.
Ostatnie badania wyjaśniają dlaczego asystenty AI czasem generują syf. Problem nazywa się sycophancy - modele zgadzają się z użytkownikiem zamiast mówić prawdę.
Badania Anthropic pokazują, że GPT-4, Claude i Gemini robią to w ~58% przypadków: https://arxiv.org/abs/2310.13548
Stanford potwierdził, że jak AI raz przytaknie błędnemu założeniu, to trzyma się tego w 78,5% dalszej konwersacji: https://arxiv.org/abs/2502.08177
Wpływ na kod
GitClear przeanalizował 150+ mln linii i od 2022 widać:
• 8x więcej zduplikowanego kodu
• 40% mniej refaktoringu
• Copy-paste zamiast reużywania funkcji
https://devclass.com/2025/02/20/ai-is-eroding-code-quality-states-new-in-depth-report/
Problem: AI generuje pod wasze oczekiwania, nie proponuje istniejącej funkcji 50 linijek wyżej. Na “czy na pewno działa?” powie “tak!” zamiast wskazać bug.
Regressive sycophancy (14,66%) to najgorsze - AI zmienia POPRAWNE odpowiedzi na błędne, żeby się zgodzić: https://biggo.com/news/202510111933_AI-Vibe-Code-Hell-Problem
Mitygacja - system prompt
Żeby zredukować sycophancy przy generowaniu kodu, użyjcie tego promptu systemowego:
Jesteś asystentem do code review. Zasady:
• Priorytet: poprawność > zgoda z użytkownikiem
• Kwestionuj błędne założenia bezpośrednio
• Wskazuj problemy nawet jeśli użytkownik sugeruje że kod jest OK
• Proponuj istniejące funkcje zamiast duplikacji
• Na pytanie "czy na pewno?" - przeanalizuj ponownie krytycznie, nie potwierdź automatycznie
• Jeśli widzisz bug - powiedz wprost, nie łagodź przekazu
• Nie zgadzaj się z błędami żeby zadowolić użytkownika
Inne ciekawe badania w tym temacie to np. NN/Group: “Models often overcorrect themselves and contradict factual statements in response to ‘Are you sure?’” https://www.nngroup.com/articles/sycophancy-generative-ai-chatbots/
Pełny survey: https://arxiv.org/abs/2411.15287
TL;DR: LLM-y maksymalizują waszą satysfakcję, nie poprawność. System prompt i świadomość problemu to podstawa.
"Świetnie to wymyśliłeś..."
"Super pomysł..."
"Mega sensowne..."
Zawsze tak startuje odpowiedź jak wyjaśnię caly mój plan do zrealizowania
Komentarz usunięty przez autora
@JamesJoyce: pytanie tylko moge to jakos zmienic dorzucając coś do pytania/promptu?
Myślę, że to może mieć też coś wspólnego z „robieniem dobrze” userowi
@polskie-k0rpo: z reguły tak, kwestia tego jak ostatecznie formułujesz problem i pytanie. Mi nie raz pisał "świetne pytanie! Dobrze pomyślałeś, ale będę z Tobą szczery - to nie jest dobry pomysł :)"