Keberhasilan penerapan AI generatif di berbagai industri telah menarik perhatian dan minat perusahaan di seluruh dunia yang ingin mereproduksi dan melampaui pencapaian pesaing atau memecahkan kasus penggunaan yang baru dan menarik. Para pelanggan ini sedang mencari model dasar, seperti TII Falcon, Stable Diffusion XL, atau OpenAI GPT-3.5, sebagai mesin yang menggerakkan inovasi AI generatif.
Model dasar adalah kelas model AI generatif yang mampu memahami dan menghasilkan konten mirip manusia, berkat banyaknya data tidak terstruktur yang telah dilatih. Model ini telah merevolusi berbagai tugas computer vision (CV) dan pemrosesan bahasa alami (NLP), termasuk pembuatan gambar, terjemahan, dan menjawab pertanyaan. Mereka berfungsi sebagai landasan bagi banyak aplikasi AI dan telah menjadi komponen penting dalam pengembangan sistem cerdas yang canggih.
Namun, penerapan model pondasi dapat menghadapi tantangan yang signifikan, terutama dalam hal biaya dan kebutuhan sumber daya. Model-model ini dikenal karena ukurannya, seringkali berkisar antara ratusan juta hingga miliaran parameter. Ukurannya yang besar memerlukan sumber daya komputasi yang besar, termasuk perangkat keras yang kuat dan kapasitas memori yang besar. Faktanya, penerapan model dasar biasanya memerlukan setidaknya satu (seringkali lebih) GPU untuk menangani beban komputasi secara efisien. Misalnya, model TII Falcon-40B Instruct memerlukan setidaknya instans ml.g5.12xlarge agar berhasil dimuat ke dalam memori, namun berkinerja paling baik dengan instans yang lebih besar. Akibatnya, laba atas investasi (ROI) dari penerapan dan pemeliharaan model-model ini bisa jadi terlalu rendah untuk membuktikan nilai bisnis, terutama selama siklus pengembangan atau untuk beban kerja yang sulit. Hal ini disebabkan oleh biaya operasional yang dikeluarkan untuk memiliki instance yang didukung GPU untuk sesi yang panjang, mungkin 24/7.
Awal tahun ini, kami mengumumkannya Batuan Dasar Amazon, API tanpa server untuk mengakses model dasar dari Amazon dan mitra AI generatif kami. Meskipun saat ini dalam Pratinjau Pribadi, API tanpa servernya memungkinkan Anda menggunakan model dasar dari Amazon, Anthropic, Stability AI, dan AI21, tanpa harus menerapkan sendiri titik akhir apa pun. Namun, model sumber terbuka dari komunitas seperti Hugging Face telah berkembang pesat, dan tidak semuanya tersedia melalui Amazon Bedrock.
Dalam postingan ini, kami menargetkan situasi ini dan memecahkan masalah risiko biaya tinggi dengan menerapkan model pondasi besar Amazon SageMaker titik akhir asinkron dari Mulai Lompatan Amazon SageMaker. Hal ini dapat membantu memangkas biaya arsitektur, memungkinkan titik akhir untuk berjalan hanya ketika permintaan berada dalam antrean dan dalam waktu singkat, sambil menurunkan skala ke nol ketika tidak ada permintaan yang menunggu untuk dilayani. Ini kedengarannya bagus untuk banyak kasus penggunaan; namun, titik akhir yang diperkecil menjadi nol akan menyebabkan waktu mulai dingin sebelum dapat memberikan kesimpulan.
Ikhtisar solusi
Diagram berikut menggambarkan arsitektur solusi kami.
Arsitektur yang kami terapkan sangat mudah:
- Antarmuka pengguna adalah notebook, yang dapat digantikan oleh UI web yang dibangun di Streamlit atau teknologi serupa. Dalam kasus kami, buku catatan adalah sebuah Studio Amazon SageMaker notebook, berjalan pada instance ml.m5.large dengan kernel CPU PyTorch 2.0 Python 3.10.
- Notebook menanyakan titik akhir dalam tiga cara: SageMaker Python SDK, AWS SDK for Python (Boto3), dan LangChain.
- Titik akhir berjalan secara asinkron di SageMaker, dan di titik akhir, kami menerapkan model Instruktur Falcon-40B. Saat ini merupakan yang tercanggih dalam hal model instruksi dan tersedia di SageMaker JumpStart. Satu panggilan API memungkinkan kita menerapkan model pada titik akhir.
Apa itu inferensi asinkron SageMaker
Inferensi asinkron SageMaker adalah salah satu dari empat opsi penerapan di SageMaker, bersama dengan titik akhir waktu nyata, inferensi batch, dan inferensi tanpa server. Untuk mempelajari selengkapnya tentang berbagai opsi penerapan, lihat Terapkan model untuk Inferensi.
Inferensi asinkron SageMaker mengantri permintaan masuk dan memprosesnya secara asinkron, menjadikan opsi ini ideal untuk permintaan dengan ukuran muatan besar hingga 1 GB, waktu pemrosesan yang lama, dan persyaratan latensi yang hampir real-time. Namun, keuntungan utama yang diberikannya ketika berhadapan dengan model dasar yang besar, terutama selama pembuktian konsep (POC) atau selama pengembangan, adalah kemampuan untuk mengonfigurasi inferensi asinkron untuk menskalakan ke jumlah instans nol ketika tidak ada permintaan untuk proses, sehingga menghemat biaya. Untuk informasi selengkapnya tentang inferensi asinkron SageMaker, lihat Inferensi asinkron. Diagram berikut mengilustrasikan arsitektur ini.
Untuk menyebarkan titik akhir inferensi asinkron, Anda perlu membuat AsyncInferenceConfig
obyek. Jika Anda membuat AsyncInferenceConfig
tanpa menentukan argumennya, defaultnya S3OutputPath
akan s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-outputs/{UNIQUE-JOB-NAME}
dan S3FailurePath
akan s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-failures/{UNIQUE-JOB-NAME}
.
Apa itu SageMaker JumpStart
Model kami berasal dari SageMaker JumpStart, sebuah fitur SageMaker yang mempercepat perjalanan pembelajaran mesin (ML) dengan menawarkan model terlatih, templat solusi, dan buku catatan contoh. Ini memberikan akses ke berbagai model terlatih untuk berbagai jenis masalah, memungkinkan Anda memulai tugas ML dengan dasar yang kuat. SageMaker JumpStart juga menawarkan templat solusi untuk kasus penggunaan umum dan contoh buku catatan untuk pembelajaran. Dengan SageMaker JumpStart, Anda dapat mengurangi waktu dan upaya yang diperlukan untuk memulai proyek ML Anda dengan peluncuran solusi sekali klik dan sumber daya komprehensif untuk pengalaman ML praktis.
Tangkapan layar berikut menunjukkan contoh beberapa model yang tersedia di UI SageMaker JumpStart.
Menyebarkan model
Langkah pertama kami adalah menerapkan model ke SageMaker. Untuk melakukan hal tersebut, kita dapat menggunakan UI untuk SageMaker JumpStart atau SageMaker Python SDK, yang menyediakan API yang dapat kita gunakan untuk men-deploy model ke titik akhir asinkron:
Panggilan ini memerlukan waktu sekitar 10 menit untuk diselesaikan. Selama waktu ini, titik akhir diputar, kontainer bersama dengan artefak model diunduh ke titik akhir, konfigurasi model dimuat dari SageMaker JumpStart, lalu titik akhir asinkron diekspos melalui titik akhir DNS. Untuk memastikan bahwa titik akhir kita dapat diturunkan skalanya ke nol, kita perlu mengonfigurasi penskalaan otomatis pada titik akhir asinkron menggunakan Application Auto Scaling. Anda harus terlebih dahulu mendaftarkan varian titik akhir Anda ke Application Auto Scaling, menentukan kebijakan penskalaan, lalu menerapkan kebijakan penskalaan. Dalam konfigurasi ini, kami menggunakan metrik khusus CustomizedMetricSpecification
, Yang disebut ApproximateBacklogSizePerInstance
, seperti yang ditunjukkan pada kode berikut. Untuk daftar detailnya amazoncloudwatch metrik yang tersedia dengan titik akhir inferensi asinkron Anda, lihat Pemantauan dengan CloudWatch.
Anda dapat memverifikasi bahwa kebijakan ini telah berhasil ditetapkan dengan membuka konsol SageMaker, memilih Titik akhir bawah Kesimpulan di panel navigasi, dan mencari titik akhir yang baru saja kita terapkan.
Panggil titik akhir asinkron
Untuk memanggil titik akhir, Anda perlu memasukkan payload permintaan Layanan Penyimpanan Sederhana Amazon (Amazon S3) dan berikan penunjuk ke payload ini sebagai bagian dari InvokeEndpointAsync
meminta. Setelah pemanggilan, SageMaker mengantri permintaan pemrosesan dan mengembalikan pengidentifikasi dan lokasi keluaran sebagai respons. Setelah diproses, SageMaker menempatkan hasilnya di lokasi Amazon S3. Anda juga dapat memilih untuk menerima pemberitahuan sukses atau kesalahan Layanan Pemberitahuan Sederhana Amazon (Amazon SNS).
SDK Python SageMaker
Setelah penerapan selesai, ia akan mengembalikan AsyncPredictor
obyek. Untuk melakukan inferensi asinkron, Anda perlu mengunggah data ke Amazon S3 dan menggunakan predict_async()
metode dengan URI S3 sebagai inputnya. Ini akan mengembalikan sebuah AsyncInferenceResponse
objek, dan Anda dapat memeriksa hasilnya menggunakan get_response()
Metode.
Alternatifnya, jika Anda ingin memeriksa hasilnya secara berkala dan mengembalikannya setelah dibuat, gunakan predict()
metode. Kami menggunakan metode kedua ini dalam kode berikut:
bot3
Sekarang mari kita jelajahi invoke_endpoint_async
metode dari Boto3 sagemaker-runtime
klien. Hal ini memungkinkan pengembang untuk memanggil titik akhir SageMaker secara asinkron, memberikan token untuk pelacakan kemajuan dan pengambilan respons nanti. Boto3 tidak menawarkan cara untuk menunggu inferensi asinkron selesai seperti SageMaker Python SDK get_result()
operasi. Oleh karena itu, kami memanfaatkan fakta bahwa Boto3 akan menyimpan keluaran inferensi di Amazon S3 di response["OutputLocation"]
. Kita dapat menggunakan fungsi berikut untuk menunggu file inferensi ditulis ke Amazon S3:
Dengan fungsi ini, sekarang kita dapat menanyakan titik akhir:
LangChain
LangChain adalah kerangka kerja sumber terbuka yang diluncurkan pada Oktober 2022 oleh Harrison Chase. Ini menyederhanakan pengembangan aplikasi menggunakan model bahasa besar (LLM) dengan menyediakan integrasi dengan berbagai sistem dan sumber data. LangChain memungkinkan analisis dokumen, peringkasan, pembuatan chatbot, analisis kode, dan banyak lagi. Ini telah mendapatkan popularitas, dengan kontribusi dari ratusan pengembang dan pendanaan yang signifikan dari perusahaan ventura. LangChain memungkinkan koneksi LLM dengan sumber eksternal, sehingga memungkinkan untuk membuat aplikasi yang dinamis dan responsif terhadap data. Ia menawarkan perpustakaan, API, dan dokumentasi untuk menyederhanakan proses pengembangan.
LangChain menyediakan perpustakaan dan contoh untuk menggunakan titik akhir SageMaker dengan kerangka kerjanya, sehingga memudahkan penggunaan model ML yang dihosting di SageMaker sebagai โotakโ rantai. Untuk mempelajari lebih lanjut tentang bagaimana LangChain berintegrasi dengan SageMaker, lihat Titik Akhir SageMaker dalam dokumentasi LangChain.
Salah satu batasan penerapan LangChain saat ini adalah ia tidak mendukung titik akhir asinkron secara asli. Untuk menggunakan titik akhir asinkron ke LangChain, kita harus mendefinisikan kelas baru, SagemakerAsyncEndpoint
, itu memperluas SagemakerEndpoint
kelas sudah tersedia di LangChain. Selain itu, kami memberikan informasi berikut:
- Bucket dan awalan S3 tempat inferensi asinkron akan menyimpan input (dan output)
- Jumlah detik maksimum untuk menunggu sebelum waktu habis
- An
updated _call()
berfungsi untuk menanyakan titik akhirinvoke_endpoint_async()
alih-alihinvoke_endpoint()
- Cara untuk membangunkan titik akhir asinkron jika berada dalam kondisi awal yang dingin (diperkecil menjadi nol)
Untuk meninjau yang baru dibuat SagemakerAsyncEndpoint
, Anda dapat melihat sagemaker_async_endpoint.py
fillet tersedia di GitHub.
Membersihkan
Ketika Anda selesai menguji pembuatan kesimpulan dari titik akhir, ingatlah untuk menghapus titik akhir untuk menghindari dikenakan biaya tambahan:
Kesimpulan
Saat menerapkan model pondasi besar seperti TII Falcon, mengoptimalkan biaya sangatlah penting. Model-model ini memerlukan perangkat keras yang kuat dan kapasitas memori yang besar, sehingga menyebabkan biaya infrastruktur yang tinggi. Inferensi asinkron SageMaker, opsi penerapan yang memproses permintaan secara asinkron, mengurangi biaya dengan menskalakan jumlah instans ke nol ketika tidak ada permintaan yang tertunda. Dalam postingan ini, kami mendemonstrasikan cara menerapkan model fondasi SageMaker JumpStart yang besar ke titik akhir asinkron SageMaker. Kami menyediakan contoh kode menggunakan SageMaker Python SDK, Boto3, dan LangChain untuk mengilustrasikan berbagai metode untuk memanggil titik akhir asinkron dan mengambil hasilnya. Teknik-teknik ini memungkinkan pengembang dan peneliti untuk mengoptimalkan biaya sambil menggunakan kemampuan model dasar untuk sistem pemahaman bahasa tingkat lanjut.
Untuk mempelajari lebih lanjut tentang inferensi asinkron dan SageMaker JumpStart, lihat postingan berikut:
Tentang Penulis
Davide Gallitelli adalah Arsitek Solusi Spesialis untuk AI/ML di wilayah EMEA. Dia berbasis di Brussel dan bekerja sama dengan pelanggan di seluruh Benelux. Dia telah menjadi pengembang sejak dia masih sangat muda, mulai membuat kode pada usia 7 tahun. Dia mulai belajar AI/ML di universitas, dan telah jatuh cinta padanya sejak saat itu.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Otomotif / EV, Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- ChartPrime. Tingkatkan Game Trading Anda dengan ChartPrime. Akses Di Sini.
- BlockOffset. Modernisasi Kepemilikan Offset Lingkungan. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/optimize-deployment-cost-of-amazon-sagemaker-jumpstart-foundation-models-with-amazon-sagemaker-asynchronous-endpoints/
- :memiliki
- :adalah
- :bukan
- :Di mana
- $NAIK
- 1
- 10
- 100
- 12
- 13
- 15%
- 1M
- 2022
- 25
- 7
- a
- Sanggup
- Tentang Kami
- mempercepat
- Menerima
- mengakses
- prestasi
- di seluruh
- kegiatan
- Selain itu
- maju
- Keuntungan
- Setelah
- usia
- AI
- Model AI
- AI / ML
- Membiarkan
- memungkinkan
- sudah
- juga
- Meskipun
- Amazon
- Amazon SageMaker
- Mulai Lompatan Amazon SageMaker
- Amazon Web Services
- jumlah
- jumlah
- an
- analisis
- dan
- mengumumkan
- Lain
- Antropik
- Apa pun
- api
- Lebah
- Aplikasi
- aplikasi
- Mendaftar
- arsitektur
- ADALAH
- argumen
- Seni
- AS
- At
- perhatian
- menarik
- mobil
- tersedia
- rata-rata
- menghindari
- AWS
- berdasarkan
- BE
- menjadi
- menjadi
- sebelum
- makhluk
- TERBAIK
- lebih besar
- miliaran
- Blok
- tubuh
- Istirahat
- Brussels
- Bangunan
- dibangun di
- bisnis
- tapi
- by
- panggilan
- bernama
- CAN
- kemampuan
- kemampuan
- mampu
- Kapasitas
- kasus
- kasus
- rantai
- rantai
- tantangan
- beban
- mengejar
- ChatBot
- memeriksa
- Pilih
- memilih
- kelas
- klien
- rapat
- kode
- dingin
- bagaimana
- datang
- Umum
- Masyarakat
- Perusahaan
- pesaing
- lengkap
- Lengkap
- Selesaikan
- komponen
- luas
- komputer
- Visi Komputer
- konsep
- konfigurasi
- koneksi
- konsul
- Wadah
- Konten
- kontribusi
- Biaya
- Biaya
- membuat
- dibuat
- penciptaan
- sangat penting
- terbaru
- Sekarang
- adat
- pelanggan
- Memotong
- memangkas biaya
- siklus
- data
- berurusan
- Default
- menetapkan
- tuntutan
- menunjukkan
- menyebarkan
- dikerahkan
- penggelaran
- penyebaran
- terperinci
- dev
- Pengembang
- pengembang
- Pengembangan
- DICT
- berbeda
- Difusi
- ukuran
- cacat
- dns
- do
- dokumen
- dokumentasi
- Tidak
- dilakukan
- turun
- dua
- selama
- dinamis
- e
- mudah
- efisien
- usaha
- lain
- EMEA
- aktif
- memungkinkan
- Titik akhir
- Mesin
- cukup
- kesalahan
- terutama
- Setiap
- contoh
- contoh
- Kecuali
- pengecualian
- menarik
- biaya
- pengalaman
- menyelidiki
- terkena
- Meluas
- luas
- luar
- tambahan
- Menghadapi
- fakta
- Jatuh
- palsu
- Fitur
- File
- perusahaan
- Pertama
- berikut
- Untuk
- Prinsip Dasar
- empat
- Kerangka
- dari
- fungsi
- pendanaan
- diperoleh
- dihasilkan
- menghasilkan
- generasi
- generatif
- AI generatif
- GitHub
- baik
- GPU
- besar
- Pertumbuhan
- menangani
- Perangkat keras
- Memiliki
- memiliki
- he
- membantu
- di sini
- High
- host
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HTML
- http
- HTTPS
- Ratusan
- ratusan juta
- ideal
- identifier
- if
- menggambarkan
- gambar
- implementasi
- mengimpor
- in
- Termasuk
- masuk
- menunjukkan
- industri
- informasi
- Infrastruktur
- Innovation
- memasukkan
- input
- contoh
- sebagai gantinya
- Terintegrasi
- integrasi
- Cerdas
- bunga
- Antarmuka
- ke
- memperkenalkan
- investasi
- IT
- NYA
- perjalanan
- jpg
- json
- hanya
- dikenal
- bahasa
- besar
- Latensi
- kemudian
- diluncurkan
- meluncurkan
- terkemuka
- BELAJAR
- pengetahuan
- paling sedikit
- perpustakaan
- 'like'
- batas
- Daftar
- memuat
- tempat
- Panjang
- mencari
- Lot
- cinta
- Rendah
- mesin
- Mesin belajar
- terbuat
- Utama
- mempertahankan
- membuat
- Membuat
- banyak
- max
- maksimum
- Memori
- metode
- metode
- metrik
- Metrik
- jutaan
- menit
- ML
- model
- model
- lebih
- nama
- Alam
- Pengolahan Bahasa alami
- menavigasi
- Navigasi
- Perlu
- New
- baru saja
- berikutnya
- nLP
- tidak
- buku catatan
- pemberitahuan
- pemberitahuan
- sekarang
- jumlah
- obyek
- Oktober
- of
- menawarkan
- menawarkan
- Penawaran
- sering
- on
- ONE
- hanya
- open source
- operasi
- Optimize
- mengoptimalkan
- pilihan
- Opsi
- or
- kami
- di luar
- keluaran
- pane
- parameter
- bagian
- khususnya
- rekan
- tertunda
- Melakukan
- melakukan
- gambar
- Tempat
- Tempat
- plato
- Kecerdasan Data Plato
- Data Plato
- PoC
- kebijaksanaan
- kepopuleran
- mungkin
- Pos
- Posts
- berpotensi
- kekuasaan
- kuat
- Praktis
- ramalan
- Predictor
- Preview
- Mencetak
- swasta
- Masalah
- proses
- proses
- pengolahan
- Kemajuan
- memprojeksikan
- bukti
- bukti konsep
- Rasakan itu
- memberikan
- disediakan
- menyediakan
- menyediakan
- Ular sanca
- pytorch
- query
- pertanyaan
- menaikkan
- jarak
- mulai
- Baca
- siap
- real-time
- menerima
- menurunkan
- mengurangi
- wilayah
- daftar
- ingat
- menghapus
- diganti
- permintaan
- permintaan
- membutuhkan
- wajib
- Persyaratan
- membutuhkan
- peneliti
- sumber
- Sumber
- tanggapan
- mengakibatkan
- Hasil
- kembali
- Pengembalian
- ulasan
- merevolusi
- mempertaruhkan
- ROI
- Run
- berjalan
- pembuat bijak
- penghematan
- terukur
- Skala
- skala
- SDK
- Kedua
- detik
- DIRI
- melayani
- Tanpa Server
- layanan
- Layanan
- sesi
- set
- Pendek
- ditunjukkan
- Pertunjukkan
- penting
- mirip
- Sederhana
- sejak
- tunggal
- situasi
- Ukuran
- ukuran
- padat
- larutan
- Solusi
- MEMECAHKAN
- beberapa
- sumber
- spesialis
- pintal
- Stabilitas
- stabil
- awal
- mulai
- Mulai
- Negara
- Langkah
- berhenti
- penyimpanan
- menyimpan
- mudah
- mempersingkat
- besar
- sukses
- berhasil
- seperti itu
- mendukung
- Mendukung
- yakin
- melampaui
- sistem
- Mengambil
- target
- tugas
- teknik
- Teknologi
- template
- istilah
- pengujian
- Terima kasih
- bahwa
- Grafik
- Negara
- mereka
- Mereka
- kemudian
- Sana.
- dengan demikian
- karena itu
- Ini
- mereka
- ini
- tahun ini
- tiga
- Melalui
- di seluruh
- waktu
- kali
- waktu
- untuk
- bersama
- token
- terlalu
- Pelacakan
- terlatih
- Terjemahan
- benar
- mencoba
- jenis
- ui
- bawah
- pemahaman
- universitas
- sampai
- atas
- us
- menggunakan
- Pengguna
- User Interface
- menggunakan
- biasanya
- nilai
- Varian
- berbagai
- Luas
- usaha
- memeriksa
- sangat
- melalui
- penglihatan
- menunggu
- Menunggu
- Bangun
- Wake Up
- ingin
- adalah
- Cara..
- cara
- we
- jaringan
- layanan web
- ketika
- apakah
- yang
- sementara
- SIAPA
- lebar
- Rentang luas
- akan
- dengan
- tanpa
- Won
- bekerja
- industri udang di seluruh dunia.
- akan
- tertulis
- tahun
- Kamu
- muda
- Anda
- diri
- zephyrnet.dll
- nol