Úvod do vytváření řešení generující umělé inteligence pro vývojáře

Generování umělé inteligence, které jsou povolené velkými jazykovými modely (LLM), otevírá vzrušující nové možnosti pro vývojáře softwaru a organizace. Služby, jako je Azure OpenAI, demokratizují vývoj umělé inteligence tím, že nabízejí snadno použitelná rozhraní API, což vývojářům jakékoli úrovně dovedností umožňuje integrovat do svých aplikací pokročilé funkce AI bez nutnosti specializovaných znalostí nebo vyžadování organizací investovat do hardwaru.

Jako vývojář aplikací se můžete potýkat s tím, jakou roli můžete hrát a kam se vejdete. Možná vás například zajímá, na jakou úroveň zásobníku AI byste se měli zaměřit na své učení? Nebo by vás mohlo zajímat, co dokážete vytvářet vzhledem k existujícím technologiím?

Abyste mohli na tyto otázky odpovědět, je důležité, abyste nejprve vytvořili mentální model, který mapuje, jak všechny nové terminologie a technologie odpovídají tomu, co už rozumíte. Vývoj mentálního modelu vám pomůže navrhnout a sestavit do svých aplikací generující funkce umělé inteligence. Za tímto účelem je účelem této série článků ukázat, jak vaše aktuální prostředí pro vývoj softwaru platí pro generování umělé inteligence. Články také poskytují sadu klíčových slov a konceptů, jakmile začnete vyvíjet první řešení generující AI.

Jaké firmy doufají, že s využitím generující umělé inteligence dosáhne?

Abyste pochopili, jak vaše aktuální prostředí pro vývoj softwaru platí pro generování umělé inteligence, je důležité začít tím, že pochopíte, jak z něj mají firmy těžit.

Podniky si prohlíženou generování umělé inteligence jako prostředek ke zlepšení zapojení zákazníků, zvýšení provozní efektivity a zlepšení řešení problémů a kreativity. Integrace generující umělé inteligence do stávajících systémů otevírá podnikům příležitosti k vylepšení svých softwarových ekosystémů. Může doplňovat tradiční softwarové funkce pokročilými funkcemi umělé inteligence, jako jsou přizpůsobená doporučení pro uživatele nebo inteligentního agenta, který může odpovídat na otázky specifické pro organizaci nebo produkt.

Tady je několik běžných scénářů, ve kterých můžou podnikům pomoct generování umělé inteligence:

  • Generování obsahu
    • Vygenerujte text, kód, obrázky a zvuk. To může být užitečné pro marketing, prodej, IT, interní komunikaci a další.
  • Zpracování přirozeného jazyka
    • Psaní nebo zlepšování obchodní komunikace prostřednictvím návrhů nebo úplné generování zpráv
    • "Chat s vašimi daty" nebo jinými slovy, což uživateli umožňuje klást otázky v chatovacím prostředí pomocí dat uložených v databázích nebo v dokumentech jako základ pro odpovědi.
    • Shrnutí, organizace a zjednodušení velkých částí obsahu, aby byl obsah přístupnější.
    • "Sémantické vyhledávání", nebo spíše umožňuje uživatelům vyhledávat dokumenty a data bez použití přesných shod klíčových slov.
    • Překlad jazyka za účelem zvýšení dosahu a přístupnosti obsahu
  • Analýza dat
    • Analyzujte trhy a identifikujte trendy v datech.
    • Model "what if" scénářů, které společnostem pomohou plánovat možné změny nebo výzvy v každé oblasti podnikání.
    • Analyzujte kód a navrhněte vylepšení, opravte chyby a vygenerujte dokumentaci.

Jak vidíte, vývojáři softwaru mají příležitost výrazně zvýšit jejich dopad integrací generovaných aplikací a funkcí umělé inteligence do softwaru, na který spoléhají jejich organizace.

Jak se vytvářejí tyto typy aplikací?

I když llm (Large Language Model) dělá náročné úlohy, vytváříte systémy, které integrují, orchestrují a monitorují výsledky. I když se toho hodně naučíte, můžete využít dovednosti, které už znáte:

  • Volání rozhraní API pomocí sad REST, JSON nebo sad SDK specifických pro jazyk
  • Orchestrace volání rozhraní API a provádění obchodní logiky
  • Ukládání do a načítání z úložišť dat
  • Integrace vstupu a výsledků do uživatelského prostředí
  • Vytváření rozhraní API, která se dají volat z LLM

Tímto způsobem se vývoj generativních řešení umělé inteligence staví na vašich stávajících dovednostech.

Jaké nástroje a služby jsou k dispozici?

Microsoft investuje do vývoje nástrojů, služeb, rozhraní API, ukázek a výukových materiálů, které vám pomůžou začít s vývojem generující umělé inteligence. Každá z nich zvýrazní některé důležité obavy nebo zodpovědnost, které jsou potřeba k vytvoření řešení generující umělé inteligence. Pokud chcete efektivně využívat danou službu, rozhraní API nebo prostředek, je potřeba, abyste měli jistotu, že:

  • Seznamte se s typickými funkcemi, rolemi a zodpovědnostmi v daném typu generující funkce umělé inteligence? Jak například probereme podrobněji v koncepčních článcích popisujících chatovací systémy založené na technologii RAG (Retrieval-Augmented Generation), existuje v systému mnoho zodpovědností za architekturu. Před návrhem systému, který řeší problém, je důležité porozumět doméně problému a omezením.
  • Seznamte se s rozhraními API, službami a nástroji, které existují pro danou funkci, roli nebo odpovědnost? Teď, když rozumíte problému s doménou a omezeními, můžete se rozhodnout vytvořit tento aspekt systému sami pomocí vlastního kódu nebo použít existující nástroje s nízkým kódem nebo bez kódu nebo volat rozhraní API pro existující služby.
  • Seznamte se s možnostmi, včetně řešení orientovaných na kód a no-code nebo low-code. Mohli byste vytvořit všechno sami, ale je to efektivní využití času a dovednosti? V závislosti na vašich požadavcích můžete obvykle spojit kombinaci technologií a přístupů (kód, bez kódu, low-code, nástroje).

Tady je bod, že neexistuje jediný správný způsob, jak do svých aplikací vytvářet generující funkce AI. Existuje mnoho nástrojů a přístupů. Je důležité vyhodnotit kompromisy.

Začínáme s fokusem na aplikační vrstvě

Abyste mohli začít a být produktivní, nemusíte rozumět všemu, co generuje AI. Jak už bylo uvedeno dříve, pravděpodobně už víte dost, protože můžete používat rozhraní API a používat stávající dovednosti.

Například nemusíte trénovat vlastní LLM od začátku. Trénování LLM by vyžadovalo čas a prostředky, které většina společností nechce potvrdit. Místo toho stavíte nad stávajícími předem natrénovanými základními modely, jako je GPT-4, a to provedením volání rozhraní API do existujících hostovaných služeb, jako je rozhraní API Azure OpenAI. Přidáním generativních funkcí AI do existující aplikace se tímto způsobem neliší od přidání dalších funkcí založených na volání rozhraní API.

Zkoumání toho, jak jsou LLM vytrénovány nebo jak fungují, by mohly uspokojovat vaši duševní zvědavost, ale skutečně pochopit, jak LLMs pracují, vyžaduje hluboké porozumění datovým vědám a matematickému pozadí, aby ji podporovaly. Může se jednat o kurzy na úrovni absolventa statistiky, pravděpodobností a teorie informací.

Pokud pocházíte z oblasti počítačových věd, můžete si uvědomit, že většina vývoje aplikací probíhá na "vyšší vrstvě v zásobníku" výzkumu a technologií. Možná znáte každou vrstvu, ale pravděpodobně se specializujete na vrstvu vývoje aplikací, která se zaměřuje na konkrétní programovací jazyk a platformu (dostupná rozhraní API, nástroje, vzory atd.).

Totéž platí pro pole AI. Můžete pochopit a ocenit teorii, která se zaměřuje na budování nad LLM, ale pravděpodobně se zaměříte na aplikační vrstvu nebo pomůžete implementovat vzory nebo procesy, které ve vaší společnosti umožňují generovat úsilí AI.

Tady je zjednodušená reprezentace vrstev znalostí potřebných k implementaci generativních funkcí umělé inteligence v nové nebo existující aplikaci:

Diagram vrstev znalostí V dolní části pole obsahující slova základní datové vědy, umělé inteligentní výzkumy, statistiky a teorie pravděpodobnosti. Další úroveň nahoru, slova trénování velkých jazykových modelů. Další úroveň nahoru, vytváření služeb, nástrojů a vývoj rozhraní API. A na nejvyšší úrovni, aplikační vrstvě, vzorech a procesech.

Na nejnižší úrovni máte datové vědce, kteří provádějí výzkum datových věd, aby vyřešili nebo vylepšili AI na základě hlubokého matematického porozumění statistiky, teorie pravděpodobnosti atd. Na základě nejnižší základní vrstvy máte datové vědce, kteří do LLM implementují teoretické koncepty, vytvářejí neurální sítě a trénují váhy a předsudky, které poskytují praktický software, který dokáže přijímat vstupy (výzvy) a generovat výsledky (dokončení). Výpočetní proces vytváření dokončení na základě výzev se označuje jako odvození. Existují ti, kteří jsou zodpovědní za implementaci způsobu, jakým neurony neurální sítě predikují další slovo nebo pixel, které se mají generovat.

Vzhledem k množství výpočetního výkonu potřebného k trénování modelů a generování výsledků na základě vstupu. Modely se často trénují a hostují ve velkých datových centrech. Model je možné vytrénovat nebo hostovat na místním počítači, ale výsledky jsou často pomalé (bez vyhrazených grafických grafických karet pro zpracování výpočetních prostředků potřebných k vygenerování výsledků).

Při hostování ve velkých datových centrech se programový přístup k těmto modelům poskytuje prostřednictvím rozhraní REST API a ty jsou někdy "zabalené" sadami SDK a jsou k dispozici vývojářům aplikací, aby je mohli snadno používat. Další nástroje můžou pomoct zlepšit vývojářské prostředí a poskytovat pozorovatelnost nebo jiné nástroje. Vývojáři aplikací můžou do těchto rozhraní API volat, aby implementovali obchodní funkce.

Kromě programové výzvy k modelům existují vzory a procesy, které pomáhají firmám vytvářet spolehlivé obchodní funkce založené na generování umělé inteligence. Existují například vzory, které firmám pomáhají zajistit, aby vygenerovaný text, kód, obrázky a zvuk splňovaly etické a bezpečnostní normy a také závazky týkající se ochrany osobních údajů zákazníků.

Pokud jste vývojář aplikací zodpovědný za vytváření obchodních funkcí, můžete v této sadě obav nebo vrstev tlačit mimo aplikační vrstvu do vývoje a trénování vlastního LLM. Tato úroveň porozumění ale vyžaduje novou sadu dovedností, které jsou často dostupné pouze v akademickém prostředí. Pokud se nemůžete v akademickém prostředí datových věd zavázat k vývoji kompetentnosti, která vám pomůže vytvořit další vrstvu v zásobníku (takže mluvit), pak se zaměřit na témata aplikační vrstvy, například:

  • Vysvětlení dostupných rozhraní API a sad SDK, co je k dispozici, jaké různé koncové body produkují atd.
  • Porozumění souvisejícím nástrojům a službám, které vám pomůžou sestavovat všechny funkce potřebné pro produkční řešení AI připravené pro generování.
  • Porozumíte technikům výzvy, jako je způsob, jak dosáhnout nejlepších výsledků tím, že se položíte nebo přehrajete otázky.
  • Vysvětlení, kde se objevují kritické body a jak škálovat řešení Vysvětlení toho, co se týká protokolování nebo získávání telemetrie, aniž by bylo nutné izolovat obavy zákazníků o ochranu osobních údajů
  • Pochopení charakteristik různých LLM (jejich silné stránky, případy použití, jaké jsou srovnávací testy a co měří, klíčové rozdíly mezi dodavateli a modely vyrobené jednotlivými dodavateli atd.) pro výběr správného modelu pro potřeby vaší společnosti.
  • Seznamte se s nejnovějšími vzory, pracovními postupy a procesy používanými k vytváření efektivních a odolných funkcí generování AI ve vašich aplikacích.

Dostupné služby a nástroje od Microsoftu

Microsoft nabízí nástroje a služby a nástroje pro generování bez kódu s nízkým kódem, které vám pomůžou sestavit část nebo celé řešení. Různé služby Azure můžou hrát klíčové role, z nichž každá přispívá k efektivitě, škálovatelnosti a odolnosti řešení:

Přístup založený na rozhraní API a sadách SDK pro přístup orientovaný na kód

Jádrem každého řešení generující umělé inteligence je model LLM a Azure OpenAI poskytuje přístup ke všem funkcím dostupným v modelech, jako je GPT-4.

Produkt Popis
Azure OpenAI Hostovaná služba, která poskytuje přístup k výkonným jazykovým modelům, jako je GPT-4. Existuje několik různých rozhraní API, která umožňují provádět všechny typické funkce LLM, jako je vytváření vkládání, vytváření prostředí chatu atd. s úplným přístupem k nastavení a úpravám, aby se výsledky přizpůsobily podle potřeby.

Spouštěcí prostředí

Vzhledem k tomu, že vytváříte obchodní logiku, logiku prezentace nebo rozhraní API pro integraci generující AI do aplikací vaší organizace, potřebujete někam tuto logiku hostovat a spouštět.

Produkt Popis
Aplikace Azure Service (nebo některé z několika cloudových služeb založených na kontejnerech) Tato platforma může hostovat webová rozhraní nebo rozhraní API, prostřednictvím kterých uživatelé komunikují se systémem RAG-chat. Podporuje rychlý vývoj, nasazení a škálování webových aplikací, což usnadňuje správu front-endových komponent systému.
Azure Functions Pomocí bezserverového výpočetního prostředí můžete zpracovávat úlohy řízené událostmi v rámci chatovacího systému RAG. Můžete ho například použít k aktivaci procesů načítání dat, zpracování uživatelských dotazů nebo zpracování úloh na pozadí, jako je synchronizace a vyčištění dat. Umožňuje modulární a škálovatelný přístup k vytváření back-endu systému.

Low-code / No-code

Případně je možné některé logiky, které řešení vyžaduje, rychle sestavit a spolehlivě hostovat pomocí řešení s nízkým kódem nebo bez kódu.

Produkt Popis
Azure AI Studio Azure AI Studio se dá použít k trénování, testování a nasazování vlastních modelů strojového učení, které by mohly vylepšit chatovací systém RAG. Pomocí nástroje Azure AI Studio můžete například přizpůsobit generování odpovědí nebo zlepšit relevanci načtených informací.

Vektorová databáze

Některá řešení generující AI můžou vyžadovat ukládání a načítání dat používaných k rozšíření generování (například chatovací systémy založené na RAG, které uživatelům umožňují chatovat s daty vaší organizace). V tomto případě potřebujete vektorové úložiště dat.

Produkt Popis
Azure AI Search Tuto službu je možné využít k efektivnímu vyhledávání ve velkých datových sadách k vyhledání relevantních informací, které je možné použít k informování odpovědí generovaných jazykovými modely. Je užitečné pro načtení součásti systému RAG, aby generované odpovědi byly co nejinformativnější a co nejrelevantní.
Cosmos DB Tato globálně distribuovaná databázová služba s více modely může ukládat obrovské objemy strukturovaných a nestrukturovaných dat, ke kterým potřebuje chatovací systém RAG. Díky rychlým funkcím čtení a zápisu je ideální pro poskytování dat v reálném čase do jazykového modelu a ukládání interakcí uživatelů pro další analýzu.
Azure Cache for Redis Toto plně spravované úložiště dat v paměti se dá použít k ukládání často používaných informací do mezipaměti, což snižuje latenci a zlepšuje výkon chatovacího systému RAG. Je zvlášť užitečné pro ukládání dat relací, uživatelských předvoleb a běžných dotazů.
Flexibilní server Azure Database for PostgreSQL Tato spravovaná databázová služba může ukládat data aplikací, včetně protokolů, profilů uživatelů a historických dat chatu. Její flexibilita a škálovatelnost podporují dynamické potřeby chatovacího systému RAG a zajišťují konzistentní dostupnost a zabezpečení dat.

Každá z těchto služeb Azure přispívá k vytvoření komplexní, škálovatelné a efektivní architektury pro řešení generující umělé inteligence, což vývojářům umožňuje využívat ty nejlepší cloudové funkce Azure a technologie AI.

Vývoj generování AI orientovaný na kód pomocí rozhraní API Azure OpenAI

V této části se zaměříme na rozhraní API Azure OpenAI. Jak jsme uvedli dříve, přístup k funkcím LLM prostřednictvím kódu programu prostřednictvím webového rozhraní API RESTful. K volání těchto rozhraní API můžete použít doslova jakýkoli moderní programovací jazyk. V mnoha případech fungují sady SDK specifické pro jazyk nebo platformu jako "obálky" kolem volání rozhraní REST API, aby prostředí bylo idiomaticější.

Pokud není sada SDK jazyka nebo platformy dostupná, nejhorší scénář je, že musíte provést volání REST přímo do webového rozhraní API. Většina vývojářů ale umí volat webová rozhraní API.

Azure OpenAI nabízí řadu rozhraní API navržených pro usnadnění různých typů úloh využívajících AI, což vývojářům umožňuje integrovat pokročilé funkce AI do svých aplikací. Tady je přehled klíčových rozhraní API dostupných z OpenAI:

  • Rozhraní API pro dokončování chatu: Toto rozhraní API se zaměřuje na scénáře generování textu, včetně konverzačních funkcí, což umožňuje vytváření chatovacích robotů a virtuálních asistentů, které se můžou zapojit do přirozeného dialogu podobného člověku. Je optimalizovaná pro případy interaktivního použití, včetně zákaznické podpory, osobních asistentů a interaktivních výukových prostředí. Používá se ale také pro všechny scénáře generování textu, včetně shrnutí, automatického dokončování, psaní dokumentů, analýzy textu, překladu atd. Jedná se o vstupní bod pro možnosti zpracování obrazu aktuálně ve verzi Preview (to znamená nahrání obrázku a kladení otázek).
  • Rozhraní API pro moderování: Toto rozhraní API je navržené tak, aby vývojářům pomohlo identifikovat a odfiltrovat potenciálně škodlivý obsah v textu. Poskytuje nástroj pro zajištění bezpečnějších interakcí uživatelů tím, že automaticky detekuje urážlivé, nebezpečné nebo jinak nevhodné materiály.
  • Rozhraní API pro vkládání: Rozhraní API pro vkládání generuje vektorové reprezentace textových vstupů, převádění slov, vět nebo odstavců na vysoce dimenzionální vektory. Tyto vkládání lze použít pro sémantické vyhledávání, clustering, analýzu podobnosti obsahu a další. Zachycuje základní význam a sémantické relace v textu.
  • Rozhraní API pro generování obrázků: Toto rozhraní API umožňuje vygenerovat původní, vysoce kvalitní obrázky a obrázky z textových popisů. Je založená na DALL· od OpenAI. E model, který může vytvářet obrázky, které odpovídají široké škále stylů a předmětů na základě výzev, které obdrží.
  • Zvukové rozhraní API: Toto rozhraní API poskytuje přístup k zvukovému modelu OpenAI, který je navržený pro automatické rozpoznávání řeči. Může přepisovat mluvený jazyk na text nebo text do řeči, který podporuje různé jazyky a dialekty. Je užitečné pro aplikace vyžadující hlasové příkazy, přepis zvukového obsahu a další.

I když je možné používat generování umělé inteligence k práci s mnoha různými způsoby médií, strávíme zbytek tohoto článku tím, že se zaměříme na řešení generující AI založená na textu. Týká se to scénářů, jako je chat, shrnutí atd.

Jak začít vyvíjet aplikace pomocí generující umělé inteligence

Vývojáři softwaru, kteří jsou noví v neznámém jazyce, rozhraní API nebo technologii, se ho obvykle začínají učit podle kurzů nebo trénovacích modulů pro vytváření malých aplikací. Někteří vývojáři softwaru raději používají samoobslužný přístup a vytvářejí malé experimentální aplikace. Oba přístupy jsou platné a užitečné.

Jak začnete, je nejlepší začít s malými, slibovat málo, iterovat a rozvíjet své znalosti a dovednosti, protože vývoj pomocí generativní umělé inteligence představuje jedinečné výzvy. Například v tradičním vývoji softwaru můžete spoléhat na deterministický výstup – pro libovolnou sadu vstupů můžete pokaždé očekávat úplně stejný výstup. Generative je ale nedeterministický – nikdy nedostanete úplně stejnou odpověď dvakrát pro danou výzvu, která je kořenem mnoha nových výzev. Než začnete, zvažte následující tipy, než se dostanete příliš daleko:

Tip č. 1: Získejte jasné informace o tom, čeho se snažíte dosáhnout.

  • Získejte konkrétní informace o problému, který se pokoušíte vyřešit: Generativní AI může vyřešit celou řadu problémů, ale úspěch pochází z jasného definování konkrétního problému, který chcete vyřešit. Pokoušíte se generovat text, obrázky, kód nebo něco jiného? Čím konkrétnější jste, tím lépe si můžete AI přizpůsobit tak, aby vyhovovala vašim potřebám.
  • Seznamte se s cílovou skupinou: Znalost cílové skupiny pomáhá přizpůsobit výstup umělé inteligence tak, aby odpovídal jejich očekáváním, ať už jde o neformální uživatele nebo odborníky v konkrétním oboru.

Tip č. 2: Přehrajte si silné stránky LLM.

  • Seznamte se s omezeními a biasemi LLM: Zatímco LLM jsou výkonné, mají omezení a vlastní předsudky. Znalost omezení a předsudků vám může pomoct s jejich návrhem nebo začleněním omezení rizik.
  • Zjistěte, kde LLMs excel: LLMs exceluje na úkolech, jako je vytváření obsahu, sumarizace, překlad jazyka atd. I když se jejich rozhodovací schopnosti a nerozlišující schopnosti s každou novou verzí ztěžují, můžou existovat i jiné typy AI, které jsou vhodnější pro váš scénář nebo případ použití. Zvolte správný nástroj pro úlohu.

Tip č. 3: Nejlepší výsledky začínají dobrými výzvami.

  • Seznamte se s osvědčenými postupy přípravy výzvy: Vytváření efektivních výzev je umění. Experimentujte s různými výzvami a podívejte se, jak ovlivňují výstup. Buďte struční, ale přesto popisní.
  • Potvrzení k iterativnímu upřesnění: První výzva často nemusí přinést požadovaný výsledek. Jedná se o proces pokusu a chyby. Pomocí výstupů dále upřesněte výzvy.

Vytvoření prvního řešení generující umělé inteligence

Pokud chcete začít experimentovat s vytvářením řešení generující umělé inteligence okamžitě, doporučujeme se podívat na začínáme s chatem pomocí vlastní ukázky dat pro Python. K dispozici jsou také verze tohoto kurzu v .NET, Javě a JavaScriptu.

Konečné aspekty, které můžou ovlivnit rozhodnutí o návrhu aplikace

Tady je krátký seznam věcí, které je potřeba vzít v úvahu, a další poznatky z tohoto článku, které ovlivňují rozhodnutí o návrhu vaší aplikace:

  • Definujte problémový prostor a cílovou skupinu jasně tak, aby odpovídaly schopnostem umělé inteligence s očekáváním uživatelů, a optimalizujte efektivitu řešení pro zamýšlený případ použití.
  • Pro rychlé vytváření prototypů a vývoje používejte platformy s nízkými kódy nebo bez kódu, pokud splňují požadavky vašeho projektu, a vyhodnocujte kompromis mezi rychlostí vývoje a přizpůsobitelností. Prozkoumejte možnosti řešení s nízkým kódem a bez kódu pro části aplikace, abyste urychlili vývoj a umožnili členům netechnického týmu přispívat do projektu.