"Prvýkrát, keď som vytvoril pracovný postup agentov, bolo to ako sledovanie mágie, to znamená, že trvalo 38 sekúnd, kým som odpovedal na jednoduchú zákaznícku otázku a stál ma 1,12 dolára za žiadosť." Keď začnete budovať agentívne pracovné postupy, v ktorých autonómni agenti plánujú a konajú na viacstupňových procesoch, je ľahké sa dostať preč. Flexibilita je neuveriteľná! Stredisko v pracovných postupoch agentúry je miesto, kde sa zvyčajne objavujú problémy s výkonom a najlepšie príležitosti na optimalizáciu. Za posledný rok som sa naučil, ako urobiť tieto systémy dramaticky rýchlejšie a nákladovo efektívnejšie bez toho, aby som obetoval ich flexibilitu, a rozhodol som sa vytvoriť túto knihu. Predtým, ako som hovoril o optimalizácii, chcel som sa uistiť, že všetci viete, čo mám na mysli, keď používam nasledujúce slová: : Predetermined sequences that may or may not use an LLM altogether. Workflows Zástupcovia: Samoregulujú a môžu rozhodnúť, aké kroky urobiť a v akom poradí sa rozhodnú vykonať. Agentické pracovné postupy: Toto je hybrid, v ktorom nastavíte všeobecnú cestu, ale poskytnete agentom vo vašom pracovnom postupe slobodu pohybovať sa v určitých krokoch. Predtým, ako som hovoril o optimalizácii, chcel som sa uistiť, že všetci viete, čo mám na mysli, keď používam nasledujúce slová: Pracovné postupy: Preddefinované sekvencie, ktoré môžu alebo nemusia používať LLM vôbec. Zástupcovia: Samoregulujú a môžu rozhodnúť, aké kroky urobiť a v akom poradí sa rozhodnú vykonať. Agentické pracovné postupy: Toto je hybrid, v ktorom nastavíte všeobecnú cestu, ale poskytnete agentom vo vašom pracovnom postupe slobodu pohybovať sa v určitých krokoch. Odpočítajte krok Niečo, čo každý potrebuje mať na pamäti pri navrhovaní pracovných postupov agentov, je to, že každý modelový hovor pridáva latenciu.Každý ďalší skok je ďalšou šancou na časovanie.A nezabudnime na to, ako to tiež zvyšuje našu šancu na halucinácie, čo vedie k rozhodnutiam, ktoré sa robia, ktoré sa odkláňajú od hlavného cieľa. Usmernenia sú tu jednoduché: Zlúčenie súvisiacich krokov do jedného popruhu Vyhnite sa zbytočným mikro-rozhodnutiam, ktoré by jeden model mohol zvládnuť naraz Návrh na minimalizáciu okrúhlych ciest Keď navrhujem pracovný postup, vždy začínam s jedným agentom (pretože možno nepotrebujeme pracovný postup vôbec) a potom ho hodnotím proti určitým metrikám a kontrolám, ktoré mám na mieste. Na základe toho, kde zlyhá, začnem rozkladať časti, kde skóre hodnotenia nespĺňali minimálne kritériá, a od tej doby opakujem. Paralelizovať všetko, čo nemá závislosť Požičiavanie kontextu z vyššie uvedeného bodu, sekvenčné reťazce sú tiež pasce latencie. Ako príklad som chcel napodobniť pracovný postup agentúry zákazníckej podpory, kde môžem pomôcť zákazníkovi získať stav jeho objednávky, analyzovať pocit požiadavky a generovať odpoveď. Začal som postupným prístupom, ale potom som si uvedomil, že získanie stavu objednávky a analýza pocitu požiadavky nezávisí od seba. Akonáhle som mal tieto dve odpovede, som potom kŕmiť stav objednávky a sentiment zistené do generátora odpovede, a že ľahko oholil celkový čas prijatý z 12 sekúnd na 5. Odstráňte zbytočné modelové hovory Všetci sme videli príspevky online, ktoré hovoria o tom, ako ChatGPT môže dostať trochu iffy, pokiaľ ide o matematiku.No, to je naozaj dobrá pripomienka, že tieto modely neboli postavené pre to. Tiež, ak vieme, aký druh výpočtu, ktorý musí prebiehať, prečo nie len kódovať do funkcie, ktorá môže byť použitá, namiesto toho, aby sa LLM číslo, ktoré vyjde na vlastnú päsť? Ak pravidlo, regex, alebo malá funkcia to môže urobiť, preskočiť LLM hovor. Tento posun odstráni zbytočnú latenciu, znížiť tokenové náklady a zvýšiť spoľahlivosť všetko v jednom kroku. Zosúladiť model s úlohou „Nie každá úloha je postavená rovnako“ je základným princípom riadenia úloh a produktivity, uznávajúc, že úlohy sa líšia svojou povahou, požiadavkami a dôležitosťou. Rovnako musíme zabezpečiť, aby sme správnemu modelu priradili správne úlohy.Modely teraz prichádzajú v rôznych príchutiach a veľkostiach a nepotrebujeme model Llama 405B na vykonanie jednoduchej klasifikácie alebo úlohy extrakcie entít; namiesto toho by mal postačovať model 8B. V týchto dňoch je bežné vidieť ľudí, ktorí navrhujú svoje pracovné postupy agentov s najväčším modelom, ktorý je najhorší, ale to prichádza za cenu latencie. Čím väčší je model, tým viac sa vyžaduje počítač a teda latencia. Samozrejme, môžete ho hosťovať na väčšej inštancii a dostať sa s ním, ale to prichádza za cenu, doslova. Namiesto toho, spôsob, akým navrhujem pracovný postup, by bol začať s najmenším. Môj model je Llama 3.1 8B, ktorý sa ukázal ako verný bojovník pre rozložené úlohy. Začínam tým, že všetci moji agenti používajú model 8B a potom sa rozhodnem, či potrebujem nájsť väčší model, alebo ak je to dosť jednoduché, možno dokonca ísť dole na menší model. Okrem veľkosti, tam bolo veľa o tom, aké príchute LLM robia lepšie pri každej úlohe, a to je ďalšia úvaha, ktorú je potrebné vziať do úvahy, v závislosti od typu úlohy, ktorú sa snažíte splniť. Tribal vedomosti Prehodnoťte svoj prompt Je to bežné vedomosti teraz, ale keď prejdeme našimi hodnoteniami, máme tendenciu pridávať viac strážnych pruhov do výzvy LLM. To začína nafúknuť výzvu a zase ovplyvňuje latenciu. Existujú rôzne metódy na budovanie účinných výzvy, ktoré sa v tomto článku nedostanem, ale niekoľko metód, ktoré som nakoniec použil na zníženie času odozvy na okruh cesty, boli prompt Caching pre statické pokyny a schémy. To zahŕňalo pridanie dynamického kontextu na konci výzvy pre lepšie opätovné použitie vyrovnávacej pamäte.Nastavenie jasných limitov dĺžky odpovede tak, aby model nevyčerpal čas, čo mi poskytlo zbytočné informácie. Skryť všetko V predchádzajúcej časti som hovoril o promptnom vyrovnávaní, ale to by nemalo byť miesto, kde sa prestanete snažiť optimalizovať s vyrovnávaním. vyrovnávanie nie je len pre konečné odpovede; je to niečo, čo by sa malo aplikovať všade tam, kde je to možné. Dokonca môžete implementovať vyrovnávacie pamäte KV pre čiastočné stavy pozornosti a samozrejme pre všetky údaje špecifické pre reláciu, ako sú údaje o zákazníkoch alebo stavy snímačov.Pri implementácii týchto stratégií vyrovnávacej pamäte som bol schopný znížiť opakovanú latenciu práce o 40-70%. Špekulatívne dekódovanie Tu je jeden pre pokročilé davy: použite malý „návrh“ model rýchlo odhadnúť ďalší token a potom mať väčší model overiť alebo opraviť ich paralelne. Uložiť Fine-Tuning naposledy - a urobiť to strategicky Finetuning je niečo, o čom veľa ľudí hovorilo v prvých dňoch, ale teraz sa zdá, že niektorí z novších prijímačov LLM nevedia ani prečo alebo kedy ho použiť. No, to je niečo, o čom veľa ľudí nehovorí, ale je tu dôvod, prečo som hovoril o tejto optimalizácii naposledy, a budem sa k tomu dostať o niečo neskôr.Keď vylepšíte LLM na vykonanie úlohy, výzva požadovaná na záver je podstatne menšia ako to, čo by ste inak mali, pretože teraz, vo väčšine kontextov, to, čo vložíte do výzvy, je pečené do váh prostredníctvom procesu jemného nastavenia. To sa zase podáva do vyššie uvedeného bodu na zníženie vašej rýchlej dĺžky a tým aj ziskov latencie. Monitor bez námahy Toto je najdôležitejší krok, ktorý som urobil, keď som sa snažil znížiť latenciu. Toto vytvára základ pre niektorú z vyššie uvedených optimalizácií a dáva vám jasnosť o tom, čo funguje a čo nie. Čas na prvý token (TTFT) Tokeny za sekundu (TPS) Routingová presnosť Cache hit sadzba Koordinačný čas viacerých agentov Tieto metriky vám povedia, kde optimalizovať a kedy, pretože bez nich ste slepí. Spodná línia Najrýchlejšie, najspoľahlivejšie pracovné postupy agentov sa nestávajú len tak. Sú výsledkom nemilosrdného krokového rezania, inteligentnej paralelizácie, deterministického kódu, správneho rozmeru modelu a vyrovnávania všade tam, kde to dáva zmysel.