Sprzeczne wymagania
Dowiedz się, jak sprzeczne ograniczenia dezorientują model i prowadzą do wymijających odpowiedzi.
Sprzeczne wymagania to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.
Problem sprzeczności
Prompt zawierający sprzeczne wymagania nakazuje modelowi spełnić jednocześnie dwa cele, których nie da się w pełni osiągnąć. W przeciwieństwie do nieprecyzyjności — w której problemem jest zbyt mała ilość informacji — sprzeczności dostarczają modelowi konfliktowych informacji i zmuszają go do arbitralnego kompromisu.
Model nie poinformuje, że wymagania są sprzeczne. Wygeneruje wynik, ale po cichu poświęci jedno z wymagań, aby spełnić drugie. Może to pozostać niezauważone, dopóki dokładnie nie przeanalizuje się wyniku.
Klasyczna sprzeczność 1: krótko, ale wyczerpująco
„Napisz krótki przegląd, który wyczerpująco omawia wszystkie aspekty przetwarzania w chmurze.”
Krótki oznacza zwięzły. Wyczerpujący oznacza szczegółowy. W przypadku tak szerokiego tematu jak przetwarzanie w chmurze te dwa cele nie mogą współistnieć. Jedno z nich trzeba poświęcić.
Model zazwyczaj stawia na szeroki zakres tematów kosztem ich głębszego omówienia, tworząc płytki przegląd przypominający listę. Jednocześnie w pierwszym zdaniu nazwie go „wyczerpującym”, tworząc fałszywe poczucie kompletności.
Rozwiązanie: należy zdecydować, co jest ważniejsze, a następnie zawęzić zakres. „Krótki przegląd 3 najważniejszych modeli przetwarzania w chmurze” pozwala osiągnąć oba cele.
Klasyczna sprzeczność 2: formalnie, ale z humorem
„Napisz formalny raport, który będzie jednocześnie zabawny i angażujący.”
Formalny styl pisania opiera się na konwencjach: wyważonym języku, trzeciej osobie, uporządkowanych sekcjach i braku kolokwializmów. Zabawny i angażujący styl zazwyczaj wykorzystuje humor, pierwszą lub drugą osobę, zaskakujące ujęcia i emocjonalne haczyki. Te style aktywnie się wykluczają.
Rozwiązanie: należy wybrać poziom formalności. „Pisz w profesjonalnym, ale konwersacyjnym tonie — bez sztywności, ale też bez nadmiernej swobody.” Jest to spójna instrukcja; sprzeczność zostaje rozwiązana przez wybranie i precyzyjne nazwanie poziomu pośredniego.
Klasyczna sprzeczność 3: prosto, ale szczegółowo
„Wyjaśnij splątanie kwantowe w prosty sposób i z pełnymi szczegółami.”
Uproszczenie wymaga abstrakcji — ukrywania złożoności i pomijania niuansów. Pełna szczegółowość wymaga czegoś przeciwnego. W przypadku tematów technicznych nie da się jednocześnie zachować maksymalnej prostoty i maksymalnego poziomu szczegółowości.
Rozwiązanie: należy określić grupę docelową i jej poziom wiedzy, a następnie dostosować głębokość wyjaśnienia do tej decyzji. „Wyjaśnij splątanie kwantowe studentowi fizyki na poziomie studiów licencjackich — załóż, że zna funkcje falowe, ale nie zna QFT.” To polecenie jest konkretne i możliwe do wykonania, ponieważ definicja odbiorcy wskazuje właściwy poziom szczegółowości.
Wykrywanie sprzeczności przed wysłaniem
Przed wysłaniem promptu zawierającego wiele instrukcji należy szybko sprawdzić, czy nie zawiera on sprzeczności:
- Wypisać wszystkie instrukcje i ograniczenia
- W przypadku każdej pary zadać pytanie: czy można spełnić oba wymagania jednocześnie, bez kompromisów?
- Jeśli para jest sprzeczna, zdecydować, które wymaganie ma pierwszeństwo
- Wyraźnie określić ten priorytet w prompcie
W przypadku złożonego promptu zajmuje to 30–60 sekund i pozwala uniknąć frustrującej sytuacji, w której dopiero po fakcie okazuje się, że otrzymany wynik nie może spełniać wszystkich wysuniętych wymagań.
Problem częściowej sprzeczności
Nie wszystkie sprzeczności są absolutnymi przeciwieństwami. Niektóre instrukcje częściowo się nakładają, przez co spełnienie jednej utrudnia spełnienie drugiej:
- „Bez żargonu” + „technicznie precyzyjnie” — precyzja techniczna często wymaga terminologii technicznej
- „Obiektywnie” + „przekonująco” — przekonywanie zakłada wybiórcze przedstawianie faktów
- „Kreatywnie” + „spójnie z tonem marki” — ograniczenia kreatywne zmniejszają zakres twórczej swobody
Częściowe nakładanie się wymagań prowadzi do częściowo poprawnych wyników, które wydają się nieco nietrafione. Model idzie na kompromis w obu kwestiach, zamiast w pełni zrealizować którekolwiek z wymagań.
Rozwiązywanie sprzeczności za pomocą instrukcji określających priorytety
Najbardziej przejrzystym sposobem rozwiązania sprzeczności jest jawne określenie priorytetu:
- „Należy zachować jak największą zwięzłość, uwzględniając te 5 punktów. Jeśli nie można w pełni omówić któregoś punktu w określonym limicie słów, należy podsumować go w jednym zdaniu, zamiast go pomijać.”
- „Należy dążyć do profesjonalnego tonu, ale jeśli trzeba wybrać między sztywno formalnym a swobodnym i angażującym stylem, należy skłonić się ku temu drugiemu.”
- „Należy przedkładać dokładność nad prostotę. Jeśli dane pojęcie wymaga terminologii technicznej, należy jej użyć i zdefiniować ją przy pierwszym użyciu.”
Instrukcje określające priorytety eliminują konieczność zgadywania przez model, jak rozstrzygnąć dany kompromis.
Wykrywanie sprzeczności w kodzie
W przypadku zautomatyzowanych potoków generowania promptów można dodać wstępną kontrolę sprzeczności, wykonując drugie wywołanie modelu przed wygenerowaniem właściwej treści:
import openai
client = openai.OpenAI(api_key='sk-...')
def check_for_contradictions(prompt_text):
check_prompt = f'''Review the following prompt for contradictory requirements.
List any pairs of instructions that conflict with each other.
For each conflict, suggest how to resolve it.
If there are no conflicts, say "No contradictions found."
Prompt to review:
---
{prompt_text}
---'''
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': check_prompt}]
)
return response.choices[0].message.content
# Example
test_prompt = '''Write a brief but comprehensive guide to machine learning
that is both simple for beginners and technically detailed for experts.
Keep it under 200 words. Formal and professional but also fun and engaging.'''
print(check_for_contradictions(test_prompt))Sprzeczności dotyczące tonu: bliższe spojrzenie
Sprzeczności dotyczące tonu są szczególnie częste, ponieważ wiele określeń tonu opisuje skale, których końce są domyślnie przeciwstawne:
- Formalny ←————————→ Swobodny
- Autorytatywny ←————→ Przystępny
- Pilny ←——————————→ Spokojny
- Zwięzły ←—————————→ Objaśniający
Połączenie określeń z przeciwnych końców tej samej skali tworzy sprzeczność. Zamiast używać dwóch przeciwstawnych terminów, należy określić, w którym miejscu skali chce się znaleźć, i użyć określenia odpowiadającego temu punktowi: „konwersacyjny, ale profesjonalny” lub „bezpośredni, ale nie chłodny”.
Sprzeczności dotyczące zakresu
Sprzeczności dotyczące zakresu pojawiają się, gdy zakres treści i limit długości są ze sobą niezgodne:
- „Omów wszystkie 10 funkcji w 100 słowach” — 10 słów na funkcję nie wystarczy do jej znaczącego omówienia
- „Przedstaw kompleksową analizę z przykładami dla każdego punktu, tak aby można ją było przeczytać w 2 minuty”
- „Przedstaw pełne porównanie 5 produktów w 8 wymiarach w jednym akapicie”
Są to sprzeczności matematyczne. Rozwiązanie zawsze polega na zmniejszeniu zakresu albo zwiększeniu limitu długości. Jeśli oba wymagania wydają się niepodlegające negocjacjom, zadanie należy podzielić na kilka wyników.
Sprzeczności dotyczące odbiorców
Prompt może zawierać sprzeczne informacje dotyczące odbiorców:
- „Napisz tekst zarówno dla początkujących, jak i ekspertów” — poziom szczegółowości odpowiedni dla jednej grupy będzie nieodpowiedni dla drugiej
- „Napisz tekst dla zespołu technicznego i jego nietechnicznego kierownictwa” — problem jest taki sam
- „Tekst ma być przystępny dla wszystkich czytelników, niezależnie od ich wiedzy wyjściowej” — to zbyt szeroko określona grupa odbiorców, której nie da się realistycznie obsłużyć
Rozwiązanie: należy wybrać główną grupę odbiorców i pisać z myślą o niej. Jeśli potrzebne są dwie wersje, należy uruchomić szablon dwukrotnie, używając różnych zmiennych odbiorców, zamiast próbować stworzyć jeden wynik, który będzie słabo odpowiadał potrzebom obu grup.
Sprawdzenie wiedzy: sprzeczne wymagania
Należy napisać ogłoszenie produktu dotyczące nowego narzędzia programowego dla przedsiębiorstw. Ma ono być: (1) ekscytujące i entuzjastyczne, (2) formalne i odpowiednie dla odbiorców na stanowiskach dyrektorskich, (3) krótsze niż 80 słów oraz (4) obejmować wszystkie 7 nowych funkcji. Którą sprzeczność należy rozwiązać w pierwszej kolejności?
Podsumowanie: sprzeczne wymagania
Sprzeczne wymagania to instrukcje, których nie da się jednocześnie w pełni spełnić. W przeciwieństwie do niejasności sprzeczności dostarczają modelowi zbyt wielu wzajemnie wykluczających się informacji. Model po cichu rozstrzygnie sprzeczność, poświęcając jeden cel na rzecz drugiego, bez informowania o tym.
Klasyczne pary to: zwięzłe+wyczerpujące, formalne+zabawne, proste+szczegółowe. Sprzeczności można wykrywać, wypisując wszystkie instrukcje i sprawdzając je parami. Należy je rozwiązywać przez określenie priorytetu, znalezienie określenia pośredniego albo podzielenie zadania na kilka wyników.
W następnej lekcji zajmą się Państwo brakującym kontekstem — trzecią główną kategorią błędów w promptach.
Często zadawane pytania
Czy lekcja „Sprzeczne wymagania” jest bezpłatna?
Tak — pełny tekst „Sprzeczne wymagania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.
Co nauczysz się w „Sprzeczne wymagania”?
Dowiedz się, jak sprzeczne ograniczenia dezorientują model i prowadzą do wymijających odpowiedzi. Ćwiczysz AI Prompt Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Prompt Engineering?
Nie wymagamy żadnego doświadczenia. AI Prompt Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Sprzeczne wymagania”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Prompt Engineering?
Tak. Każda lekcja AI Prompt Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Nadmiernie nieprecyzyjne instrukcje
- Sprzeczne wymagania
- Błędy wynikające z braku kontekstu
- Diagnozowanie i naprawianie złych promptów