Instans DL2q Amazon EC2 untuk inferensi AI berkinerja tinggi dan hemat biaya kini tersedia secara umum | Layanan Web Amazon

Instans DL2q Amazon EC2 untuk inferensi AI berkinerja tinggi dan hemat biaya kini tersedia secara umum | Layanan Web Amazon

Ini adalah postingan tamu oleh AK Roy dari Qualcomm AI.

Amazon Elastic Compute Cloud (Amazon EC2) Instans DL2q, yang didukung oleh akselerator Qualcomm AI 100 Standard, dapat digunakan untuk menerapkan beban kerja pembelajaran mendalam (DL) di cloud dengan biaya yang efisien. Mereka juga dapat digunakan untuk mengembangkan dan memvalidasi performa dan keakuratan beban kerja DL yang akan diterapkan pada perangkat Qualcomm. Instans DL2q adalah instans pertama yang menghadirkan teknologi kecerdasan buatan (AI) Qualcomm ke cloud.

Dengan delapan akselerator Qualcomm AI 100 Standard dan total memori akselerator 128 GiB, pelanggan juga dapat menggunakan instans DL2q untuk menjalankan aplikasi AI generatif yang populer, seperti pembuatan konten, peringkasan teks, dan asisten virtual, serta aplikasi AI klasik untuk pemrosesan bahasa alami dan visi komputer. Selain itu, akselerator Qualcomm AI 100 menghadirkan teknologi AI yang sama dengan yang digunakan pada ponsel pintar, kendaraan otonom, komputer pribadi, dan headset realitas yang diperluas, sehingga instans DL2q dapat digunakan untuk mengembangkan dan memvalidasi beban kerja AI ini sebelum diterapkan.

Sorotan instans DL2q baru

Setiap instans DL2q menggabungkan delapan akselerator Qualcomm Cloud AI100, dengan kinerja agregat lebih dari 2.8 PetaOps kinerja inferensi Int8 dan 1.4 PetaFlops kinerja inferensi FP16. Mesin virtual ini memiliki total 112 inti AI, kapasitas memori akselerator sebesar 128 GB, dan bandwidth memori sebesar 1.1 TB per detik.

Setiap instans DL2q memiliki 96 vCPU, kapasitas memori sistem sebesar 768 GB dan mendukung bandwidth jaringan 100 Gbps serta Toko Blok Amazon Elastic (Amazon EBS) penyimpanan 19 Gbps.

Nama instansi vCPU Akselerator Cloud AI100 Memori akselerator Memori akselerator BW (agregat) Memori contoh Jaringan contoh Bandwidth penyimpanan (Amazon EBS).
DL2q.24xbesar 96 8 128 GB 1.088 TB / s 768 GB 100 Gbps 19 Gbps

Inovasi akselerator Qualcomm Cloud AI100

System-on-chip (SoC) akselerator Cloud AI100 adalah arsitektur multi-core yang dirancang khusus dan dapat diskalakan, mendukung berbagai kasus penggunaan pembelajaran mendalam mulai dari pusat data hingga edge. SoC ini menggunakan inti komputasi skalar, vektor, dan tensor dengan kapasitas SRAM on-die yang terdepan di industri sebesar 126 MB. Inti-inti tersebut saling terhubung dengan mesh network-on-chip (NoC) dengan bandwidth tinggi dan latensi rendah.

Akselerator AI100 mendukung beragam model dan kasus penggunaan. Tabel di bawah menyoroti kisaran dukungan model.

Kategori model Jumlah model Contoh
NLP 157 BERT, BART, FasterTransformer, T5, kode Z MOE
AI Generatif โ€“ NLP 40 LLaMA, CodeGen, GPT, OPT, BLOOM, Jais, Luminous, StarCoder, XGen
AI Generatif โ€“ Gambar 3 Difusi stabil v1.5 dan v2.1, OpenAI CLIP
CV โ€“ Klasifikasi gambar 45 ViT, ResNet, ResNext, MobileNet, EfficientNet
CV โ€“ Deteksi objek 23 YOLO v2, v3, v4, v5, dan v7, SSD-ResNet, RetinaNet
CV โ€“ Lainnya 15 LPRNet, Resolusi super/SRGAN, ByteTrack
Jaringan otomotif* 53 Persepsi dan LIDAR, pejalan kaki, jalur, dan deteksi lampu lalu lintas
Total > 300 โ€‹,war โ€‹,war

* Sebagian besar jaringan otomotif adalah jaringan komposit yang terdiri dari perpaduan jaringan individual.

SRAM on-die yang besar pada akselerator DL2q memungkinkan penerapan teknik kinerja tingkat lanjut yang efisien seperti presisi eksponen mikro MX6 untuk menyimpan bobot dan presisi eksponen mikro MX9 untuk komunikasi akselerator-ke-akselerator. Teknologi mikro-eksponen dijelaskan dalam pengumuman industri Open Compute Project (OCP) berikut: AMD, Arm, Intel, Meta, Microsoft, NVIDIA, dan Qualcomm Menstandarkan Format Data Presisi Sempit Generasi Berikutnya untuk AI ยป Proyek Open Compute.

Pengguna instance dapat menggunakan strategi berikut untuk memaksimalkan kinerja per biaya:

  • Simpan bobot menggunakan presisi mikro-eksponen MX6 di memori DDR pada akselerator. Penggunaan presisi MX6 memaksimalkan pemanfaatan kapasitas memori yang tersedia dan bandwidth memori untuk menghasilkan throughput dan latensi terbaik di kelasnya.
  • Lakukan komputasi dalam FP16 untuk memberikan akurasi kasus penggunaan yang diperlukan, sambil menggunakan SRAM on-chip yang unggul dan TOP cadangan pada kartu, untuk mengimplementasikan kernel MX6 hingga FP16 berlatensi rendah berkinerja tinggi.
  • Gunakan strategi batching yang dioptimalkan dan ukuran batch yang lebih tinggi dengan menggunakan SRAM on-chip besar yang tersedia untuk memaksimalkan penggunaan kembali bobot, sekaligus mempertahankan aktivasi on-chip semaksimal mungkin.

DL2q AI Stack dan rantai alat

Instans DL2q disertai dengan Qualcomm AI Stack yang memberikan pengalaman pengembang yang konsisten di seluruh Qualcomm AI di cloud dan produk Qualcomm lainnya. Tumpukan AI Qualcomm dan teknologi AI dasar yang sama berjalan pada instans DL2q dan perangkat edge Qualcomm, memberikan pelanggan pengalaman pengembang yang konsisten, dengan API terpadu di seluruh lingkungan pengembangan cloud, otomotif, komputer pribadi, extended reality, dan ponsel cerdas mereka.

Toolchain memungkinkan pengguna instans untuk dengan cepat melakukan onboarding model yang telah dilatih sebelumnya, mengkompilasi dan mengoptimalkan model untuk kemampuan instans, dan selanjutnya menerapkan model yang dikompilasi untuk kasus penggunaan inferensi produksi dalam tiga langkah yang ditunjukkan pada gambar berikut.

Instans DL2q Amazon EC2 untuk inferensi AI berkinerja tinggi dan hemat biaya kini tersedia secara umum | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Untuk mempelajari lebih lanjut tentang menyetel performa model, lihat Parameter Kinerja Utama Cloud AI 100 Dokumentasi.

Memulai instans DL2q

Dalam contoh ini, Anda mengkompilasi dan menyebarkan yang telah dilatih sebelumnya model BERT dari Wajah Memeluk pada instans DL2q EC2 menggunakan AMI DL2q yang telah dibuat sebelumnya, dalam empat langkah.

Anda dapat menggunakan yang sudah dibuat sebelumnya Qualcomm DLAMI pada instans atau mulai dengan AMI Amazon Linux2 dan buat AMI DL2q Anda sendiri dengan Platform Cloud AI 100 dan SDK Aplikasi yang tersedia di sini Layanan Penyimpanan Sederhana Amazon (Amazon S3) keranjang: s3://ec2-linux-qualcomm-ai100-sdks/latest/.

Langkah-langkah selanjutnya menggunakan DL2q AMI bawaan, Qualcomm Basis AL2 DLAMI.

Gunakan SSH untuk mengakses instans DL2q Anda dengan Qualcomm Base AL2 DLAMI AMI dan ikuti langkah 1 hingga 4.

Langkah 1. Siapkan lingkungan dan instal paket yang diperlukan

  1. Instal Python 3.8.
    sudo amazon-linux-extras install python3.8

  2. Siapkan lingkungan virtual Python 3.8.
    python3.8 -m venv /home/ec2-user/userA/pyenv

  3. Aktifkan lingkungan virtual Python 3.8.
    source /home/ec2-user/userA/pyenv/bin/activate

  4. Instal paket yang diperlukan, seperti yang ditunjukkan di dokumen persyaratan.txt tersedia di situs Github publik Qualcomm.
    pip3 install -r requirements.txt

  5. Impor perpustakaan yang diperlukan.
    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

Langkah 2. Impor modelnya

  1. Impor dan tokenisasi model.
    model_card = 'bert-base-cased'
    model = AutoModelForMaskedLM.from_pretrained(model_card)
    tokenizer = AutoTokenizer.from_pretrained(model_card)

  2. Tentukan masukan sampel dan ekstrak inputIds dan 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. Ubah model menjadi ONNX, yang kemudian dapat diteruskan ke kompiler.
    # 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. Anda akan menjalankan model dengan presisi FP16. Jadi, Anda perlu memeriksa apakah model tersebut berisi konstanta di luar rentang FP16. Meneruskan model ke fix_onnx_fp16 berfungsi untuk menghasilkan file ONNX baru dengan perbaikan yang diperlukan.
    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)

Langkah 3. Kompilasi modelnya

Grafik qaic-exec alat kompiler antarmuka baris perintah (CLI) digunakan untuk mengkompilasi model. Masukan ke kompiler ini adalah file ONNX yang dihasilkan pada langkah 2. Kompiler menghasilkan file biner (disebut QPC, Untuk Wadah program Qualcomm) di jalur yang ditentukan oleh -aic-binary-dir argumen.

Dalam perintah kompilasi di bawah, Anda menggunakan empat inti komputasi AI dan satu ukuran batch untuk mengkompilasi model.

/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

QPC dihasilkan di bert-base-cased/generatedModels/bert-base-cased_fix_outofrange_fp16_qpc folder.

Langkah 4. Jalankan modelnya

Siapkan sesi untuk menjalankan inferensi pada akselerator Qualcomm Cloud AI100 di instance DL2q.

Pustaka Qualcomm qaic Python adalah sekumpulan API yang menyediakan dukungan untuk menjalankan inferensi pada akselerator Cloud AI100.

  1. Gunakan panggilan Session API untuk membuat instance sesi. Panggilan Session API adalah titik masuk untuk menggunakan pustaka qaic Python.
    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. Susun ulang data dari buffer keluaran dengan output_shape dan output_type.
    token_logits = np.frombuffer(output['logits'], dtype=output_type).reshape(output_shape)

  3. Decode output yang dihasilkan.
    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)})")

Berikut adalah keluaran kalimat masukan โ€œAnjing [MASK] di atas matrasโ€.

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)

Itu dia. Hanya dengan beberapa langkah, Anda mengkompilasi dan menjalankan model PyTorch pada instans DL2q Amazon EC2. Untuk mempelajari lebih lanjut tentang orientasi dan kompilasi model pada instans DL2q, lihat Dokumentasi Tutorial Cloud AI100.

Untuk mempelajari lebih lanjut tentang arsitektur model DL mana yang cocok untuk instans AWS DL2q dan matriks dukungan model saat ini, lihat Dokumentasi Qualcomm Cloud AI100.

Tersedia sekarang

Anda dapat meluncurkan instans DL2q hari ini di Wilayah AWS AS Barat (Oregon) dan Eropa (Frankfurt) sebagai Sesuai permintaanPendiam, dan Instans Spot, atau sebagai bagian dari a Rencana Tabungan. Seperti biasa dengan Amazon EC2, Anda hanya membayar sesuai penggunaan. Untuk informasi lebih lanjut, lihat Harga Amazon EC2.

Instans DL2q dapat disebarkan menggunakan AWS Deep Learning AMI (DLAMI), dan gambar kontainer tersedia melalui layanan terkelola seperti Amazon SageMaker, Layanan Amazon Elastic Kubernetes (Amazon EKS), Layanan Kontainer Elastis Amazon (Amazon ECS), dan Kluster Paralel AWS.

Untuk mempelajari lebih lanjut, kunjungi Instans DL2q Amazon EC2 halaman, dan kirimkan masukan ke AWS re:Posting untuk EC2 atau melalui kontak AWS Support Anda yang biasa.


Tentang penulis

Instans DL2q Amazon EC2 untuk inferensi AI berkinerja tinggi dan hemat biaya kini tersedia secara umum | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.AK Roy adalah Direktur Manajemen Produk di Qualcomm, untuk produk dan solusi AI Cloud dan Pusat Data. Dia memiliki pengalaman lebih dari 20 tahun dalam strategi dan pengembangan produk, dengan fokus saat ini pada kinerja terbaik di kelasnya dan solusi kinerja/$ end-to-end untuk inferensi AI di Cloud, untuk berbagai kasus penggunaan, termasuk GenAI, LLM, Auto dan Hybrid AI.

Instans DL2q Amazon EC2 untuk inferensi AI berkinerja tinggi dan hemat biaya kini tersedia secara umum | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai. Jianying Lang adalah Arsitek Solusi Utama di AWS Worldwide Specialist Organization (WWSO). Dia memiliki lebih dari 15 tahun pengalaman kerja di bidang HPC dan AI. Di AWS, dia fokus membantu pelanggan menerapkan, mengoptimalkan, dan menskalakan beban kerja AI/ML mereka pada instans komputasi yang dipercepat. Dia bersemangat menggabungkan teknik di bidang HPC dan AI. Jianying meraih gelar PhD di bidang Fisika Komputasi dari University of Colorado di Boulder.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS