Sdílet prostřednictvím


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ě.

Snímek obrazovky zobrazující chatovací aplikaci módního asistenta ve službě Aplikace Azure Service

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

  1. 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.
  2. Vyberte Vytvořit fork.
  3. 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

  1. Přihlaste se ke svému účtu Azure pomocí azd auth login příkazu a na příkazovém řádku:

    azd auth login
    
  2. 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 do src/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ě.

  1. Na webu Azure Portal přejděte na stránku správy aplikace.
  2. Na stránce správy aplikace v nabídce vlevo vyberte Deployment Center.
  3. 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.
  4. Po opětovném načtení stránky vyberte kartu Kontejnery (nové).
  5. 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
  6. Vyberte Použít.

4. Ověření spuštěné aplikace

  1. 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/
     
  2. Vyberte produkt, položte o něm jakoukoliv otázku, která se vám líbí, a vyberte Odeslat.

    Snímek obrazovky s chatovacím robotem AI spuštěným ve službě App Service

Nejčastější dotazy

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ě.

  1. 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
    
  2. 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.

  3. 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.

Další materiály