Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Velké jazykové modely (LLM) jsou výkonné, ale mají omezení. Potřebujete vědět, co můžou LLM ve výchozím nastavení dělat a jak je upravit, aby získaly nejlepší výsledky pro vaše aplikace generující umělé inteligence. Tento článek se zabývá hlavními problémy s LLM a ukazuje jednoduché způsoby jejich řešení a vylepšení způsobu generování obsahu bez ohledu na to, jaký druh generovaných funkcí umělé inteligence vytváříte.
Technické výzvy při práci s LLMs
Tady jsou nejdůležitější výzvy a omezení, které je potřeba vzít v úvahu při práci s LLM:
Omezení znalostí: LLMs vědí pouze to, na čem byly natrénovány do určitého data. Bez externích datových připojení nemají přístup k informacím v reálném čase ani k soukromým informacím.
Halucinace: LLM mohou generovat nepřesné nebo zavádějící informace. Funkce detekce založenosti v Microsoft Foundry pomáhá určit, zda jsou odpovědi jazykových modelů založené na zdrojových materiálech, které poskytujete. Neuzemněné odpovědi obsahují informace, které vaše data nepodporují. V tomto rychlém startu se dozvíte, jak používat detekci uzemnění.
Transparentnost: Zdroj ani přesnost generovaného obsahu nemůžete vždy sledovat a neexistuje žádný integrovaný krok ověření.
Žádné znalosti specifické pro doménu: LLMs nezná vaše interní nebo proprietární data, pokud je neintegrujete.
Nemožnost učit se z interakcí: LLM nemají paměť ani povědomí o minulých interakcích, takže se nemůžou v průběhu času přizpůsobovat ani vylepšovat na základě zpětné vazby uživatelů. Pokud chcete tyto výzvy překonat a získat nejlepší výsledky, doplňte znalosti LLM vlastními daty a použijte ověřovací nástroje.
Kde LLM získávají své informace
LLM se trénují na velkých datových sadách z knih, článků, webů a dalších zdrojů. Jejich odpovědi odrážejí vzory v těchto datech, ale nic, co se stalo po trénování, není zahrnuté. Bez externích připojení nemají LLM přístup k informacím v reálném čase ani procházet internet, což může vést k zastaralým nebo neúplným odpovědím.
Faktory, které ovlivňují fungování odvození
Když použijete LLM, může to vypadat, jako by si model zapamatuje celou konverzaci. Každá nová výzva, kterou odešlete, obsahuje všechny předchozí výzvy a odpovědi modelu. LLM použije tuto úplnou historii jako kontext k vytvoření další odpovědi. Tato historie běhu je kontextové okno.
Každý LLM má maximální velikost kontextového okna, která se mění podle modelu a verze. Pokud vaše konverzace překročí tento limit, model zahodí nejstarší části a ignoruje je v odpovědi.
Delší kontextová okna vyžadují, aby model zpracoval více dat, což může zpomalit proces a zvýšit náklady.
Velikost kontextového okna používá tokeny, nikoli slova. Tokeny jsou nejmenší části textu, které model dokáže zpracovat – tyto části můžou být celá slova, části slov nebo jednotlivé znaky v závislosti na jazyce a tokenizátoru.
Pro vývojáře přímo ovlivňuje využití tokenů:
- Maximální množství historie konverzací, které model může zvážit (kontextové okno)
- Náklady na jednotlivé výzvy a dokončení, protože fakturace je založena na počtu zpracovaných tokenů.
Co je tokenizace?
Tokenizace je proces rozdělení textu na tokeny – nejmenší jednotky, které model dokáže zpracovat. Tokenizace je nezbytná pro trénování i odvozování pomocí LLM. V závislosti na jazyce a tokenizátoru mohou být tokeny celá slova, části slov, nebo dokonce jednotlivé znaky. Tokenizace může být stejně jednoduchá jako rozdělení pomocí mezer a interpunkce nebo složité jako použití algoritmů, které představují strukturu jazyka a morfologii.
Stránka tokenizátoru OpenAI podrobně vysvětluje tokenizaci a obsahuje kalkulačku, která ukazuje, jak se věty rozdělují na tokeny.
V typickém anglickém textu je jeden token asi čtyři znaky. V průměru je 100 tokenů přibližně 75 slov.
Následující knihovny pomáhají vývojářům odhadnout počty tokenů pro výzvy a dokončení, což je užitečné při správě limitů a nákladů na kontextové okno:
- knihovna tiktoken (Python a JavaScript)
- knihovna Microsoft.ML.Tokenizers (.NET)
Využití tokenů má vliv na fakturaci
Každé Azure rozhraní OpenAI API má jinou metodologii fakturace. Pro zpracování a generování textu pomocí rozhraní API pro odpovědi nebo dokončování chatu se vám účtuje počet tokenů, které odešlete jako výzvu, a počet tokenů, které se vygenerují v důsledku (dokončení).
Každý model LLM (například GPT-5.2 nebo GPT-5.2-mini) má obvykle jinou cenu, což odráží množství výpočtů potřebných ke zpracování a generování tokenů. Často se cena prezentuje jako "cena za 1 000 tokenů" nebo "cena za 1 milion tokenů".
Tento cenový model má významný vliv na to, jak navrhujete interakce uživatelů a množství předzpracování a následné zpracování, které přidáte.
Systémové výzvy vs. výzvy uživatelů
Zatím tento článek probíral výzvy uživatelů. Výzva uživatele je to, co odesíláte do modelu a na co model odpovídá.
OpenAI také přidal příkazový řádek systému (nebo vlastní pokyny). Systémová výzva je sada pravidel, která přidáte do každého chatu. Můžete například říct LLM, aby "vždy odpověděl ve formě haiku". Od té chvíle bude každá odpověď ve formě haiku.
Tento příklad haiku ukazuje, jak můžete změnit odpovědi LLM změnou výzvy.
Proč změnit výzvu uživatele? Pokud vytváříte generující aplikaci AI pro práci, zákazníky nebo partnery, můžete chtít přidat pravidla, která omezí, na co může model odpovědět.
Změna výzvy uživatele je ale jen jedním ze způsobů, jak vylepšit generování textu.
Metody pro zlepšení prostředí generování textu pro uživatele
Aby se zlepšily výsledky generování textu, vývojáři jsou omezeni na pouhé vylepšení podnětu a existuje mnoho technik podnětů, které mohou pomoci. Pokud ale vytváříte vlastní aplikaci generující AI, existuje několik způsobů, jak vylepšit prostředí generování textu pro uživatele a můžete chtít experimentovat s implementací všech těchto aplikací:
- Programově upravte výzvy uživatele.
- Implementujte kanál odvozování.
- Retrieval-Augmented Generace (probíraná v jiných článcích).
- Vyladění (probírané v jiných článcích)
Programové úpravy uživatelských výzev
Pokud chcete do uživatelské konverzace přidat výzvu k systému, nepoužíváte speciální rozhraní API. Podle potřeby stačí k příkazovému řádku přidat pokyny.
K vylepšení uživatelských výzev ale můžete použít několik technik:
- Kontextové primace: V rámci domény vytvořte systémové výzvy, které jasně nastaví kontext konverzace. Tento přístup zahrnuje stručný popis nebo sadu instrukcí na začátku každé interakce. Pokyny vedou AI k tomu, aby zůstala v rámci problematické oblasti.
- ukázkové pokyny: V úvodní výzvě uveďte příklady typů otázek a odpovědí, které jsou relevantní pro vaši doménu. Tento přístup pomáhá umělé inteligenci pochopit, jaký druh odpovědí se má očekávat.
Můžete použít jakoukoli techniku návrhu promptů. Pokud toho můžete dosáhnout programově, můžete vylepšit uživatelskou výzvu jejich jménem.
Omezení tohoto přístupu spočívá v tom, že čím delší je příkaz, tím vyšší jsou náklady na každé volání LLM. I tak je tento přístup pravděpodobně nejlevnějším přístupem, který tento článek popisuje.
Implementace kanálu odvozování
Po vylepšení výzvy uživatele je dalším krokem vytvoření kanálu odvozování.
Kanál odvozování je proces, který:
- Vymaže nezpracovaný vstup (například text nebo obrázky).
- Odešle ho do modelu (předběžné zpracování).
- Zkontroluje odpověď modelu, aby před zobrazením (po zpracování) splňovala potřeby uživatele.
Předběžné zpracování může zahrnovat kontrolu klíčových slov, vyhodnocení relevance nebo změnu dotazu tak, aby lépe vyhovoval vaší doméně. Podívejte se například na první výzvu uživatele. Zeptejte se LLM, jestli výzva dává smysl, dodržuje vaše pravidla, je založená na správném nápadu nebo potřebuje přepis, aby se zabránilo předsudkům. Pokud LLM najde problémy, můžete ji požádat o přepsání výzvy, abyste získali lepší odpověď.
Postprocessing může znamenat kontrolu, jestli odpověď odpovídá vaší doméně a splňuje vaše standardy. Odpovědi, které neodpovídají vašim pravidlům, můžete odebrat nebo označit. Podívejte se například na odpověď LLM a zjistěte, jestli splňuje vaše požadavky na kvalitu a bezpečnost. Můžete požádat LLM, aby zkontroloval odpověď a v případě potřeby ji změnil. Tento proces opakujte, dokud nedostanete dobrý výsledek.
Mějte na paměti: Pokaždé, když v inference pipeline zavoláte LLM, trvá déle, než se dostaví odpověď, a je to nákladnější. Tyto kompromisy musíte vyvážit s rozpočtem, rychlostí a tím, jak dobře systém funguje.
Informace o konkrétních krocích pro sestavení inference pipeline naleznete v tématu Sestavení pokročilého systému generace rozšířeného načítáním.
Další faktory, které ovlivňují dokončování
Kromě programatické úpravy výzvy, vytvoření kanálu pro inferenci a dalších technik jsou další podrobnosti popsány v Rozšíření rozsáhlého jazykového modelu pomocí generování s použitím rozšířeného načítání a jemného ladění. Parametry můžete také upravit při volání rozhraní AZURE OpenAI API.
Tady jsou některé klíčové parametry, které můžete upravit tak, aby ovlivnily výstup modelu:
Temperature: Řídí náhodnost výstupu, který model generuje. Model se na nule stane deterministickým a konzistentně vybere nejpravděpodobnější další token z trénovacích dat. Při teplotě 1 model vyrovnává mezi výběrem tokenů s vysokou pravděpodobností a zavedením náhodnosti do výstupu.Max Tokens: Řídí maximální délku odpovědi. Nastavení vyššího nebo nižšího limitu může ovlivnit podrobnosti a rozsah generovaného obsahu.Top P(nukleové vzorkování): Používá se sTemperaturek řízení náhodnosti odpovědí.Top Pomezuje AI, aby při generování každého tokenu zvážila pouze nejvyšší procento hmotnosti pravděpodobnosti (P). Nižší hodnoty vedou k textu, který je více zaměřený a předvídatelnější. Vyšší hodnoty umožňují větší rozmanitost.Frequency Penalty: Snižuje pravděpodobnost, že model opakuje stejný řádek nebo frázi. Zvýšení této hodnoty pomáhá vyhnout se redundanci v generovaném textu.Presence Penalty: vybízí model, aby do dokončení zavedl nové koncepty a pojmy.Presence Penaltyje užitečný pro generování různorodějších a kreativních výstupů.Stop Sequences: Můžete zadat jednu nebo více sekvencí, aby rozhraní API přestalo generovat více tokenů.Store Sequencesjsou užitečné pro kontrolu struktury výsledku, například při ukončení textu na konci věty nebo odstavce.Logit Bias: Umožňuje upravit pravděpodobnost výskytu zadaných tokenů v dokončení.Logit Biaslze použít k nasměrování dokončení určitým směrem nebo k potlačení určitého obsahu.
Microsoft Azure bezpečnostních opatření OpenAI
Kromě zachování odpovědí LLM vázaných na konkrétní předmět nebo domény máte pravděpodobně obavy také o druhy otázek, které vaši uživatelé ptají na LLM. Je důležité zvážit druhy odpovědí, které generuje.
Nejprve API volání k modelům Microsoft Azure OpenAI v Microsoft Foundry automaticky filtrují obsah, který API najde jako potenciálně urážlivý, a hlásí to zpět vám v mnoha filtrovacích kategoriích.
Rozhraní API moderování obsahu můžete přímo použít ke kontrole potenciálně škodlivého obsahu.
Pak můžete použít Azure AI Content Safety a pomoct s moderováním textu, moderováním obrázků, detekcí rizik jailbreaku a detekcí chráněných materiálů. Tato služba kombinuje prostředí pro nastavení, konfiguraci a vytváření sestav portálu s kódem, který můžete přidat do aplikace a identifikovat škodlivý obsah.
Agenti umělé inteligence
Agenti umělé inteligence představují nový způsob vytváření aplikací umělé inteligence, které fungují samostatně. K čtení a zápisu textu používají LLM a můžou se také připojit k externím systémům, rozhraním API a zdrojům dat. Agenti umělé inteligence můžou spravovat složité úlohy, vybírat pomocí dat v reálném čase a učit se, jak je lidé používají. Další informace o agentech AI najdete v tématu Rychlý start: Vytvoření nového agenta.
Zavolání nástrojů
Agenti umělé inteligence můžou používat externí nástroje a rozhraní API k získání informací, provedení akce nebo připojení k jiným službám. Tato funkce umožňuje provádět více než jen generování textu a zpracování složitějších úloh.
Agent umělé inteligence může například získat aktualizace počasí v reálném čase z rozhraní API pro počasí nebo získat podrobnosti z databáze na základě toho, co uživatel požádá. Další informace o volání nástrojů naleznete v tématu Zjišťování a správa nástrojů v katalogu nástrojů Foundry (Preview).
Protokol modelového kontextu (MCP)
Protokol MCP ( Model Context Protocol ) umožňuje aplikacím poskytovat možnosti a kontext pro velký jazykový model. Klíčovou funkcí MCP je definování nástrojů, které agenti umělé inteligence používají k dokončení úloh. Servery MCP se můžou spouštět místně, ale vzdálené servery MCP jsou pro sdílení nástrojů v cloudovém měřítku zásadní. Další informace: viz Build Agents using Model Context Protocol on Azure.
Konečné aspekty návrhu aplikace
Pochopení tokenizace, cen, kontextových oken a implementace programových vylepšení pro vylepšení prostředí generování textu uživatelů ovlivňuje způsob návrhu systému generující umělé inteligence.
Tady je krátký seznam věcí, které je potřeba vzít v úvahu, a další poznatky z tohoto článku, které můžou mít vliv na rozhodnutí o návrhu vaší aplikace:
- Vyhodnoťte nutnost používat nejnovější model AI s ohledem na náklady. Modely, které jsou levnější, můžou stačit pro potřeby vaší aplikace. Vyvážení výkonu s rozpočtovými omezeními
- Zvažte optimalizaci délky kontextového okna pro správu nákladů, aniž by to výrazně ovlivnilo uživatelské prostředí. Oříznutí nepotřebných částí konverzace může snížit poplatky za zpracování při zachování kvalitních interakcí.
- Vyhodnoťte, jak tokenizace a členitost vašich vstupů a výstupů ovlivňují výkon. Pochopení toho, jak zvolený LLM zpracovává tokenizaci, vám může pomoct optimalizovat efektivitu volání rozhraní API, což může snížit náklady a zlepšit dobu odezvy.
Pokud chcete začít experimentovat s vytvářením generativního řešení umělé inteligence okamžitě, doporučujeme se podívat na Začít chatovat s použitím vlastní ukázky dat pro Python. Tento kurz je také k dispozici v .NET, Java a JavaScript.