Gépi tanulási modell újratanítása és üzembe helyezése

HATÓKÖR:A következőre vonatkozik: .A Machine Learning Studio (klasszikus) nem vonatkozik rá.Azure Machine Learning

Fontos

A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.

2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.

A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.

Az újratanítás az egyik módja annak, hogy a gépi tanulási modellek pontosak maradjanak, és az elérhető legrelevánsabb adatok alapján legyenek elérhetők. Ez a cikk bemutatja, hogyan taníthat be és helyezhet üzembe gépi tanulási modellt új webszolgáltatásként a Studióban (klasszikus). Ha klasszikus webszolgáltatást szeretne újratanításra, tekintse meg ezt az útmutatót.

Ez a cikk feltételezi, hogy már üzembe helyezett egy prediktív webszolgáltatást. Ha még nem rendelkezik prediktív webszolgáltatással, itt megtudhatja, hogyan helyezhet üzembe egy Studio (klasszikus) webszolgáltatást.

Az alábbi lépéseket követve újrataníthat és üzembe helyezhet egy gépi tanulási új webszolgáltatást:

  1. Újratanítási webszolgáltatás üzembe helyezése
  2. Új modell betanítása az újratanítási webszolgáltatással
  3. A meglévő prediktív kísérlet frissítése az új modell használatára

Megjegyzés

Javasoljuk, hogy az Azure-ral való interakcióhoz az Azure Az PowerShell-modult használja. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Az újratanítási webszolgáltatás üzembe helyezése

Az újratanítási webszolgáltatás lehetővé teszi a modell újratanítását új paraméterekkel, például új adatokkal, és mentheti későbbi használatra. Amikor egy webszolgáltatás kimenetét egy betanítási modellhez csatlakoztatja, a betanítási kísérlet egy új modellt ad ki, amelyet használhat.

Az újratanítási webszolgáltatás üzembe helyezéséhez kövesse az alábbi lépéseket:

  1. Webszolgáltatás-beviteli modul csatlakoztatása az adatbevitelhez. Általában azt szeretné biztosítani, hogy a bemeneti adatok feldolgozása az eredeti betanítási adatokkal megegyező módon történjen.

  2. Webszolgáltatás kimenete modul csatlakoztatása a betanított modell kimenetéhez.

  3. Ha rendelkezik Modell kiértékelése modullal, csatlakoztathat egy WebSzolgáltatás kimenete modult a kiértékelési eredmények kimenetéhez

  4. Futtassa a kísérletet.

    A kísérlet futtatása után az eredményként kapott munkafolyamatnak az alábbi képhez hasonlónak kell lennie:

    Eredményként kapott munkafolyamat

    Most újratanítási webszolgáltatásként helyezi üzembe a betanítási kísérletet, amely egy betanított modell és modell kiértékelési eredményeit adja vissza.

  5. A kísérletvászon alján kattintson a Webszolgáltatás beállítása elemre.

  6. Válassza a Webszolgáltatás üzembe helyezése [Új] lehetőséget. Megnyílik a Machine Learning Web Services portálja a Webszolgáltatás üzembe helyezése lapra.

  7. Írja be a webszolgáltatás nevét, és válasszon ki egy fizetési csomagot.

  8. Válassza az Üzembe helyezés lehetőséget.

A modell újratanítása

Ebben a példában a C# használatával hozjuk létre az újratanítási alkalmazást. A feladat elvégzéséhez Python- vagy R-mintakódot is használhat.

Az újratanítási API-k meghívásához kövesse az alábbi lépéseket:

  1. C#-konzolalkalmazás létrehozása a Visual Studióban: Új>Project>Visual C#>Windows Klasszikus asztali>konzolalkalmazás (.NET-keretrendszer).
  2. Jelentkezzen be a Machine Learning Web Services portálra.
  3. Kattintson arra a webszolgáltatásra, amellyel dolgozik.
  4. Kattintson a Felhasználás gombra.
  5. A Felhasználás lap alján, a Mintakód szakaszban kattintson a Batch elemre.
  6. Másolja ki a C#-mintakódot a kötegelt végrehajtáshoz, és illessze be a Program.cs fájlba. Győződjön meg arról, hogy a névtér érintetlen marad.

Adja hozzá a Microsoft.AspNet.WebApi.Client NuGet-csomagot a megjegyzésekben megadott módon. Előfordulhat, hogy a Microsoft.WindowsAzure.Storage.dll hivatkozásának hozzáadásához telepítenie kell az Azure Storage-szolgáltatások ügyfélkódtárát.

Az alábbi képernyőképen a Machine Learning Web Services portál Felhasználás lapja látható.

Lap felhasználása

Az apikey-deklaráció frissítése

Keresse meg az apikey deklarációt:

const string apiKey = "abc123"; // Replace this with the API key for the web service

A Felhasználás lap Alapszintű felhasználás adatai szakaszában keresse meg az elsődleges kulcsot, és másolja az apikey deklarációba.

Az Azure Storage adatainak frissítése

A BES-mintakód feltölt egy fájlt egy helyi meghajtóról (például "C:\temp\CensusInput.csv") az Azure Storage-ba, feldolgozza és visszaírja az eredményeket az Azure Storage-ba.

  1. Bejelentkezés az Azure Portalra
  2. A bal oldali navigációs oszlopban kattintson a További szolgáltatások elemre, keresse meg a Tárfiókok elemet, és jelölje ki.
  3. A tárfiókok listájában válasszon ki egyet az újratanított modell tárolásához.
  4. A bal oldali navigációs oszlopban kattintson a Hozzáférési kulcsok elemre.
  5. Másolja ki és mentse az elsődleges hozzáférési kulcsot.
  6. A bal oldali navigációs oszlopban kattintson a Blobok elemre.
  7. Válasszon ki egy meglévő tárolót, vagy hozzon létre egy újat, és mentse a nevet.

Keresse meg a StorageAccountName, StorageAccountKey és StorageContainerName deklarációkat, és frissítse a portálról mentett értékeket.

const string StorageAccountName = "mystorageacct"; // Replace this with your Azure storage account name
const string StorageAccountKey = "a_storage_account_key"; // Replace this with your Azure Storage key
const string StorageContainerName = "mycontainer"; // Replace this with your Azure Storage container name

Arról is gondoskodnia kell, hogy a bemeneti fájl elérhető legyen a kódban megadott helyen.

Adja meg a kimeneti helyet

Amikor megadja a kimeneti helyet a Kérelem hasznos adatai mezőben, a Relatívhely mezőben megadott fájl kiterjesztését a következőként kell megadni: ilearner.

Outputs = new Dictionary<string, AzureBlobDataReference>() {
    {
        "output1",
        new AzureBlobDataReference()
        {
            ConnectionString = storageConnectionString,
            RelativeLocation = string.Format("{0}/output1results.ilearner", StorageContainerName) /*Replace this with the location you want to use for your output file and a valid file extension (usually .csv for scoring results or .ilearner for trained models)*/
        }
    },

Íme egy példa a kimenet újratanítására:

Kimenet újratanítása

Az újratanítási eredmények kiértékelése

Az alkalmazás futtatásakor a kimenet tartalmazza a kiértékelési eredmények eléréséhez szükséges URL-címet és közös hozzáférésű jogosultságkód-jogkivonatot.

Az újratanított modell teljesítményeredményeit a BaseLocation, a RelativeLocation és a SasBlobToken egyesítésével tekintheti meg a kimenet2 kimeneti eredményeiből, és beillesztheti a teljes URL-címet a böngésző címsorába.

Vizsgálja meg az eredményeket annak megállapításához, hogy az újonnan betanított modell jobban teljesít-e, mint a meglévő.

Mentse a BaseLocation, a RelativeLocation és a SasBlobToken fájlt a kimeneti eredmények közül.

A prediktív kísérlet frissítése

Bejelentkezés az Azure Resource Manager

Először jelentkezzen be az Azure-fiókjába a PowerShell-környezetből a Connect-AzAccount parancsmag használatával.

A webszolgáltatás-definíció objektumának lekérése

Ezután kérje le a Web Service Definition objektumot a Get-AzMlWebService parancsmag meghívásával.

$wsd = Get-AzMlWebService -Name 'RetrainSamplePre.2016.8.17.0.3.51.237' -ResourceGroupName 'Default-MachineLearning-SouthCentralUS'

Egy meglévő webszolgáltatás erőforráscsoport-nevének meghatározásához futtassa a Get-AzMlWebService parancsmagot paraméterek nélkül a webszolgáltatások előfizetésben való megjelenítéséhez. Keresse meg a webszolgáltatást, majd tekintse meg annak webszolgáltatás-azonosítóját. Az erőforráscsoport neve az azonosító negyedik eleme, közvetlenül a resourceGroups elem után. Az alábbi példában az erőforráscsoport neve Default-MachineLearning-SouthCentralUS.

Properties : Microsoft.Azure.Management.MachineLearning.WebServices.Models.WebServicePropertiesForGraph
Id : /subscriptions/<subscription ID>/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/RetrainSamplePre.2016.8.17.0.3.51.237
Name : RetrainSamplePre.2016.8.17.0.3.51.237
Location : South Central US
Type : Microsoft.MachineLearning/webServices
Tags : {}

Másik lehetőségként egy meglévő webszolgáltatás erőforráscsoport-nevének meghatározásához jelentkezzen be a Machine Learning Web Services portálra. Válassza ki a webszolgáltatást. Az erőforráscsoport neve a webszolgáltatás URL-címének ötödik eleme, közvetlenül a resourceGroups elem után. Az alábbi példában az erőforráscsoport neve Default-MachineLearning-SouthCentralUS.

https://services.azureml.net/subscriptions/<subscription ID>/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/RetrainSamplePre.2016.8.17.0.3.51.237

Webszolgáltatás-definíciós objektum exportálása JSON-ként

Ha módosítani szeretné a betanított modell definícióját az újonnan betanított modell használatára, először az Export-AzMlWebService parancsmaggal kell exportálnia azt egy JSON-formátumú fájlba.

Export-AzMlWebService -WebService $wsd -OutputFile "C:\temp\mlservice_export.json"

Az ilearner-blobra mutató hivatkozás frissítése

Az objektumokban keresse meg a [betanított modellt], frissítse az URI értéket a locationInfo csomópontban az ilearner-blob URI-jával. Az URI a BaseLocation és a RelativeLocation összevonásával jön létre a BES újratanítási hívás kimenetéből.

"asset3": {
    "name": "Retrain Sample [trained model]",
    "type": "Resource",
    "locationInfo": {
        "uri": "https://mltestaccount.blob.core.windows.net/azuremlassetscontainer/baca7bca650f46218633552c0bcbba0e.ilearner"
    },
    "outputPorts": {
        "Results dataset": {
            "type": "Dataset"
        }
    }
},

A JSON importálása webszolgáltatás-definíciós objektumba

Az Import-AzMlWebService parancsmaggal konvertálja vissza a módosított JSON-fájlt egy webszolgáltatás-definíciós objektummá, amellyel frissítheti a predikatív kísérletet.

$wsd = Import-AzMlWebService -InputFile "C:\temp\mlservice_export.json"

A webszolgáltatás frissítése

Végül használja az Update-AzMlWebService parancsmagot a prediktív kísérlet frissítéséhez.

Update-AzMlWebService -Name 'RetrainSamplePre.2016.8.17.0.3.51.237' -ResourceGroupName 'Default-MachineLearning-SouthCentralUS'

Következő lépések

Ha többet szeretne megtudni a webszolgáltatások kezeléséről vagy több kísérlet futtatásának nyomon követéséről, tekintse meg az alábbi cikkeket: