Spuštění místního SLM v kontejneru sajdkáře ve službě Aplikace Azure Service
V tomto kurzu se dozvíte, jak spustit malý jazykový model (SLM) jako kontejner sajdkárů ve službě Aplikace Azure Service a přistupovat k němu v hlavním kontejneru Linuxu. Na konci tohoto kurzu budete mít chatovací aplikaci módního asistenta spuštěnou ve službě App Service a přístup k modelu místně.
Místní spuštění SLM je výhodné, pokud chcete spustit chatovací aplikaci bez odesílání obchodních dat přes internet do cloudové služby chatovacího robota AI.
- Cenové úrovně s vysokým výkonem: App Service nabízí vysoce výkonné cenové úrovně, které vám pomůžou spouštět modely AI ve velkém měřítku.
- Oddělení obav: Spuštění SLM v sajdkáře umožňuje oddělit logiku AI od logiky aplikace. Samostatné komponenty, jako je upgrade modelu, můžete udržovat samostatně, aniž by to ovlivnilo vaši aplikaci.
Požadavky
- Účet Azure s aktivním předplatným. Pokud účet Azure nemáte, můžete si ho zdarma vytvořit.
- Účet GitHub. můžete si ho zdarma získat.
Důležité informace o výkonu
Vzhledem k tomu, že modely AI spotřebovávají značné prostředky, zvolte cenovou úroveň, která poskytuje dostatek virtuálních procesorů a paměti ke spuštění konkrétního modelu. V praxi byste také měli použít model optimalizovaný pro procesor, protože cenové úrovně služby App Service jsou jen pro procesory.
V tomto kurzu se používá minimodel Phi-3 s délkou kontextu 4K od Hugging Face. Je navržený tak, aby běžel s omezenými prostředky a poskytuje silné matematické a logické důvody pro mnoho běžných scénářů. Dodává se také s verzí optimalizovanou pro procesor. Ve službě App Service jsme model otestovali na všech úrovních Premium a zjistili jsme, že funguje dobře na úrovni P2mv3 . Pokud to vaše požadavky umožňují, můžete ho spustit na nižší úrovni.
1. Kontrola ukázky v GitHub Codespaces
- Přihlaste se ke svému účtu GitHub a přejděte na https://github.com/Azure-Samples/ai-slm-in-app-service-sidecar/fork.
- Vyberte Vytvořit fork.
- Vyberte Code>Create codespace on main. Nastavení codespace trvá několik minut.
Ukázkové úložiště obsahuje následující obsah:
Obsah | Popis |
---|---|
src/phi-3-sidecar | Kód image Dockeru, který spouští koncový bod Python FastAPI pro mini model Phi-3. Podívejte se, jak funguje kontejner Phi-3 sidecar? |
src/webapp | Front-endová aplikace .NET Blazor. Podívejte se, jak front-endová aplikace funguje? |
níže | Infrastruktura jako kód pro nasazení webové aplikace .NET v Azure Viz Přehled vytváření šablon Azure Developer CLI. |
azure.yaml | Konfigurace Azure Developer CLI, která nasadí aplikaci Blazor do služby App Service. Viz Přehled vytváření šablon Azure Developer CLI. |
2. Nasazení front-endové aplikace
Přihlaste se ke svému účtu Azure pomocí
azd auth login
příkazu a na příkazovém řádku:azd auth login
Pomocí příkazu vytvořte aplikaci App Service a nasaďte kód
azd up
:azd up
Dokončení
azd up
příkazu může trvat několik minut.azd up
pomocí souborů Bicep ve vašich projektech vytvoří aplikaci App Service v cenové úrovni P2mv3 a pak nasadí aplikaci .NET dosrc/webapp
.
3. Přidejte phi-3 sajdkár
V této části se předpokládá, že jste už vytvořili image Dockeru Phi-3 a nahráli ji do registru. Místo toho použijete předem načtenou image ve službě Microsoft Container Registry. Pokud chcete image sestavit a nahrát sami, přečtěte si, jak sestavit image Dockeru Phi-3 místně.
- Na webu Azure Portal přejděte na stránku správy aplikace.
- Na stránce správy aplikace v nabídce vlevo vyberte Deployment Center.
- Vyberte banner Zájem o přidání kontejnerů, které chcete spustit společně s vaší aplikací? Kliknutím sem ho můžete vyzkoušet.
- Po opětovném načtení stránky vyberte kartu Kontejnery (nové).
- Vyberte Přidat a nakonfigurujte nový kontejner následujícím způsobem:
- Název: phi-3
- Zdroj image: Další registry kontejnerů
- Typ obrázku: Veřejný
- Adresa URL serveru registru: mcr.microsoft.com
- Obrázek a značka: appsvc/docs/sidecars/sample-experiment:phi3-python-1.0
- Vyberte Použít.
4. Ověření spuštěné aplikace
Ve výstupu AZD najděte adresu URL aplikace a přejděte na ni v prohlížeči. Adresa URL vypadá takto ve výstupu AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: https://<app-name>.azurewebsites.net/
Vyberte produkt, položte o něm jakoukoliv otázku, která se vám líbí, a vyberte Odeslat.
Nejčastější dotazy
- Jak funguje kontejner sajdkáře Phi-3?
- Jak front-endová aplikace funguje?
- Jak místně sestavit image Dockeru Phi-3
Jak funguje kontejner sajdkáře Phi-3?
Spustí aplikaci FastAPI, která naslouchá na portu 8000, jak je uvedeno v souboru Dockerfile.
Aplikace používá modul RUNTIME ONNX k načtení modelu Phi-3 a pak předá data HTTP POST do modelu a streamuje odpověď z modelu zpět do klienta. Další informace najdete v tématu model_api.py.
Jak front-endová aplikace funguje?
Jedná se o základní aplikaci rag (loadal-augmented generation). Zobrazuje stránku Razor page, která odesílá tři údaje do koncového bodu FastAPI (na adrese localhost:8000
) v Send()
:
- Vybraný produkt
- Načtená data popisu produktu
- Zpráva odeslaná uživatelem
Potom vypíše streamovanou odpověď na stránku. Další informace naleznete v tématu Home.razor.
Jak místně sestavit image Dockeru Phi-3
Pokud chcete vytvořit image sajdkáře sami, musíte si na počítač nainstalovat Docker Desktop místně.
Naklonujte úložiště místně.
git clone https://github.com/Azure-Samples/ai-slm-in-app-service-sidecar cd ai-slm-in-app-service-sidecar
Přejděte do zdrojového adresáře image Phi-3 a stáhněte si model místně.
cd src/phi-3-sidecar/ huggingface-cli download microsoft/Phi-3-mini-4k-instruct-onnx --local-dir ./Phi-3-mini-4k-instruct-onnx
Soubor Dockerfile je nakonfigurovaný tak, aby model zkopíroval z souboru ./Phi-3-mini-4k-instruct-onnx.
Sestavte image Dockeru. Příklad:
docker build --tag phi-3 .
Pokud chcete nahrát sestavenou image do služby Azure Container Registry, přečtěte si téma Nahrání první image do registru kontejneru Azure pomocí rozhraní příkazového řádku Dockeru.