Bu yazıda, Parametre Verimli İnce Ayar (PEFT) yöntemini kullanarak bir Llama 2 modeline ince ayar yapmayı gösteriyoruz ve ince ayarlı modeli AWS Çıkarımı2. Kullanıyoruz AWS Nöron AWS Inferentia2 cihazına erişmek ve yüksek performansından yararlanmak için yazılım geliştirme kiti (SDK). Daha sonra, tarafından desteklenen büyük bir model çıkarım kabı kullanırız. Derin Java Kitaplığı (DJLServing) model hizmet çözümümüz olarak.
Çözüme genel bakış
QLoRa kullanarak Lama2'de Verimli İnce Ayarlama
Büyük dil modellerinden (LLM'ler) oluşan Llama 2 ailesi, ölçeği 7 milyardan 70 milyar parametreye kadar değişen, önceden eğitilmiş ve ince ayarı yapılmış üretken metin modellerinden oluşan bir koleksiyondur. Llama 2, halka açık kaynaklardan alınan 2 trilyon token veriyle önceden eğitildi. AWS müşterileri bazen alt görevlerde daha iyi performans elde etmek için müşterilerin kendi verilerini kullanarak Llama 2 modellerinde ince ayar yapmayı tercih eder. Bununla birlikte, Llama 2 modelinin çok sayıda parametresi nedeniyle, tam ince ayar yapılması aşırı derecede pahalı ve zaman alıcı olabilir. Parametre Verimli İnce Ayar (PEFT) yaklaşımı, önceden eğitilmiş modelin çoğu parametresini dondururken yalnızca az sayıda ekstra model parametresine ince ayar yaparak bu sorunu çözebilir. PEFT hakkında daha fazla bilgi için bunu okuyabilirsiniz Facebook post. Bu yazıda şunu kullanıyoruz: QLoRa Llama 2 7B modeline ince ayar yapmak için.
Amazon SageMaker'ı kullanarak Inf2'de ince ayarlı bir Model dağıtın
AWS Inferentia2, çıkarım iş yükleri için tasarlanmış, amaca yönelik olarak tasarlanmış bir makine öğrenimi (ML) hızlandırıcısıdır ve AWS'deki diğer çıkarım için optimize edilmiş örneklere göre üretken yapay zeka ve LLM iş yükleri için %40'a kadar daha düşük maliyetle yüksek performans sunar. Bu yazıda Amazon Elastic Compute Cloud'u kullanıyoruz (Amazon EC2) Inf2 bulut sunucusu, her biri iki adet içeren ikinci nesil Inferentia2 hızlandırıcıları olan AWS Inferentia2'yi içerir Nöron Çekirdekleri-v2. Her NeuronCore-v2, dört ana motora sahip bağımsız, heterojen bir bilgi işlem birimidir: Tensor, Vector, Scalar ve GPSIMD motorları. Veri konumunu en üst düzeye çıkarmak için çip üzerinde yazılımla yönetilen bir SRAM belleği içerir. Inf2'de birkaç blog yayınlandığı için okuyucu buna başvurabilir Facebook post ve belgeleme Inf2 hakkında daha fazla bilgi için.
Modelleri Inf2'de dağıtmak için Inf2 donanımı üzerinde çalışan yazılım katmanı olarak AWS Neuron SDK'ya ihtiyacımız var. AWS Neuron, AWS Inferentia'da derin öğrenme iş yüklerini çalıştırmak için kullanılan SDK'dır ve AWS Eğitimi tabanlı örnekler. Yeni modeller oluşturmak, bu modelleri eğitmek, optimize etmek ve bunları üretim için devreye almak için uçtan uca makine öğrenimi geliştirme yaşam döngüsü sağlar. AWS Neuron derin öğrenme içerir derleyici, runtime, ve araçlar TensorFlow ve PyTorch gibi popüler çerçevelerle yerel olarak entegre edilmiştir. Bu blogda şunları kullanacağız: transformers-neuronx
Transformatör kod çözücü çıkarımı iş akışlarına yönelik AWS Neuron SDK'nın bir parçası olan . BT destekler Llama 2 de dahil olmak üzere bir dizi popüler model.
Modelleri dağıtmak için Amazon Adaçayı Yapıcıgenellikle Neuron SDK gibi gerekli kitaplıkları içeren bir kapsayıcı kullanırız ve transformers-neuronx
model sunma bileşeninin yanı sıra. Amazon SageMaker şunları korur: derin öğrenme konteynerleri (DLC'ler) büyük modelleri barındırmak için popüler açık kaynak kitaplıklara sahiptir. Bu yazıda, şunu kullanıyoruz: Nöron için Büyük Model Çıkarım Kabı. Bu kapsayıcı, Llama 2 modelinizi Inf2'de dağıtmak için ihtiyacınız olan her şeye sahiptir. Amazon SageMaker'da LMI'yı kullanmaya başlamaya yönelik kaynaklar için lütfen mevcut yayınlarımızın çoğuna bakın (blog 1, blog 2, blog 3) Bu konuda. Kısacası herhangi bir ek kod yazmanıza gerek kalmadan Container'ı çalıştırabilirsiniz. Şunu kullanabilirsiniz: varsayılan işleyici Sorunsuz bir kullanıcı deneyimi için desteklenen model adlarından birini ve herhangi bir yükleme süresi yapılandırılabilir parametresini iletin. Bu, bir Inf2 örneğinde bir LLM'yi derler ve sunar. Örneğin, dağıtmak için OpenAssistant/llama2-13b-orca-8k-3319
aşağıdaki yapılandırmayı sağlayabilirsiniz (olduğu gibi) serving.properties
dosya). İçinde serving.properties
model tipini şu şekilde belirtiyoruz: llama2-13b-orca-8k-3319
, parti büyüklüğü 4, tensör paralel derecesi 2 ve bu kadar. Yapılandırılabilir parametrelerin tam listesi için bkz. Tüm DJL yapılandırma seçenekleri.
Alternatif olarak, kendi model işleyici dosyanızı burada gösterildiği gibi yazabilirsiniz. örnekancak bu, DJLServing API'leri arasında köprü görevi görecek model yükleme ve çıkarım yöntemlerinin uygulanmasını gerektirir.
Önkoşullar
Aşağıdaki liste, bu blog yazısında açıklanan modeli dağıtmak için önkoşulları özetlemektedir. Her ikisini de şuradan uygulayabilirsiniz: AWS Yönetim Konsolu veya en son sürümünü kullanarak AWS Komut Satırı Arayüzü (AWS CLI'si).
Walkthrough
Aşağıdaki bölümde kodu iki bölüm halinde inceleyeceğiz:
- Bir Llama2-7b modeline ince ayar yapın ve model yapıtlarını belirli bir Amazon S3 klasör konumuna yükleyin.
- Modeli, Amazon SageMaker'da barındırılan DJL hizmet kapsayıcısını kullanarak bir Inferentia2'ye dağıtın.
Talimatlarla birlikte kod örneklerinin tamamını burada bulabilirsiniz GitHub deposu.
Bölüm 1: PEFT kullanarak bir Llama2-7b modeline ince ayar yapın
Makalede yakın zamanda tanıtılan yöntemi kullanacağız. QLoRA: Dil Oluşturma için Niceleme Farkındalı Düşük Sıralı Adaptör Ayarı Tim Dettmers ve diğerleri tarafından. QLoRA, performanstan ödün vermeden ince ayar sırasında büyük dil modellerinin bellek ayak izini azaltan yeni bir tekniktir.
Not: Aşağıda gösterilen llama2-7b modelinin ince ayarı bir Amazon'da test edilmiştir. SageMaker Stüdyo Dizüstü Bilgisayarı Python 2.0 GPU Optimize Edilmiş Çekirdek ile ml.g5.2xlarge örnek türü. En iyi uygulama olarak, bir Amazon SageMaker Stüdyosu Kendi şirketinizde başlatılan Entegre Geliştirme Ortamı (IDE) Amazon Sanal Özel Bulut (Amazon VPC'si). Bu, standart AWS ağ iletişimi ve güvenlik özelliklerini kullanarak VPC'nizin içindeki ve dışındaki ağ trafiğini kontrol etmenize, izlemenize ve incelemenize olanak tanır. Daha fazla bilgi için, bkz Özel bir VPC kullanarak Amazon SageMaker Studio bağlantısını güvenli hale getirme.
Temel modeli niceleme
İlk önce kullanarak 4 bitlik nicelemeli nicelenmiş bir model yüklüyoruz. Sarılma yüz transformatörleri kütüphane şu şekilde:
Eğitim veri kümesini yükle
Daha sonra, aşağıda gösterilen ince ayar adımı için modeli beslemek üzere veri kümesini yüklüyoruz:
Bir adaptör katmanı ekleyin
Burada şu şekilde yapılandırılmış küçük, eğitilebilir bir bağdaştırıcı katmanı ekliyoruz: Lora Yapılandırması Sarılma Yüzünde tanımlanan tepe kütüphane.
Bir model eğitin
Yukarıda gösterilen LoRA yapılandırmasını kullanarak Llama2 modeline hiper parametrelerle birlikte ince ayar yapacağız. Modeli eğitmeye yönelik bir kod pasajı aşağıda gösterilmiştir:
Model ağırlığını birleştir
Yukarıda yürütülen ince ayarlı model, eğitilmiş LoRA adaptör ağırlıklarını içeren yeni bir model oluşturdu. Aşağıdaki kod parçacığında, ince ayarlı modeli çıkarım için kullanabilmemiz için bağdaştırıcıyı temel modelle birleştireceğiz.
Model ağırlığını Amazon S3'e yükleyin
1. bölümün son adımında birleştirilmiş model ağırlıklarını belirli bir Amazon S3 konumuna kaydedeceğiz. Model ağırlığı, Amazon SageMaker'daki model hizmet kapsayıcısı tarafından, modeli bir Inferentia2 bulut sunucusu kullanarak barındırmak için kullanılacaktır.
Bölüm 2: SageMaker LMI Container'ı kullanarak AWS Inf2 ile çıkarım için QLoRA modelini barındırın
Bu bölümde, ince ayarlı bir QLoRA modelini Amazon SageMaker barındırma ortamına dağıtma adımlarını inceleyeceğiz. Bir kullanacağız DJL servisi SageMaker'dan konteyner DLCile bütünleşen Transformers-neuronx Bu modeli barındıracak kütüphane. Kurulum, modellerin AWS Inferentia2 hızlandırıcılarına yüklenmesini kolaylaştırır, modeli birden fazla NeuronCore'da paralelleştirir ve HTTP uç noktaları aracılığıyla hizmet verilmesini sağlar.
Model yapıtlarını hazırlayın
DJL, aşağıdakiler dahil birçok derin öğrenme optimizasyon kütüphanesini destekler: Derin Hız, Daha Hızlı Dönüştürücü ve dahası. Modele özel konfigürasyonlar için bir serving.properties
gibi önemli parametrelerle tensor_parallel_degree
ve model_id
Model yükleme seçeneklerini tanımlamak için. model_id
Hugging Face model kimliği veya model ağırlıklarının saklandığı bir Amazon S3 yolu olabilir. Örneğimizde ince ayarlı modelimizin Amazon S3 konumunu sağlıyoruz. Aşağıdaki kod parçacığı, model sunumu için kullanılan özellikleri gösterir:
Lütfen buna bakın belgeleme aracılığıyla kullanılabilen yapılandırılabilir seçenekler hakkında daha fazla bilgi için serving.properties
. Lütfen kullandığımızı unutmayın option.n_position=512
Daha hızlı AWS Neuron derlemesi için bu blogda. Daha büyük giriş belirteci uzunluğunu denemek istiyorsanız okuyucunun modeli önceden derlemesini öneririz (bkz. EC2'de AOT Ön Derleme Modeli). Aksi takdirde derleme süresinin fazla olması durumunda zaman aşımı hatasıyla karşılaşabilirsiniz.
Sonra serving.properties
dosya tanımlandığında, dosyayı bir pakete paketleyeceğiz tar.gz
biçimi şu şekilde:
Ardından tar.gz dosyasını bir Amazon S3 klasör konumuna yükleyeceğiz:
Amazon SageMaker modeli uç noktası oluşturma
Hizmet amacıyla bir Inf2 örneğini kullanmak için bir Amazon kullanıyoruz SageMaker LMI kapsayıcısı DJL NeuronX desteği ile. Lütfen buna bakın Facebook post Çıkarım için DJL NeuronX kapsayıcısını kullanma hakkında daha fazla bilgi için. Aşağıdaki kod, Amazon SageMaker Python SDK kullanılarak bir modelin nasıl dağıtılacağını gösterir:
Test modeli uç noktası
Model başarıyla konuşlandırıldıktan sonra tahminciye örnek bir istek göndererek uç noktayı doğrulayabiliriz:
Örnek çıktı aşağıdaki gibi gösterilmektedir:
Veri analizi bağlamında Makine Öğrenimi (ML), bir istatistiğin kapsamını yinelemeli olarak daraltarak, artan karmaşıklık ve doğrulukla bir veri kümesinden tahmin gücü elde edebilen bir istatistiksel tekniği ifade eder.
Makine Öğrenimi yeni bir istatistiksel teknik değil, mevcut tekniklerin bir kombinasyonudur. Ayrıca, belirli bir veri kümesiyle kullanılmak veya belirli bir sonuç üretmek üzere tasarlanmamıştır. Daha ziyade, her türlü veri setine uyum sağlayabilecek ve her türlü sonuç hakkında tahminlerde bulunabilecek kadar esnek olacak şekilde tasarlandı.
Temizlemek
SageMaker uç noktasını artık çalışır durumda tutmak istemediğinize karar verirseniz, şunu kullanarak silebilirsiniz: Python için AWS SDK (boto3), AWS CLI veya Amazon SageMaker Konsolu. Ayrıca şunları da yapabilirsiniz: Amazon SageMaker Studio Kaynaklarını kapatın artık gerekli değil.
Sonuç
Bu yazıda, tek bir GPU örneğini kullanarak 2 bit nicelemeli LoRA adaptörünü kullanarak bir Llama7-4b modeline nasıl ince ayar yapacağınızı gösterdik. Daha sonra modeli bir DJL hizmet konteyneri kullanarak Amazon SageMaker'da barındırılan bir Inf2 örneğine dağıttık. Son olarak Amazon SageMaker modeli uç noktasını, SageMaker Python SDK'sını kullanarak bir metin oluşturma tahminiyle doğruladık. Devam edin ve deneyin, geri bildirimlerinizi duymayı seviyoruz. AWS Inferentia ile daha fazla özellik ve yeni inovasyonlarla ilgili güncellemeler için bizi takip etmeye devam edin.
AWS Neuron hakkında daha fazla örnek için bkz. aws-nöron-örnekleri.
Yazarlar Hakkında
WeiTeh AWS'de Kıdemli AI/ML Uzman Çözüm Mimarıdır. Amazon Machine Learning hizmetlerine ve makine öğrenimi tabanlı çözümlere odaklanarak müşterilerin AWS yolculuklarını ilerletmelerine yardımcı olma konusunda tutkulu. İş dışında ailesiyle birlikte kamp yapmak, balık tutmak ve yürüyüş yapmak gibi açık hava aktivitelerinden hoşlanıyor.
Qingweben Li Amazon Web Services'te Makine Öğrenimi Uzmanıdır. Doktora derecesini aldı. Danışmanının araştırma bursu hesabını bozduktan ve söz verdiği Nobel Ödülü'nü teslim edemedikten sonra Yöneylem Araştırması'nda. Şu anda finansal hizmet ve sigorta sektöründeki müşterilerin AWS'de makine öğrenimi çözümleri oluşturmasına yardımcı oluyor. Boş zamanlarında okumayı ve öğretmeyi sever.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/fine-tune-llama-2-using-qlora-and-deploy-it-on-amazon-sagemaker-with-aws-inferentia2/
- :vardır
- :dır-dir
- :olumsuzluk
- :Neresi
- $UP
- 1
- 10
- 100
- 11
- İNDİRİM
- 16
- 19
- 24
- 300
- 7
- 70
- 8
- a
- Hakkımızda
- yukarıdaki
- hızlandırıcı
- hızlandırıcılar
- erişim
- Hesap
- doğruluk
- Başarmak
- karşısında
- faaliyetler
- uyarlamak
- Ek
- Ayrıca
- adres
- ilerlemek
- Sonra
- önde
- AI
- AI / ML
- AL
- veriyor
- boyunca
- Alfa
- Ayrıca
- Amazon
- Amazon Makine Öğrenimi
- Amazon Adaçayı Yapıcı
- Amazon SageMaker Stüdyosu
- Amazon Web Servisleri
- an
- analiz
- ve
- herhangi
- API'ler
- Tamam
- yaklaşım
- ARE
- AS
- At
- iliştirmek
- Oto
- mevcut
- AWS
- AWS Çıkarımları
- top
- baz
- merkezli
- harmanlama
- BE
- olmuştur
- yarar
- İYİ
- Daha iyi
- arasında
- Milyar
- Blog
- birisinde
- KÖPRÜ
- Broke
- inşa etmek
- fakat
- by
- kamp
- CAN
- yetenekleri
- yetenekli
- Klinik
- bulut
- kod
- Toplamak
- kombinasyon
- tamamlamak
- karmaşıklık
- bileşen
- hesaplamak
- yapılandırma
- yapılandırılmış
- Bağlantı
- konsolos
- Konteyner
- içeren
- bağlam
- kontrol
- Ücret
- olabilir
- çevrimiçi kurslar düzenliyorlar.
- Şu anda
- Müşteriler
- veri
- veri analizi
- karar vermek
- derin
- derin öğrenme
- Varsayılan
- tanımlamak
- tanımlı
- derece
- teslim etmek
- sağlıyor
- dağıtmak
- konuşlandırılmış
- dağıtma
- tarif edilen
- tasarlanmış
- gelişme
- cihaz
- liman işçisi
- aşağı
- gereken
- sırasında
- dinamik
- E&T
- her
- ya
- sağlar
- son uca
- Son nokta
- son noktalar
- Motor
- Motorlar
- yeterli
- çevre
- hata
- vb
- Eter (ETH)
- her şey
- örnek
- örnekler
- infaz
- mevcut
- pahalı
- deneyim
- ekstra
- Yüz
- kolaylaştırır
- başarısız
- yanlış
- aile
- Daha hızlı
- Featuring
- geribesleme
- fileto
- son
- Nihayet
- mali
- Finansal servis
- Ad
- Balık tutma
- esnek
- odaklanma
- takip et
- takip
- takip etme
- şu
- ayak izi
- İçin
- biçim
- bulundu
- dört
- çerçeveler
- Dondurucu
- itibaren
- tam
- Ayrıca
- nesil
- üretken
- üretken yapay zeka
- almak
- Vermek
- Go
- gidiş
- GPU
- vermek
- donanım
- he
- duymak
- yardım
- yardımcı olur
- okuyun
- Yüksek
- yüksek performans
- yürüyüş
- onun
- ev sahibi
- ev sahipliği yaptı
- hosting
- ev
- Ne kadar
- Nasıl Yapılır
- Ancak
- HTML
- http
- HTTPS
- ID
- if
- görüntü
- uygulamak
- uygulanması
- in
- dahil
- içerir
- Dahil olmak üzere
- artan
- bağımsız
- sanayi
- bilgi
- yenilikler
- giriş
- girişler
- örnek
- durumlarda
- talimatlar
- sigorta
- sigorta endüstrisi
- entegre
- Entegre
- içine
- tanıttı
- IT
- tekrarlama
- ONUN
- Java
- seyahat
- jpg
- json
- tutmak
- anahtar
- malzeme
- Kit (SDK)
- dil
- büyük
- büyük
- son
- başlattı
- tabaka
- katmanları
- öğrenme
- uzunluk
- seviye
- kütüphaneler
- Kütüphane
- yaşam döngüsü
- sevmek
- seviyor
- çizgi
- Liste
- lama
- yük
- yükleme
- yer
- uzun
- Aşk
- alt
- makine
- makine öğrenme
- Ana
- tutar
- yapmak
- yönetim
- çok
- maksimize
- Bellek
- gitmek
- yöntem
- yöntemleri
- olabilir
- ML
- model
- modelleri
- Modüller
- izlemek
- Daha
- çoğu
- çok
- çoklu
- isimleri
- at
- gerek
- ağ
- ağ trafiği
- ağ
- yeni
- yok hayır
- Nobel Ödülü
- Hayır
- notlar
- numara
- of
- on
- ONE
- bir tek
- açık
- açık kaynak
- Operasyon
- optimizasyon
- optimize
- optimize
- seçenek
- Opsiyonlar
- or
- Diğer
- aksi takdirde
- bizim
- Sonuç
- Dış Aydınlatma
- ana hatlar
- çıktı
- dışında
- tekrar
- kendi
- paket
- kâğıt
- Paralel
- parametre
- parametreler
- Bölüm
- parçalar
- geçmek
- tutkulu
- yol
- performans
- yapılan
- plan
- Platon
- Plato Veri Zekası
- PlatoVeri
- Lütfen
- Popüler
- Çivi
- Mesajlar
- güç kelimesini seçerim
- powered
- uygulama
- Hassas
- tahmin
- Tahminler
- öngörü
- Predictor
- önkoşullar
- özel
- ödül
- olasılık
- Sorun
- süreç
- üretmek
- üretim
- söz
- özellikleri
- sağlamak
- alenen
- yayınlanan
- Python
- pytorch
- menzil
- değişen
- daha doğrusu
- Okumak
- Okuyucu
- Okuma
- Alınan
- geçenlerde
- tavsiye etmek
- azaltmak
- başvurmak
- ifade eder
- Depo
- talep
- isteklerinizi
- gereklidir
- gerektirir
- araştırma
- Kaynaklar
- yanıt
- yanıtları
- krallar gibi yaşamaya
- koşmak
- koşu
- feda
- sagemaker
- İndirim
- ölçek
- ölçekleme
- kapsam
- sdk
- sorunsuz
- İkinci
- İkinci nesil
- Bölüm
- güvenlik
- görmek
- gönderme
- kıdemli
- Dizi
- hizmet vermek
- hizmet
- Hizmetler
- servis
- set
- ayar
- kurulum
- birkaç
- kısa
- vitrin
- gösterdi
- gösterilen
- Gösteriler
- beri
- tek
- beden
- küçük
- pasajı
- So
- Yazılım
- yazılım geliştirme
- yazılım geliştirme kiti
- çözüm
- Çözümler
- bazen
- Kaynak
- kaynaklar
- uzman
- özel
- Belirtilen
- standart
- başladı
- istatistiksel
- kalmak
- adım
- Basamaklar
- saklı
- stüdyo
- Başarılı olarak
- böyle
- destek
- destekli
- Destekler
- görevleri
- Öğretim
- teknik
- teknikleri
- tensorflow
- test edilmiş
- metin
- metin oluşturma
- o
- The
- ve bazı Asya
- Onları
- sonra
- Bunlar
- Re-Tweet
- İçinden
- Tim
- zaman
- için
- simge
- Jeton
- çok
- üst
- konu
- meşale
- trafik
- Tren
- eğitilmiş
- Eğitim
- transformatör
- Trilyon
- gerçek
- denemek
- iki
- tip
- Güncellemeler
- Yüklenen
- URI
- URL
- kullanım
- Kullanılmış
- kullanıcı
- Kullanıcı Deneyimi
- kullanma
- genellikle
- DOĞRULA
- valide
- versiyon
- üzerinden
- Sanal
- yürümek
- örneklerde
- istemek
- oldu
- we
- ağ
- web hizmetleri
- ağırlık
- İYİ
- Ne
- Nedir
- hangi
- süre
- irade
- ile
- içinde
- olmadan
- İş
- işçi
- iş akışları
- yazmak
- yazı yazıyor
- sen
- zefirnet