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.
V tomto článku se dozvíte o Službě Azure OpenAI ve vašich datech, což vývojářům usnadňuje rychlé připojení, ingestování a uzemnění podnikových dat, aby mohli rychle vytvářet přizpůsobené kopírky (Preview). Zlepšuje porozumění uživatelům, urychluje dokončování úkolů, zlepšuje provozní efektivitu a pomáhá při rozhodování.
Co je Azure OpenAI ve vašich datech
Azure OpenAI On Your Data umožňuje spouštět pokročilé modely AI, jako je GPT-35-Turbo a GPT-4, na vlastních podnikových datech bez nutnosti trénování nebo vyladění modelů. Můžete chatovat o datech a analyzovat je s větší přesností. Můžete určit zdroje pro podporu odpovědí na základě nejnovějších informací dostupných ve vašich určených zdrojích dat. K Azure OpenAI Na vašich datech můžete přistupovat pomocí rozhraní REST API, a to prostřednictvím sady SDK nebo webového rozhraní na portálu Azure AI Foundry. Můžete také vytvořit webovou aplikaci, která se připojí k vašim datům, a povolit tak vylepšené řešení chatu nebo ho nasadit přímo jako kopírovací objekt v sadě Copilot Studio (Preview).
Vývoj s využitím Azure OpenAI na vašich datech
Proces vývoje, který byste použili s Azure OpenAI na vašich datech, je obvykle následující:
Ingestace: Nahrajte soubory pomocí portálu Azure AI Foundry nebo rozhraní API pro příjem dat. To umožňuje, aby vaše data byla prolomené, blokované a vložené do instance služby Azure AI Search, kterou můžou používat modely Azure OpenAI. Pokud máte existující podporovaný zdroj dat, můžete ho připojit také přímo.
Vývoj: Po vyzkoušení Azure OpenAI na vašich datech začněte vyvíjet aplikaci pomocí dostupných rozhraní REST API a sad SDK, které jsou dostupné v několika jazycích. Vytvoří výzvy a záměry hledání, které se mají předat službě Azure OpenAI.
Odvozování: Po nasazení aplikace ve vašem upřednostňovaném prostředí se do Azure OpenAI odešlou výzvy, které před vrácením odpovědi provede několik kroků:
Generování záměru: Služba určí záměr výzvy uživatele k určení správné odpovědi.
Načtení: Služba načte relevantní bloky dostupných dat z připojeného zdroje dat dotazováním. Například pomocí sémantického nebo vektorového vyhledávání. Parametry jako striktnost a počet dokumentů, které mají být načteny, jsou využívány k ovlivnění načítání.
Filtrace a změna pořadí: Výsledky hledání z kroku načítání jsou vylepšeny řazením a filtrováním dat pro upřesnění relevance.
Generování odpovědí: Výsledná data se odesílají spolu s dalšími informacemi, jako je systémová zpráva do modelu LLM (Large Language Model) a odpověď se odešle zpět do aplikace.
Začněte tím, že připojíte zdroj dat pomocí portálu Azure AI Foundry a začnete klást otázky a chatovat s daty.
Řízení přístupu na základě role v Azure (Azure RBAC) pro přidávání zdrojů dat
Pokud chcete plně používat Azure OpenAI ve vašich datech, musíte nastavit jednu nebo více rolí Azure RBAC. Další informace najdete v tématu Konfigurace Azure OpenAI pro vaše data.
Formáty dat a typy souborů
Azure OpenAI s vašimi daty podporuje následující typy souborů:
.txt
.md
.html
.docx
.pptx
.pdf
Existuje limit nahrávání a existuje několik upozornění na strukturu dokumentů a na to, jak může ovlivnit kvalitu odpovědí z modelu:
Pokud převádíte data z nepodporovaného formátu do podporovaného, zlepšete kvalitu odezvy modelu tím, že zajistíte, že převod:
- Nevedl k významné ztrátě dat.
- Nepřidával do vašich dat neočekávaný šum.
Pokud mají vaše soubory speciální formátování, jako jsou tabulky a sloupce nebo odrážky, připravte data pomocí skriptu pro přípravu dat, který je k dispozici na GitHubu.
U dokumentů a datových sad s dlouhým textem byste měli použít dostupný skript pro přípravu dat. Skript rozděluje data takovým způsobem, aby odpovědi modelu byly přesnější. Tento skript také podporuje naskenované soubory a obrázky PDF.
Podporované zdroje dat
Abyste mohli nahrát data, musíte se připojit ke zdroji dat. Když chcete použít svá data k chatování s modelem Azure OpenAI, data se rozdělí do hledacího indexu, aby bylo možné nalézt relevantní data na základě uživatelských dotazů.
Poznámka:
Data by měla být nestrukturovaný text, aby byly nejlepší výsledky. Pokud máte netextová částečně strukturovaná nebo strukturovaná data, zvažte jejich převod na text. Pokud mají vaše soubory speciální formátování, jako jsou tabulky a sloupce nebo odrážky, připravte data pomocí skriptu pro přípravu dat, který je k dispozici na GitHubu.
Integrovaná vektorová databáze v Azure Cosmos DB pro MongoDB založená na virtuálních jádrech nativně podporuje integraci s Azure OpenAI ve vašich datech.
U některých zdrojů dat, jako je nahrávání souborů z místního počítače (Preview) nebo dat obsažených v účtu úložiště objektů blob (Preview), se používá Azure AI Search. Když zvolíte následující zdroje dat, data se ingestují do indexu Azure AI Search.
Ingestování dat prostřednictvím služby Azure AI Search | Popis |
---|---|
Azure AI Search | Použijte existující index Azure AI Search s Azure OpenAI ve vašich datech. |
Nahrání souborů (náhled) | Nahrajte soubory z místního počítače, které se mají uložit do databáze Azure Blob Storage, a ingestované do služby Azure AI Search. |
Adresa URL/webová adresa (Preview) | Webový obsah z adres URL je uložený ve službě Azure Blob Storage. |
Azure Blob Storage (náhled) | Nahrajte soubory ze služby Azure Blob Storage, které se mají ingestovat do indexu služby Azure AI Search. |
- Azure AI Search
- Vector Database ve službě Azure Cosmos DB pro MongoDB
- Azure Blob Storage (Preview)
- Nahrání souborů (náhled)
- Adresa URL/webová adresa (náhled)
- Elasticsearch (Preview)
- MongoDB Atlas (Preview)
Pokud chcete, můžete zvážit použití indexu Azure AI Search:
- Přizpůsobte proces vytváření indexu.
- Znovu použijte index vytvořený dříve importováním dat z jiných zdrojů dat.
Poznámka:
- Pokud chcete použít existující index, musí mít alespoň jedno prohledávatelné pole.
- Nastavte možnost CORS Typ povoleného původu na
all
a možnost Povolené původy na hodnotu*
. - Ve vyhledávacím indexu nemůžete mít složitá pole.
Typy hledání
Azure OpenAI On Your Data poskytuje následující typy hledání, které můžete použít při přidávání zdroje dat.
Vektorové vyhledávání pomocí modelů vkládání Ada, které jsou k dispozici ve vybraných oblastech
Pokud chcete povolit vektorové vyhledávání, potřebujete existující model vkládání nasazený ve vašem prostředku Azure OpenAI. Vyberte nasazení vkládání při připojování dat a pak v části Správa dat vyberte jeden z typů vektorového vyhledávání. Pokud jako zdroj dat používáte Azure AI Search, ujistěte se, že máte v indexu vektorový sloupec.
Pokud používáte vlastní index, můžete při přidávání zdroje dat přizpůsobit mapování polí a definovat pole, která se mapují při odpovídání na otázky. Pokud chcete přizpůsobit mapování polí, vyberte Při přidávání zdroje dat možnost Použít vlastní mapování polí na stránce Zdroj dat.
Důležité
- Sémantické vyhledávání podléhá dodatečným cenům. Pokud chcete povolit sémantické vyhledávání nebo vektorové vyhledávání, musíte zvolit skladovou položku Basic nebo vyšší. Pro více informací se podívejte na rozdíly v cenových úrovních a limity služeb.
- Pokud chcete zlepšit kvalitu načítání informací a odpovědí modelu, doporučujeme povolit sémantické vyhledávání pro následující jazyky zdrojů dat: angličtina, francouzština, španělština, portugalština, italština, Německo, čínština (Zh), japonština, korejština, ruština a arabština.
Možnost hledání | Typ vyhledávání | Další ceny? | Zaměstnanecké výhody |
---|---|---|---|
klíčové slovo | Vyhledávání klíčových slov | Žádné další ceny. | Provádí rychlé a flexibilní parsování a porovnávání dotazů v prohledávatelných polích pomocí výrazů nebo frází v libovolném podporovaném jazyce s operátory nebo bez operátorů. |
sémantický | Sémantické vyhledávání | Další ceny pro sémantické využití vyhledávání | Zlepšuje přesnost a relevanci výsledků hledání pomocí nástroje pro přeřazení (s modely AI) k pochopení sémantického významu termínů dotazu a dokumentů vrácených počátečním rankerem vyhledávání. |
vektor | Vektorové vyhledávání | Doplňkové ceny na vašem účtu Azure OpenAI z volání modelu embeddedingu. | Umožňuje najít dokumenty, které se podobají zadanému vstupu dotazu na základě vektorových vkládání obsahu. |
hybrid (vektor + klíčové slovo) | Hybridní vyhledávání vektorů a hledání klíčových slov | Doplňkové ceny na vašem účtu Azure OpenAI z volání modelu embeddedingu. | Provádí vyhledávání podobnosti u vektorových polí pomocí vektorových embeddingů a podporuje také flexibilní parsing dotazů a fulltextové vyhledávání v alfanumerických polích pomocí termínových dotazů. |
hybrid (vector + klíčové slovo) + sémantika | Hybridní vyhledávání vektorů, sémantické vyhledávání a hledání klíčových slov. | Další náklady na vašem účtu Azure OpenAI za použití vkládacího modelu a další náklady na využití sémantického vyhledávání. | Používá vektorové vkládání, porozumění jazyku a flexibilní analýzu dotazů k vytváření bohatých vyhledávacích prostředí a generování aplikací umělé inteligence, které dokážou zpracovávat složité a různorodé scénáře načítání informací. |
Inteligentní vyhledávání
Služba Azure OpenAI On Your Data má pro vaše data povolené inteligentní vyhledávání. Sémantické vyhledávání je ve výchozím nastavení povolené, pokud máte sémantické vyhledávání i hledání klíčových slov. Pokud máte vložené modely, inteligentní vyhledávání ve výchozím nastavení používá hybridní a sémantické vyhledávání.
Řízení přístupu na úrovni dokumentu
Poznámka:
Řízení přístupu na úrovni dokumentu se podporuje, když jako zdroj dat vyberete Azure AI Search.
Azure OpenAI On Your Data umožňuje omezit dokumenty, které se dají použít v odpovědích pro různé uživatele pomocí filtrů zabezpečení služby Azure AI Search. Když povolíte přístup na úrovni dokumentu, výsledky hledání vrácené službou Azure AI Search a použité k vygenerování odpovědi jsou upravené na základě členství uživatele ve skupině Microsoft Entra. Přístup na úrovni dokumentu můžete povolit pouze u existujících indexů Azure AI Search. Další informace najdete v tématu Azure OpenAI ve vaší datové síti a konfiguraci přístupu.
Mapování polí indexu
Pokud používáte vlastní index, zobrazí se na portálu Azure AI Foundry výzva k definování polí, která chcete mapovat pro odpovědi na otázky při přidávání zdroje dat. Pro data obsahu můžete zadat více polí a měli byste zahrnout všechna pole, která obsahují text související s vaším případem použití.
V tomto příkladu pole mapovaná na data obsahu a název poskytují modelu informace, které odpovídají na otázky. Název se také používá k názvu textu citace. Pole namapované na název souboru vygeneruje v odpovědi názvy citací.
Správné mapování těchto polí pomáhá zajistit, aby model měl lepší kvalitu odezvy a citace. Můžete ho také nakonfigurovat v rozhraní API pomocí parametru fieldsMapping
.
Filtr vyhledávání (rozhraní API)
Pokud chcete implementovat další kritéria založená na hodnotách pro spuštění dotazu, můžete nastavit vyhledávací filtr pomocí parametru filter
.
Jak se data ingestují do služby Azure AI Search
Od září 2024 se rozhraní API pro příjem dat přepnula na integrovanou vektorizaci. Tato aktualizace nemění stávající kontrakty rozhraní API. Integrovaná vektorizace, nová nabídka služby Azure AI Search, využívá předem připravené dovednosti pro vytváření bloků dat a vkládání vstupních dat. Služba příjmu dat Azure OpenAI On Your Data už nepoužívá vlastní dovednosti. Po migraci na integrovanou vektorizaci prošel proces příjmu některými úpravami a v důsledku toho se vytvoří pouze následující aktiva:
{job-id}-index
-
{job-id}-indexer
, pokud je zadán hodinový nebo denní plán, jinak se indexer vyčistí na konci procesu příjmu dat. {job-id}-datasource
Kontejner bloků dat už není dostupný, protože tato funkce je teď ze své podstaty spravovaná službou Azure AI Search.
Datové připojení
Musíte vybrat způsob ověřování připojení z Azure OpenAI, Azure AI Search a Azure Blob Storage. Můžete zvolit spravovanou identitu přiřazenou systémem nebo klíč rozhraní API. Když jako typ ověřování vyberete klíč rozhraní API, systém automaticky naplní klíč rozhraní API pro připojení k prostředkům Azure AI Search, Azure OpenAI a Azure Blob Storage. Výběrem spravované identity přiřazené systémem bude ověřování založeno na přiřazení role, kterou máte. Spravovaná identita přiřazená systémem je ve výchozím nastavení vybrána pro zabezpečení.
Jakmile vyberete další tlačítko, automaticky ověří nastavení tak, aby používalo vybranou metodu ověřování. Pokud dojde k chybě, přečtěte si článek o přiřazení rolí a aktualizujte instalaci.
Jakmile provedete opravu nastavení, znovu vyberte další, abyste ověřili a pokračovali. Uživatelé rozhraní API můžou také nakonfigurovat ověřování s přiřazenou spravovanou identitou a klíči rozhraní API.
Nasazení do copilotu (Beta), aplikace Teams (Beta) nebo webové aplikace
Po připojení Azure OpenAI k datům je můžete nasadit pomocí tlačítka Nasadit do na portálu Azure AI Foundry.
Tím získáte několik možností pro nasazení řešení.
Do copilotu v sadě Copilot Studio (náhled) můžete nasadit přímo z portálu Azure AI Foundry a umožnit tak poskytovat konverzační prostředí pro různé kanály, jako jsou Microsoft Teams, weby, Dynamics 365 a další kanály Azure Bot Service. Tenant použitý v Azure OpenAI a Copilot Studio (Preview) by měl být stejný. Další informace najdete v tématu Použití připojení k Azure OpenAI ve vašich datech.
Poznámka:
Nasazení na kopilota ve studiu Copilot Studio (preview) je dostupné pouze v regionech USA.
Konfigurace přístupu a sítí pro Azure OpenAI ve vašich datech
Můžete použít Azure OpenAI na vašich datech a chránit data a prostředky pomocí řízení přístupu na základě role pomocí Microsoft Entra ID, virtuálních sítí a privátních koncových bodů. Můžete také omezit dokumenty, které se dají použít v odpovědích pro různé uživatele s filtry zabezpečení služby Azure AI Search. Viz Azure OpenAI v přístupu k datům a konfiguraci sítě.
Osvědčené postupy
V následujících částech se dozvíte, jak zlepšit kvalitu odpovědí udělených modelem.
Parametr příjmu dat
Když se data ingestují do služby Azure AI Search, můžete upravit další nastavení ve studiu nebo v rozhraní API pro příjem dat.
Velikost bloku dat (náhled)
Azure OpenAI ve vašich datech zpracovává dokumenty jejich rozdělením na bloky dat před jejich ingestováním. Velikost bloku je maximální velikost z hlediska počtu tokenů libovolného bloku ve vyhledávacím indexu. Velikost bloku dat a počet načtených dokumentů společně určují, kolik informací (tokenů) je součástí výzvy odeslané do modelu. Obecně platí, že velikost bloku dat vynásobená počtem načtených dokumentů je celkový počet tokenů odeslaných do modelu.
Nastavení velikosti bloku pro váš případ použití
Výchozí velikost bloku je 1 024 tokenů. Vzhledem k jedinečnosti dat byste mohli považovat jinou velikost bloku (například 256, 512 nebo 1 536 tokenů) za efektivnější.
Úprava velikosti bloku dat může zvýšit výkon chatovacího robota. Při hledání optimální velikosti bloku dat je potřeba zvážit určitou zkušební a chybovou hodnotu, začněte zvážením povahy vaší datové sady. Menší velikost bloku dat je obecně lepší pro datové sady s přímými fakty a méně kontexty, zatímco větší velikost bloku dat může být přínosnější pro více kontextových informací, i když by to mohlo ovlivnit výkon načítání.
Malá velikost bloku dat jako 256 vytváří podrobnější bloky dat. Tato velikost také znamená, že model k vygenerování výstupu využije méně tokenů (pokud není počet načtených dokumentů velmi vysoký), což může být méně nákladné. Menší bloky dat také znamenají, že model nemusí zpracovávat a interpretovat dlouhé části textu, což snižuje šum a rušivé prvky. Tato členitost a zaměření však představují potenciální problém. Důležité informace nemusí být mezi hlavními načtené bloky dat, zejména pokud je počet načtených dokumentů nastavený na nízkou hodnotu, například 3.
Návod
Mějte na paměti, že změna velikosti bloku dat vyžaduje opakované ingestování dokumentů, takže je vhodné nejprve upravit parametry modulu runtime, jako je striktnost a počet načtených dokumentů. Pokud stále nedostáváte požadované výsledky, zvažte změnu velikosti bloku dat:
- Pokud narazíte na velký počet odpovědí, například "Nevím" u otázek s odpověďmi, které by měly být v dokumentech, zvažte zmenšení velikosti bloku dat na 256 nebo 512, aby se zlepšila členitost.
- Pokud chatbot poskytuje nějaké správné podrobnosti, ale chybí ostatním, které se zjeví v citacích, může zvětšením velikosti bloku na 1 536 pomoct zachytit další kontextové informace.
Parametry runtime
Následující další nastavení můžete upravit v části Parametry dat na portálu Azure AI Foundry a v rozhraní API. Při aktualizaci těchto parametrů nemusíte data znovu ingestovat.
Název parametru | Popis |
---|---|
Omezte odpovědi na svá data | Tento příznak konfiguruje přístup chatovacího robota ke zpracování dotazů nesouvisejících se zdrojem dat nebo v případě, že pro úplnou odpověď nestačí vyhledávací dokumenty. Když je toto nastavení zakázané, model doplňuje své odpovědi svými vlastními znalostmi kromě dokumentů. Pokud je toto nastavení povolené, model se pokusí spoléhat jenom na dokumenty pro odpovědi. Toto je inScope parametr v rozhraní API a ve výchozím nastavení je nastavený na true. |
Načtené dokumenty | Tento parametr je celé číslo, které lze nastavit na 3, 5, 10 nebo 20 a řídí počet bloků dokumentů zadaných pro velký jazykový model pro formulaci konečné odpovědi. Ve výchozím nastavení je nastavená hodnota 5. Proces hledání může být hlučný a někdy kvůli blokům dat můžou být relevantní informace rozložené do několika bloků v indexu vyhledávání. Výběrem čísla K s horní hranicí, například 5, zajistíte, že model dokáže extrahovat relevantní informace, i přes inherentní omezení vyhledávání a rozdělování na části. Pokud je počet příliš vysoký, může to model rozptylovat. Maximální počet dokumentů, které lze efektivně použít, závisí také na verzi modelu, protože každá z nich má jinou velikost kontextu a kapacitu pro zpracování dokumentů. Pokud zjistíte, že odpovědi chybí důležitý kontext, zkuste tento parametr zvýšit. Toto je topNDocuments parametr v rozhraní API a ve výchozím nastavení je 5. |
Přísnost | Určuje agresivitu systému při filtrování vyhledávacích dokumentů na základě skóre podobnosti. Systém se dotazuje na Azure Search nebo jiné úložiště dokumentů a pak rozhodne, které dokumenty se mají poskytovat velkým jazykovým modelům, jako je ChatGPT. Filtrování irelevantních dokumentů může výrazně zvýšit výkon koncového chatovacího robota. Některé dokumenty jsou z výsledků top-K vyloučeny, pokud mají před předáním do modelu nízké skóre podobnosti. To je řízeno celočíselnou hodnotou v rozsahu od 1 do 5. Nastavení této hodnoty na hodnotu 1 znamená, že systém bude minimálně filtrovat dokumenty na základě podobnosti vyhledávání s uživatelským dotazem. Naopak nastavení 5 znamená, že systém agresivně vyfiltruje dokumenty a použije velmi vysokou prahovou hodnotu podobnosti. Pokud zjistíte, že chatbot vynechá relevantní informace, snižte striktnost filtru (nastavte hodnotu blíže k 1), aby obsahoval více dokumentů. Naopak pokud irelevantní dokumenty ruší odpovědi, zvyšte prahovou hodnotu (nastavte hodnotu blíže k 5). Toto je strictness parametr v rozhraní API a ve výchozím nastavení je nastavený na 3. |
Necitované odkazy
Je možné, že model vrátí "TYPE":"UNCITED_REFERENCE"
místo "TYPE":CONTENT
v rozhraní API dokumentů, které jsou získávány ze zdroje dat, ale nejsou zahrnuty do citace. To může být užitečné pro ladění a toto chování můžete řídit úpravou parametrů modulu runtime striktnosti a načtených dokumentů popsaných výše.
Systémová zpráva
Při použití Azure OpenAI ve vašich datech můžete definovat systémovou zprávu, která bude odpovídat modelu. Tato zpráva umožňuje přizpůsobit vaše odpovědi na základě modelu RAG (Retrieval Augmented Generation), který používá Azure OpenAI na Vašich datech. Systémová zpráva se používá kromě interní základní výzvy k poskytování zážitku. Abychom to podpořili, zkrátíme systémovou zprávu po určitém počtu tokenů , abychom zajistili, že model může odpovídat na otázky pomocí vašich dat. Pokud definujete nad výchozím prostředím další chování, ujistěte se, že je výzva systému podrobná a vysvětluje přesné očekávané přizpůsobení.
Jakmile vyberete přidat datovou sadu, můžete použít část Systémová zpráva na portálu Azure AI Foundry nebo role_information
parametr v rozhraní API.
Potenciální vzory využití
Definujte roli
Můžete definovat roli, kterou má váš asistent plnit. Pokud například vytváříte robota podpory, můžete přidat "Jste odborník pomocník pro podporu incidentů, který pomáhá uživatelům řešit nové problémy".
Definování typu načtených dat
Můžete také přidat povahu dat, která poskytujete asistentovi.
- Definujte téma nebo rozsah datové sady, například "finanční sestavu", "akademický dokument" nebo "sestavu incidentů". Pro technickou podporu můžete například přidat dotaz "Odpovíte na dotazy pomocí informací z podobných incidentů v načtených dokumentech".
- Pokud vaše data mají určité charakteristiky, můžete tyto podrobnosti přidat do systémové zprávy. Pokud jsou například vaše dokumenty v japonštině, můžete přidat "Načítáte japonské dokumenty a měli byste je pečlivě číst v japonštině a odpovídat v japonštině".
- Pokud vaše dokumenty obsahují strukturovaná data, jako jsou tabulky z finanční zprávy, můžete tento fakt také přidat do systémového příkazu. Pokud například vaše data mají tabulky, můžete přidat "Máte data ve formě tabulek týkajících se finančních výsledků a měli byste číst řádek po řádku tabulky, abyste mohli zodpovědět uživatelské otázky."
Definování stylu výstupu
Výstup modelu můžete také změnit definováním systémové zprávy. Pokud například chcete zajistit, aby odpovědi asistenta byly ve francouzštině, můžete přidat výzvu typu "Jste asistent AI, který pomáhá uživatelům, kteří chápou francouzské informace. Dotazy uživatelů můžou být v angličtině nebo francouzštině. Přečtěte si načtené dokumenty pečlivě a odpovězte na ně ve francouzštině. Přeložte znalosti z dokumentů do francouzštiny, abyste měli jistotu, že jsou všechny odpovědi ve francouzštině."
Opětovné potvrzení kritického chování
Azure OpenAI On Your Data funguje tak, že odešle pokyny do velkého jazykového modelu ve formě výzev k odpovídání na dotazy uživatelů pomocí vašich dat. Pokud je pro aplikaci důležité určité chování, můžete toto chování opakovat v systémových zprávách a zvýšit tak jeho přesnost. Pokud chcete například model vést jenom na odpovědi z dokumentů, můžete přidat "Odpovědět pouze pomocí načítaných dokumentů a bez použití vašich znalostí. Vygenerujte citace pro načtení dokumentů pro každou deklaraci identity ve vaší odpovědi. Pokud na uživatelskou otázku nelze odpovědět pomocí načtených dokumentů, vysvětlete prosím odůvodnění, proč jsou dokumenty relevantní pro dotazy uživatelů. V každém případě neodpovídejte pomocí vlastních znalostí."
Výzva k technickým trikům
V návrhu promptů existuje mnoho triků, které můžete zkusit k vylepšení výsledku. Jedním z příkladů je použití nápovědy v řetězci myšlenek, kde můžeme "Přemýšlejme krok za krokem o informacích v získaných dokumentech pro zodpovězení dotazů uživatelů. Extrahujte relevantní znalosti pro dotazy uživatelů z dokumentů krok za krokem a vytvořte odpověď zdola nahoru z extrahovaných informací z relevantních dokumentů."
Poznámka:
Systémová zpráva slouží ke změně způsobu reakce pomocníka GPT na otázku uživatele na základě načtené dokumentace. Nemá vliv na proces načítání. Pokud chcete poskytnout pokyny pro proces načítání, je lepší je zahrnout do otázek. Systémová zpráva je pouze pokyny. Model nemusí dodržovat každou zadanou instrukci, protože byl naprogramován s určitými vzorci chování, jako je objektivita a vyhýbání se kontroverzním prohlášením. K neočekávanému chování může dojít v případě, že systémová zpráva je v rozporu s těmito chováními.
Omezit odpovědi na vaše data
Tato možnost nabádá model, aby reagoval pouze na vaše data, a je ve výchozím nastavení vybrána. Pokud tuto možnost zrušíte, model může snadněji použít interní znalosti, aby reagoval. Na základě vašeho případu použití a scénáře určete správný výběr.
Interakce s modelem
Při chatování s modelem využijte následující postupy.
Historie konverzací
- Než začnete s novou konverzací (nebo položíte otázku, která nesouvisí s předchozími), vymažte historii chatu.
- Získání různých odpovědí na stejnou otázku mezi prvním a následnými konverzačními turny lze očekávat, protože historie konverzací mění aktuální stav modelu. Pokud dostanete nesprávné odpovědi, nahlaste to jako chybu kvality.
Odpověď modelu
Pokud nejste spokojeni s odpovědí modelu na specifickou otázku, zkuste otázku formulovat konkrétněji nebo obecněji, abyste zjistili, jak model reaguje, a podle toho znovu přeformulujte svůj dotaz.
Délka otázky
Pokud je to možné, vyhněte se kladení dlouhých otázek a rozdělte je na několik otázek. Modely GPT mají omezení počtu tokenů, které mohou přijmout. Limity tokenů se počítají vůči: uživatelské otázce, systémové zprávě, načteným vyhledávacím dokumentům (blokům dat), interním výzvám, historii konverzací (pokud existuje) a odpovědi. Pokud otázka překročí limit tokenu, zkrátí se.
Podpora vícejazyčných jazyků
Vyhledávání klíčových slov a sémantické vyhledávání v Azure OpenAI On Your Data v současné době podporuje dotazy ve stejném jazyce jako data v indexu. Pokud jsou například vaše data v japonštině, musí být vstupní dotazy také v japonštině. Pro načítání dokumentů napříč jazyky doporučujeme sestavit index s povoleným vyhledáváním vektorů.
Pokud chcete zlepšit kvalitu načítání informací a odpovědi modelu, doporučujeme povolit sémantické vyhledávání v následujících jazycích: angličtina, francouzština, španělština, portugalština, italština, Německo, čínština (Zh), japonština, korejština, ruština, arabština
K informování modelu, že jsou vaše data v jiném jazyce, doporučujeme použít systémovou zprávu. Příklad:
*"*Jste asistent AI navržený tak, aby uživatelům pomohl extrahovat informace z načtených japonských dokumentů. Před vytvořením odpovědi pečlivě prověřte japonské dokumenty. Dotaz uživatele bude v japonštině a v japonštině musíte odpovědět také v japonštině."
Pokud máte dokumenty ve více jazycích, doporučujeme vytvořit nový index pro každý jazyk a připojit je samostatně k Azure OpenAI.
Streamování dat
Streamovací požadavek můžete odeslat pomocí parametru stream
, který umožňuje odesílání a přijímání dat přírůstkově, aniž byste čekali na celou odpověď rozhraní API. To může zlepšit výkon a uživatelské prostředí, zejména u velkých nebo dynamických dat.
{
"stream": true,
"data_sources": [
{
"type": "AzureCognitiveSearch",
"parameters": {
"endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
"key": "'$AZURE_AI_SEARCH_API_KEY'",
"indexName": "'$AZURE_AI_SEARCH_INDEX'"
}
}
],
"messages": [
{
"role": "user",
"content": "What are the differences between Azure Machine Learning and Azure AI services?"
}
]
}
Historie konverzací pro lepší výsledky
Když chatujete s modelem, poskytnutí historie chatu pomůže modelu vrátit výsledky vyšší kvality. Do požadavků rozhraní API nemusíte zahrnout context
vlastnost zpráv asistenta, aby se zlepšila kvalita odezvy. Příklady najdete v referenční dokumentaci k rozhraní API.
Volání funkcí
Některé modely Azure OpenAI umožňují definovat nástroje a tool_choice parametry pro povolení volání funkcí. Můžete nastavit volání funkcí prostřednictvím rozhraní REST API/chat/completions
. Pokud jsou v požadavku oba zdroje tools
, použije se následující zásada.
- Pokud
tool_choice
jenone
, nástroje se ignorují a k vygenerování odpovědi se používají pouze zdroje dat. - V opačném případě, pokud
tool_choice
není zadán nebo zadán jakoauto
objekt, zdroje dat budou ignorovány a odpověď bude obsahovat název vybraných funkcí a argumenty, pokud existují. I když model rozhodne, že není vybraná žádná funkce, zdroje dat se stále ignorují.
Pokud výše uvedené pravidlo nevyhovuje vašim potřebám, zvažte další možnosti, například: prompt flow nebo Assistants API.
Odhad využití tokenů pro Azure OpenAI ve vašich datech
Azure OpenAI ve vaší rozšířené generaci načítání dat (RAG) je služba, která využívá vyhledávací službu (jako je Azure AI Search) a generování (modely Azure OpenAI) a umožňuje uživatelům získat odpovědi na své otázky na základě poskytnutých dat.
V rámci tohoto procesu RAG existují tři hlavní kroky:
Přeformátujte uživatelský dotaz na seznam záměrů hledání. To se provádí voláním modelu s výzvou, která obsahuje pokyny, otázku uživatele a historii konverzací. Nazvěme to výzva k záměru.
Pro každý záměr se z vyhledávací služby načte několik bloků dokumentů. Po vyfiltrování irelevantních bloků dat na základě prahové hodnoty striktnosti zadané uživatelem a opětovného řazení/agregace bloků dat na základě interní logiky se vybere počet bloků dokumentů zadaný uživatelem.
Tyto bloky dokumentů spolu s otázkou uživatele, historií konverzací, informacemi o rolích a pokyny se odesílají do modelu, aby se vygenerovala konečná odpověď modelu. Zavoláme tuto výzvu ke generování.
K modelu se celkem provádějí dvě volání.
Pro zpracování záměru: Odhad tokenu pro výzvu k záměru zahrnuje otázky uživatele, historii konverzací a pokyny odeslané do modelu pro generování záměru.
Pro vygenerování odpovědi: Odhad tokenu pro výzvu ke generování zahrnuje otázky uživatele, historii konverzací, načtený seznam bloků dokumentů, informace o rolích a pokyny odeslané na generování.
Při odhadu celkového počtu tokenů je potřeba vzít v úvahu vygenerované výstupní tokeny modelu, včetně záměrů a odpovědí. Součtem všech čtyř sloupců níže získáte průměrné celkové tokeny použité k vygenerování odpovědi.
Vzor | Počet tokenů výzvy generování | Počet tokenů úmyslu výzvy | Počet tokenů odpovědi | Počet tokenů úmyslu |
---|---|---|---|---|
gpt-35-turbo-16k | 4297 | 1366 | 111 | 25 |
gpt-4-0613 | 3997 | 1385 | 118 | 18 |
gpt-4-1106-preview | 4538 | 811 | 119 | 27 |
gpt-35-turbo-1106 | 4854 | 1372 | 110 | 26 |
Výše uvedená čísla jsou založená na testování datové sady s následujícími údaji:
- 191 konverzací
- 250 otázek
- 10 průměrných tokenů na otázku
- 4 výměny v průměru na konverzaci
A následující parametry.
Nastavení | Hodnota |
---|---|
Počet načtených dokumentů | 5 |
Přísnost | 3 |
Velikost bloku dat | 1024 |
Omezit odpovědi na přijatá data? | Pravda |
Tyto odhady se budou lišit v závislosti na hodnotách nastavených pro výše uvedené parametry. Pokud je například počet načtených dokumentů nastavený na 10 a striktnost je nastavená na 1, počet tokenů se zvýší. Pokud vrácené odpovědi nejsou omezené na ingestované data, je modelu přiděleno méně instrukcí a počet tokenů se zpomalí.
Odhady také závisejí na povaze dokumentů a otázek, které jsou kladeny. Pokud jsou například otázky otevřené, budou odpovědi pravděpodobně delší. Podobně by delší systémová zpráva přispěla k delší výzvě, která spotřebovává více tokenů, a pokud je historie konverzací dlouhá, výzva bude delší.
Vzor | Maximální počet tokenů pro systémovou zprávu |
---|---|
GPT-35-0301 | 400 |
GPT-35-0613-16K | 1 000 |
GPT-4-0613-8K | 400 |
GPT-4-0613-32K | 2000 |
GPT-35-turbo-0125 | 2000 |
GPT-4-turbo-0409 | 4000 |
GPT-4o | 4000 |
GPT-4o-mini | 4000 |
Výše uvedená tabulka ukazuje maximální počet tokenů, které lze použít pro systémovou zprávu. Pokud chcete zobrazit maximální počet tokenů pro odpověď modelu, přečtěte si článek o modelech. Dále také následující položky spotřebovávají tokeny:
Meta prompt: Pokud omezíte odpovědi z modelu na obsah podkladových dat (
inScope=True
v rozhraní API), maximální počet tokenů vyšší. Jinak (například pokudinScope=False
) je maximum nižší. Toto číslo je proměnlivé v závislosti na délce tokenu uživatelské otázky a historie konverzací. Tento odhad zahrnuje základní výzvu a výzvy k přepsání dotazu pro vyhledávání.Otázka a historie uživatele: Proměnná, ale omezena na 2 000 tokenů.
Načtené dokumenty (bloky): Počet tokenů používaných bloky načtených dokumentů závisí na několika faktorech. Horní mez je počet načtených bloků dokumentů vynásobený velikostí bloku dat. Zkrátí se však na základě dostupných tokenů používaného modelu po spočítání ostatních polí.
20 % dostupných tokenů je vyhrazeno pro odpověď modelu. Zbývajících 80 % dostupných tokenů zahrnuje meta výzvu, otázku uživatele a historii konverzací a systémovou zprávu. Zbývající rozpočet tokenu se používá pro načtené bloky dokumentů.
Pokud chcete vypočítat počet tokenů spotřebovaných vaším vstupem (například informace o systémové zprávě nebo roli), použijte následující vzorový kód.
import tiktoken
class TokenEstimator(object):
GPT2_TOKENIZER = tiktoken.get_encoding("gpt2")
def estimate_tokens(self, text: str) -> int:
return len(self.GPT2_TOKENIZER.encode(text))
token_output = TokenEstimator.estimate_tokens(input_text)
Řešení problému
Při řešení potíží s neúspěšnými operacemi vždy hledejte chyby nebo upozornění zadaná v odpovědi rozhraní API nebo na portálu Azure AI Foundry. Tady jsou některé běžné chyby a upozornění:
Neúspěšné úlohy příjmu dat
Problémy s omezeními kvót
Index s názvem X ve službě Y nelze vytvořit. Pro tuto službu byla překročena kvóta indexu. Nejprve musíte odstranit nepoužívané indexy, přidat prodlevu mezi požadavky na vytvoření indexu nebo upgradovat službu pro vyšší limity.
U této služby byla překročena standardní kvóta indexeru X. Aktuálně máte standardní indexery X. Nejprve musíte odstranit nepoužívané indexery, změnit indexer executionMode nebo upgradovat službu pro vyšší limity.
Řešení:
Upgradujte na vyšší cenovou úroveň nebo odstraňte nepoužívané prostředky.
Problémy s vypršením časového limitu předběžného zpracování
Nepodařilo se spustit dovednost, protože požadavek webového rozhraní API selhal.
Nebylo možné spustit dovednost, protože odpověď webového API na dovednost je neplatná.
Řešení:
Rozdělte vstupní dokumenty na menší dokumenty a zkuste to znovu.
Problémy s oprávněními
Tento požadavek nemá oprávnění k provedení této operace.
Řešení:
To znamená, že účet úložiště není přístupný s danými přihlašovacími údaji. V tomto případě zkontrolujte přihlašovací údaje účtu úložiště předané rozhraní API a ujistěte se, že účet úložiště není skrytý za privátním koncovým bodem (pokud pro tento prostředek není nakonfigurovaný privátní koncový bod).
Chyby 503 při odesílání dotazů pomocí služby Azure AI Search
Každá zpráva uživatele může být přeložena na několik vyhledávacích dotazů, které se všechny paralelně odesílají do vyhledávací služby. To může způsobit škrcení výkonu, když je počet replik a oddílů vyhledávání nízký. Maximální počet dotazů za sekundu, které může podporovat jeden oddíl a jedna replika, nemusí být dostatečný. V takovém případě zvažte zvýšení počtu replik a oddílů nebo přidání logiky pro režim spánku nebo opakování ve vaší aplikaci. Další informace najdete v dokumentaci ke službě Azure AI Search.
Regionální dostupnost a podpora modelů
Poznámka:
Azure OpenAI ve vašich datech nepodporuje následující modely:
- modely o1
- modely o3
- modelový router
Kraj | gpt-35-turbo-16k (0613) |
gpt-35-turbo (1106) |
gpt-4-32k (0613) |
gpt-4 (1106-preview) |
gpt-4 (0125-preview) |
gpt-4 (0613) |
gpt-4o ** |
gpt-4 (turbo-2024-04-09) |
---|---|---|---|---|---|---|---|---|
Austrálie – východ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
Kanada – východ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
Východní USA | ✅ | ✅ | ✅ | |||||
USA – východ 2 | ✅ | ✅ | ✅ | ✅ | ||||
Francie – střed | ✅ | ✅ | ✅ | ✅ | ✅ | |||
Japonsko – východ | ✅ | |||||||
USA – středosever | ✅ | ✅ | ✅ | |||||
Norsko – východ | ✅ | ✅ | ||||||
Středojižní USA | ✅ | ✅ | ||||||
Indie – jih | ✅ | ✅ | ||||||
Švédsko – střed | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Švýcarsko – sever | ✅ | ✅ | ✅ | |||||
Velká Británie – jih | ✅ | ✅ | ✅ | ✅ | ||||
USA – západ | ✅ | ✅ | ✅ |
**Toto je pouze textová implementace.
Pokud je váš prostředek Azure OpenAI v jiné oblasti, nebudete moci používat funkci Azure OpenAI na vašich datech.