Generování řešení 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 Služba Azure OpenAI, usnadňují vývoj umělé inteligence pomocí snadno použitelných rozhraní API. Vývojáři na všech úrovních dovedností mohou integrovat pokročilé funkce umělé inteligence do svých aplikací bez specializovaných znalostí nebo investic do hardwaru.
Jako vývojář aplikací můžete chtít pochopit, jakou roli můžete hrát a kam se vejdete. Možná se například zajímáte, na které úrovni v "zásobníku AI" se zaměřit se své učení. Nebo vás může zajímat, co jste schopni vytvářet s využitím stávajících technologií.
Abyste mohli na tyto otázky odpovědět, je důležité, abyste nejprve vytvořili mentální model, který mapuje, jak se nová terminologie a technologie hodí do toho, 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.
V řadě článků vám ukážeme, jak se vaše současné zkušenosti s vývojem softwaru aplikují na generativní AI. Články také nastavují základ klíčových slov a konceptů, na kterých můžete stavět, když začínáte vyvíjet svá první generativní AI řešení.
Jak podniky využívají generující AI
Abyste pochopili, jak vaše současné zkušenosti s vývojem softwaru platí pro generativní umělou inteligenci, je důležité pochopit, jak firmy plánují těžit z používání generativní umělé inteligence.
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 konkrétní otázky týkající se organizace nebo jejích produktů nebo služeb.
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. Tento scénář 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
- Použijte "chat s vašimi daty". To znamená, že umožňuje uživateli klást otázky v chatovacím prostředí pomocí dat uložených v databázích nebo dokumentech organizace jako základ pro odpovědi.
- Shrnutí, organizace a zjednodušení velkých částí obsahu, aby byl obsah přístupnější.
- Použijte sémantické vyhledávání. To znamená, že uživatelům umožňuje prohledávat dokumenty a data bez použití přesných shod klíčových slov.
- Překlad jazyka pro zvýšení dosahu a přístupnosti obsahu
analýzy 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.
Vývojář softwaru má příležitost výrazně zvýšit svůj dopad integrací aplikací a funkcí generující umělé inteligence do softwaru, na který organizace spoléhá.
Jak vytvářet generativní aplikace umělé inteligence
I když LLM dělá náročné úlohy, vytváříte systémy, které integrují, orchestrují a monitorují výsledky. Je toho hodně, co se naučit, ale můžete použít dovednosti, které už máte, včetně toho, jak:
- Vytvořte volání rozhraní API pomocí RESTu, JSONu nebo jazykově specifických sad SDK.
- Orchestrace volání rozhraní API a provádění obchodní logiky
- Ukládání a načítání z úložišť dat
- Integrace vstupu a výsledků do uživatelského prostředí
- Vytvořte rozhraní API, která lze volat z LLM
Vývoj generativních řešení umělé inteligence vychází z vašich stávajících dovedností.
Vývojářské nástroje a služby
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í hlavní problém nebo odpovědnost, která je potřebná k vytvoření řešení generující umělé inteligence. Pokud chcete používat danou službu, rozhraní API nebo prostředek efektivně, je výzvou zajistit, abyste:
- Seznamte se s typickými funkcemi, rolemi a zodpovědnostmi v daném typu generující funkce umělé inteligence. Právě jak podrobně probíráme v koncepčních článcích, které popisují chatovací systémy založené na rozšířené generaci s podporou vyhledávání (RAG), systém má mnoho architektonických povinností. 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 zodpově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 stávajících nástrojů s nízkým kódem nebo bez kódu nebo můžete volat rozhraní API pro stávající služby.
- Seznamte se s možnostmi, včetně řešení orientovaných na kód a řešení no-code/low-code. Můžete si vytvořit všechno sami, ale je to efektivní využití času a dovedností? 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).
Neexistuje žádný správný způsob, jak do svých aplikací vytvářet generující funkce AI. Můžete si vybrat z mnoha nástrojů a přístupů. Je důležité vyhodnotit kompromisy každého z nich.
Začínáme s aplikační vrstvou
Nemusíte rozumět všemu, jak generování umělé inteligence funguje, abyste mohli začít pracovat a být produktivní. Jak už bylo uvedeno dříve, pravděpodobně už víte dost. Můžete použít rozhraní API a použít stávající dovednosti, abyste mohli začít.
Například nemusíte trénovat vlastní LLM od začátku. Školení LLM vyžaduje čas a zdroje, které většina společností nechce investovat. Místo toho se můžete stavět na existujících předem natrénovaných základních modelech, jako je GPT-4, a to provedením volání rozhraní API do stávajících hostovaných služeb, jako je azure OpenAI API. Přidání generativních funkcí AI do existující aplikace se nijak 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 plně pochopit, jak LLM funguje, vyžaduje hluboké porozumění datovým vědám a matematickému pozadí, které ho podporuje. Získání tohoto porozumění může zahrnovat kurzy na úrovni absolventa o statistikách, pravděpodobnostech a teorii informací.
Pokud máte zkušenosti s počítačovými vědami, můžete si uvědomit, že většina vývoje aplikací probíhá ve vyšší vrstvě ve "zásobníku" výzkumu a technologií. Možná znáte každou vrstvu, ale pravděpodobně se specializujete na vrstvu vývoje aplikací se zaměřením na konkrétní programovací jazyk a platformu, jako jsou dostupná rozhraní API, nástroje a vzory.
Totéž platí pro pole AI. Můžete pochopit a oceníte teorii, která jde na základě LLMs, ale pravděpodobně se zaměříte na aplikační vrstvu nebo pomůžete implementovat vzory nebo procesy, které umožní ve vaší společnosti generovat úsilí AI.
Tady je zjednodušená reprezentace vrstev znalostí, které jsou potřeba k implementaci generovaných funkcí umělé inteligence v nové nebo existující aplikaci:
Na nejnižší úrovni datoví vědci 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.
O jednu vrstvu výše, na základě nejnižší základní vrstvy, datoví vědci implementují teoretické koncepty ve velkých jazykových modelech (LLM), vytvářejí neurální sítě a trénují váhy a biasy, aby poskytli praktický software, který může přijímat vstupy (výzvy) a generovat výsledky (dokončení). Výpočetní proces vytváření kompletací na základě výzev se nazývá inference. Datoví vědci určují, jak neurony neurální sítě předpovědět další slovo nebo pixel, které se mají vygenerovat.
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 se modely často trénují a hostují ve velkých datacentrech. Model je možné trénovat nebo hostovat na místním počítači, ale výsledky jsou často pomalé. Rychlost a efektivita jsou zajištěny grafickými kartami s GPU, které pomáhají zvládat výpočetní výkon potřebný k vygenerování výsledků.
Při hostování ve velkých datacentrech se programový přístup k těmto modelům poskytuje prostřednictvím rozhraní REST API. Rozhraní API jsou někdy "zabalená" sadami SDK a jsou dostupná 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í mohou tato rozhraní API volat k implementaci obchodních funkcí.
Kromě výzvy modelů prostřednictvím kódu programu se objevují vzory a procesy, které organizacím pomáhají vytvářet spolehlivé obchodní funkce založené na generování umělé inteligence. Objevují se 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 závazky týkající se ochrany osobních údajů zákazníků.
V této vrstvené struktuře, pokud jste vývojář aplikací odpovědný za vytváření obchodních funkcí, je možné svoji práci posunout za aplikační vrstvu a začít vyvíjet a trénovat vlastní LLM. Tato úroveň porozumění ale vyžaduje novou sadu dovedností, které se často vyvíjejí pouze prostřednictvím pokročilého vzdělávání.
Pokud se nemůžete zavázat k rozvíjení schopností v oblasti datové vědy akademicky, abychom pomohli vybudovat další vrstvu v zásobníku, můžete se zaměřit na rozvoj znalostí v oblasti aplikační vrstvy.
- Rozhraní API a sady SDK: Co je k dispozici a co různé koncové body produkují.
- Související nástroje a služby, které vám pomůžou sestavovat všechny funkce potřebné pro řešení generování AI připravené pro produkční prostředí.
- Inženýrství výzev: Jak dosáhnout nejlepších výsledků kladením nebo přeformulováním otázek.
- Kde se objevují kritické body a jak škálovat řešení. Tato oblast obsahuje informace o tom, co se týká protokolování nebo získávání telemetrie, aniž by byly dotčeny obavy zákazníků ohledně ochrany osobních údajů.
- Charakteristiky různých LLM: Jejich silné stránky, případy použití, srovnávací testy a jejich měření a klíčové rozdíly mezi dodavateli a modely vyrobenými jednotlivými dodavateli. Tyto informace vám pomůžou zvolit správný model pro potřeby vaší organizace.
- Nejnovější vzory, pracovní postupy a procesy, které můžete použít k vytváření efektivních a odolných funkcí generování AI ve vašich aplikacích.
Nástroje a služby od Microsoftu
Můžete použít nástroje a služby pro nízké kódování a bez kódu generativní AI od Microsoftu, které vám pomohou sestavit některá nebo všechna vaše řešení. Různé služby Azure můžou hrát klíčové role. Každý přispívá k efektivitě, škálovatelnosti a odolnosti řešení.
Rozhraní API a sady SDK pro přístup orientovaný na kód
Jádrem každého řešení generující umělé inteligence je model LLM. 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. Pomocí několika rozhraní API můžete provádět všechny typické funkce LLM, včetně vytváření vkládání a vytváření chatovacího prostředí. Máte úplný přístup k nastavením a přizpůsobením, abyste získali požadované výsledky. |
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 službu pro hostování a spuštění této logiky.
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í s chatovacím systémem RAG. Podporuje rychlý vývoj, nasazení a škálování webových aplikací, takže je snazší spravovat front-endové komponenty systému. |
Azure Functions | Používejte bezserverové výpočetní prostředky ke zpracování úloh řízených událostmi v chatovacím 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. |
Řešení s nízkým kódem a bez kódu
Některé z logiky, kterou potřebujete k implementaci generující vize umělé inteligence, je možné rychle sestavit a spolehlivě hostovat pomocí řešení bez kódu nebo bez kódu.
Produkt | Popis |
---|---|
Azure AI Foundry | Azure AI Foundry můžete použít k trénování, testování a nasazování vlastních modelů strojového učení k vylepšení chatovacího systému RAG. Pomocí Azure AI Foundry 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í. Příkladem je chatovací systém založený na RAG, který uživatelům umožňuje chatovat s daty vaší organizace. V tomto případě potřebujete vektorové úložiště dat.
Produkt | Popis |
---|---|
Azure AI Search | Pomocí této služby můžete efektivně prohledávat velké datové sady a vyhledávat relevantní informace, které informují odpovědi generované jazykem. Je užitečné, aby komponenta vyhledávání v systému RAG byla co nejvíce informativní a kontextově relevantní, takže generované odpovědi jsou co nejinformativnější a co nejrelevantnější možná. |
Azure 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 přístup. 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 k 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ů. |
Azure Database for PostgreSQL - flexibilní server | Tato spravovaná databázová služba může ukládat data aplikací, včetně protokolů, profilů uživatelů a historických dat chatu. Jeho flexibilita a škálovatelnost podporují dynamické potřeby chatovacího systému RAG, aby data byla konzistentně dostupná a zabezpečená. |
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. Pomáhají vývojářům přistupovat k nejlepším cloudovým funkcím Azure a technologiím AI a využívat je.
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 konkrétní jazyk nebo platformu jako obálky kolem volání rozhraní REST API, aby prostředí bylo více idiomaticky.
Tady je seznam obálků rozhraní REST API Azure OpenAI:
- Klientská knihovna Azure OpenAI pro .NET
- Klientská knihovna Azure OpenAI pro Javu
- Klientská knihovna Azure OpenAI pro JavaScript
- Klientský modul Azure OpenAI pro Go
- Použijte balíček OpenAI Python a změňte několik možností. Python nenabízí klientskou knihovnu specifickou pro Azure.
Pokud je sada SDK jazyka nebo platformy nedostupná, nejhorší scénář je, že musíte provést volání REST přímo do webových rozhraní API:
Většina vývojářů umí volat webová API.
Azure OpenAI nabízí řadu rozhraní API, která jsou navržená tak, aby usnadnila různé typy úloh využívajících AI, aby vývojáři mohli do svých aplikací integrovat pokročilé funkce umělé inteligence. 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í, které podporují 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 pro všechny scénáře generování textu, včetně shrnutí, automatického dokončování, psaní dokumentů, analýzy textu a překladu. Je to vstupní bod pro možnosti zpracování obrazu, které jsou aktuálně ve verzi Preview (to znamená nahrát obrázek a pokládat o něm otázky).
- rozhraní API moderování: Toto rozhraní API je navržené tak, aby vývojářům pomohlo identifikovat a odfiltrovat potenciálně škodlivý obsah v textu. Je to nástroj, který pomáhá zajistit bezpečnější interakce 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řevede slova, věty nebo odstavce 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ů: Pomocí tohoto rozhraní API můžete 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ží.
- audio API: Toto rozhraní API poskytuje přístup k zvukovému modelu OpenAI a 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, které vyžadují hlasové příkazy, přepis zvukového obsahu a další.
I když můžete použít generování umělé inteligence k práci s mnoha různými způsoby médií, ve zbytku tohoto článku se zaměříme na textová generující řešení AI. Mezi tato řešení patří scénáře, jako je chat a sumarizace.
Začínáme s vývojem pomocí generativní 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 pomocí kurzů nebo výukových modulů, které ukazují, jak se vytvářejí malé aplikace. 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 v malém, slibovat málo, iterovat a rozvíjet své porozumění a dovednosti. Vývoj aplikací pomocí generující umělé inteligence má jedinečné výzvy. V tradičním vývoji softwaru můžete například spoléhat na deterministický výstup. To znamená, že pro libovolnou sadu vstupů můžete pokaždé očekávat úplně stejný výstup. Ale generativní AI je nedeterministické. Nikdy nedostanete úplně stejnou odpověď dvakrát pro danou výzvu, která je kořenem mnoha nových výzev.
Až začnete, zvažte tyto tipy.
Tip 1: Buďte jasné o tom, co chcete dosáhnout
- Buďte specifická ohledně 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: Použití silných stránek LLM
- Seznamte se s omezeními a biasemi LLM: I když jsou LLM 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 vynikají: LLMs vynikají v úkolech, jako je vytváření obsahu, shrnutí a překlad. I když se jejich rozhodovací schopnosti a rozeznávací schopnosti s každou novou verzí zlepšují, mohou existovat i jiné typy AI, které jsou vhodnější pro váš konkrétní scénář nebo případ použití. Zvolte správný nástroj pro úlohu.
Tip 3: Pro dobré výsledky použijte dobré výzvy
- 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 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. K dalšímu upřesnění výzev použijte výstupy.
Vytvoření prvního řešení generující umělé inteligence
Pokud chcete ihned začít experimentovat s budováním generativního AI řešení, doporučujeme podívat se na Začněte s chatem pomocí vlastních ukázek dat pro Python. Tento kurz je také k dispozici pro .NET, Javaa JavaScript.
Konečné aspekty 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é můžou mít vliv na 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ů. 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ým kódem nebo bez kódu, pokud splňují požadavky vašeho projektu. Vyhodnoťte 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.