Prompting má povesť toho, že je „vibes-based.“ Ty napíšete niečo, model odpovedá, vy upravíte vetu, to dostane lepšie, a budete pokračovať, kým to nefunguje – ak to funguje. mierne Je to nočná mora pre čokoľvek vážne: text dodržiavania predpisov, dátové potrubia, generovanie kódu alebo výstupy „prosím, nehanbite ma pred tímom“. Takže tu je upgrade: . Prompt Reverse Engineering To je presne to, čo to znie: , potom aplikujte cielené opravy - ako je debugging, nie hádanie. use the model’s wrong answer to backtrack into what your prompt failed to define Premýšľajte o zlom výstupu ako o spôsobe, akým váš model hovorí: „Nepovedal si mi, na čom záleží.“ „Nepovedal si mi, na čom záleží.“ Premeňme to na opakujúci sa pracovný postup. Prečo reverzné inžinierstvo beats náhodné prompt tweaking Dokonca aj keď napíšete výzvu „dobre vyzerajúci“ (jasná otázka, zdvorilý tón, rozumné obmedzenia), modely stále chýbajú: časové okno, o ktoré sa staráte, úplnosť, ktorú očakávate formát, ktorý váš downstreamový kód potrebuje, úlohu, v ktorej chce model zostať, Definícia slova „správny“. Inverzné inžinierstvo vám dáva metódu na nájdenie chýbajúcich špecifikácií - bez toho, aby ste nafoukli svoj pohotovosť do románu. fast Štyri spôsoby zlyhania (a to, čo vám skutočne hovoria) Väčšina okamžitých porúch spadá do jedného z týchto zásobníkov. Ak môžete názov zásobníka, môžete zvyčajne opraviť výzvu v jednom priechode. 1) Skutočné zlyhania Odpoveď spoľahlivo uvádza nesprávne fakty, mieša roky alebo vymýšľa čísla. Symptom: Vedomostné úlohy: správy o trhu, akademické písanie, súhrny politík. Typical trigger: What your prompt likely missed: výslovný časový rozsah („kalendárny rok 2023“ v porovnaní s „posledných 12 mesiacov“), zdrojové požiadavky (citácie, pomenované dátové súbory), Fallback správanie, keď model nevie. Pýtaš sa : Model odpovedá pomocou čísel z roku 2022 a nikdy nehovorí, kde ich dostal. Example (UK-flavoured): „Analýza troch popredných značiek vozidiel podľa globálneho predaja v roku 2023.“ Prompt patch pattern: Pridajte „hranicu faktov“: rok, geografia, jednotka. Vyžadujú citácie alebo transparentné "Nie som si istý" spätné väzby. Požiadajte ho, aby uviedol údaje, ak nie sú k dispozícii presné čísla. 2) Zlomená logika / chýbajúce kroky Výsledok sa zdá byť pravdepodobný, ale preskočí kroky, preskočí závery alebo poskytne „okruh“, ktorý predstiera, že je procesom. Symptom: Postupy, riešenie problémov, viacstupňové uvažovanie, architektonické plány. Typical trigger: What your prompt likely missed: „Zahŕňa všetky základné kroky“ „Vysvetliť závislosť / objednávku“ „Použite pevný rámec (kontrolný zoznam / potrubie / recept)“ Pýtaš sa : Zoznamuje iba „robenie chýbajúcich hodnôt“ a „odstránenie výpadkov“ a nazýva to deň. Example: Vysvetlite úplný pracovný postup na čistenie údajov v Pythone. Prompt patch pattern: Silu sekvencie (A → B → C → D). Vyžaduje dôvod pre objednávku. Vyžaduje test rozhodnutia („Ako viem, že je tento krok potrebný?“). 3) Formát Drift Požiadate o tabuľku Markdown / JSON / YAML / kódový blok ... a vráti priateľský odsek, ako keď píše blogový príspevok. Symptom: Všetko, čo znamenalo pre stroje: štruktúrované výstupy, konfiguračné súbory, nákladové hodnoty, tabuľky. Typical trigger: What your prompt likely missed: prísnosť („výstup iba platný JSON“), obmedzenia schémy (klávesy, typy, požadované polia), krátky príklad (niekoľko snímok) model môže napodobňovať. Pýtaš sa : Reaguje v próze a zmieša predajcu + dátum vydania v jednej vete. Example: "Dajte mi tabuľku Markdown troch populárnych LLM." Prompt patch pattern: Pridajte schému, plus „žiadne ďalšie kľúče“. Pridajte „žiadna próza mimo bloku“. Uveďte malý príklad riadku. 4) Role / tónový drift Požiadate pediatra o vysvetlenie a dostanete abstrakt lekárskeho časopisu. Symptom: roleplay, zákaznícka podpora, coaching, zainteresované strany comms. Typical trigger: What your prompt likely missed: ako rola hovorí (úroveň čítania, teplo, tabu žargón), hlavným cieľom úlohy (upokojenie, presvedčenie, deeskalácia), zakázaný obsah („vyhnúť sa lekárskemu žargónu; definovať termíny, ak sú nevyhnutné“). Prompt patch pattern: Určte publikum („znepokojený rodič“, „mladší inžinier“, „CTO“). Uveďte pravidlá tónu („priateľský, nerozhodujúci, angličtina v Spojenom kráľovstve“). Zadajte do / don’t slovník. 5-stupňový pracovný postup reverzného inžinierstva Toto je kruh „zastaviť hádanie“. Udržujte ho ľahký. Vykonajte jednu zmenu naraz. Krok 1: Vyznačte odchýlku (označte presnú chybu) Napíšte očakávaný výstup ako kontrolný zoznam a potom zvýraznite, kde sa výstup líši. Príklad checklist: rok = 2023 / Trhový podiel Zoznam zdrojov Porovnanie top 3 značiek Ak nemôžete opísať miss presne, nemôžete to opraviť presne. Krok 2: Infer chýbajúce špecifikácie (výzva chyby) Pre každú odchýlku sa opýtajte: Aké pokyny by tomu zabránili? Akú nejednoznačnosť model „rovnal“ nesprávnym smerom? Typické nedostatky : chýbajúca hranica (čas, oblasť, jednotka) chýbajúce obmedzenia úplnosti, chýbajúca výstupná schéma, chýbajúce tónové/role obmedzenia Krok 3: Otestujte hypotézu s minimálnou prompt edit Nepíšte celý príkaz. Patch jednu chybu a znova spustiť. Ak sa výsledok zlepšuje očakávaným spôsobom, vaša hypotéza bola správna. Ak nie, nesprávne ste diagnostikovali – prejdite späť na krok 2. Krok 4: Použite cielený model optimalizácie Po potvrdení sa použije najmenšia trvanlivá fixácia: Hraničná doložka: „Použite údaje z roku 2023 (január – december); ak nie ste istí, povedzte to.“ Schéma klauzula: „Vráti platné JSON zodpovedajúce tejto schémy...“ Obsahová klauzula: „Zahrňte týchto 6 krokov...“ Tónová klauzula: „Vysvetliť ako som nový; vyhnúť sa žargónu.“ Krok 5: Zaznamenajte zmenu (budovať svoj prompt changelog) To je časť, ktorú väčšina ľudí vynechá - a časť, ktorá sa zmení na inžiniersku prax. Udržujte malý záznam: Pôvodný rýchly Výstupný model, ktorý zlyhal Nesprávna hypotéza Patch aplikácie Výsledok Postupom času vytvoríte osobnú knižnicu „spoločné zlyhanie → štandardný patch“. Úplný pracovný príklad: oprava príkazu „pracovný postup čistenia údajov“ Poďme urobiť vec správne. Počiatočná rýchlosť "Použitím Pythonu napíšte celý proces čistenia údajov pomocou krokov a kódu." "Použitím Pythonu napíšte celý proces čistenia údajov pomocou krokov a kódu." Zlý (zlý) výstup Vráti iba 2 položky: Vyplňte chýbajúce hodnoty Odstrániť outliers A odstraňuje kód bez kontextu, bez poriadku a bez kontroly rozhodnutí. Inverzná inžinierská diagnostika Deviation points Chýbajúce základné kroky (duplikáty, typové odlievanie, štandardizácia) Žiadny dôvod na príkaz Kód chýba komentáre a poznámky o uplatniteľnosti Prompt defects Žiadny zoznam „jadrových krokov“ → model si vyberie čiastočnú podskupinu Žiadne obmedzenie objednávky → modelové výstupy v ľubovoľnom poradí Žiadne "vysvetliť, kedy použiť" → kód sa stáva kopírovať / vložiť závoj Príslušenstvo (minimálne ale špecifické) Pomocou pandy popíšte celý pracovný postup na čistenie údajov v tomto poradí: duplikáty → 2) typy údajov → 3) chýbajúce hodnoty → 4) outliers. Pre každý krok zahŕňajú: účel, kedy sa aplikuje a komentovaný kód. Pomocou pandy popíšte celý pracovný postup na čistenie údajov v tomto poradí: duplikáty → 2) typy údajov → 3) chýbajúce hodnoty → 4) outliers. Pre každý krok zahŕňajú: účel, kedy sa aplikuje a komentovaný kód. Výsledok (čo vyzerá dobre) Nižšie je A príklad, ktorý môžete opätovne použiť. Upozorňujeme, že hardcode nie je slepé; my sa rozdeľujeme podľa dtypu. slightly tweaked fillna(0) import pandas as pd def clean_frame(df: pd.DataFrame) -> pd.DataFrame: # 1) Duplicates: reduce noise before anything else dup_count = df.duplicated().sum() if dup_count: df = df.drop_duplicates().copy() # 2) Types: make sure comparisons and maths behave # Example: parse dates if you expect time-series logic later if "created_at" in df.columns: df["created_at"] = pd.to_datetime(df["created_at"], errors="coerce") # 3) Missing values: strategy depends on data type and meaning for col in df.columns: if df[col].isna().any(): if pd.api.types.is_numeric_dtype(df[col]): # Use median for robustness (less sensitive than mean) df[col] = df[col].fillna(df[col].median()) else: # For categorical/text, choose a clear placeholder df[col] = df[col].fillna("Unknown") # 4) Outliers: apply only to numeric columns where it makes sense num_cols = df.select_dtypes(include="number").columns for col in num_cols: q1 = df[col].quantile(0.25) q3 = df[col].quantile(0.75) iqr = q3 - q1 if iqr == 0: continue # no spread, no meaningful outliers lower = q1 - 1.5 * iqr upper = q3 + 1.5 * iqr df = df[(df[col] >= lower) & (df[col] <= upper)] return df Toto nie je „dokonalé čistenie údajov“ (čo závisí od domény), ale je koherentný, obraniteľný plynovod s kontrolami rozhodnutí – presne to, čo váš pôvodný výzva nedokázala požadovať. je Skrytá pasca: hranice modelových schopností Niekedy je model nesprávny, pretože nemá údaje – najmä pre „posledné“ čísla. Ak uvidíte ten istý faktický zlyhanie po sprísnení hraníc a požiadaní o zdroje, prestaňte krútiť. Pridajte zdravý návrat: „Ak neviete, povedzte, že neviete.“ „Uveďte posledný rok, o ktorom ste si istí.“ „Navrhujem, aký zdroj by som mal konzultovať.“ To mení halucináciu na užitočnú odpoveď. Najčastejšie chyby (a ako sa im vyhnúť) Chyba č. 1: „Prosím, buď správny“ ako oprava Nie je to obmedzenie, je to prianie. Namiesto toho: definujte správnosť cez hranice + overenie + spätný odber. Chyba 2: Nadmerné obmedzovanie všetkého Ak opravíte jednu chybu pridaním desiatich nesúvisiacich pravidiel, dostanete okamžitú nadúvanie a horšie dodržiavanie. Patch defekt, nie vaša úzkosť. Chyba č. 3: Nevalidujte svoju hypotézu Nemôžete tvrdiť, že oprava fungovala, ak ju znova nespustíte s minimálnym patchom a uvidíte očakávané zlepšenie. Zaobchádzajte s ním ako s jednotkovým testom. Praktické návyky, ktoré robia túto palicu Udržujte taxonómiu zlyhania (fakty / logika / formát / úloha). Používajte one-patch-per-run pri debugovaní. Vytvorte prompt changelog (vážne, to je cheat kód). Ak potrebujete štruktúru, použite schémy + malé príklady. Keď potrebujete spoľahlivosť, požiadajte o zverejnenie neistoty. Nesprávne odpovede nie sú len nepríjemné - sú Ak sa naučíte ich čítať, prestanete „podnecovať“ a začnete . Informácie engineering