Host model transformator Hugging Face menggunakan Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Host model transformator Hugging Face menggunakan Inferensi Tanpa Server Amazon SageMaker

Beberapa tahun terakhir telah melihat pertumbuhan pesat di bidang pemrosesan bahasa alami (NLP) menggunakan transformator arsitektur pembelajaran yang mendalam. Dengan perpustakaan sumber terbuka Transformers dan platform pembelajaran mesin (ML), Hugging Face membuat pembelajaran transfer dan model transformator terbaru dapat diakses oleh komunitas AI global. Hal ini dapat mengurangi waktu yang dibutuhkan ilmuwan data dan insinyur ML di perusahaan di seluruh dunia untuk memanfaatkan setiap kemajuan ilmiah baru. Amazon SageMaker dan Hugging Face telah berkolaborasi untuk menyederhanakan dan mempercepat adopsi model transformator dengan Memeluk Wajah DLC, integrasi dengan Kompilator Pelatihan SageMaker, dan Pustaka terdistribusi SageMaker.

SageMaker memberikan pilihan yang berbeda bagi praktisi ML untuk menerapkan model transformator terlatih untuk menghasilkan inferensi:

  • Titik akhir inferensi waktu nyata, yang cocok untuk beban kerja yang perlu diproses dengan persyaratan latensi rendah dalam orde milidetik.
  • Transformasi batch, yang ideal untuk prediksi offline pada kumpulan data yang besar.
  • Inferensi asinkron, yang ideal untuk beban kerja yang membutuhkan ukuran muatan besar (hingga 1 GB) dan waktu pemrosesan inferensi yang lama (hingga 15 menit). Inferensi asinkron memungkinkan Anda menghemat biaya dengan menskalakan jumlah instans secara otomatis ke nol saat tidak ada permintaan untuk diproses.
  • Inferensi Tanpa Server, yang merupakan opsi inferensi baru yang dibuat khusus yang memudahkan Anda untuk menerapkan dan menskalakan model ML.

Dalam posting ini, kami mengeksplorasi cara menggunakan Inferensi Tanpa Server SageMaker untuk menerapkan model transformator Hugging Face dan mendiskusikan kinerja inferensi dan efektivitas biaya dalam skenario yang berbeda.

Ikhtisar solusi

AWS baru-baru ini mengumumkan Ketersediaan Umum SageMaker Serverless Inference, opsi inferensi tanpa server yang dibuat khusus yang memudahkan Anda untuk menerapkan dan menskalakan model ML. Dengan Inferensi Tanpa Server, Anda tidak perlu menyediakan kapasitas dan memperkirakan pola penggunaan di muka. Akibatnya, ini menghemat waktu Anda dan menghilangkan kebutuhan untuk memilih jenis instans dan mengelola kebijakan penskalaan. Titik akhir Inferensi Tanpa Server secara otomatis memulai, menskalakan, dan mematikan kapasitas, dan Anda hanya membayar selama menjalankan kode inferensi dan jumlah data yang diproses, bukan untuk waktu idle. Inferensi tanpa server sangat ideal untuk aplikasi dengan pola lalu lintas yang kurang dapat diprediksi atau terputus-putus. Mengunjungi Inferensi Tanpa Server untuk mempelajari lebih lanjut.

Sejak peluncuran pratinjaunya di AWS re:Invent 2021, kami telah melakukan peningkatan berikut:

  • Ketersediaan Umum di semua Wilayah komersial tempat SageMaker tersedia secara umum (kecuali Wilayah AWS China).
  • Peningkatan pemanggilan serentak maksimum per batas titik akhir menjadi 200 (dari 50 selama pratinjau), memungkinkan Anda untuk menangani beban kerja lalu lintas tinggi.
  • Menambahkan dukungan untuk SageMaker Python SDK, mengabstraksi kompleksitas dari proses penerapan model ML.
  • Ditambahkan pendaftaran model mendukung. Anda dapat mendaftarkan model Anda di registri model dan menerapkan langsung ke titik akhir tanpa server. Ini memungkinkan Anda untuk mengintegrasikan titik akhir Inferensi Tanpa Server SageMaker Anda dengan alur kerja MLOps Anda.

Mari kita telusuri cara menerapkan model Wajah Memeluk di Inferensi Tanpa Server SageMaker.

Terapkan model Wajah Memeluk menggunakan Inferensi Tanpa Server SageMaker

Kerangka kerja Hugging Face didukung oleh SageMaker, dan Anda dapat langsung menggunakan SageMaker Python SDK untuk menerapkan model ke titik akhir Inferensi Tanpa Server hanya dengan menambahkan beberapa baris dalam konfigurasi. Kami menggunakan SageMaker Python SDK dalam skrip contoh kami. Jika Anda memiliki model dari kerangka kerja berbeda yang membutuhkan lebih banyak penyesuaian, Anda dapat menggunakan AWS SDK untuk Python (Boto3) untuk menerapkan model pada titik akhir Inferensi Tanpa Server. Untuk lebih jelasnya, lihat Menerapkan model ML menggunakan SageMaker Serverless Inference (Pratinjau).

Pertama, Anda perlu membuat HuggingFaceModel. Anda dapat memilih model yang ingin Anda terapkan pada Memeluk Wajah Hub; sebagai contoh, distilbert-base-tanpa casing-dihaluskan-sst-2-english. Model ini adalah pos pemeriksaan yang disesuaikan untuk DistiBERT-base-uncased, disempurnakan pada SST-2. Lihat kode berikut:

import sagemaker
from sagemaker.huggingface.model import HuggingFaceModel
from sagemaker.serverless import ServerlessInferenceConfig # Specify Model Image_uri
image_uri='763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.9.1-transformers4.12.3-cpu-py38-ubuntu20.04' # Hub Model configuration. <https://huggingface.co/models>
hub = { 'HF_MODEL_ID':'cardiffnlp/twitter-roberta-base-sentiment', 'HF_TASK':'text-classification'
} # create Hugging Face Model Class
huggingface_model = HuggingFaceModel( env=hub, # configuration for loading model from Hub role=sagemaker.get_execution_role(), # iam role with permissions transformers_version="4.17", # transformers version used pytorch_version="1.10", # pytorch version used py_version='py38', # python version used image_uri=image_uri, # image uri
)

Setelah Anda menambahkan HuggingFaceModel kelas, Anda perlu mendefinisikan ServerlessInferenceConfig, yang berisi konfigurasi titik akhir Inferensi Tanpa Server, yaitu ukuran memori dan jumlah maksimum pemanggilan serentak untuk titik akhir. Setelah itu, Anda dapat menerapkan titik akhir Inferensi Tanpa Server dengan deploy Metode:

# Specify MemorySizeInMB and MaxConcurrency
serverless_config = ServerlessInferenceConfig( memory_size_in_mb=4096, max_concurrency=10,
) # deploy the serverless endpoint
predictor = huggingface_model.deploy( serverless_inference_config=serverless_config
)

Posting ini mencakup cuplikan kode sampel untuk menerapkan model Hugging Face pada titik akhir Inferensi Tanpa Server. Untuk contoh kode Python langkah-demi-langkah dengan instruksi terperinci, lihat yang berikut buku catatan.

Kinerja inferensi

Inferensi Tanpa Server SageMaker sangat menyederhanakan hosting untuk transformator tanpa server atau model pembelajaran mendalam. Namun, waktu prosesnya dapat bervariasi tergantung pada pengaturan konfigurasi. Anda dapat memilih ukuran memori titik akhir Inferensi Tanpa Server dari 1024 MB (1 GB) hingga 6144 MB (6 GB). Secara umum, ukuran memori setidaknya harus sebesar ukuran model. Namun, ini adalah praktik yang baik untuk merujuk pada penggunaan memori saat menentukan ukuran memori titik akhir, selain ukuran model itu sendiri.

Inferensi Tanpa Server terintegrasi dengan AWS Lambda untuk menawarkan ketersediaan tinggi, toleransi kesalahan bawaan, dan penskalaan otomatis. Meskipun Inferensi Tanpa Server menetapkan sumber daya komputasi secara otomatis sebanding dengan ukuran model, ukuran memori yang lebih besar menyiratkan bahwa container akan memiliki akses ke lebih banyak vCPU dan memiliki lebih banyak daya komputasi. Namun, pada tulisan ini, Serverless Inference hanya mendukung CPU dan tidak mendukung GPU.

Di sisi lain, dengan Inferensi Tanpa Server, Anda dapat mengharapkan cold start ketika titik akhir tidak memiliki lalu lintas untuk sementara waktu dan tiba-tiba menerima permintaan inferensi, karena akan membutuhkan waktu untuk memutar sumber daya komputasi. Mulai dingin juga dapat terjadi selama penskalaan, seperti jika permintaan serentak baru melebihi permintaan serentak sebelumnya. Durasi cold start bervariasi dari di bawah 100 milidetik hingga beberapa detik, bergantung pada ukuran model, berapa lama waktu yang dibutuhkan untuk mengunduh model, serta waktu startup container. Untuk informasi lebih lanjut tentang pemantauan, lihat Pantau Amazon SageMaker dengan Amazon CloudWatch.

Dalam tabel berikut, kami merangkum hasil eksperimen yang dilakukan untuk mengumpulkan informasi latensi endpoint Inferensi Tanpa Server pada berbagai model Hugging Face dan ukuran memori endpoint yang berbeda. Sebagai masukan, digunakan muatan dengan panjang 128 urutan. Latensi model meningkat ketika ukuran model menjadi besar; nomor latensi terkait dengan model secara khusus. Latensi model keseluruhan dapat ditingkatkan dengan berbagai cara, termasuk mengurangi ukuran model, skrip inferensi yang lebih baik, memuat model dengan lebih efisien, dan kuantisasi.

Model-Id tugas Ukuran Model Ukuran Memori Rata-rata Latensi Model

Model

Latensi

p99

Latensi Overhead

Biasa saja

Latensi Overhead

p99

distilbert-base-tanpa casing-dihaluskan-sst-2-english Klasifikasi teks 255 MB 4096 MB 220 ms 243 ms 17 ms 43 ms
xlm-roberta-besar-diperbaiki-conll03-bahasa inggris Klasifikasi token 2.09 GB 5120 MB 1494 ms 1608 ms 18 ms 46 ms
deepset/roberta-base-squad2 Menjawab pertanyaan 473 MB 5120 MB 451 ms 468 ms 18 ms 31 ms
google/pegasus-xsum Peringkasan 2.12 GB 6144 MB 22501 ms 32516 ms 27 ms 97 ms
sshleifer/distilbart-cnn-12-6 Peringkasan 1.14 GB 6144 MB 12683 ms 18669 ms 25 ms 53 ms

Mengenai performa harga, kita dapat menggunakan model DistilBERT sebagai contoh dan membandingkan opsi inferensi tanpa server dengan instans ml.t2.medium (2 vCPU, Memori 4 GB, $42 per bulan) pada titik akhir waktu nyata. Dengan titik akhir waktu nyata, DistilBERT memiliki latensi p99 240 milidetik dan total latensi permintaan 251 milidetik. Sedangkan pada tabel sebelumnya, Serverless Inference memiliki latensi model p99 sebesar 243 milidetik dan latensi overhead p99 sebesar 43 milidetik. Dengan Inferensi Tanpa Server, Anda hanya membayar untuk kapasitas komputasi yang digunakan untuk memproses permintaan inferensi, ditagih per milidetik, dan jumlah data yang diproses. Oleh karena itu, kami dapat memperkirakan biaya menjalankan model DistilBERT (distilbert-base-uncased-finetuned-sst-2-english, dengan perkiraan harga untuk us-east-1 wilayah) sebagai berikut:

  • Total waktu permintaan โ€“ 243 md + 43 md = 286 md
  • Biaya komputasi (4096 MB) โ€“ $0.000080 USD per detik
  • 1 permintaan biaya โ€“ 1 * 0.286 * $0.000080 = $0.00002288
  • biaya 1 ribu permintaan โ€“ 1,000 * 0.286 * $0.000080 = $0.02288
  • 1 juta permintaan biaya โ€“ 1,000,000 * 0.286 * $0.000080 = $22.88

Gambar berikut adalah perbandingan biaya untuk model Wajah Memeluk yang berbeda pada Inferensi Tanpa Server SageMaker vs. inferensi waktu nyata (menggunakan instans ml.t2.medium).

Gambar 1: Perbandingan biaya untuk model Wajah Pelukan yang berbeda pada Inferensi Tanpa Server SageMaker vs. inferensi waktu nyata

Gambar 1: Perbandingan biaya untuk model Wajah Pelukan yang berbeda pada Inferensi Tanpa Server SageMaker vs. inferensi waktu nyata

Seperti yang Anda lihat, Inferensi Tanpa Server adalah opsi hemat biaya saat lalu lintas terputus-putus atau rendah. Jika Anda memiliki persyaratan latensi inferensi yang ketat, pertimbangkan untuk menggunakan inferensi waktu nyata dengan daya komputasi yang lebih tinggi.

Kesimpulan

Hugging Face dan AWS mengumumkan kemitraan di awal tahun 2022 yang semakin memudahkan untuk melatih model Hugging Face di SageMaker. Fungsionalitas ini tersedia melalui pengembangan Memeluk Wajah AWS DLC. Wadah ini mencakup Pustaka Hugging Face Transformers, Tokenizers, dan Datasets, yang memungkinkan kami menggunakan sumber daya ini untuk pelatihan dan pekerjaan inferensi. Untuk daftar gambar DLC yang tersedia, lihat Tersedia Gambar Deep Learning Containers. Mereka dipelihara dan diperbarui secara teratur dengan patch keamanan. Banyak contoh cara melatih model Hugging Face dengan DLC ini dapat kita temukan berikut ini: GitHub repo.

Dalam posting ini, kami memperkenalkan bagaimana Anda dapat menggunakan Inferensi Tanpa Server SageMaker yang baru diumumkan untuk menerapkan model Hugging Face. Kami menyediakan cuplikan kode mendetail menggunakan SageMaker Python SDK untuk menerapkan model Hugging Face dengan SageMaker Serverless Inference. Kami kemudian menyelam jauh ke dalam latensi inferensi atas berbagai model Wajah Memeluk serta kinerja harga. Anda dipersilakan untuk mencoba layanan baru ini dan kami senang menerima lebih banyak umpan balik!


Tentang Penulis

Host model transformator Hugging Face menggunakan Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.James Yi adalah Senior AI/ML Partner Solutions Architect di tim Emerging Technologies di Amazon Web Services. Dia bersemangat bekerja dengan pelanggan dan mitra perusahaan untuk merancang, menerapkan, dan menskalakan aplikasi AI/ML untuk mendapatkan nilai bisnis mereka. Di luar pekerjaan, ia menikmati bermain sepak bola, bepergian, dan menghabiskan waktu bersama keluarganya.

Host model transformator Hugging Face menggunakan Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Rishabh Ray Chaudhury adalah Manajer Produk Senior dengan Amazon SageMaker, yang berfokus pada inferensi Pembelajaran Mesin. Dia bersemangat dalam berinovasi dan membangun pengalaman baru bagi pelanggan Machine Learning di AWS untuk membantu menskalakan beban kerja mereka. Di waktu luangnya, ia senang bepergian dan memasak. Anda dapat menemukannya di LinkedIn.

Host model transformator Hugging Face menggunakan Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Phillip Schmid adalah Insinyur Pembelajaran Mesin dan Pemimpin Teknologi di Hugging Face, di mana dia memimpin kolaborasi dengan tim Amazon SageMaker. Dia bersemangat dalam mendemokrasikan, mengoptimalkan, dan memproduksi model NLP mutakhir dan meningkatkan kemudahan penggunaan untuk Pembelajaran Mendalam.

Host model transformator Hugging Face menggunakan Amazon SageMaker Serverless Inference PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Yan Yan Zhang adalah Ilmuwan Data dalam tim Pengiriman Energi dengan AWS Professional Services. Dia bersemangat membantu pelanggan memecahkan masalah nyata dengan pengetahuan AI/ML. Di luar pekerjaan, dia suka bepergian, berolahraga, dan menjelajahi hal-hal baru.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS