Nasazení kontejneru pro extrakci klíčových frází do Azure Kubernetes Service

Zjistěte, jak nasadit image kontejneru Dockeru pro extrakci klíčových frází do Azure Kubernetes Service (AKS). Tento postup ukazuje, jak vytvořit prostředek jazyka, jak přidružit image kontejneru a jak tuto orchestraci provést z prohlížeče. Používání kontejnerů může přesunout vaši pozornost od správy infrastruktury k tomu, aby se místo toho zaměřila na vývoj aplikací. V tomto článku se jako příklad používá kontejner extrakce klíčových frází, ale tento proces můžete použít pro jiné kontejnery, které nabízí jazyk Azure AI.

Požadavky

Tento postup vyžaduje několik nástrojů, které musí být nainstalovány a spuštěny místně. Nepoužívejte Azure Cloud Shell. Potřebujete následující:

Vytvoření prostředku jazyka Azure AI

  1. Přihlaste se k webu Azure Portal.

  2. Vyberte Vytvořit prostředek a pak přejděte na AI a jazyk strojového učení>. Nebo přejděte na Vytvořit prostředek jazyka.

  3. Nastavte všechny požadované hodnoty:

    Nastavení Hodnota
    Název Zadejte název (2–64 znaků).
    Předplatné Vyberte příslušné předplatné.
    Umístění Vyberte umístění ve svém okolí.
    Cenová úroveň Zadejte S, což je standardní cenová úroveň.
    Skupina prostředků Vyberte dostupnou skupinu prostředků.
  4. Vyberte Vytvořit a počkejte na vytvoření prostředku. Prohlížeč se automaticky přesměruje na nově vytvořenou stránku prostředku.

  5. Shromážděte nakonfigurovaný endpoint klíč a klíč rozhraní API:

    Karta Prostředek na portálu Nastavení Hodnota
    Přehled Koncový bod Zkopírujte koncový bod. Vypadá podobně jako https://my-resource.cognitiveservices.azure.com/text/analytics/v3.0.
    Klíče Klíč rozhraní API Zkopírujte jeden ze dvou klíčů. Jedná se o 32znakový alfanumerický řetězec bez mezer nebo pomlček: <xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>.

Vytvoření prostředku clusteru Azure Kubernetes Service

  1. Přejděte na Azure Kubernetes Service a vyberte Vytvořit.

  2. Na kartě Základní informace zadejte následující údaje:

    Nastavení Hodnota
    Předplatné Vyberte odpovídající předplatné.
    Skupina prostředků Vyberte dostupnou skupinu prostředků.
    Název clusteru Kubernetes Zadejte název (malými písmeny).
    Oblast Vyberte umístění ve svém okolí.
    Verze Kubernetes Libovolná hodnota je označená jako (výchozí)
    Předpona názvu DNS Vytvoří se automaticky, ale můžete ji přepsat.
    Velikost uzlu Standard DS2 v2:
    2 vCPUs, 7 GB
    Počet uzlů Ponechte posuvník na výchozí hodnotě.
  3. Na kartě Fondy uzlů nechte virtuální uzly a škálovací sady virtuálních počítačů nastavené na výchozí hodnoty.

  4. Na kartě Ověřování ponechte instanční objekt a Povolit RBAC nastavené výchozí hodnoty.

  5. Na kartě Sítě zadejte následující možnosti:

    Nastavení Hodnota
    Směrování aplikace HTTP No
    Konfigurace sítě Basic
  6. Na kartě Integrace se ujistěte, že je monitorování kontejnerů nastavené na Povoleno, a jako výchozí hodnotu ponechte pracovní prostor služby Log Analytics .

  7. Na kartě Značky ponechte páry název/hodnota zatím prázdné.

  8. Vyberte Zkontrolovat a vytvořit.

  9. Po ověření vyberte Vytvořit.

Poznámka

Pokud se ověření nezdaří, příčinou může být chyba instančního objektu. Zpět na kartu Ověřování a pak se vraťte do části Zkontrolovat a vytvořit, kde by se mělo ověření spustit a pak projít.

Nasazení kontejneru Extrakce klíčových frází do clusteru AKS

  1. Otevřete Azure CLI a přihlaste se k Azure.

    az login
    
  2. Přihlaste se ke clusteru AKS. Nahraďte your-cluster-name a your-resource-group příslušnými hodnotami.

    az aks get-credentials -n your-cluster-name -g -your-resource-group
    

    Po spuštění tohoto příkazu se zobrazí zpráva podobná této:

    Merged "your-cluster-name" as current context in /home/username/.kube/config
    

    Upozornění

    Pokud máte na účtu Azure k dispozici více předplatných a az aks get-credentials příkaz vrátí chybu, běžným problémem je, že používáte nesprávné předplatné. Nastavte kontext relace Azure CLI tak, aby používal stejné předplatné, pomocí kterého jste vytvořili prostředky, a zkuste to znovu.

     az account set -s subscription-id
    
  3. Otevřete textový editor podle výběru. Tento příklad používá Visual Studio Code.

    code .
    
  4. V textovém editoru vytvořte nový soubor s názvem keyphrase.yaml a vložte do něj následující YAML. Nezapomeňte nahradit billing/value a apikey/value vlastními informacemi.

    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: keyphrase
    spec:
      template:
        metadata:
          labels:
            app: keyphrase-app
        spec:
          containers:
          - name: keyphrase
            image: mcr.microsoft.com/azure-cognitive-services/keyphrase
            ports:
            - containerPort: 5000
            resources:
              requests:
                memory: 2Gi
                cpu: 1
              limits:
                memory: 4Gi
                cpu: 1
            env:
            - name: EULA
              value: "accept"
            - name: billing
              value: # {ENDPOINT_URI}
            - name: apikey
              value: # {API_KEY}
    
    --- 
    apiVersion: v1
    kind: Service
    metadata:
      name: keyphrase
    spec:
      type: LoadBalancer
      ports:
      - port: 5000
      selector:
        app: keyphrase-app
    

Důležité

Až budete hotovi, nezapomeňte klíč z kódu odebrat a nikdy ho nezveřejníte. V produkčním prostředí použijte zabezpečený způsob ukládání a přístupu k přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.

  1. Uložte soubor a zavřete textový editor.

  2. Spusťte příkaz Kubernetes apply se souborem keyphrase.yaml jako cílem:

    kubectl apply -f keyphrase.yaml
    

    Jakmile příkaz úspěšně použije konfiguraci nasazení, zobrazí se zpráva podobná následujícímu výstupu:

    deployment.apps "keyphrase" created
    service "keyphrase" created
    
  3. Ověřte, že byl pod nasazený:

    kubectl get pods
    

    Výstup stavu spuštění podu:

    NAME                         READY     STATUS    RESTARTS   AGE
    keyphrase-5c9ccdf575-mf6k5   1/1       Running   0          1m
    
  4. Ověřte, že je služba dostupná, a získejte IP adresu.

    kubectl get services
    

    Výstup stavu spuštění služby klíčové fráze v podu:

    NAME         TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)          AGE
    kubernetes   ClusterIP      10.0.0.1      <none>           443/TCP          2m
    keyphrase    LoadBalancer   10.0.100.64   168.61.156.180   5000:31234/TCP   2m
    

Ověření instance kontejneru extrakce klíčových frází

  1. Vyberte kartu Přehled a zkopírujte IP adresu.

  2. Otevřete novou kartu prohlížeče a zadejte IP adresu. Zadejte http://<IP-address>:5000 (http://55.55.55.55:5000například ). Zobrazí se domovská stránka kontejneru, která vás upozorní, že kontejner běží.

    Zobrazení domovské stránky kontejneru a ověření, že je spuštěný

  3. Výběrem odkazu Service API Description (Popis rozhraní API služby ) přejděte na stránku kontejneru Swagger.

  4. Zvolte libovolné rozhraní POST API a vyberte Vyzkoušet. Zobrazí se parametry, které zahrnují tento příklad vstupu:

    {
      "documents": [
        {
          "id": "1",
          "text": "Hello world"
        },
        {
          "id": "2",
          "text": "Bonjour tout le monde"
        },
        {
          "id": "3",
          "text": "La carretera estaba atascada. Había mucho tráfico el día de ayer."
        },
        {
          "id": "4",
          "text": ":) :( :D"
        }
      ]
    }
    
  5. Nahraďte vstup následujícím obsahem JSON:

    {
      "documents": [
        {
          "language": "en",
          "id": "7",
          "text": "I was fortunate to attend the KubeCon Conference in Barcelona, it is one of the best conferences I have ever attended. Great people, great sessions and I thoroughly enjoyed it!"
        }
      ]
    }
    
  6. Nastavte showStats na true.

  7. Vyberte Spustit a určete mínění textu.

    Model zabalený v kontejneru vygeneruje skóre v rozsahu od 0 do 1, kde 0 je záporné a 1 kladné.

    Vrácená odpověď JSON obsahuje mínění pro aktualizovaný textový vstup:

    {
      "documents": [
        {
          "id": "7",
          "keyPhrases": [
            "Great people",
            "great sessions",
            "KubeCon Conference",
            "Barcelona",
            "best conferences"
          ],
          "statistics": {
            "charactersCount": 176,
            "transactionsCount": 1
          }
        }
      ],
      "errors": [],
      "statistics": {
        "documentsCount": 1,
        "validDocumentsCount": 1,
        "erroneousDocumentsCount": 0,
        "transactionsCount": 1
      }
    }
    

Dokument dat JSON datové části odpovědi teď můžeme korelovat id s dokumentem idpůvodní datové části požadavku . Výsledný dokument má pole keyPhrases , které obsahuje seznam klíčových frází, které byly extrahovány z odpovídajícího vstupního dokumentu. Kromě toho existují různé statistiky, jako characterCount jsou a transactionCount pro každý výsledný dokument.

Další kroky