Dalam postingan ini, kami menampilkan penyempurnaan model Llama 2 menggunakan metode Penyempurnaan Efisien Parameter (PEFT) dan menerapkan model penyempurnaan pada AWS Inferensia2. Kami menggunakan Neuron AWS kit pengembangan perangkat lunak (SDK) untuk mengakses perangkat AWS Inferentia2 dan memanfaatkan kinerjanya yang tinggi. Kami kemudian menggunakan wadah inferensi model besar yang didukung oleh Perpustakaan Java Dalam (DJLServing) sebagai solusi penyajian model kami.
Ikhtisar solusi
Penyetelan Llama2 yang Efisien menggunakan QLoRa
Keluarga model bahasa besar (LLM) Llama 2 adalah kumpulan model teks generatif yang telah dilatih dan disempurnakan dengan skala mulai dari 7 miliar hingga 70 miliar parameter. Llama 2 telah dilatih sebelumnya tentang 2 triliun token data dari sumber yang tersedia untuk umum. Pelanggan AWS terkadang memilih untuk menyempurnakan model Llama 2 menggunakan data milik pelanggan guna mencapai kinerja yang lebih baik untuk tugas hilir. Namun, karena banyaknya parameter model Llama 2, penyesuaian penuh bisa sangat mahal dan memakan waktu. Pendekatan Penyempurnaan Efisien Parameter (PEFT) dapat mengatasi masalah ini dengan hanya menyempurnakan sejumlah kecil parameter model tambahan sambil membekukan sebagian besar parameter model yang telah dilatih sebelumnya. Untuk informasi lebih lanjut tentang PEFT, dapat membaca ini pos. Dalam posting ini, kami menggunakan QLoRa untuk menyempurnakan model Llama 2 7B.
Terapkan Model yang telah disesuaikan pada Inf2 menggunakan Amazon SageMaker
AWS Inferentia2 adalah akselerator pembelajaran mesin (ML) yang dibuat khusus untuk beban kerja inferensi dan memberikan kinerja tinggi dengan biaya hingga 40% lebih rendah untuk beban kerja AI generatif dan LLM dibandingkan instans inferensi lain yang dioptimalkan di AWS. Dalam postingan ini, kami menggunakan Amazon Elastic Compute Cloud (Amazon EC2) Instans Inf2, menampilkan AWS Inferentia2, akselerator Inferentia2 generasi kedua, masing-masing berisi dua NeuronCores-v2. Setiap NeuronCore-v2 adalah unit komputasi independen dan heterogen, dengan empat mesin utama: mesin Tensor, Vector, Scalar, dan GPSIMD. Ini mencakup memori SRAM yang dikelola perangkat lunak on-chip untuk memaksimalkan lokalitas data. Karena beberapa blog di Inf2 telah diterbitkan, pembaca dapat merujuknya pos dan kami dokumentasi untuk informasi lebih lanjut tentang Inf2.
Untuk menerapkan model pada Inf2, kita memerlukan AWS Neuron SDK sebagai lapisan perangkat lunak yang berjalan di atas perangkat keras Inf2. AWS Neuron adalah SDK yang digunakan untuk menjalankan beban kerja pembelajaran mendalam di AWS Inferentia dan Pelatihan AWS kasus berbasis. Ini memungkinkan siklus hidup pengembangan ML end-to-end untuk membangun model baru, melatih dan mengoptimalkan model ini, dan menerapkannya untuk produksi. AWS Neuron menyertakan pembelajaran mendalam penyusun, runtime, dan alat yang terintegrasi secara alami dengan framework populer seperti TensorFlow dan PyTorch. Di blog ini, kita akan menggunakan transformers-neuronx
, yang merupakan bagian dari AWS Neuron SDK untuk alur kerja inferensi decoder transformator. Dia mendukung berbagai model populer, termasuk Llama 2.
Untuk menyebarkan model Amazon SageMaker, kami biasanya menggunakan wadah yang berisi perpustakaan yang diperlukan, seperti Neuron SDK dan transformers-neuronx
serta komponen penyajian model. Amazon SageMaker mempertahankan wadah pembelajaran yang mendalam (DLC) dengan perpustakaan sumber terbuka populer untuk menghosting model besar. Dalam posting ini, kami menggunakan Wadah Inferensi Model Besar untuk Neuron. Kontainer ini memiliki semua yang Anda perlukan untuk menerapkan model Llama 2 Anda di Inf2. Untuk sumber daya untuk memulai LMI di Amazon SageMaker, silakan merujuk ke banyak postingan kami yang ada (blog 1, blog 2, blog 3) pada topik ini. Singkatnya, Anda dapat menjalankan container tanpa menulis kode tambahan apa pun. Anda dapat menggunakan penangan default untuk pengalaman pengguna yang lancar dan meneruskan salah satu nama model yang didukung dan parameter waktu muat apa pun yang dapat dikonfigurasi. Ini mengkompilasi dan menyajikan LLM pada instans Inf2. Misalnya saja untuk menyebarkan OpenAssistant/llama2-13b-orca-8k-3319
, Anda dapat memberikan konfigurasi berikut (seperti serving.properties
mengajukan). Di dalam serving.properties
, kami menentukan tipe model sebagai llama2-13b-orca-8k-3319
, ukuran batch sebagai 4, derajat paralel tensor sebagai 2, dan hanya itu. Untuk daftar lengkap parameter yang dapat dikonfigurasi, lihat Semua opsi konfigurasi DJL.
Alternatifnya, Anda dapat menulis file pengendali model Anda sendiri seperti yang ditunjukkan di sini contoh, namun hal ini memerlukan penerapan metode pemuatan dan inferensi model untuk berfungsi sebagai jembatan antara DJLServing API.
Prasyarat
Daftar berikut menguraikan prasyarat untuk menerapkan model yang dijelaskan dalam postingan blog ini. Anda dapat menerapkannya dari Konsol Manajemen AWS atau menggunakan versi terbaru Antarmuka Baris Perintah AWS (AWS CLI).
Walkthrough
Di bagian berikut, kita akan membahas kode dalam dua bagian:
- Menyempurnakan model Llama2-7b, dan mengunggah artefak model ke lokasi bucket Amazon S3 yang ditentukan.
- Terapkan model ke Inferentia2 menggunakan kontainer penyajian DJL yang dihosting di Amazon SageMaker.
Contoh kode lengkap dengan instruksi dapat ditemukan di sini GitHub gudang.
Bagian 1: Menyempurnakan model Llama2-7b menggunakan PEFT
Kami akan menggunakan metode yang baru diperkenalkan di makalah QLoRA: Penyetelan Adaptor Tingkat Rendah yang Sadar Kuantisasi untuk Pembuatan Bahasa oleh Tim Dettmers dkk. QLoRA adalah teknik baru untuk mengurangi jejak memori model bahasa besar selama penyempurnaan, tanpa mengorbankan kinerja.
Catatan: Penyempurnaan model llama2-7b yang ditunjukkan berikut ini telah diuji di Amazon Buku Catatan Studio SageMaker dengan Kernel yang Dioptimalkan GPU Python 2.0 menggunakan a ml.g5.2xbesar tipe instans. Sebagai praktik terbaik, kami merekomendasikan penggunaan Studio Amazon SageMaker Lingkungan Pengembangan Terpadu (IDE) diluncurkan sendiri Cloud Pribadi Virtual Amazon (Amazon VPC). Ini memungkinkan Anda untuk mengontrol, memantau, dan memeriksa lalu lintas jaringan di dalam dan di luar VPC Anda menggunakan kemampuan jaringan dan keamanan AWS standar. Untuk informasi lebih lanjut, lihat Mengamankan konektivitas Amazon SageMaker Studio menggunakan VPC pribadi.
Hitung model dasar
Kami pertama-tama memuat model terkuantisasi dengan menggunakan kuantisasi 4-bit Transformator wajah berpelukan perpustakaan sebagai berikut:
Memuat set data pelatihan
Selanjutnya, kita memuat kumpulan data untuk memasukkan model untuk langkah penyesuaian yang ditunjukkan sebagai berikut:
Pasang lapisan adaptor
Di sini kami memasang lapisan adaptor kecil yang dapat dilatih, dikonfigurasi sebagai Konfigurasi Lora didefinisikan dalam Hugging Face's peft Perpustakaan.
Latih model
Dengan menggunakan konfigurasi LoRA yang ditunjukkan di atas, kami akan menyempurnakan model Llama2 beserta hyper-parameternya. Cuplikan kode untuk melatih model ditunjukkan sebagai berikut:
Gabungkan berat model
Model yang disempurnakan yang dijalankan di atas menciptakan model baru yang berisi bobot adaptor LoRA terlatih. Dalam cuplikan kode berikut, kita akan menggabungkan adaptor dengan model dasar sehingga kita dapat menggunakan model yang telah disesuaikan untuk inferensi.
Unggah bobot model ke Amazon S3
Pada langkah terakhir bagian 1, kita akan menyimpan bobot model gabungan ke lokasi Amazon S3 yang ditentukan. Bobot model akan digunakan oleh kontainer penyajian model di Amazon SageMaker untuk menghosting model menggunakan instans Inferentia2.
Bagian 2: Host model QLoRA untuk inferensi dengan AWS Inf2 menggunakan SageMaker LMI Container
Di bagian ini, kita akan memandu langkah-langkah penerapan model QLoRA yang telah disesuaikan ke dalam lingkungan hosting Amazon SageMaker. Kita akan menggunakan a Penyajian DJL wadah dari SageMaker DLC, yang terintegrasi dengan transformer-neuronx perpustakaan untuk menampung model ini. Penyiapan ini memfasilitasi pemuatan model ke akselerator AWS Inferentia2, memparalelkan model di beberapa NeuronCore, dan memungkinkan penyajian melalui titik akhir HTTP.
Siapkan artefak model
DJL mendukung banyak perpustakaan pengoptimalan pembelajaran mendalam, termasuk Kecepatan Dalam, Transformator Lebih Cepat dan banyak lagi. Untuk konfigurasi model tertentu, kami menyediakan a serving.properties
dengan parameter kunci, seperti tensor_parallel_degree
dan model_id
untuk menentukan opsi pemuatan model. Itu model_id
bisa berupa ID model Hugging Face, atau jalur Amazon S3 tempat bobot model disimpan. Dalam contoh kami, kami menyediakan lokasi Amazon S3 dari model kami yang telah disesuaikan. Cuplikan kode berikut menunjukkan properti yang digunakan untuk penyajian model:
Silakan lihat ini dokumentasi untuk informasi lebih lanjut tentang opsi yang dapat dikonfigurasi yang tersedia melalui serving.properties
. Harap dicatat bahwa kami menggunakan option.n_position=512
di blog ini untuk kompilasi AWS Neuron yang lebih cepat. Jika Anda ingin mencoba panjang token masukan yang lebih besar, kami menyarankan pembaca untuk melakukan pra-kompilasi model terlebih dahulu (lihat Model Pra-Kompilasi AOT di EC2). Jika tidak, Anda mungkin mengalami kesalahan batas waktu jika waktu kompilasi terlalu lama.
Setelah serving.properties
file sudah ditentukan, kami akan mengemas file tersebut menjadi a tar.gz
formatnya, sebagai berikut:
Lalu, kami akan mengunggah tar.gz ke lokasi bucket Amazon S3:
Buat titik akhir model Amazon SageMaker
Untuk menggunakan instans Inf2 untuk melayani, kami menggunakan Amazon Wadah SageMaker LMI dengan dukungan DJL neuronX. Silakan lihat ini pos untuk informasi selengkapnya tentang penggunaan wadah DJL NeuronX untuk inferensi. Kode berikut menunjukkan cara men-deploy model menggunakan Amazon SageMaker Python SDK:
Titik akhir model uji
Setelah model berhasil diterapkan, kita dapat memvalidasi titik akhir dengan mengirimkan permintaan sampel ke prediktor:
Contoh keluarannya ditampilkan sebagai berikut:
Dalam konteks analisis data, Pembelajaran Mesin (ML) mengacu pada teknik statistik yang mampu mengekstraksi kekuatan prediktif dari kumpulan data dengan kompleksitas dan akurasi yang semakin meningkat dengan mempersempit cakupan statistik secara berulang.
Machine Learning bukanlah teknik statistik baru, melainkan kombinasi dari teknik yang sudah ada. Selain itu, ini belum dirancang untuk digunakan dengan kumpulan data tertentu atau untuk menghasilkan hasil tertentu. Sebaliknya, sistem ini dirancang agar cukup fleksibel untuk beradaptasi dengan kumpulan data apa pun dan membuat prediksi mengenai hasil apa pun.
Membersihkan
Jika Anda memutuskan tidak ingin lagi menjalankan titik akhir SageMaker, Anda dapat menghapusnya menggunakan AWS SDK for Python (boto3), AWS CLI, atau Konsol Amazon SageMaker. Selain itu, Anda juga bisa matikan Sumber Daya Amazon SageMaker Studio yang tidak diperlukan lagi.
Kesimpulan
Dalam postingan ini, kami menunjukkan kepada Anda cara menyempurnakan model Llama2-7b menggunakan adaptor LoRA dengan kuantisasi 4-bit menggunakan satu instance GPU. Kemudian kami menerapkan model tersebut ke instans Inf2 yang dihosting di Amazon SageMaker menggunakan kontainer penyajian DJL. Terakhir, kami memvalidasi titik akhir model Amazon SageMaker dengan prediksi pembuatan teks menggunakan SageMaker Python SDK. Silakan mencobanya, kami senang mendengar tanggapan Anda. Nantikan pembaruan mengenai lebih banyak kemampuan dan inovasi baru dengan AWS Inferentia.
Untuk contoh selengkapnya tentang AWS Neuron, lihat sampel aws-neuron.
Tentang Penulis
Wei Teh adalah Arsitek Solusi Spesialis AI/ML Senior di AWS. Dia bersemangat membantu pelanggan memajukan perjalanan AWS mereka, dengan fokus pada layanan Amazon Machine Learning dan solusi berbasis machine learning. Di luar pekerjaan, ia menikmati aktivitas luar ruangan seperti berkemah, memancing, dan hiking bersama keluarganya.
Qingweaku Li adalah Spesialis Pembelajaran Mesin di Amazon Web Services. Dia menerima gelar Ph.D. dalam Riset Operasi setelah dia melanggar akun hibah penelitian penasihatnya dan gagal memberikan Hadiah Nobel yang dia janjikan. Saat ini dia membantu pelanggan di industri layanan keuangan dan asuransi membangun solusi pembelajaran mesin di AWS. Di waktu luangnya, dia suka membaca dan mengajar.
- 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. Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/fine-tune-llama-2-using-qlora-and-deploy-it-on-amazon-sagemaker-with-aws-inferentia2/
- :memiliki
- :adalah
- :bukan
- :Di mana
- $NAIK
- 1
- 10
- 100
- 11
- 15%
- 16
- 19
- 24
- 300
- 7
- 70
- 8
- a
- Tentang Kami
- atas
- akselerator
- akselerator
- mengakses
- Akun
- ketepatan
- Mencapai
- di seluruh
- kegiatan
- menyesuaikan
- Tambahan
- Selain itu
- alamat
- memajukan
- Setelah
- di depan
- AI
- AI / ML
- AL
- memungkinkan
- sepanjang
- alfa
- juga
- Amazon
- Pembelajaran Mesin Amazon
- Amazon SageMaker
- Studio Amazon SageMaker
- Amazon Web Services
- an
- analisis
- dan
- Apa pun
- Lebah
- Mendaftar
- pendekatan
- ADALAH
- AS
- At
- melampirkan
- mobil
- tersedia
- AWS
- Inferensi AWS
- bola
- mendasarkan
- berdasarkan
- pengelompokan
- BE
- menjadi
- manfaat
- TERBAIK
- Lebih baik
- antara
- Milyar
- Blog
- blog
- JEMBATAN
- Broke
- membangun
- tapi
- by
- CAN
- kemampuan
- mampu
- Pilih
- awan
- kode
- koleksi
- kombinasi
- lengkap
- kompleksitas
- komponen
- menghitung
- konfigurasi
- dikonfigurasi
- Konektivitas
- konsul
- memakan
- Wadah
- mengandung
- konteks
- kontrol
- Biaya
- bisa
- dibuat
- Sekarang
- pelanggan
- data
- analisis data
- memutuskan
- mendalam
- belajar mendalam
- Default
- menetapkan
- didefinisikan
- Derajat
- menyampaikan
- memberikan
- menyebarkan
- dikerahkan
- penggelaran
- dijelaskan
- dirancang
- Pengembangan
- alat
- Buruh pelabuhan
- turun
- dua
- selama
- dinamis
- E&T
- setiap
- antara
- memungkinkan
- ujung ke ujung
- Titik akhir
- Mesin
- Mesin
- cukup
- Lingkungan Hidup
- kesalahan
- dll
- segala sesuatu
- contoh
- contoh
- dieksekusi
- ada
- mahal
- pengalaman
- tambahan
- Menghadapi
- memfasilitasi
- Gagal
- palsu
- keluarga
- lebih cepat
- Menampilkan
- umpan balik
- File
- terakhir
- Akhirnya
- keuangan
- servis keuangan
- Pertama
- Penangkapan Ikan
- fleksibel
- berfokus
- mengikuti
- diikuti
- berikut
- berikut
- Tapak
- Untuk
- format
- ditemukan
- empat
- kerangka
- Pembekuan
- dari
- penuh
- Selanjutnya
- generasi
- generatif
- AI generatif
- mendapatkan
- Memberikan
- Go
- akan
- GPU
- memberikan
- Perangkat keras
- he
- mendengar
- membantu
- membantu
- di sini
- High
- kinerja tinggi
- -nya
- tuan rumah
- host
- tuan
- Rumah
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HTML
- http
- HTTPS
- ID
- if
- gambar
- melaksanakan
- mengimplementasikan
- in
- memasukkan
- termasuk
- Termasuk
- meningkatkan
- independen
- industri
- informasi
- inovasi
- memasukkan
- input
- contoh
- instruksi
- asuransi
- terpadu
- Terintegrasi
- ke
- diperkenalkan
- IT
- perulangan
- NYA
- Jawa
- perjalanan
- jpg
- json
- Menjaga
- kunci
- Paket (SDK)
- bahasa
- besar
- lebih besar
- Terbaru
- diluncurkan
- lapisan
- lapisan
- pengetahuan
- Panjang
- Tingkat
- perpustakaan
- Perpustakaan
- siklus hidup
- 'like'
- 'like
- baris
- Daftar
- Llama
- LLM
- memuat
- pemuatan
- tempat
- lagi
- cinta
- menurunkan
- mesin
- Mesin belajar
- Utama
- mempertahankan
- membuat
- pengelolaan
- banyak
- memaksimalkan
- Memori
- Bergabung
- metode
- metode
- mungkin
- ML
- model
- model
- Modul
- Memantau
- lebih
- paling
- banyak
- beberapa
- nama
- di
- Perlu
- jaringan
- lalu lintas jaringan
- jaringan
- New
- tidak
- Penghargaan Nobel
- None
- mencatat
- jumlah
- of
- on
- ONE
- hanya
- ke
- Buka
- open source
- Operasi
- optimasi
- Optimize
- dioptimalkan
- pilihan
- Opsi
- or
- Lainnya
- jika tidak
- kami
- Hasil
- menguraikan
- keluaran
- di luar
- lebih
- sendiri
- paket
- kertas
- Paralel
- parameter
- parameter
- bagian
- bagian
- lulus
- bergairah
- path
- prestasi
- dilakukan
- rencana
- plato
- Kecerdasan Data Plato
- Data Plato
- silahkan
- Populer
- Pos
- Posts
- kekuasaan
- didukung
- praktek
- Ketelitian
- ramalan
- Prediksi
- Predictor
- prasyarat
- swasta
- hadiah
- Masalah
- proses
- menghasilkan
- Produksi
- dijanjikan
- properties
- memberikan
- di depan umum
- diterbitkan
- Ular sanca
- pytorch
- jarak
- mulai
- agak
- Baca
- Pembaca
- Bacaan
- diterima
- baru-baru ini
- sarankan
- menurunkan
- lihat
- mengacu
- gudang
- permintaan
- permintaan
- wajib
- membutuhkan
- penelitian
- Sumber
- tanggapan
- tanggapan
- benar
- Run
- berjalan
- berkorban
- pembuat bijak
- Save
- Skala
- skala
- cakupan
- SDK
- mulus
- Kedua
- Generasi kedua
- Bagian
- keamanan
- melihat
- mengirim
- senior
- Urutan
- melayani
- layanan
- Layanan
- porsi
- set
- pengaturan
- penyiapan
- beberapa
- Pendek
- menampilkan
- menunjukkan
- ditunjukkan
- Pertunjukkan
- sejak
- tunggal
- Ukuran
- kecil
- potongan
- So
- Perangkat lunak
- pengembangan perangkat lunak
- kit pengembangan perangkat lunak
- larutan
- Solusi
- kadang-kadang
- sumber
- sumber
- spesialis
- tertentu
- ditentukan
- standar
- mulai
- statistik
- tinggal
- Langkah
- Tangga
- tersimpan
- studio
- berhasil
- seperti itu
- mendukung
- Didukung
- Mendukung
- tugas
- Pengajaran
- teknik
- teknik
- tensorflow
- diuji
- teks
- bahwa
- Grafik
- mereka
- Mereka
- kemudian
- Ini
- ini
- Melalui
- Tim
- waktu
- untuk
- token
- Token
- terlalu
- puncak
- tema
- obor
- lalu lintas
- Pelatihan VE
- terlatih
- Pelatihan
- transformator
- Triliun
- benar
- mencoba
- disetel
- menyetel
- dua
- mengetik
- Pembaruan
- upload
- URL
- menggunakan
- bekas
- Pengguna
- Pengguna Pengalaman
- menggunakan
- biasanya
- MENGESAHKAN
- divalidasi
- versi
- melalui
- maya
- berjalan
- walkthrough
- ingin
- adalah
- we
- jaringan
- layanan web
- berat
- BAIK
- Apa
- Apa itu
- yang
- sementara
- akan
- dengan
- dalam
- tanpa
- Kerja
- pekerja
- Alur kerja
- menulis
- penulisan
- Kamu
- Anda
- zephyrnet.dll