Exafunction mendukung AWS Inferentia untuk membuka performa harga terbaik untuk inferensi pembelajaran mesin PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Exafunction mendukung AWS Inferentia untuk membuka kinerja harga terbaik untuk inferensi pembelajaran mesin

Di semua industri, model pembelajaran mesin (ML) semakin dalam, alur kerja semakin kompleks, dan beban kerja beroperasi pada skala yang lebih besar. Upaya dan sumber daya yang signifikan dilakukan untuk membuat model ini lebih akurat karena investasi ini secara langsung menghasilkan produk dan pengalaman yang lebih baik. Di sisi lain, membuat model ini berjalan secara efisien dalam produksi adalah tugas yang tidak sepele yang sering diabaikan, meskipun merupakan kunci untuk mencapai sasaran kinerja dan anggaran. Dalam posting ini kita membahas bagaimana Exafunction dan Inferensi AWS bekerja sama untuk membuka penerapan yang mudah dan hemat biaya untuk model ML dalam produksi.

fungsi eksa adalah start-up yang berfokus untuk memungkinkan perusahaan menjalankan ML dalam skala seefisien mungkin. Salah satu produknya adalah Penerapan Exa, solusi SaaS yang mudah digunakan untuk melayani beban kerja ML dalam skala besar. ExaDeploy mengatur beban kerja ML Anda secara efisien di seluruh sumber daya campuran (akselerator CPU dan perangkat keras) untuk memaksimalkan pemanfaatan sumber daya. Ini juga menangani penskalaan otomatis, menghitung colocation, masalah jaringan, toleransi kesalahan, dan banyak lagi, untuk memastikan penerapan yang efisien dan andal. Berbasis AWS Inferentia Contoh Amazon EC2 Inf1 dibuat khusus untuk menghadirkan biaya per inferensi terendah di cloud. ExaDeploy sekarang mendukung instans Inf1, yang memungkinkan pengguna mendapatkan penghematan akselerator berbasis perangkat keras dan penghematan berbasis perangkat lunak dari virtualisasi dan orkestrasi sumber daya yang dioptimalkan dalam skala besar.

Ikhtisar solusi

Bagaimana ExaDeploy memecahkan efisiensi penerapan

Untuk memastikan penggunaan sumber daya komputasi yang efisien, Anda perlu mempertimbangkan alokasi sumber daya yang tepat, auto scaling, co-location komputasi, biaya jaringan dan manajemen latensi, toleransi kesalahan, pembuatan versi dan reproduktifitas, dan banyak lagi. Dalam skala besar, setiap ketidakefisienan secara material memengaruhi biaya dan latensi, dan banyak perusahaan besar telah mengatasi ketidakefisienan ini dengan membangun tim dan keahlian internal. Namun, tidak praktis bagi sebagian besar perusahaan untuk mengasumsikan biaya keuangan dan organisasi dalam membangun perangkat lunak yang dapat digeneralisasikan yang bukan merupakan kompetensi inti yang diinginkan perusahaan.

ExaDeploy dirancang untuk mengatasi masalah efisiensi penerapan ini, termasuk yang terlihat di beberapa beban kerja paling kompleks seperti yang ada di Autonomous Vehicle dan aplikasi pemrosesan bahasa alami (NLP). Pada beberapa beban kerja ML batch besar, ExaDeploy telah mengurangi biaya hingga lebih dari 85% tanpa mengorbankan latensi atau akurasi, dengan waktu integrasi serendah satu hari engineer. ExaDeploy telah terbukti melakukan penskalaan otomatis dan mengelola ribuan instans sumber daya akselerator perangkat keras secara bersamaan tanpa degradasi sistem apa pun.

Fitur utama ExaDeploy meliputi:

  • Berjalan di cloud Anda: Tidak ada model, input, atau output Anda yang pernah meninggalkan jaringan pribadi Anda. Terus gunakan diskon penyedia cloud Anda.
  • Sumber daya akselerator bersama: ExaDeploy mengoptimalkan akselerator yang digunakan dengan mengaktifkan beberapa model atau beban kerja untuk berbagi sumber daya akselerator. Itu juga dapat mengidentifikasi jika beberapa beban kerja menggunakan model yang sama, dan kemudian berbagi model di seluruh beban kerja tersebut, sehingga mengoptimalkan akselerator yang digunakan. Kemampuan penyeimbangan ulang otomatis dan pengeringan node memaksimalkan pemanfaatan dan meminimalkan biaya.

Exafunction mendukung AWS Inferentia untuk membuka performa harga terbaik untuk inferensi pembelajaran mesin PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

  • Model penerapan tanpa server yang dapat diskalakan: Penskalaan otomatis ExaDeploy berdasarkan saturasi sumber daya akselerator. Turunkan secara dinamis ke 0 atau hingga ribuan sumber daya.
  • Dukungan untuk berbagai jenis perhitungan: Anda dapat membongkar model pembelajaran mendalam dari semua kerangka kerja ML utama serta kode C++ arbitrer, kernel CUDA, operasi kustom, dan fungsi Python.
  • Registrasi dan pembuatan versi model dinamis: Model atau versi model baru dapat didaftarkan dan dijalankan tanpa harus membangun kembali atau menerapkan ulang sistem.
  • Eksekusi point-to-point: Klien terhubung langsung ke sumber daya akselerator jarak jauh, yang memungkinkan latensi rendah dan throughput tinggi. Mereka bahkan dapat menyimpan status dari jarak jauh.
  • Eksekusi asinkron: ExaDeploy mendukung eksekusi model asinkron, yang memungkinkan klien memparalelkan komputasi lokal dengan pekerjaan sumber daya akselerator jarak jauh.
  • Pipa jarak jauh yang toleran terhadap kesalahan: ExaDeploy memungkinkan klien untuk secara dinamis menyusun perhitungan jarak jauh (model, preprocessing, dll.) ke dalam jaringan pipa dengan jaminan toleransi kesalahan. Sistem ExaDeploy menangani kegagalan pod atau node dengan pemulihan dan replay otomatis, sehingga pengembang tidak perlu berpikir untuk memastikan toleransi kesalahan.
  • Pemantauan out-of-the-box: ExaDeploy menyediakan metrik Prometheus dan dasbor Grafana untuk memvisualisasikan penggunaan sumber daya akselerator dan metrik sistem lainnya.

ExaDeploy mendukung AWS Inferentia

Instans Inf2 Amazon EC1 berbasis AWS Inferentia dirancang untuk beban kerja inferensi spesifik pembelajaran mendalam. Instans ini memberikan throughput hingga 2.3x dan penghematan biaya hingga 70% dibandingkan dengan instans inferensi GPU generasi saat ini.

ExaDeploy sekarang mendukung AWS Inferentia, dan bersama-sama mereka membuka peningkatan kinerja dan penghematan biaya yang dicapai melalui akselerasi perangkat keras yang dibuat khusus dan orkestrasi sumber daya yang dioptimalkan dalam skala besar. Mari kita lihat manfaat gabungan dari ExaDeploy dan AWS Inferentia dengan mempertimbangkan beban kerja ML modern yang sangat umum: beban kerja komputasi campuran dan batch.

Karakteristik beban kerja hipotetis:

  • 15 ms pra-proses/pasca-proses khusus CPU
  • Model inferensi (15 ms pada GPU, 5 ms pada AWS Inferentia)
  • 10 klien, masing-masing membuat permintaan setiap 20 ms
  • Perkiraan biaya relatif CPU:Inferensia:GPU adalah 1:2:4 (Berdasarkan harga Sesuai Permintaan Amazon EC2 untuk c5.xlarge, inf1.xlarge, dan g4dn.xlarge)

Tabel di bawah menunjukkan bagaimana masing-masing opsi terbentuk:

Pengaturan Sumber daya yang dibutuhkan Biaya Latensi
GPU tanpa ExaDeploy 2 CPU, 2 GPU per klien (total 20 CPU, 20 GPU) 100 30 ms
GPU dengan ExaDeploy 8 GPU dibagikan ke 10 klien, 1 CPU per klien 42 30 ms
AWS Inferentia tanpa ExaDeploy 1 CPU, 1 AWS Inferentia per klien (total 10 CPU, 10 Inferentia) 30 20 ms
AWS Inferentia dengan ExaDeploy 3 AWS Inferentia dibagikan ke 10 klien, 1 CPU per klien 16 20 ms

Contoh ExaDeploy pada AWS Inferentia

Di bagian ini, kita membahas langkah-langkah untuk mengonfigurasi ExaDeploy melalui contoh dengan node inf1 pada model BERT PyTorch. Kami melihat throughput rata-rata 1140 sampel/dtk untuk model bert-base, yang menunjukkan bahwa sedikit atau tidak ada overhead diperkenalkan oleh ExaDeploy untuk model tunggal ini, skenario beban kerja tunggal.

Langkah 1: Menyiapkan sebuah Layanan Amazon Elastic Kubernetes (Amazon EKS) kluster

Klaster Amazon EKS dapat dihadirkan dengan Modul Terraform AWS. Sebagai contoh, kami menggunakan an inf1.xlarge untuk AWS Inferensia.

Langkah 2: Siapkan ExaDepoy

Langkah kedua adalah menyiapkan ExaDeploy. Secara umum, penerapan ExaDeploy pada instans inf1 sangatlah mudah. Penataan sebagian besar mengikuti prosedur yang sama seperti pada instans graphics processing unit (GPU). Perbedaan utamanya adalah mengubah tag model dari GPU ke AWS Inferentia dan mengkompilasi ulang model. Misalnya, berpindah dari instans g4dn ke inf1 menggunakan antarmuka pemrograman aplikasi (API) ExaDeploy hanya memerlukan sekitar 10 baris kode untuk diubah.

  • Salah satu metode sederhana adalah dengan menggunakan Exafunction's Modul Terraform AWS Kubernetes or Bagan helm. Ini menerapkan komponen inti ExaDeploy untuk berjalan di klaster Amazon EKS.
  • Kompilasi model ke dalam format berseri (misalnya, TorchScript, model tersimpan TF, ONNX, dll). Untuk AWS Inferentia, kami mengikuti tutorial ini.
  • Daftarkan model yang telah dikompilasi di repositori modul ExaDeploy.
    with exa.ModuleRepository(MODULE_REPOSITORY_ADDRESS) as repo:
       repo.register_py_module(
           "BertInferentia",
           module_class="TorchModule",
           context_data=BERT_NEURON_TORCHSCRIPT_AS_BYTES,
           config={
               "_torchscript_input_names": ",".join(BERT_INPUT_NAMES).encode(),
               "_torchscript_output_names": BERT_OUTPUT_NAME.encode(),
               "execution_type": "inferentia".encode(),
           },
       )

  • Siapkan data untuk model (mis ExaDeploy-specific).
    tokenizer = transformers.AutoTokenizer.from_pretrained(
       "bert-base-cased-finetuned-mrpc"
    )
    
    batch_encoding = tokenizer.encode_plus(
       "The company Exafunction is based in the Bay Area",
       "Exafunctionโ€™s headquarters are situated in Mountain View",
       max_length=MAX_LENGTH,
       padding="max_length",
       truncation=True,
       return_tensors="pt",
    )

  • Jalankan model dari jarak jauh dari klien.
    with exa.Session(
       scheduler_address=SCHEDULER_ADDRESS,
       module_tag="BertInferentia",
       constraint_config={
           "KUBERNETES_NODE_SELECTORS": "role=runner-inferentia",
           "KUBERNETES_ENV_VARS": "AWS_NEURON_VISIBLE_DEVICES=ALL",
       },
    ) as sess:
       bert = sess.new_module("BertInferentia")
       classification_logits = bert.run(
           **{
               key: value.numpy()
               for key, value in batch_encoding.items()
           }
       )[BERT_OUTPUT_NAME].numpy()
    
       # Assert that the model classifies the two statements as paraphrase.
       assert classification_logits[0].argmax() == 1

ExaDeploy dan AWS Inferentia: Lebih baik bersama

AWS Inferentia mendorong batasan throughput untuk inferensi model dan memberikan biaya per inferensi terendah di cloud. Meskipun demikian, perusahaan memerlukan orkestrasi yang tepat untuk menikmati manfaat harga-kinerja Inf1 dalam skala besar. Penyajian ML adalah masalah kompleks yang, jika ditangani secara internal, memerlukan keahlian yang disingkirkan dari sasaran perusahaan dan sering kali menunda jadwal produk. ExaDeploy, yang merupakan solusi perangkat lunak penerapan ML Exafunction, telah muncul sebagai pemimpin industri. Ini bahkan melayani beban kerja ML yang paling kompleks, sambil memberikan pengalaman integrasi yang mulus dan dukungan dari tim kelas dunia. Bersama-sama, ExaDeploy dan AWS Inferentia membuka peningkatan kinerja dan penghematan biaya untuk beban kerja inferensi dalam skala besar.

Kesimpulan

Dalam postingan ini, kami menunjukkan kepada Anda bagaimana Exafunction mendukung AWS Inferentia untuk kinerja ML. Untuk informasi lebih lanjut tentang membangun aplikasi dengan Exafunction, kunjungi fungsi eksa. Untuk praktik terbaik membangun beban kerja pembelajaran mendalam di Inf1, kunjungi Instans Amazon EC2 Inf1.


Tentang Penulis

Nicholas Jiang, Insinyur Perangkat Lunak, Exafunction

Jonathan Ma, Insinyur Perangkat Lunak, Exafunction

Prem Nair, Insinyur Perangkat Lunak, Exafunction

Anshul Ramachandran, Insinyur Perangkat Lunak, Exafunction

Shruti Koparkar, Manajer Pemasaran Produk Sr., AWS

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS