Host Hugging Face transzformátor modellek az Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.

Host Hugging Face transzformátor modellek az Amazon SageMaker Serverless Inference segítségével

Az elmúlt néhány évben gyors növekedés tapasztalható a természetes nyelvi feldolgozás (NLP) területén transzformátor mély tanulási architektúrák. A Transformers nyílt forráskódú könyvtárával és gépi tanulási (ML) platformjával a Hugging Face elérhetővé teszi a transzfertanulást és a legújabb transzformátormodelleket a globális AI-közösség számára. Ez csökkentheti azt az időt, amelyre az adattudósoknak és az ML mérnököknek szüksége van a vállalatoknál szerte a világon, hogy minden új tudományos vívmányt kihasználjanak. Amazon SageMaker és a Hugging Face együttműködtek a transzformátormodellek egyszerűsítése és felgyorsítása érdekében Hugging Face DLC-k, integráció a SageMaker Training Compiler programmalés SageMaker elosztott könyvtárak.

SageMaker különböző lehetőségeket kínál az ML szakemberek számára, hogy képzett transzformátormodelleket alkalmazzanak következtetések generálására:

  • Valós idejű következtetési végpontok, amelyek alkalmasak olyan munkaterhelésekre, amelyeket alacsony késleltetési követelményekkel kell feldolgozni, ezredmásodperces nagyságrendben.
  • Kötegelt átalakítás, amely ideális nagy adatkötegek offline előrejelzéséhez.
  • Aszinkron következtetés, amely ideális nagy hasznos adatméretet (akár 1 GB) és hosszú következtetésfeldolgozási időt (akár 15 percet) igénylő munkaterhelésekhez. Az aszinkron következtetés lehetővé teszi a költségek megtakarítását azáltal, hogy automatikusan nullára skálázza a példányszámot, amikor nincs feldolgozandó kérés.
  • Szerver nélküli következtetés, amely egy új célzott következtetési lehetőség, amely megkönnyíti az ML-modellek telepítését és méretezését.

Ebben a bejegyzésben megvizsgáljuk, hogyan használható a SageMaker Serverless Inference Hugging Face transzformátormodellek telepítéséhez, és megvitatjuk a következtetések teljesítményét és költséghatékonyságát különböző forgatókönyvekben.

A megoldás áttekintése

Az AWS a közelmúltban bejelentette a SageMaker Serverless Inference általános elérhetőségét, egy erre a célra kialakított szerver nélküli következtetési opciót, amely megkönnyíti az ML-modellek telepítését és méretezését. A Serverless Inference segítségével nem kell előre kiépíteni a kapacitást és előre jelezni a használati mintákat. Ennek eredményeként időt takarít meg, és nincs szükség példánytípusok kiválasztására és a méretezési házirendek kezelésére. A kiszolgáló nélküli következtetési végpontok automatikusan elindítják, méretezik és leállítják a kapacitást, és csak a következtetési kód futtatásának időtartamáért és a feldolgozott adatmennyiségért kell fizetni, a tétlenségért nem. A kiszolgáló nélküli következtetés ideális a kevésbé kiszámítható vagy szakaszos forgalmi mintákkal rendelkező alkalmazásokhoz. Látogatás Szerver nélküli következtetés és tudjon meg többet!

Az AWS re:Invent 2021 előzetes elindítása óta a következő fejlesztéseket hajtottuk végre:

  • Általános elérhetőség minden olyan kereskedelmi régióban, ahol a SageMaker általában elérhető (kivéve az AWS Kína régióit).
  • Az egyidejű meghívások maximális száma végpontonként 200-ra nőtt (az előnézeti 50-ről), ami lehetővé teszi a nagy forgalmú munkaterhelések kezelését.
  • Támogatás hozzáadva a SageMaker Python SDK-hoz, amely elvonja az ML-modell-telepítési folyamat bonyolultságát.
  • Hozzáadott modell nyilvántartás támogatás. Regisztrálhatja modelljeit a modellnyilvántartásban, és közvetlenül telepítheti a kiszolgáló nélküli végpontokra. Ez lehetővé teszi a SageMaker Serverless Inference végpontjainak integrálását az MLOps munkafolyamataival.

Nézzük meg, hogyan telepítsünk Hugging Face modelleket a SageMaker Serverless Inference szolgáltatásban.

Telepítsen átölelő arcmodellt a SageMaker Serverless Inference segítségével

A Hugging Face keretrendszert a SageMaker támogatja, és közvetlenül a SageMaker Python SDK használatával telepítheti a modellt a Serverless Inference végpontba, egyszerűen hozzáadva néhány sort a konfigurációhoz. Példa szkriptjeinkben a SageMaker Python SDK-t használjuk. Ha különböző keretrendszerekből származó modelljei vannak, amelyek további testreszabást igényelnek, használhatja a AWS SDK Pythonhoz (Boto3) modellek telepítéséhez egy kiszolgáló nélküli következtetés végponton. További részletekért lásd: ML modellek telepítése a SageMaker Serverless Inference segítségével (előnézet).

Először is létre kell hozni HuggingFaceModel. Kiválaszthatja a telepíteni kívánt modellt Átölelő Arc Hub; például, distilbert-base-uncased-finetuned-sst-2-angol. Ez a modell egy finomhangolt ellenőrzőpontja DistilBERT-alap-burkolat nélküli, SST-2-n finomhangolva. Lásd a következő kódot:

import sagemaker
from sagemaker.huggingface.model import HuggingFaceModel
from sagemaker.serverless import ServerlessInferenceConfig # Specify Model Image_uri
image_uri='763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.9.1-transformers4.12.3-cpu-py38-ubuntu20.04' # Hub Model configuration. <https://huggingface.co/models>
hub = { 'HF_MODEL_ID':'cardiffnlp/twitter-roberta-base-sentiment', 'HF_TASK':'text-classification'
} # create Hugging Face Model Class
huggingface_model = HuggingFaceModel( env=hub, # configuration for loading model from Hub role=sagemaker.get_execution_role(), # iam role with permissions transformers_version="4.17", # transformers version used pytorch_version="1.10", # pytorch version used py_version='py38', # python version used image_uri=image_uri, # image uri
)

Miután hozzáadta a HuggingFaceModel osztályban, meg kell határoznia a ServerlessInferenceConfig, amely tartalmazza a Serverless Inference végpont konfigurációját, nevezetesen a memória méretét és a végpont egyidejű hívásainak maximális számát. Ezt követően telepítheti a Serverless Inference végpontot a deploy eljárás:

# Specify MemorySizeInMB and MaxConcurrency
serverless_config = ServerlessInferenceConfig( memory_size_in_mb=4096, max_concurrency=10,
) # deploy the serverless endpoint
predictor = huggingface_model.deploy( serverless_inference_config=serverless_config
)

Ez a bejegyzés a Hugging Face modell kiszolgáló nélküli következtetés végponton történő telepítéséhez szükséges mintakódrészletet tartalmazza. A részletes utasításokat tartalmazó Python-kód lépésről lépésre történő minta megtekintéséhez tekintse meg a következőket jegyzetfüzet.

Következtetési teljesítmény

A SageMaker Serverless Inference nagyban leegyszerűsíti a szerver nélküli transzformátor vagy a mély tanulási modellek üzemeltetését. Futási ideje azonban a konfigurációs beállításoktól függően változhat. Kiválaszthat egy Serverless Inference végpont memóriaméretet 1024 MB (1 GB) és 6144 MB (6 GB) között. Általában a memória méretének legalább akkorának kell lennie, mint a modell mérete. Jó gyakorlat azonban a memóriahasználatra hivatkozni a végponti memória méretének meghatározásakor, a modellméret mellett.

A szerver nélküli következtetés integrálható a AWS Lambda magas rendelkezésre állást, beépített hibatűrést és automatikus méretezést kínál. Bár a Serverless Inference automatikusan hozzárendeli a számítási erőforrásokat a modell méretével arányosan, a nagyobb memória azt jelenti, hogy a tároló több vCPU-hoz férne hozzá, és nagyobb számítási teljesítménye lenne. Azonban jelen pillanatban a Serverless Inference csak a CPU-kat támogatja, a GPU-kat nem.

Másrészt a Serverless Inference esetén hidegindításokra számíthatunk, amikor a végponton egy ideig nincs forgalom, és hirtelen következtetési kéréseket kap, mert a számítási erőforrások felpörgetése némi időt vesz igénybe. Hidegindítások is előfordulhatnak a méretezés során, például ha az új egyidejű kérések meghaladják a korábbi egyidejű kéréseket. A hidegindítás időtartama 100 ezredmásodperc alattitól néhány másodpercig terjed, a modell méretétől, a modell letöltésének időtartamától, valamint a konténer indítási idejétől függően. A megfigyeléssel kapcsolatos további információkért lásd: Az Amazon SageMaker monitorozása az Amazon CloudWatch segítségével.

A következő táblázatban összefoglaljuk azoknak a kísérleteknek az eredményeit, amelyeket a kiszolgáló nélküli következtetési végpontok késleltetési információinak gyűjtésére végeztek a különböző Hugging Face modelleken és különböző végpontmemóriaméreteken keresztül. Bemenetként egy 128 sorozathosszúságú hasznos adatot használtunk. A modell késleltetése nőtt, amikor a modell mérete megnőtt; a látenciaszám kifejezetten a modellhez kapcsolódik. A modell általános késleltetése számos módon javítható, beleértve a modell méretének csökkentését, jobb következtetési szkriptet, a modell hatékonyabb betöltését és kvantálást.

Modell-Id Feladat Modell mérete memória mérete Modell késleltetési átlaga

Modell

Késleltetés

p99

Overhead késleltetés

Átlagos

Overhead késleltetés

p99

distilbert-base-uncased-finetuned-sst-2-angol Szöveges besorolás 255 MB 4096 MB 220 ms 243 ms 17 ms 43 ms
xlm-roberta-large-finetuned-conll03-english Token osztályozás 2.09 GB 5120 MB 1494 ms 1608 ms 18 ms 46 ms
deepset/roberta-base-squad2 Kérdés válasz 473 MB 5120 MB 451 ms 468 ms 18 ms 31 ms
google/pegasus-xsum összefoglalás 2.12 GB 6144 MB 22501 ms 32516 ms 27 ms 97 ms
sshleifer/distilbart-cnn-12-6 összefoglalás 1.14 GB 6144 MB 12683 ms 18669 ms 25 ms 53 ms

Az árteljesítmény tekintetében példaként használhatjuk a DistilBERT modellt, és összehasonlíthatjuk a szerver nélküli következtetési lehetőséget egy ml.t2.medium példányhoz (2 vCPU, 4 GB memória, 42 USD havonta) egy valós idejű végponton. A valós idejű végponttal a DistilBERT p99 késleltetése 240 ezredmásodperc, a teljes kérés késleltetése pedig 251 ezredmásodperc. Míg az előző táblázatban a Serverless Inference modell késleltetése p99 243 ezredmásodperc, és overhead késleltetése p99 43 ezredmásodperc. A kiszolgáló nélküli következtetéssel csak a következtetési kérések feldolgozásához használt számítási kapacitásért kell fizetnie, amely ezredmásodpercenként kerül kiszámlázásra, valamint a feldolgozott adatmennyiségért. Ezért megbecsülhetjük egy DistilBERT modell futtatásának költségeit (distilbert-base-uncased-finetuned-sst-2-english, árbecslésekkel a us-east-1 régió) az alábbiak szerint:

  • Teljes kérési idő – 243 ms + 43 ms = 286 ms
  • Számítási költség (4096 MB) – 0.000080 USD másodpercenként
  • 1 kérés költsége – 1 * 0.286 * 0.000080 USD = 0.00002288 USD
  • 1 ezer kérés költsége – 1,000 * 0.286 * 0.000080 USD = 0.02288 USD
  • 1 millió kérés költsége – 1,000,000 * 0.286 * 0.000080 USD = 22.88 USD

A következő ábra a különböző Hugging Face modellek költség-összehasonlítása a SageMaker Serverless Inference és a valós idejű következtetés között (ml.t2.medium példány használatával).

1. ábra: Költség-összehasonlítás a SageMaker Serverless Inference és a valós idejű következtetés különböző átölelő arcmodelljeihez

1. ábra: Költség-összehasonlítás a SageMaker Serverless Inference és a valós idejű következtetés különböző átölelő arcmodelljeihez

Amint látható, a Serverless Inference költséghatékony megoldás, ha a forgalom időszakos vagy alacsony. Ha szigorú következtetési késleltetési követelménye van, fontolja meg nagyobb számítási teljesítményű valós idejű következtetés alkalmazását.

Következtetés

A Hugging Face és az AWS 2022 elején bejelentette, hogy együttműködést kötnek, amely még könnyebbé teszi a Hugging Face modellek SageMakeren való betanítását. Ez a funkció fejlesztése révén érhető el Hugging Face AWS DLC-k. Ezek a tárolók magukban foglalják a Hugging Face Transformers, Tokenizers és Datasets könyvtárakat, amelyek lehetővé teszik számunkra, hogy ezeket az erőforrásokat képzési és következtetési munkákhoz használjuk. Az elérhető DLC-képek listáját lásd: Elérhető Deep Learning Containers képek. Karbantartják és rendszeresen frissítik biztonsági javításokkal. A következőkben számos példát találhatunk arra, hogyan lehet Hugging Face modelleket betanítani ezekkel a DLC-kkel GitHub repo.

Ebben a bejegyzésben bemutattuk, hogyan használhatod az újonnan bejelentett SageMaker Serverless Inference-t Hugging Face modellek telepítéséhez. Részletes kódrészletet adtunk a SageMaker Python SDK használatával a SageMaker Serverless Inference funkcióval rendelkező Hugging Face modellek telepítéséhez. Ezután mélyen belemerültünk a következtetések késleltetésébe a különböző Hugging Face modellek kapcsán, valamint az árteljesítménybe. Szívesen próbálja ki ezt az új szolgáltatást, és örömmel várjuk a további visszajelzéseket!


A szerzőkről

Host Hugging Face transzformátor modellek az Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.James Yi az Amazon Web Services Emerging Technologies csapatának vezető AI/ML partnermegoldások építésze. Szenvedélyesen dolgozik a vállalati ügyfelekkel és partnerekkel az AI/ML alkalmazások tervezése, üzembe helyezése és méretezése érdekében, hogy üzleti értékeikből származtassanak. Munkán kívül szeret focizni, utazni és a családjával tölt időt.

Host Hugging Face transzformátor modellek az Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Rishabh Ray Chaudhury az Amazon SageMaker vezető termékmenedzsere, aki a gépi tanulási következtetésekre összpontosít. Szenvedélyesen törekszik az innovációra és az új tapasztalatok kiépítésére a Machine Learning ügyfelei számára az AWS-en, hogy segítse a munkateher növelését. Szabadidejében szeret utazni és főzni. Megtalálhatod rajta LinkedIn.

Host Hugging Face transzformátor modellek az Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Philipp Schmid gépi tanulási mérnök és műszaki vezető a Hugging Face-nél, ahol az Amazon SageMaker csapatával való együttműködést vezeti. Szenvedélye az élvonalbeli NLP-modellek demokratizálása, optimalizálása és gyártása, valamint a Deep Learning egyszerű használatának javítása.

Host Hugging Face transzformátor modellek az Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Yanyan Zhang az Energy Delivery csapat adattudósa, az AWS Professional Services szolgáltatással. Szenvedélyesen segíti ügyfeleit valódi problémák megoldásában AI/ML tudással. Munkán kívül szeret utazni, edzeni és új dolgokat felfedezni.

Időbélyeg:

Még több AWS gépi tanulás