Az Amazon EC2 DL2q példánya a költséghatékony, nagy teljesítményű mesterséges intelligencia következtetésekhez már általánosan elérhető | Amazon webszolgáltatások

Az Amazon EC2 DL2q példánya a költséghatékony, nagy teljesítményű mesterséges intelligencia következtetésekhez már általánosan elérhető | Amazon webszolgáltatások

Ez AK Roy vendégbejegyzése a Qualcomm AI-tól.

Amazon Elastic Compute Cloud (Amazon EC2) A Qualcomm AI 2 Standard gyorsítókkal működő DL100q-példányok költséghatékonyan használhatók a mélytanulási (DL) munkaterhelések felhőben történő telepítésére. Használhatók a Qualcomm eszközökön telepített DL-munkaterhelések teljesítményének és pontosságának fejlesztésére és ellenőrzésére is. A DL2q példányok az első olyan példányok, amelyek a Qualcomm mesterséges intelligens (AI) technológiáját a felhőbe juttatják.

A nyolc Qualcomm AI 100 Standard gyorsítóval és a 128 GiB teljes gyorsítómemóriával az ügyfelek a DL2q-példányokat is használhatják olyan népszerű generatív mesterségesintelligencia-alkalmazások futtatására, mint a tartalomgenerálás, szövegösszegzés és virtuális asszisztensek, valamint a klasszikus mesterséges intelligencia-alkalmazások természetes nyelvi feldolgozásra. és a számítógépes látás. Ezenkívül a Qualcomm AI 100 gyorsítók ugyanazt a mesterséges intelligencia technológiát tartalmazzák, amelyet az okostelefonokon, autonóm vezetésen, személyi számítógépeken és kiterjesztett valóságú fejhallgatókon is alkalmaznak, így a DL2q példányok felhasználhatók ezen AI-munkaterhelések fejlesztésére és érvényesítésére a telepítés előtt.

Új DL2q-példányok

Minden DL2q példány nyolc Qualcomm Cloud AI100 gyorsítót tartalmaz, amelyek összesített teljesítménye több mint 2.8 PetaOps Int8 következtetési teljesítmény és 1.4 PetaFlops FP16 következtetési teljesítmény. A példány összesen 112 AI maggal, 128 GB-os gyorsítómemóriakapacitással és 1.1 TB/s memória sávszélességgel rendelkezik.

Minden DL2q példány 96 vCPU-val, 768 GB rendszermemória kapacitással és 100 Gbps hálózati sávszélességgel rendelkezik, valamint Amazon Elastic Block Store (Amazon EBS) 19 Gbps tárhely.

Példány neve vCPU-k Cloud AI100 gyorsítók Gyorsító memória Gyorsító memória BW (összesített) Példány memória Példányhálózat Tárolási (Amazon EBS) sávszélesség
DL2q.24xnagy 96 8 128 GB 1.088 TB / s 768 GB 100 Gbps 19 Gbps

Qualcomm Cloud AI100 gyorsító innováció

A Cloud AI100 gyorsító rendszer-chip (SoC) egy erre a célra épített, méretezhető többmagos architektúra, amely az adatközponttól a szélekig terjedő mélytanulási felhasználási esetek széles skáláját támogatja. Az SoC skalár-, vektor- és tenzorszámítási magokat alkalmaz, 126 MB-os, iparágvezető on-die SRAM-kapacitással. A magok nagy sávszélességű, alacsony késleltetésű hálózaton-chip (NoC) hálóval vannak összekapcsolva.

Az AI100 gyorsító a modellek és használati esetek széles és átfogó skáláját támogatja. Az alábbi táblázat kiemeli a modelltámogatás tartományát.

Modell kategória Modellek száma Példák
NLP 157 BERT, BART, FasterTransformer, T5, Z-kódos MOE
Generatív AI – NLP 40 LLaMA, CodeGen, GPT, OPT, BLOOM, Jais, Luminous, StarCoder, XGen
Generatív AI – Kép 3 Stabil diffúzió v1.5 és v2.1, OpenAI CLIP
CV – Képosztályozás 45 ViT, ResNet, ResNext, MobileNet, EfficientNet
CV – Tárgyérzékelés 23 YOLO v2, v3, v4, v5 és v7, SSD-ResNet, RetinaNet
CV – Egyéb 15 LPRNet, szuperfelbontású/SRGAN, ByteTrack
Autóipari hálózatok* 53 Érzékelés és LIDAR, gyalogos, sáv és közlekedési lámpa érzékelés
Teljes > 300 . .

* A legtöbb autóipari hálózat összetett hálózat, amely egyedi hálózatok fúziójából áll.

A DL2q gyorsítón található nagyméretű SRAM lehetővé teszi olyan fejlett teljesítménytechnikák hatékony megvalósítását, mint az MX6-os mikro-exponens pontosság a súlyok tárolására és az MX9-es mikro-kitevő pontosság a gyorsító-gyorsító közötti kommunikációhoz. A mikroexponens technológiát az Open Compute Project (OCP) következő iparági közleménye ismerteti: Az AMD, az Arm, az Intel, a Meta, a Microsoft, az NVIDIA és a Qualcomm szabványosítja a következő generációs szűk precíziós adatformátumokat a mesterséges intelligencia számára » Open Compute Project.

A példány felhasználója a következő stratégiát használhatja a költségenkénti teljesítmény maximalizálására:

  • Tárolja a súlyokat az MX6 mikrokitevő pontossággal a gyorsító DDR memóriájában. Az MX6 precizitás használata maximalizálja a rendelkezésre álló memóriakapacitás és a memória sávszélesség kihasználását, hogy kategóriájában a legjobb átviteli sebességet és késleltetést biztosítsa.
  • Számítson az FP16-ban a szükséges használati eset pontosságának elérése érdekében, miközben a kiváló chipen lévő SRAM-ot és a kártya tartalék TOP-jait használja a nagy teljesítményű, alacsony késleltetésű MX6-FP16 kernelek megvalósításához.
  • Használjon optimalizált kötegelési stratégiát és nagyobb kötegméretet a rendelkezésre álló nagyméretű chipen lévő SRAM használatával, hogy maximalizálja a súlyok újrafelhasználását, miközben a lehető legnagyobb mértékben megőrzi az aktiválásokat a chipen.

DL2q AI Stack és szerszámlánc

A DL2q példányt a Qualcomm AI Stack kíséri, amely egységes fejlesztői élményt biztosít a Qualcomm AI felhőben és más Qualcomm termékekben. Ugyanaz a Qualcomm AI stack és alap AI technológia fut a DL2q példányokon és a Qualcomm edge eszközökön, egységes fejlesztői élményt biztosítva az ügyfeleknek, egységes API-val a felhőben, az autóiparban, a személyi számítógépekben, a kiterjesztett valóságban és az okostelefonos fejlesztői környezetekben.

Az eszközlánc lehetővé teszi a példány felhasználójának, hogy gyorsan beépítsen egy korábban betanított modellt, lefordítsa és optimalizálja a modellt a példány képességeihez, majd a következő ábrán látható három lépésben üzembe helyezze a lefordított modelleket a termelési következtetés használati eseteihez.

Amazon EC2 DL2q instance for cost-efficient, high-performance AI inference is now generally available | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ha többet szeretne megtudni a modell teljesítményének hangolásáról, tekintse meg a A Cloud AI 100 kulcsfontosságú teljesítményparaméterei Dokumentáció.

Kezdje el a DL2q példányokat

Ebben a példában egy előre betanított verziót fordít le és telepít BERT modell ból ből Átölelő arc egy EC2 DL2q példányon egy előre beépített DL2q AMI használatával, négy lépésben.

Használhat akár előre elkészített Qualcomm DLAMI a példányon, vagy kezdjen egy Amazon Linux2 AMI-vel, és készítse el saját DL2q AMI-jét az itt elérhető Cloud AI 100 Platform és Apps SDK segítségével Amazon Simple Storage Service (Amazon S3) vödör: s3://ec2-linux-qualcomm-ai100-sdks/latest/.

A következő lépések az előre beépített DL2q AMI-t használják, Qualcomm Base AL2 DLAMI.

Használja az SSH-t a DL2q-példány eléréséhez a Qualcomm Base AL2 DLAMI AMI segítségével, és kövesse az 1–4. lépéseket.

1. lépés Állítsa be a környezetet és telepítse a szükséges csomagokat

  1. Telepítse a Python 3.8-et.
    sudo amazon-linux-extras install python3.8

  2. Állítsa be a Python 3.8 virtuális környezetet.
    python3.8 -m venv /home/ec2-user/userA/pyenv

  3. Aktiválja a Python 3.8 virtuális környezetet.
    source /home/ec2-user/userA/pyenv/bin/activate

  4. Telepítse a szükséges csomagokat, az ábrán látható módon követelmények.txt dokumentumot elérhető a Qualcomm nyilvános Github webhelyén.
    pip3 install -r requirements.txt

  5. Importálja a szükséges könyvtárakat.
    import transformers from transformers import AutoTokenizer, AutoModelForMaskedLM
    import sys
    import qaic
    import os
    import torch
    import onnx
    from onnxsim import simplify
    import argparse
    import numpy as np

2. lépés Importálja a modellt

  1. Importálja és tokenizálja a modellt.
    model_card = 'bert-base-cased'
    model = AutoModelForMaskedLM.from_pretrained(model_card)
    tokenizer = AutoTokenizer.from_pretrained(model_card)

  2. Határozzon meg egy minta bemenetet, és vegye ki a inputIds és a attentionMask.
    sentence = "The dog [MASK] on the mat."
    encodings = tokenizer(sentence, max_length=128, truncation=True, padding="max_length", return_tensors='pt')
    inputIds = encodings["input_ids"]
    attentionMask = encodings["attention_mask"]

  3. Alakítsa át a modellt ONNX-re, amelyet ezután átadhat a fordítónak.
    # Set dynamic dims and axes.
    dynamic_dims = {0: 'batch', 1 : 'sequence'}
    dynamic_axes = { "input_ids" : dynamic_dims, "attention_mask" : dynamic_dims, "logits" : dynamic_dims
    }
    input_names = ["input_ids", "attention_mask"]
    inputList = [inputIds, attentionMask] torch.onnx.export( model, args=tuple(inputList), f=f"{gen_models_path}/{model_base_name}.onnx", verbose=False, input_names=input_names, output_names=["logits"], dynamic_axes=dynamic_axes, opset_version=11,
    )

  4. A modellt FP16 pontossággal futtatja. Tehát ellenőriznie kell, hogy a modell tartalmaz-e az FP16 tartományon kívüli konstansokat. Adja át a modellt a fix_onnx_fp16 funkciót az új ONNX fájl létrehozásához a szükséges javításokkal.
    from onnx import numpy_helper def fix_onnx_fp16( gen_models_path: str, model_base_name: str,
    ) -> str: finfo = np.finfo(np.float16) fp16_max = finfo.max fp16_min = finfo.min model = onnx.load(f"{gen_models_path}/{model_base_name}.onnx") fp16_fix = False for tensor in onnx.external_data_helper._get_all_tensors(model): nptensor = numpy_helper.to_array(tensor, gen_models_path) if nptensor.dtype == np.float32 and ( np.any(nptensor > fp16_max) or np.any(nptensor < fp16_min) ): # print(f'tensor value : {nptensor} above {fp16_max} or below {fp16_min}') nptensor = np.clip(nptensor, fp16_min, fp16_max) new_tensor = numpy_helper.from_array(nptensor, tensor.name) tensor.CopyFrom(new_tensor) fp16_fix = True if fp16_fix: # Save FP16 model print("Found constants out of FP16 range, clipped to FP16 range") model_base_name += "_fix_outofrange_fp16" onnx.save(model, f=f"{gen_models_path}/{model_base_name}.onnx") print(f"Saving modified onnx file at {gen_models_path}/{model_base_name}.onnx") return model_base_name fp16_model_name = fix_onnx_fp16(gen_models_path=gen_models_path, model_base_name=model_base_name)

3. lépés: Állítsa össze a modellt

A qaic-exec parancssori felület (CLI) fordítóeszközt használnak a modell fordításához. A fordító bemenete a 2. lépésben generált ONNX fájl. A fordító egy bináris fájlt (ún. QPC, A Qualcomm programtároló) által meghatározott útvonalon -aic-binary-dir érv.

Az alábbi fordítási parancsban négy AI számítási magot és egy kötegméretet használ a modell összeállításához.

/opt/qti-aic/exec/qaic-exec -m=bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16.onnx -aic-num-cores=4 -convert-to-fp16 -onnx-define-symbol=batch,1 -onnx-define-symbol=sequence,128 -aic-binary-dir=bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc -aic-hw -aic-hw-version=2.0 -compile-only

A QPC a bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc mappát.

4. lépés Futtassa a modellt

Állítson be egy munkamenetet a következtetés futtatásához a Cloud AI100 Qualcomm gyorsítón a DL2q példányban.

A Qualcomm qaic Python könyvtár olyan API-készlet, amely támogatja a következtetések futtatását a Cloud AI100 gyorsítón.

  1. Használja a Session API-hívást a munkamenet példányának létrehozásához. A Session API-hívás a belépési pont a qaic Python-könyvtár használatához.
    qpcPath = 'bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc' bert_sess = qaic.Session(model_path= qpcPath+'/programqpc.bin', num_activations=1) bert_sess.setup() # Loads the network to the device. # Here we are reading out all the input and output shapes/types
    input_shape, input_type = bert_sess.model_input_shape_dict['input_ids']
    attn_shape, attn_type = bert_sess.model_input_shape_dict['attention_mask']
    output_shape, output_type = bert_sess.model_output_shape_dict['logits'] #create the input dictionary for given input sentence
    input_dict = {"input_ids": inputIds.numpy().astype(input_type), "attention_mask" : attentionMask.numpy().astype(attn_type)} #run inference on Cloud AI 100
    output = bert_sess.run(input_dict)

  2. Strukturálja át az adatokat a kimeneti pufferből a következővel: output_shape és a output_type.
    token_logits = np.frombuffer(output['logits'], dtype=output_type).reshape(output_shape)

  3. Dekódolja az előállított kimenetet.
    mask_token_logits = torch.from_numpy(token_logits[0, mask_token_index, :]).unsqueeze(0)
    top_5_results = torch.topk(mask_token_logits, 5, dim=1)
    print("Model output (top5) from Qualcomm Cloud AI 100:")
    for i in range(5): idx = top_5_results.indices[0].tolist()[i] val = top_5_results.values[0].tolist()[i] word = tokenizer.decode([idx]) print(f"{i+1} :(word={word}, index={idx}, logit={round(val,2)})")

Itt vannak a „The dog [MASK] on the mat” bemeneti mondat kimenetei.

1 :(word=sat, index=2068, logit=11.46)
2 :(word=landed, index=4860, logit=11.11)
3 :(word=spat, index=15732, logit=10.95)
4 :(word=settled, index=3035, logit=10.84)
5 :(word=was, index=1108, logit=10.75)

Ez az. Néhány lépéssel összeállított és futtatott egy PyTorch-modellt egy Amazon EC2 DL2q példányon. Ha többet szeretne megtudni a modellek beépítéséről és fordításáról a DL2q példányon, lásd a Cloud AI100 oktatóanyag.

Ha többet szeretne megtudni arról, hogy mely DL-modellarchitektúrák illenek jól az AWS DL2q-példányokhoz és a jelenlegi modelltámogatási mátrixhoz, tekintse meg a Qualcomm Cloud AI100 dokumentáció.

Most elérhető

Ma elindíthatja a DL2q példányokat az Egyesült Államok nyugati (Oregon) és európai (Frankfurt) AWS régióiban, mint Igény szerintFenntartottés Helyszínpéldányok, vagy részeként a Megtakarítási terv. Az Amazon EC2-nél megszokott módon csak azért fizet, amit használ. További információkért lásd Amazon EC2 árazás.

A DL2q példányok a segítségével telepíthetők AWS Deep Learning AMI (DLAMI), és a tárolóképek olyan felügyelt szolgáltatásokon keresztül érhetők el, mint pl Amazon SageMaker, Amazon Elastic Kubernetes Service (Amazon EKS), Amazon Elastic Container Service (Amazon ECS)és AWS ParallelCluster.

További információért látogasson el a Amazon EC2 DL2q példány oldalon, és küldjön visszajelzést a címre AWS re:Post for EC2 vagy a szokásos AWS ügyfélszolgálati elérhetőségein keresztül.


A szerzőkről

Amazon EC2 DL2q instance for cost-efficient, high-performance AI inference is now generally available | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.AK Roy a Qualcomm termékmenedzsmentért felelős igazgatója a felhő- és adatközponti mesterséges intelligencia termékekért és megoldásokért. Több mint 20 éves tapasztalattal rendelkezik a termékstratégia és -fejlesztés terén, amelynek középpontjában jelenleg a legjobb teljesítmény és teljesítmény/$ end-to-end megoldások állnak az AI következtetésekhez a felhőben, a felhasználási esetek széles körében. beleértve a GenAI-t, az LLM-eket, az automatikus és hibrid AI-t.

Amazon EC2 DL2q instance for cost-efficient, high-performance AI inference is now generally available | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. Jianying Lang az AWS Worldwide Specialist Organization (WWSO) vezető megoldási építésze. Több mint 15 éves tapasztalattal rendelkezik a HPC és az AI területén. Az AWS-nél arra összpontosít, hogy segítse az ügyfeleket az AI/ML munkaterhelésük gyorsított számítási példányokon történő üzembe helyezésében, optimalizálásában és méretezésében. Szenvedélyesen ötvözi a HPC és az AI technikáit. Jianying a Boulder-i Colorado Egyetemen szerzett PhD fokozatot számítógépes fizikából.

Időbélyeg:

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