ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

ByteDance menghemat biaya inferensi hingga 60% sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia

Ini adalah posting blog tamu yang ditulis bersama dengan Minghui Yu dan Jianzhe Xiao dari Bytedance.

ByteDance adalah perusahaan teknologi yang mengoperasikan berbagai platform konten untuk menginformasikan, mendidik, menghibur, dan menginspirasi orang-orang lintas bahasa, budaya, dan geografi. Pengguna mempercayai dan menikmati platform konten kami karena pengalaman yang kaya, intuitif, dan aman yang mereka berikan. Pengalaman ini dimungkinkan oleh mesin backend machine learning (ML) kami, dengan model ML yang dibuat untuk moderasi konten, penelusuran, rekomendasi, iklan, dan efek visual baru.

Tim ByteDance AML (Applied Machine Learning) menyediakan sistem ML yang berperforma tinggi, andal, dan dapat diskalakan serta layanan ML end-to-end untuk bisnis perusahaan. Kami sedang meneliti cara mengoptimalkan sistem inferensi ML untuk mengurangi biaya, tanpa menambah waktu respons. Saat AWS diluncurkan Inferensi AWS, sebuah chip inferensi ML berkinerja tinggi yang dibuat khusus oleh AWS, kami terlibat dengan tim akun AWS kami untuk menguji apakah AWS Inferentia dapat memenuhi sasaran pengoptimalan kami. Kami menjalankan beberapa pembuktian konsep, menghasilkan biaya inferensi hingga 60% lebih rendah dibandingkan instans EC4 G2dn berbasis GPU T4 dan latensi inferensi hingga 25% lebih rendah. Untuk mewujudkan penghematan biaya dan peningkatan kinerja ini, kami memutuskan untuk menerapkan model berbasis AWS Inferentia Cloud komputasi elastis Amazon (Amazon EC2) Instans Inf1 dalam produksi.

Bagan berikut menunjukkan peningkatan latensi untuk salah satu model deteksi wajah kami yang sebelumnya diterapkan pada GPU dengan Tensor RT. Latensi rata-rata menurun sebesar 20% (dari 50 milidetik menjadi 40 milidetik), dan latensi p99 menurun sebesar 25% (dari 200 milidetik menjadi 150 milidetik).

Dalam postingan ini, kami membagikan cara kami menghemat biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia.

Mencari komputasi berkinerja tinggi dan hemat biaya

Tim AML ByteDance berfokus pada penelitian dan penerapan sistem ML mutakhir dan sumber daya komputasi heterogen yang mereka butuhkan. Kami membuat pelatihan skala besar dan sistem inferensi untuk berbagai model pemberi rekomendasi, pemrosesan bahasa alami (NLP), dan visi komputer (CV). Model ini sangat kompleks dan memproses sejumlah besar data dari banyak platform konten yang dioperasikan ByteDance. Penerapan model ini memerlukan sumber daya GPU yang signifikan, baik di cloud maupun di lokasi. Oleh karena itu, biaya komputasi untuk sistem inferensi ini cukup tinggi.

Kami ingin menurunkan biaya ini tanpa memengaruhi throughput atau latensi. Kami menginginkan fleksibilitas cloud dan siklus pengiriman yang lebih cepat, yang jauh lebih pendek daripada yang dibutuhkan untuk penyiapan di tempat. Dan meskipun kami terbuka untuk mengeksplorasi opsi baru untuk ML yang dipercepat, kami juga menginginkan pengalaman developer yang mulus.

Kami belajar dari tim AWS kami bahwa instans EC2 Inf1 berbasis AWS Inferentia memberikan inferensi ML performa tinggi dengan biaya per inferensi terendah di cloud. Kami penasaran untuk menjelajahinya dan menemukan mereka sangat cocok untuk kasus penggunaan kami, karena kami menjalankan pembelajaran mesin yang substansial pada data gambar, objek, ucapan, dan teks dalam jumlah besar. Mereka pasti cocok untuk tujuan kami, karena kami dapat mewujudkan penghematan biaya yang sangat besar mengingat kompleksitas model dan volume prediksi harian kami. Selain itu, AWS Inferentia menghadirkan memori on-chip dalam jumlah besar, yang dapat Anda gunakan untuk menyimpan model besar ke dalam cache alih-alih menyimpannya di luar chip. Kami menyadari bahwa ini dapat berdampak signifikan dalam mengurangi latensi inferensi karena inti pemrosesan AWS Inferentia, yang disebut NeuronCores, memiliki akses berkecepatan tinggi ke model yang disimpan dalam memori on-chip dan tidak dibatasi oleh memori off-chip bandwidth.

Pada akhirnya, setelah mengevaluasi beberapa opsi, kami memilih instans EC2 Inf1 karena kinerja/rasio harganya lebih baik dibandingkan dengan instans G4dn dan NVIDIA T4 lokal. Kami terlibat dalam siklus iterasi berkelanjutan dengan tim AWS untuk membuka keunggulan harga dan kinerja Inf1.

Menerapkan beban kerja inferensi di AWS Inferentia

Memulai AWS Inferentia menggunakan AWS Neuron SDK melibatkan dua fase: kompilasi kode model dan penerapan pada instans Inf1. Seperti biasa saat memindahkan model ML ke infrastruktur baru, ada beberapa tantangan yang kami hadapi. Kami dapat mengatasi tantangan ini dengan ketekunan dan dukungan dari tim AWS kami. Di bagian berikut, kami membagikan beberapa tips dan observasi berguna berdasarkan pengalaman kami menerapkan beban kerja inferensi di AWS Inferentia.

Model konformer untuk OCR

Model konformer pengenalan karakter optik (OCR) kami mendeteksi dan membaca teks di dalam gambar. Kami mengerjakan beberapa pengoptimalan untuk mendapatkan performa tinggi (QPS) untuk berbagai ukuran batch, sekaligus menjaga latensi tetap rendah. Beberapa pengoptimalan utama tercantum di bawah ini:

  • Optimasi kompiler โ€“ Secara default, Inferentia bekerja paling baik pada input dengan panjang urutan tetap, yang menghadirkan tantangan karena panjang data tekstual tidak tetap. Untuk mengatasinya, kami membagi model kami menjadi dua bagian: encoder dan decoder. Kami menyusun dua sub-model ini secara terpisah dan kemudian menggabungkannya menjadi satu model melalui TorchScript. Dengan menjalankan alur kontrol for loop pada CPU, pendekatan ini mengaktifkan dukungan untuk panjang urutan variabel pada Inferentia.
  • Performa konvolusi yang mendalam โ€“ Kami menemukan hambatan DMA dalam operasi konvolusi mendalam, yang banyak digunakan oleh model konformer kami. Kami bekerja sama dengan tim AWS Neuron untuk mengidentifikasi dan mengatasi hambatan kinerja akses DMA, yang meningkatkan kinerja operasi ini dan meningkatkan kinerja keseluruhan model OCR kami.

ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Kami membuat dua varian model baru untuk mengoptimalkan penerapan kami di Inferentia:

  • Encoder/decoder yang digabungkan dan dibuka gulungannya โ€“ Alih-alih menggunakan pembuat enkode dan dekoder yang dikompilasi secara independen, kami menggabungkan pembuat enkode dan dekoder yang dibuka sepenuhnya menjadi model tunggal dan menyusun model ini sebagai NEFF tunggal. Membuka gulungan dekoder memungkinkan untuk menjalankan semua alur kontrol dekoder di Inferentia tanpa menggunakan operasi CPU apa pun. Dengan pendekatan ini, setiap iterasi decoder menggunakan jumlah komputasi yang diperlukan untuk token tersebut. Pendekatan ini meningkatkan kinerja karena kami secara signifikan mengurangi perhitungan berlebih yang sebelumnya diperkenalkan oleh input padding. Selain itu, tidak diperlukan transfer data dari Inferentia ke CPU antara iterasi dekoder, yang secara drastis mengurangi waktu I/O. Versi model ini tidak mendukung penghentian lebih awal.
  • Dekoder yang dibuka gulungannya dipartisi โ€“ Mirip dengan model gabungan yang dibuka sepenuhnya, varian model ini membuka gulungan beberapa iterasi dekoder dan mengompilasinya sebagai eksekusi tunggal (tetapi tidak termasuk pembuat enkode). Misalnya, untuk panjang urutan maksimum 75, kita dapat membuka gulungan decoder menjadi 3 partisi yang menghitung token 1-25, 26-50, dan 51-75. Dalam hal I/O, ini juga jauh lebih cepat karena kita tidak perlu mentransfer output encoder satu kali setiap iterasi. Sebagai gantinya, output hanya ditransfer satu kali per setiap partisi dekoder. Versi model ini mendukung penghentian lebih awal, tetapi hanya pada batas partisi. Batas partisi dapat disetel untuk setiap aplikasi tertentu untuk memastikan bahwa sebagian besar permintaan hanya menjalankan satu partisi.

Untuk lebih meningkatkan kinerja, kami melakukan pengoptimalan berikut untuk mengurangi penggunaan memori atau meningkatkan efisiensi akses:

  • Deduplikasi tensor dan pengurangan salinan โ€“ Ini adalah pengoptimalan kompiler yang secara signifikan mengurangi ukuran model yang tidak digulung dan jumlah instruksi/akses memori dengan menggunakan kembali tensor untuk meningkatkan efisiensi ruang.
  • Instruksi dikurangi โ€“ Ini adalah pengoptimalan kompiler yang digunakan dengan versi dekoder non-empuk untuk secara signifikan mengurangi jumlah total instruksi.
  • Deduplikasi multi-core โ€“ Ini adalah pengoptimalan runtime yang merupakan alternatif dari deduplikasi tensor. Dengan opsi ini, semua model multicore akan jauh lebih hemat ruang.

Model ResNet50 untuk klasifikasi citra

ResNet-50 adalah model pembelajaran mendalam pra-terlatih untuk klasifikasi gambar. Ini adalah Convolutional Neural Network (CNN atau ConvNet) yang paling sering diterapkan untuk menganalisis citra visual. Kami menggunakan teknik berikut untuk meningkatkan performa model ini di Inferentia:

  • Transformasi model โ€“ Banyak model ByteDance diekspor dalam format ONNX, yang saat ini tidak didukung oleh Inferentia. Untuk menangani model ONNX ini, tim AWS Neuron menyediakan skrip untuk mengubah model kami dari format ONNX menjadi model PyTorch, yang dapat langsung dikompilasi untuk Inferentia menggunakan neuron obor.
  • Optimalisasi kinerja โ€“ Kami bekerja sama dengan Neuron AWS tim untuk menyetel heuristik penjadwalan dalam kompiler untuk mengoptimalkan kinerja model ResNet-50 kami.

Model multi-modal untuk moderasi konten

Model pembelajaran mendalam multi-modal kami adalah kombinasi dari beberapa model terpisah. Ukuran model ini relatif besar, yang menyebabkan kegagalan pemuatan model pada Inferentia. Tim AWS Neuron berhasil mengatasi masalah ini dengan menggunakan pembagian beban untuk mengurangi penggunaan memori perangkat. Tim Neuron merilis fitur de-duplikasi bobot ini di pustaka Neuron libnrt dan juga menyempurnakan Neuron Tools untuk metrik yang lebih akurat. Fitur de-duplikasi berat runtime dapat diaktifkan dengan menyetel variabel lingkungan berikut sebelum menjalankan inferensi:

NEURON_RT_MULTI_INSTANCE_SHARED_WEIGHTS=1

Neuron SDK yang diperbarui mengurangi konsumsi memori keseluruhan dari model duplikat kami, yang memungkinkan kami menerapkan model multi-modal kami untuk inferensi multi-core.

Memigrasi lebih banyak model ke AWS Inferentia

Di ByteDance, kami terus menerapkan model pembelajaran mendalam yang inovatif untuk memberikan pengalaman pengguna yang menyenangkan kepada hampir 2 miliar pengguna aktif bulanan. Mengingat skala besar tempat kami beroperasi, kami terus mencari cara untuk menghemat biaya dan mengoptimalkan kinerja. Kami akan terus memigrasikan model ke AWS Inferentia untuk mendapatkan keuntungan dari kinerja tinggi dan efisiensi biayanya. Kami juga ingin AWS meluncurkan lebih banyak jenis instans berbasis AWS Inferentia, seperti yang memiliki lebih banyak vCPU untuk tugas prapemrosesan. Ke depan, ByteDance berharap untuk melihat lebih banyak inovasi silikon dari AWS untuk memberikan performa harga terbaik untuk aplikasi ML.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang bagaimana AWS Inferentia dapat membantu menghemat biaya sekaligus mengoptimalkan kinerja untuk aplikasi inferensi Anda, kunjungi Contoh Amazon EC2 Inf1 halaman produk.


Tentang Penulis

ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Minghui Yu adalah Pemimpin Tim Pembelajaran Mesin Senior untuk Inferensi di ByteDance. Area fokusnya adalah AI Computing Acceleration dan Machine Learning System. Dia sangat tertarik dengan komputasi heterogen dan arsitektur komputer di era pasca Moore. Di waktu luangnya, dia suka basket dan panahan.

ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Jianzhe Xiao adalah Pemimpin Tim Insinyur Perangkat Lunak Senior dalam Tim AML di ByteDance. Pekerjaannya saat ini berfokus untuk membantu tim bisnis mempercepat proses penerapan model dan meningkatkan kinerja inferensi model. Di luar pekerjaan, dia senang bermain piano.

ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Tian Shi adalah Arsitek Solusi Senior di AWS. Area fokusnya adalah analitik data, pembelajaran mesin, dan tanpa server. Dia bersemangat membantu pelanggan merancang dan membangun solusi yang andal dan dapat diskalakan di cloud. Di waktu luangnya, ia senang berenang dan membaca.

ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Ji Dong adalah Manajer Solusi Pelanggan di AWS. Dia senang belajar tentang layanan AI/ML AWS dan membantu pelanggan memenuhi hasil bisnis mereka dengan membangun solusi untuk mereka. Di luar pekerjaan, Jia menikmati perjalanan, Yoga, dan film.

ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Jonatan Lunt adalah insinyur perangkat lunak di Amazon dengan fokus pada pengembangan kerangka kerja ML. Selama karirnya, dia telah bekerja melalui berbagai peran ilmu data termasuk pengembangan model, penerapan infrastruktur, dan pengoptimalan khusus perangkat keras.

ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Joshua Hannan adalah insinyur pembelajaran mesin di Amazon. Dia berupaya mengoptimalkan model pembelajaran mendalam untuk visi komputer skala besar dan aplikasi pemrosesan bahasa alami.

ByteDance menghemat hingga 60% biaya inferensi sekaligus mengurangi latensi dan meningkatkan throughput menggunakan AWS Inferentia PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Shruti Koparkar adalah Manajer Pemasaran Produk Senior di AWS. Dia membantu pelanggan mengeksplorasi, mengevaluasi, dan mengadopsi infrastruktur komputasi yang dipercepat EC2 untuk kebutuhan pembelajaran mesin mereka.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS