Başka sözcüklerle ifade edilmiş metni tanımlamanın birçok kullanım durumunda iş değeri vardır. Örneğin, bir metin özetleme sistemi cümle açıklamalarını tanımlayarak gereksiz bilgileri kaldırabilir. Diğer bir uygulama da intihal belgeleri tespit etmektir. Bu gönderide, bir Sarılma Yüz trafo açık Amazon Adaçayı Yapıcı birkaç adımda yeniden ifade edilen cümle çiftlerini belirlemek için.
Gerçekten sağlam bir model, kullanılan dil tamamen farklı olduğunda başka sözcüklerle ifade edilen metni tanımlayabilir ve ayrıca kullanılan dil yüksek sözcüksel örtüşmeye sahip olduğunda farklılıkları belirleyebilir. Bu yazıda, ikinci yönüne odaklanıyoruz. Spesifik olarak, sözcüksel olarak örtüşmesi yüksek ve çok farklı veya zıt anlamlara sahip iki cümle arasındaki farkı tanımlayabilecek bir model yetiştirip yetiştiremeyeceğimize bakıyoruz. Örneğin, aşağıdaki cümleler tam olarak aynı kelimelere sahiptir ancak zıt anlamlara sahiptir:
- New York'tan Paris'e uçağa bindim
- Paris'ten New York'a uçakla gittim.
Çözüme genel bakış
Aşağıdaki üst düzey adımlarda size yol gösteriyoruz:
- Ortamı ayarlayın.
- Verileri hazırlayın.
- Veri kümesini simgeleştirin.
- Modele ince ayar yapın.
- Modeli dağıtın ve çıkarım gerçekleştirin.
- Model performansını değerlendirin.
Ortam kurulumunu atlamak istiyorsanız, aşağıdaki not defterini kullanabilirsiniz. GitHub ve kodu SageMaker'da çalıştırın.
Hugging Face ve AWS, 2022'nin başlarında, SageMaker'da Hugging Face modellerini eğitmeyi daha da kolaylaştıran bir ortaklık duyurdu. Bu işlevsellik, Hugging Face'in geliştirilmesiyle kullanılabilir. AWS Derin Öğrenme Kapsayıcıları (DLC'ler). Bu kapsayıcılar, Hugging Face Transformers, Tokenizers ve bu kaynakları eğitim ve çıkarım işleri için kullanmamıza izin veren Datasets kitaplığını içerir. Kullanılabilir DLC görüntülerinin listesi için bkz. Kullanılabilir Derin Öğrenme Kapsayıcıları Resimleri. Güvenlik yamalarıyla korunurlar ve düzenli olarak güncellenirler. Bu DLC'ler ve Hugging Face modellerinin nasıl eğitileceğine dair birçok örnek bulabilirsiniz. Kucaklayan Yüz Python SDK'sı aşağıda GitHub repo.
PAWS veri kümesi
Açıklamalar olmadan yüksek sözcüksel örtüşme sergileyen verimli cümle çiftleri veri kümelerinin eksikliğinin farkına vararak, orijinal PAWS 2019'da yayınlanan veri seti, doğal dil işleme (NLP) topluluğuna açıklama algılama modellerini eğitmek ve değerlendirmek için yeni bir kaynak sağlamayı amaçlıyordu. PAWS cümle çiftleri kullanılarak iki adımda oluşturulur. Vikipedi ve Quora Soru Çiftleri (QQP) veri kümesi. Bir dil modeli, bir cümle çifti oluşturmak için önce bir cümle çiftindeki kelimeleri aynı Kelime Çantası (BOW) ile değiştirir. Daha sonra bir geri çeviri adımı, yüksek BOW çakışması olan ancak farklı bir kelime sırası kullanan açıklamalar üretir. Son PAWS veri seti, toplam 108,000 insan etiketli ve 656,000 gürültülü etiketli çift içerir.
Bu yazıda kullanıyoruz PAWS-Wiki Etiketli (Son) Hugging Face'ten veri kümesi. Hugging Face, eğitim veri setinde 49,000 cümle çifti ve doğrulama ve test veri setlerinin her biri için 8,000 cümle çifti ile sonuçlanan veri ayırma işlemini bizim için zaten gerçekleştirdi. Eğitim veri kümesinden iki cümle çifti örneği aşağıdaki örnekte gösterilmektedir. 1 etiketi, iki cümlenin birbirinin açıklamaları olduğunu gösterir.
cümle 1 | cümle 2 | etiket |
Değiştirilebilir olmasına rağmen, 2 arabadaki gövde parçaları benzer değildir. | Benzer olmasına rağmen, gövde parçaları 2 arabada birbirinin yerine kullanılamaz. | 0 |
Katz, 1947'de İsveç'te doğdu ve 1 yaşında New York'a taşındı. | Katz, 1947'de İsveç'te doğdu ve bir yaşında New York'a taşındı. | 1 |
Önkoşullar
Aşağıdaki ön koşulları tamamlamanız gerekir:
- AWS hesabınız yoksa kaydolun. Daha fazla bilgi için, bkz Amazon SageMaker Ön Koşullarını Kurun.
- kullanmaya başlayın SageMaker dizüstü bilgisayar örnekleri.
- doğru ayarla AWS Kimlik ve Erişim Yönetimi (IAM) izinleri. Daha fazla bilgi için, bkz Adaçayı Yapıcı Rolleri.
ortamı kurun
Model ince ayarı için verilerimizi incelemeye ve hazırlamaya başlamadan önce ortamımızı kurmamız gerekiyor. Bir SageMaker not defteri örneği oluşturarak başlayalım. AWS hesabınızda bir AWS Bölgesi seçin ve talimatları izleyin. bir SageMaker not defteri örneği oluşturun. Not defteri örneğinin dönmesi birkaç dakika sürebilir.
Not defteri örneği çalışırken, conda_pytorch_p38
çekirdek türünüz olarak. Hugging Face veri setini kullanmak için öncelikle Hugging Face kitaplığını yüklememiz ve içe aktarmamız gerekir:
Ardından, bir SageMaker oturumu oluşturalım. varsayılanı kullanıyoruz Amazon Basit Depolama Hizmeti PAWS veri kümesini ve model yapılarını depolamak için SageMaker oturumuyla ilişkili (Amazon S3) klasörü:
Verileri hazırlayın
PAWS veri setinin Hugging Face versiyonunu şu şekilde yükleyebiliriz: load_dataset()
emretmek. Bu çağrı, PAWS Python işleme komut dosyasını Hugging Face GitHub deposundan indirir ve içe aktarır, ardından komut dosyasında depolanan orijinal URL'den PAWS veri kümesini indirir ve verileri sürücüde bir Ok tablosu olarak önbelleğe alır. Aşağıdaki koda bakın:
Önceden eğitilmiş BERT modelimize ince ayar yapmaya başlamadan önce, hedef sınıf dağılımımıza bakalım. Kullanım durumumuz için, PAWS veri kümesinin ikili etiketleri vardır (0, cümle çiftinin bir açıklama olmadığını ve 1 olduğunu gösterir). Aşağıdaki kodda gösterildiği gibi sınıf dağılımını görmek için bir sütun grafiği oluşturalım. Eğitim setimizde hafif bir sınıf dengesizliği sorunu olduğunu görüyoruz (%56 negatif örneklere karşı %44 pozitif örnekler). Bununla birlikte, dengesizlik, sınıf dengesizliği azaltma tekniklerini kullanmaktan kaçınacak kadar küçüktür.
Veri kümesini belirt
İnce ayar yapmaya başlamadan önce veri setimizi tokenleştirmemiz gerekiyor. Başlangıç noktası olarak, ince ayar yapmak ve değerlendirmek istediğimizi varsayalım. roberta-base
transformatör. biz seçtik roberta-base
çünkü bu, büyük bir İngilizce veri topluluğu üzerinde önceden eğitilmiş ve çeşitli NLP görevlerinde sıklıkla yüksek performans gösteren genel amaçlı bir dönüştürücüdür. Model ilk olarak gazetede tanıtıldı. RoBERTa: Sağlam Bir Şekilde Optimize Edilmiş BERT Ön Eğitim Yaklaşımı.
Cümlelerde tokenizasyon yapıyoruz. roberta-base
belgeyi belirteçlere bölmek için bayt düzeyinde Bayt Çifti Kodlaması kullanan Hugging Face'ten belirteçleyici. RoBERTa tokenizer hakkında daha fazla ayrıntı için bkz. RobertaTokenizer. Girdilerimiz cümle çiftleri olduğundan, her iki cümleyi de aynı anda simgeleştirmemiz gerekiyor. Çoğu BERT modeli, girdinin sabit bir belirteçleştirilmiş girdi uzunluğuna sahip olmasını gerektirdiğinden, aşağıdaki parametreleri ayarladık: max_len=128
ve truncation=True
. Aşağıdaki koda bakın:
BERT modelimize ince ayar yapmak için son ön işleme adımı, simgeleştirilmiş tren ve doğrulama veri kümelerini PyTorch tensörlerine dönüştürmek ve bunları S3 grubumuza yüklemektir:
Modelde ince ayar yapın
Artık veri hazırlığımız bittiğine göre, önceden eğitilmiş programımıza ince ayar yapmaya hazırız. roberta-base
açıklama tanımlama görevinde model. İnce ayar sürecini iki adımda başlatmak için SageMaker Hugging Face Estimator sınıfını kullanabiliriz. İlk adım, eğitim hiperparametrelerini ve metrik tanımlarını belirtmektir. Metrik tanımları değişkeni, Hugging Face Estimator'a modelin eğitim günlüklerinden ne tür metriklerin çıkarılacağını söyler. Burada öncelikle her eğitim döneminde doğrulama seti metriklerini çıkarmakla ilgileniyoruz.
İkinci adım, Hugging Face Estimator'ı başlatmak ve ince ayar sürecini başlatmaktır. .fit()
yöntem:
İnce ayar işlemi, belirtilen hiperparametreler kullanılarak yaklaşık 30 dakika sürer.
Modeli dağıtın ve çıkarım gerçekleştirin
SageMaker, kullanım durumunuza bağlı olarak birden çok dağıtım seçeneği sunar. Her seferinde bir tahmin yapan kalıcı, gerçek zamanlı uç noktalar için kullanmanızı öneririz. SageMaker gerçek zamanlı barındırma hizmetleri. Trafik sıçramaları arasında boşta kalma dönemleri olan ve soğuk başlatmaları tolere edebilen iş yükleriniz varsa, kullanmanızı öneririz. Sunucusuz Çıkarım. Sunucusuz uç noktalar, bilgi işlem kaynaklarını otomatik olarak başlatır ve trafiğe bağlı olarak bunları ölçeklendirerek örnek türlerini seçme veya ölçeklendirme politikalarını yönetme ihtiyacını ortadan kaldırır. İnce ayarlı Hugging Face modelimizi hem gerçek zamanlı bir çıkarım uç noktasına hem de bir Sunucusuz Çıkarım uç noktasına nasıl dağıtacağımızı gösteriyoruz.
Gerçek zamanlı bir çıkarım uç noktasına dağıtın
SageMaker içindeki gerçek zamanlı çıkarım barındırma hizmetine bir eğitim nesnesi yerleştirebilirsiniz. .deploy()
yöntem. Kabul edilen parametrelerin tam listesi için bkz. Sarılma Yüz Modeli. Başlamak için, aşağıdaki parametreleri girerek modeli bir örneğe dağıtalım: initial_instance_count
, instance_type
, ve endpoint_name
. Aşağıdaki koda bakın:
Modelin dağıtılması birkaç dakika sürer. Model konuşlandırıldıktan sonra, çıkarım için görünmeyen test veri kümesinden örnek kayıtları uç noktaya gönderebiliriz.
Sunucusuz Çıkarım uç noktasına dağıtma
Eğitim nesnemizi sunucusuz bir uç noktaya konuşlandırmak için önce sunucusuz bir yapılandırma dosyası belirtmemiz gerekir. memory_size_in_mb
ve max_concurrency
argümanlar:
memory_size_in_mb
sunucusuz uç noktanızın toplam RAM boyutunu tanımlar; minimum RAM boyutu 1024 MB'dir (1 GB) ve 6144 MB'ye (6 GB) kadar ölçeklenebilir. Genel olarak, en az model boyutunuz kadar büyük bir bellek boyutu seçmeyi hedeflemelisiniz. max_concurrency
tek bir uç nokta için aynı anda kaç eşzamanlı çağrının işlenebileceği kotasını tanımlar (en fazla 50 eşzamanlı çağrı).
Ayrıca, aşağıdaki kodu kullanarak alabileceğiniz Hugging Face çıkarım görüntü URI'sini sağlamamız gerekir:
Artık sunucusuz yapılandırma dosyasına sahip olduğumuza göre, gerçek zamanlı çıkarım uç noktamızla aynı şekilde sunucusuz bir uç nokta oluşturabiliriz. .deploy()
yöntem:
Bitiş noktası birkaç dakika içinde oluşturulmalıdır.
Model çıkarımı gerçekleştir
Tahmin yapmak için, cümle çiftini ekleyerek oluşturmamız gerekir. [CLS]
ve [SEP]
özel belirteçler ve ardından girişi model uç noktalarına gönderin. Gerçek zamanlı çıkarım ve sunucusuz çıkarım için sözdizimi aynıdır:
Aşağıdaki örneklerde, modelin giriş cümlesi çiftinin başka sözcüklerle ifade edilmiş cümleler içerip içermediğini doğru bir şekilde sınıflandırabildiğini görebiliriz.
Aşağıda gerçek zamanlı bir çıkarım örneği verilmiştir.
Aşağıda bir Sunucusuz Çıkarım örneği verilmiştir.
Model performansını değerlendirin
Modeli değerlendirmek için önceki kodu genişletelim ve 8,000 görünmeyen test kaydının tümünü gerçek zamanlı bitiş noktasına gönderelim:
Ardından, çıkarılan tahminleri kullanarak bir sınıflandırma raporu oluşturabiliriz:
Aşağıdaki test puanlarını alıyoruz.
bunu gözlemleyebiliriz roberta-base
%1'lik birleşik makro ortalama F92 puanına sahiptir ve başka kelimelerle ifade edilen cümleleri algılamada biraz daha iyi performans gösterir. bu roberta-base
model iyi performans gösteriyor, ancak model performansını en az bir başka model kullanarak hesaplamak iyi bir uygulamadır.
Aşağıdaki tablo karşılaştırır roberta-base
adı verilen başka bir ince ayarlı transformatöre karşı aynı test setinde performans sonuçları paraphrase-mpnet-base-v2
, özellikle açıklama tanımlama görevi için önceden eğitilmiş bir cümle dönüştürücü. Her iki model de bir ml.p3.8xlarge örneği üzerinde eğitildi.
Sonuçlar gösteriyor ki roberta-base
SageMaker'da gerçek zamanlı çıkarım barındırma kullanarak çok benzer eğitim ve çıkarım süreleriyle %1 daha yüksek F1 puanına sahiptir. Bununla birlikte, modeller arasındaki performans farkı nispeten küçüktür. roberta-base
marjinal olarak daha iyi performans ölçümlerine ve neredeyse aynı eğitim ve çıkarım sürelerine sahip olduğu için sonuçta kazanandır.
Hassas | Geri çağırmak | F1-skor | Eğitim süresi (faturalandırılabilir) | Çıkarım süresi (tam test seti) | |
roberta tabanı | 0.92 | 0.93 | 0.92 | 18 dakikadır. | 2 dakikadır. |
açıklama-mpnet- temel-v2 |
0.92 | 0.91 | 0.91 | 17 dakikadır. | 2 dakikadır. |
Temizlemek
Model uç noktalarını kullanmayı bitirdiğinizde, ileride ücret alınmasını önlemek için bunları silebilirsiniz:
Sonuç
Bu gönderide, SageMaker'da Hugging Face dönüştürücüleri kullanarak bir başka ifadeyle tanımlama modelinin nasıl hızlı bir şekilde oluşturulacağını tartıştık. Önceden eğitilmiş iki transformatöre ince ayar yaptık, roberta-base
ve paraphrase-mpnet-base-v2
, PAWS veri kümesini kullanarak (yüksek sözcüksel örtüşmeye sahip cümle çiftlerini içerir). Sunucusuz Çıkarım dağıtımına karşı gerçek zamanlı çıkarımın avantajlarını gösterdik ve tartıştık; ikincisi ani iş yüklerini hedefleyen ve ölçeklendirme ilkelerini yönetme ihtiyacını ortadan kaldıran yeni bir özelliktir. 8,000 kayıt içeren görünmeyen bir test setinde, her iki modelin de %1'ın üzerinde bir F90 puanı elde ettiğini gösterdik.
Bu çözümü genişletmek için aşağıdakileri göz önünde bulundurun:
- Kendi özel veri kümenizle ince ayar yapmayı deneyin. Yeterli eğitim etiketiniz yoksa, özel bir test veri kümesinde bu gönderide gösterildiği gibi ince ayarlı bir modelin performansını değerlendirebilirsiniz.
- Bu ince ayarlı modeli, iki cümlenin (veya metin bloğunun) birbirinin açılımı olup olmadığı hakkında bilgi gerektiren bir aşağı akış uygulamasına entegre edin.
Mutlu bina!
Yazarlar Hakkında
Bala Krishnamoorthy AWS Profesyonel Hizmetlerinde çalışan bir Veri Bilimcisidir ve müşterilerin iş sorunlarını çözmek için makine öğrenimini uygulamaktan keyif alır. Doğal dil işleme kullanım durumlarında uzmandır ve yazılım, finans ve sağlık hizmetleri gibi sektörlerdeki müşterilerle çalışmıştır. Boş zamanlarında yeni yiyecekler denemekten, komedi ve belgesel izlemekten, Orange Theory'de çalışmaktan ve suda olmaktan (kürek sörfü, şnorkelli yüzme ve umarım yakında dalış) hoşlanır.
İvan Cui AWS Professional Services ile müşterilerin AWS'de makine öğrenimini kullanarak çözümler oluşturmasına ve dağıtmasına yardımcı olan bir Veri Bilimcisidir. Yazılım, finans, ilaç ve sağlık dahil olmak üzere çeşitli sektörlerdeki müşterilerle çalıştı. Boş zamanlarında okumaktan, ailesiyle vakit geçirmekten ve hisse senedi portföyünü en üst düzeye çıkarmaktan hoşlanıyor.
- Akıllı para. Avrupa'nın En İyi Bitcoin ve Kripto Borsası.
- Plato blok zinciri. Web3 Metaverse Zekası. Bilgi Güçlendirildi. SERBEST ERİŞİM.
- KriptoHawk. Altcoin Radarı. Ücretsiz deneme.
- Kaynak: https://aws.amazon.com/blogs/machine-learning/identify-paraphrased-text-with-hugging-face-on-amazon-sagemaker/
- '
- "
- 000
- 10
- 100
- 2019
- 2022
- 84
- Hakkımızda
- erişim
- Hesap
- elde
- karşısında
- Türkiye
- zaten
- Amazon
- açıkladı
- Başka
- Uygulama
- Uygulanması
- yaklaşık olarak
- argümanlar
- mevcut
- AWS
- olmak
- faydaları
- vücut
- sınır
- inşa etmek
- iş
- çağrı
- yetenekli
- arabalar
- durumlarda
- yükler
- Klinik
- Şehir
- sınıf
- sınıflandırma
- kod
- Sütun
- kombine
- topluluk
- tamamen
- hesaplamak
- güven
- Konteynerler
- içeren
- olabilir
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- görenek
- müşteri
- Müşteriler
- veri
- veri bilimcisi
- göstermek
- gösterdi
- bağlı
- dağıtmak
- konuşlandırılmış
- açılma
- ayrıntılar
- Bulma
- gelişme
- farklı
- dağıtım
- belgeseller
- evraklar
- indirme
- sürücü
- verimli
- Son nokta
- İngilizce
- çevre
- kurmak
- değerlendirmek
- örnek
- sergi
- Genişletmek
- Yüz
- aile
- Özellikler(Hazırlık aşamasında)
- maliye
- Ad
- uçuş
- odak
- takip et
- takip etme
- Gıda
- Ücretsiz
- tam
- işlev
- işlevsellik
- gelecek
- genel amaçlı
- genellikle
- oluşturmak
- GitHub
- Tercih Etmenizin
- büyük
- sağlık
- yükseklik
- yardımcı olur
- okuyun
- Yüksek
- daha yüksek
- hosting
- Ne kadar
- Nasıl Yapılır
- HTTPS
- Kimlik
- belirlemek
- belirlenmesi
- Kimlik
- görüntü
- dahil
- Dahil olmak üzere
- Endüstri
- bilgi
- giriş
- kurmak
- ilgili
- konu
- IT
- Mesleki Öğretiler
- Etiketler
- dil
- büyük
- başlatmak
- öğrenme
- Kütüphane
- Liste
- yük
- makine
- makine öğrenme
- YAPAR
- yönetmek
- Bellek
- Metrikleri
- ML
- model
- modelleri
- Daha
- çoğu
- çoklu
- Doğal (Madenden)
- negatif
- New York
- new york city
- defter
- Teklifler
- optimize
- Opsiyonlar
- sipariş
- Diğer
- kendi
- kâğıt
- Paris
- İş Ortaklığı
- Geçen
- Yamalar
- performans
- dönemleri
- İlaç
- Nokta
- politikaları
- portföy
- pozitif
- uygulama
- tahmin
- Tahminler
- sorunlar
- süreç
- işleme
- profesyonel
- sağlamak
- soru
- nisapları
- RAM
- tüm
- Okuma
- gerçek zaman
- tavsiye etmek
- kayıtlar
- serbest
- rapor
- Depo
- gerektirir
- kaynak
- Kaynaklar
- Sonuçlar
- dönüş
- koşmak
- koşu
- ölçek
- ölçekleme
- bilim adamı
- güvenlik
- seçilmiş
- Serverless
- Hizmetler
- set
- ayar
- benzer
- Basit
- beden
- küçük
- Yazılım
- katı
- çözüm
- Çözümler
- ÇÖZMEK
- özel
- uzmanlaşmış
- özellikle
- Harcama
- Dönme
- bölmek
- başlama
- başladı
- başlar
- Stok
- hafızası
- mağaza
- Daha sonra
- arz
- İsveç
- sistem
- Hedef
- görevleri
- teknikleri
- anlatır
- test
- İçinden
- zaman
- dizgeciklere
- simgeleþtirilmiþ
- Jeton
- üst
- meşale
- trafik
- Eğitim
- Çeviri
- us
- kullanım
- onaylama
- değer
- çeşitlilik
- Görüntüle
- Su
- Ne
- olup olmadığını
- Vikipedi
- içinde
- olmadan
- sözler
- işlenmiş
- çalışma
- egzersiz yapmak