Tanulás átvitele a TensorFlow szövegosztályozási modellekhez az Amazon SageMakerben

Amazon SageMaker lakosztályt kínál beépített algoritmusok, előképzett modellekés előre elkészített megoldássablonok hogy segítse az adattudósokat és a gépi tanulást (ML) gyakorló szakembereket az ML modellek gyors képzésében és bevezetésében. Ezeket az algoritmusokat és modelleket felügyelt és nem felügyelt tanuláshoz egyaránt használhatja. Különféle típusú bemeneti adatokat képesek feldolgozni, beleértve a táblázatos, képi és szöveges adatokat.

Ez a bejegyzés a harmadik a SageMaker új beépített algoritmusairól szóló sorozatban. Ban,-ben első poszt, megmutattuk, hogyan biztosít a SageMaker beépített algoritmust a képosztályozáshoz. Ban,-ben második bejegyzés, megmutattuk, hogyan biztosít a SageMaker beépített algoritmust az objektumészleléshez. Ma bejelentjük, hogy a SageMaker új beépített algoritmust biztosít a TensorFlow segítségével történő szövegosztályozáshoz. Ez a felügyelt tanulási algoritmus támogatja az átviteli tanulást számos előre betanított modellhez, amelyek elérhetők a következő országban TensorFlow hub. Bemenetként egy szövegrészletet vesz fel, és kiírja az egyes osztálycímkék valószínűségét. Ezeket az előre betanított modelleket az átviteli tanulás segítségével még akkor is finomhangolhatja, ha nem áll rendelkezésre nagy mennyiségű szöveg. A SageMakeren keresztül érhető el beépített algoritmusok, valamint a SageMaker JumpStart UI in Amazon SageMaker Studio. További információkért lásd: Szöveg osztályozása és a példafüzet Bevezetés a JumpStartba – Szövegosztályozás.

Szövegosztályozás a TensorFlow-val a SageMakerben átviteli tanulást biztosít a TensorFlow Hubban elérhető számos előre betanított modellen. A betanítási adatokban található osztálycímkék számának megfelelően az előre betanított TensorFlow hub modellhez egy osztályozási réteg kapcsolódik. Az osztályozási réteg egy kieső rétegből és egy sűrű rétegből, teljesen összefüggő rétegből áll, 2 normás szabályosítóval, amelyet véletlenszerű súlyozással inicializálunk. A modelltanítás hiperparaméterekkel rendelkezik a lemorzsolódási réteg lemorzsolódási arányára, és L2 szabályzási tényezővel a sűrű rétegre. Ezután vagy a teljes hálózat, beleértve az előre betanított modellt, vagy csak a legfelső osztályozási réteg finomhangolható az új betanítási adatokon. Ebben az átviteli tanulási módban a képzés még kisebb adatkészlettel is megvalósítható.

Az új TensorFlow szövegosztályozó algoritmus használata

Ez a rész leírja, hogyan kell használni a TensorFlow szövegosztályozási algoritmust a SageMaker Python SDK. A Studio felhasználói felületről való használatára vonatkozó információkért lásd: SageMaker JumpStart.

Az algoritmus támogatja az átviteli tanulást a felsorolt ​​előre betanított modelleknél Tensorflow modellek. Minden modellt egyedileg azonosítanak model_id. A következő kód bemutatja, hogyan kell finomhangolni a BERT által azonosított alapmodellt model_id tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2 egyéni edzési adatkészleten. Az egyes model_id, SageMaker képzési munka elindításához a Becslő A SageMaker Python SDK osztályában le kell töltenie a Docker-kép-URI-t, a betanító szkript-URI-t és az előre betanított modell-URI-t a SageMakerben biztosított segédfunkciókon keresztül. A betanítási parancsfájl URI tartalmazza az összes szükséges kódot az adatfeldolgozáshoz, az előre betanított modell betöltéséhez, a modell betanításához és a betanított modell elmentéséhez következtetés céljából. Az előre betanított modell URI tartalmazza az előre betanított modell architektúra definíciót és a modell paramétereit. Az előre betanított modell URI az adott modellre jellemző. Az előre betanított modell tarballokat előre letöltöttük a TensorFlow-ból, és a megfelelő modell aláírással mentettük Amazon egyszerű tárolási szolgáltatás (Amazon S3) gyűjtőedények, így a képzési feladat hálózati elszigetelten fut. Lásd a következő kódot:

from sagemaker import image_uris, model_uris, script_urisfrom sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2", "*"
training_instance_type = "ml.p3.2xlarge"
# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")# Retrieve the pre-trained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tensorflow-tc-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

Ezekkel a modell-specifikus képzési műtermékekkel megszerkesztheti a Becslő osztály:

# Create SageMaker Estimator instance
tf_tc_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,)

Ezután az egyéni adathalmazban történő tanulás átviteléhez szükség lehet a képzési hiperparaméterek alapértelmezett értékeinek módosítására, amelyek a következő helyen találhatók: Hiperparaméterek. Ezeknek a hiperparamétereknek az alapértelmezett értékeivel együtt lekérheti a Python szótárát a hívással hyperparameters.retrieve_default, szükség szerint frissítse őket, majd adja át a Becslő osztálynak. Vegye figyelembe, hogy egyes hiperparaméterek alapértelmezett értékei eltérnek a különböző modelleknél. Nagy modelleknél az alapértelmezett kötegméret kisebb, és a train_only_top_layer hiperparaméter van beállítva True. A hiperparaméter Train_only_top_layer meghatározza, hogy mely modellparaméterek változnak a finomhangolási folyamat során. Ha train_only_top_layer is True, akkor az osztályozási rétegek paraméterei megváltoznak, a többi paraméter pedig állandó marad a finomhangolási folyamat során. Másrészt ha train_only_top_layer is False, akkor a modell összes paramétere finomhangolásra kerül. Lásd a következő kódot:

from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

Mi biztosítjuk a SST2 mint alapértelmezett adatkészlet a modellek finomhangolásához. Az adatkészlet pozitív és negatív filmkritikákat tartalmaz. Letöltötték innen TensorFlow alatt Apache 2.0 licenc. A következő kód az S3-csoportokban tárolt alapértelmezett edzési adatkészletet biztosítja.

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/SST2/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

Végül a SageMaker képzési feladat elindításához a modell finomhangolásához hívja meg a .fit parancsot az Estimator osztály objektumán, miközben átadja a képzési adatkészlet Amazon S3 helyét:

# Launch a SageMaker Training job by passing s3 path of the training data
tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

További információ az új SageMaker TensorFlow szövegosztályozási algoritmus használatáról a tanulás átvitelére egyéni adathalmazokon, a finomhangolt modell üzembe helyezése, következtetések futtatása a telepített modellen, és az előre betanított modell első finomhangolás nélkül történő telepítése. egyéni adatkészleten tekintse meg a következő példajegyzetfüzetet: Bevezetés a JumpStartba – Szövegosztályozás.

Bemeneti/kimeneti interfész a TensorFlow szövegosztályozó algoritmushoz

A felsorolt, előre betanított modellek mindegyikét finomhangolhatja TensorFlow modellek tetszőleges számú osztályú szöveges mondatokból álló adott adatkészlethez. Az előre betanított modell egy osztályozási réteget csatol a szövegbeágyazási modellhez, és véletlenszerű értékekre inicializálja a rétegparamétereket. Az osztályozási réteg kimeneti dimenziója a bemeneti adatokban észlelt osztályok száma alapján kerül meghatározásra. A cél a bemeneti adatok osztályozási hibáinak minimalizálása. A finomhangolással visszaadott modell tovább használható következtetésekhez.

A következő utasítások leírják, hogyan kell formázni a képzési adatokat a modellbe történő bevitelhez:

  • Bemenet – Data.csv fájlt tartalmazó könyvtár. Az első oszlop minden sorában 0 és az osztályok száma közötti egész osztálycímkéket kell tartalmaznia. A második oszlop minden sorában szerepelnie kell a megfelelő szöveges adatoknak.
  • Kimenet – Finomhangolt modell, amely következtetések levonására használható, vagy növekményes képzéssel továbbtanulható. Az osztályindexeket osztálycímkékre leképező fájl a modellekkel együtt mentésre kerül.

A következő példa egy bemeneti CSV-fájlra. Vegye figyelembe, hogy a fájlnak nem lehet fejléce. A fájlt egy S3 tárolóban kell tárolni, a következőhöz hasonló elérési úttal: s3://bucket_name/input_directory/. Vegye figyelembe, hogy a záró / megkövetelt.

|0 |hide new secretions from the parental units|
|0 |contains no wit , only labored gags|
|1 |that loves its characters and communicates something rather beautiful about human nature|
|...|...|

Következtetés a TensorFlow szövegosztályozási algoritmussal

A generált modellek tárolhatók következtetések és támogatási szövegként, mint a application/x-text tartalom típus. A kimenet tartalmazza a valószínűségi értékeket, az összes osztály osztálycímkéit, valamint a JSON formátumban kódolt legnagyobb valószínűségű osztályindexnek megfelelő előre jelzett címkét. A modell kérésenként egyetlen karakterláncot dolgoz fel, és csak egy sort ad ki. A következő példa egy JSON formátumú válaszra:

accept: application/json;verbose
{"probabilities": [prob_0, prob_1, prob_2, ...],
 "labels": [label_0, label_1, label_2, ...],
 "predicted_label": predicted_label}

If accept be van állítva application/json, akkor a modell csak valószínűségeket ad ki. A képzéssel és a következtetésekkel kapcsolatos további részletekért lásd a Bevezetés a mintafüzetben Bevezetés a JumpStartba – Szövegosztályozás.

Használja a SageMaker beépített algoritmusait a JumpStart UI-n keresztül

A SageMaker TensorFlow szövegbesorolást és bármely más beépített algoritmust is használhatja néhány kattintással a JumpStart UI-n keresztül. A JumpStart egy SageMaker szolgáltatás, amely lehetővé teszi beépített algoritmusok és előre betanított modellek betanítását és telepítését különféle ML keretrendszerekből és modellközpontokból egy grafikus felületen keresztül. Ezenkívül lehetővé teszi teljes értékű ML-megoldások telepítését, amelyek az ML-modelleket és számos más AWS-szolgáltatást egyesítenek a célzott felhasználási esetek megoldása érdekében.

A következő két videó bemutatja, hogyan reprodukálhatja ugyanazt a finomhangolási és telepítési folyamatot, amelyen az imént mentünk keresztül, néhány kattintással a JumpStart UI-n keresztül.

Finomhangolja az előre betanított modellt

Itt van a folyamat ugyanazon előre betanított szövegosztályozási modell finomhangolására.

Telepítse a finomhangolt modellt

A modell betanítása után egy kattintással közvetlenül telepítheti a modellt egy állandó, valós idejű végpontra.

Következtetés

Ebben a bejegyzésben bejelentettük a SageMaker TensorFlow beépített szövegosztályozási algoritmus elindítását. Példakódot adtunk meg arra vonatkozóan, hogyan lehet tanulást átvinni egy egyéni adatkészleten a TensorFlow hub előre betanított modelljével ezzel az algoritmussal.

További információért nézze meg a dokumentáció és a példafüzet Bevezetés a JumpStartba – Szövegosztályozás.


A szerzőkről

Tanulás átvitele a TensorFlow szövegosztályozási modellekhez az Amazon SageMaker PlatoBlockchain Data Intelligence szolgáltatásban. Függőleges keresés. Ai.Dr. Vivek Madan egy alkalmazott tudós a Amazon SageMaker JumpStart csapat. PhD fokozatát az Illinoisi Egyetemen szerezte, az Urbana-Champaign-ben, és a Georgia Tech posztdoktori kutatója volt. Aktív kutatója a gépi tanulásnak és az algoritmustervezésnek, és publikált előadásokat EMNLP, ICLR, COLT, FOCS és SODA konferenciákon.

Tanulás átvitele a TensorFlow szövegosztályozási modellekhez az Amazon SageMaker PlatoBlockchain Data Intelligence szolgáltatásban. Függőleges keresés. Ai.João Moura AI/ML Specialist Solutions Architect az Amazon Web Servicesnél. Leginkább az NLP-használati esetekre összpontosít, és segít az ügyfeleknek a mély tanulási modell képzésében és bevezetésében. Emellett aktív támogatója az alacsony kódú ML megoldásoknak és az ML-re specializált hardvereknek.

Tanulás átvitele a TensorFlow szövegosztályozási modellekhez az Amazon SageMaker PlatoBlockchain Data Intelligence szolgáltatásban. Függőleges keresés. Ai.Dr. Ashish Khetan vezető alkalmazott tudós Amazon SageMaker beépített algoritmusok és segít a gépi tanulási algoritmusok fejlesztésében. PhD fokozatát az Illinois Urbana Champaign Egyetemen szerezte. A gépi tanulás és a statisztikai következtetések aktív kutatója, és számos közleményt publikált NeurIPS, ICML, ICLR, JMLR, ACL és EMNLP konferenciákon.

Időbélyeg:

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