Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Dostosuj modele językowe transformatora do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker

Obecnie w użyciu jest około 7,000 języków. Pomimo podejmowanych pod koniec XIX wieku prób wynalezienia języków sztucznych, takich jak Volapük czy Esperanto, nie widać oznak unifikacji. Ludzie wciąż wybierają tworzenie nowych języków (pomyśl o swojej ulubionej postaci filmowej, która mówi po klingońskim, dothrackim lub elfickim).

Obecnie przykłady przetwarzania języka naturalnego (NLP) są zdominowane przez język angielski, język ojczysty tylko dla 5% populacji ludzkiej i używany tylko przez 17%.

Połączenia przepaść cyfrowa definiuje się jako przepaść między tymi, którzy mają dostęp do technologii cyfrowych, a tymi, którzy nie mogą. Brak dostępu do wiedzy czy edukacji ze względu na bariery językowe również przyczynia się do powstania przepaści cyfrowej, nie tylko między osobami nie mówiącymi po angielsku, ale także między osobami anglojęzycznymi, które nie mają dostępu do treści nieanglojęzycznych, co zmniejsza różnorodność myśli i wiedzy. Jest tyle do nauczenia się wzajemnie.

W tym poście podsumowujemy wyzwania związane z językami o niskich zasobach i eksperymentujemy z różnymi podejściami do rozwiązań obejmujących ponad 100 języków przy użyciu transformatorów Hugging Face w Amazon SageMaker.

Dostrajamy różne wstępnie wytrenowane modele językowe oparte na transformatorach pod kątem zadania pytań i odpowiedzi. W naszym przykładzie używamy tureckiego, ale możesz zastosować to podejście do innego obsługiwanego języka. Skupiamy się na wariantach BERT [1], ponieważ wspaniałą cechą BERT jest jego ujednolicona architektura obejmująca różne zadania.

Pokazujemy kilka korzyści z używania transformatorów Hugging Face na Amazon Sage Maker, takich jak szkolenia i eksperymenty na dużą skalę oraz zwiększona produktywność i efektywność kosztowa.

Przegląd NLP

Od 2017 r. nastąpiło kilka poważnych zmian w NLP. Pojawienie się architektur głębokiego uczenia, takich jak transformatory [2], nienadzorowane techniki uczenia służące do uczenia takich modeli na bardzo dużych zbiorach danych oraz uczenie transferowe znacznie poprawiły stan sztuka w rozumieniu języka naturalnego. Pojawienie się wstępnie przeszkolonych centrów modelowania jeszcze bardziej zdemokratyzowało dostęp do zbiorowej wiedzy społeczności NLP, eliminując potrzebę zaczynania od zera.

Model języka to model NLP, który uczy się przewidywać następne słowo (lub dowolne słowo zamaskowane) w sekwencji. Prawdziwe piękno modeli językowych jako punkt wyjścia jest trojakie: Po pierwsze, badania wykazały, że modele językowe wytrenowane na danych z dużego korpusu tekstowego uczą się bardziej złożonych znaczeń słów niż poprzednie metody. Na przykład, aby móc przewidzieć następne słowo w zdaniu, model języka musi dobrze rozumieć kontekst, semantykę, a także gramatykę. Po drugie, aby trenować model języka, dane oznaczone etykietą — które są rzadkie i kosztowne — nie są wymagane podczas wstępnego uczenia. Jest to ważne, ponieważ ogromna ilość nieoznakowanych danych tekstowych jest publicznie dostępna w Internecie w wielu językach. Po trzecie, wykazano, że gdy model językowy jest wystarczająco inteligentny, aby przewidzieć następne słowo w danym zdaniu, stosunkowo łatwo jest wykonać inne zadania NLP, takie jak analiza sentymentu lub odpowiadanie na pytania z bardzo małą ilością oznaczonych danych, ponieważ dostrajanie ponownego wykorzystania reprezentacje z wytrenowanego modelu językowego [3].

W pełni zarządzane usługi NLP również przyspieszyły przyjęcie NLP. Amazon Comprehend to w pełni zarządzana usługa, która umożliwia analitykom tekstu wyodrębnienie spostrzeżeń z treści dokumentów i obsługuje różne języki. Amazon Comprehend obsługuje niestandardową klasyfikację i niestandardowe rozpoznawanie jednostek oraz umożliwia tworzenie niestandardowych modeli NLP, które są specyficzne dla Twoich wymagań, bez konieczności posiadania specjalistycznej wiedzy z zakresu ML.

Wyzwania i rozwiązania dla języków niskozasobowych

Głównym wyzwaniem dla dużej liczby języków jest to, że mają one stosunkowo mniej danych do szkolenia. Są to tak zwane języki niskozasobowe. Artykuły m-BERT [4] i XLM-R [7] odnoszą się do języków urdu i suahili jako do języków niskozasobowych.

Poniższy rysunek przedstawia kody ISO ponad 80 języków oraz różnicę w rozmiarze (w skali logarytmicznej) między dwoma głównymi szkoleniami wstępnymi [7]. W Wikipedii (kolor pomarańczowy) jest tylko 18 języków z ponad 1 milionem artykułów i 52 języki z ponad 1,000 artykułów, ale 164 języki z zaledwie 1–10,000 9 artykułów [XNUMX]. Korpus CommonCrawl (niebieski) zwiększa ilość danych dla języków o niskich zasobach o dwa rzędy wielkości. Niemniej jednak są one nadal stosunkowo niewielkie w porównaniu z językami o wysokich zasobach, takimi jak angielski, rosyjski czy niemiecki.

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Pod względem liczby artykułów w Wikipedii, turecki jest kolejnym językiem w tej samej grupie ponad 100,000 28 artykułów (54.) wraz z urdu (XNUMX.). W porównaniu z urdu turecki byłby uważany za język średniej klasy. Turecki ma kilka interesujących cech, które mogą wzmocnić modele językowe, stwarzając pewne wyzwania w lingwistyce i tokenizacji. To język aglutynacyjny. Ma bardzo dowolną kolejność słów, złożoną morfologię lub czasy bez angielskich odpowiedników. Zwroty składające się z kilku słów w językach takich jak angielski można wyrazić za pomocą pojedynczej formy słowa, jak pokazano w poniższym przykładzie.

turecki Angielski
kot Kot
kotler Kots
kotgiller Rodzina koty
Kotowatedzień Należące do rodzina kotów
kotleştirebileceklerimizdenmişçesineyken Kiedy wydaje się, że jest to jeden z tych, których możemy zrobić jak

Dwa główne podejścia do rozwiązania to modele specyficzne dla języka lub modele wielojęzyczne (z lub bez nadzoru międzyjęzykowego):

  • Jednojęzyczne modele językowe – Pierwszym podejściem jest zastosowanie wariantu BERT do określonego języka docelowego. Im więcej danych uczących, tym lepsza wydajność modelu.
  • Wielojęzyczne modele języków zamaskowanych – Innym podejściem jest wstępne uczenie dużych modeli transformatorów w wielu językach. Modelowanie języka wielojęzycznego ma na celu rozwiązanie problemu braku danych dla języków o niskich zasobach poprzez wstępne szkolenie z dużej liczby języków, tak aby zadania NLP nauczone z jednego języka można było przenieść do innych języków. Wielojęzyczne modele języków zamaskowanych (MLM) przyspieszyły postęp w zadaniach związanych z rozumieniem międzyjęzykowym. Oto dwa przykłady:
    • Wielojęzyczny BERT – Wielojęzyczny model BERT został przeszkolony w 104 różnych językach przy użyciu korpusu Wikipedii. Wykazano jednak, że dobrze uogólnia tylko podobne struktury językowe i cechy typologiczne (na przykład języki o podobnej kolejności wyrazów). Jego wielojęzyczność jest zmniejszona, zwłaszcza w przypadku języków o różnych szykach wyrazów (na przykład podmiot/przedmiot/czasownik) [4].
    • XLM-R – Modele języków międzyjęzykowych (XLM) są szkolone z celem międzyjęzykowym przy użyciu równoległych zbiorów danych (ten sam tekst w dwóch różnych językach) lub bez celu międzyjęzykowego przy użyciu jednojęzycznych zbiorów danych [6]. Badania pokazują, że języki o niskich zasobach korzystają ze skalowania do większej liczby języków. XLM-RoBERTa to model transformatorowy inspirowany RoBERTą [5], a jego punktem wyjścia jest propozycja, że ​​wielojęzyczne BERT i XLM są niedostrojone. Jest wyszkolony w 100 językach przy użyciu korpusu Wikipedii i CommonCrawl, więc ilość danych szkoleniowych dla języków o niskich zasobach jest około dwa rzędy wielkości większa w porównaniu z m-BERT [7].

Innym wyzwaniem związanym z wielojęzycznymi modelami językowymi dla języków o niskich zasobach jest rozmiar słownictwa i tokenizacja. Ponieważ wszystkie języki używają tego samego wspólnego słownictwa w wielojęzycznych modelach językowych, istnieje kompromis między zwiększeniem rozmiaru słownictwa (co zwiększa wymagania obliczeniowe) a jego zmniejszeniem (słowa nieobecne w słowniku zostaną oznaczone jako nieznane lub przy użyciu znaków zamiast słów, ponieważ tokeny zignorowałyby każdą strukturę). Algorytm tokenizacji kawałków słów łączy zalety obu podejść. Na przykład skutecznie radzi sobie ze słowami spoza słownika, dzieląc słowo na podsłowa, dopóki nie pojawi się w słowniku lub dopóki nie zostanie osiągnięty indywidualny znak. Tokenizacja oparta na znakach nie jest zbyt użyteczna, z wyjątkiem niektórych języków, takich jak chiński. Istnieją techniki rozwiązywania problemów dla języków o niskich zasobach, takie jak próbkowanie z pewnymi dystrybucjami [6].

Poniższa tabela przedstawia zachowanie trzech różnych tokenizatorów dla słowa „kedileri” (co oznacza „jego koty”). W przypadku niektórych języków i zadań NLP miałoby to znaczenie. Na przykład dla zadania odpowiadania na pytanie model zwraca zakres indeksu znacznika początkowego i indeksu znacznika końcowego; zwracanie „kediler” („koty”) lub „kedileri” („jego koty”) straciłoby pewien kontekst i doprowadziłoby do różnych wyników oceny dla niektórych wskaźników.

Wstępnie przeszkolony model Rozmiar słownictwa Tokenizacja dla „Kedileri”*
dbmdz/bert-base-turkish-uncased 32,000 Żetony [CLS] koty ##I [WRZ]
Identyfikatory wejściowe 2 23714 1023 3
bert-base-wielojęzyczny-bezokładkowy 105,879 Żetony [CLS] KED ##iler ##I [WRZ]
Identyfikatory wejściowe 101 30210 33719 10116 102
deepset/xlm-roberta-base-squad2 250,002 Żetony Ke di s
Identyfikatory wejściowe 0 1345 428 1341 .
*W języku angielskim: (jego) koty

W związku z tym, chociaż języki o niskich zasobach korzystają z wielojęzycznych modeli językowych, wykonywanie tokenizacji we wspólnym słowniku może ignorować niektóre funkcje językowe dla niektórych języków.

W następnej sekcji porównujemy trzy podejścia, dostosowując je do zadania odpowiadania na pytanie przy użyciu zestawu danych QA dla języka tureckiego: BERTurk [8], wielojęzyczny BERT [4] i XLM-R [7].

Omówienie rozwiązania

Nasz przepływ pracy wygląda następująco:

  1. Przygotuj zbiór danych w Studio Amazon SageMaker środowiska notebooka i prześlij go do Usługa Amazon Simple Storage (Amazonka S3).
  2. Uruchom równoległe zadania szkoleniowe w kontenerach głębokiego uczenia SageMaker, udostępniając skrypt dostrajający.
  3. Zbierz metadane z każdego eksperymentu.
  4. Porównaj wyniki i zidentyfikuj najbardziej odpowiedni model.

Poniższy schemat ilustruje architekturę rozwiązania.

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Aby uzyskać więcej informacji na temat notebooków Studio, zobacz Zanurz się głęboko w architekturę notebooków Amazon SageMaker Studio. Aby uzyskać więcej informacji na temat integracji Hugging Face z SageMaker, zobacz AWS i Hugging Face współpracują, aby uprościć i przyspieszyć wdrażanie modeli przetwarzania języka naturalnego.

Przygotuj zbiór danych

Biblioteka Hugging Face Datasets zapewnia zaawansowane metody przetwarzania danych, aby szybko przygotować zestaw danych do trenowania w modelu uczenia głębokiego. Poniższy kod ładuje turecki zestaw danych kontroli jakości i bada zawartość:

data_files = {}
data_files["train"] = 'data/train.json'
data_files["validation"] = 'data/val.json' ds = load_dataset("json", data_files=data_files) print("Number of features in dataset: n Train = {}, n Validation = {}".format(len(ds['train']), len(ds['validation'])))

Istnieje około 9,000 próbek.

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wejściowy zestaw danych jest nieznacznie przekształcany w format oczekiwany przez wstępnie wytrenowane modele i zawiera następujące kolumny:

df = pd.DataFrame(ds['train'])
df.sample(1)

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
Angielskie tłumaczenie danych wyjściowych jest następujące:

  • kontekst – Resit Emre Kongar (ur. 13 października 1941, Stambuł), turecki socjolog, prof.
  • pytanie – Jaki jest tytuł naukowy Emre Kongara?
  • odpowiedź – Profesor

Skrypt dostrajający

Biblioteka Hugging Face Transformers zawiera przykładowy kod do dostrojenia modelu zadania odpowiadania na pytanie, zwanego run_qa.py. Poniższy kod inicjuje trenera:

 # Initialize our Trainer trainer = QuestionAnsweringTrainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, eval_examples=eval_examples, tokenizer=tokenizer, data_collator=data_collator, post_process_function=post_processing_function, compute_metrics=compute_metrics, )

Przyjrzyjmy się budulcom na wysokim poziomie.

Tokenizator

Skrypt ładuje tokenizer za pomocą AutoTokenizer klasa. Plik AutoTokenizer klasa dba o zwrócenie poprawnego tokenizera odpowiadającego modelowi:

tokenizer = AutoTokenizer.from_pretrained( model_args.model_name_or_path, cache_dir=model_args.cache_dir, use_fast=True, revision=model_args.model_revision, use_auth_token=None, )

Poniżej znajduje się przykład działania tokenizera:

from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("deepset/xlm-roberta-base-squad2") input_ids = tokenizer.encode('İstanbulun en popüler hayvanı hangisidir? Kedileri', return_tensors="pt")
tokens = tokenizer('İstanbulun en popüler hayvanı hangisidir? Kedileri').tokens()

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Model

Skrypt ładuje model. AutoModel zajęcia (na przykład AutoModelForQuestionAnswering) bezpośrednio utwórz klasę z wagami, konfiguracją i słownictwem odpowiedniej architektury, podając nazwę i ścieżkę do wstępnie wytrenowanego modelu. Dzięki abstrakcji Hugging Face możesz łatwo przełączyć się na inny model za pomocą tego samego kodu, po prostu podając nazwę modelu. Zobacz następujący przykładowy kod:

 model = AutoModelForQuestionAnswering.from_pretrained( model_args.model_name_or_path, config=config, cache_dir=model_args.cache_dir, revision=model_args.model_revision, )

Wstępne przetwarzanie i szkolenie

Połączenia prepare_train_features() i prepare_validation_features() metody wstępnie przetwarzają odpowiednio zestaw danych uczących i zestawy danych walidacyjnych. Kod iteruje po wejściowym zestawie danych i tworzy sekwencję na podstawie kontekstu i bieżącego pytania, z poprawnymi identyfikatorami typu tokenu specyficznego dla modelu (liczbowymi reprezentacjami tokenów) i maskami uwagi. Sekwencja jest następnie przekazywana przez model. Daje to zakres wyników, zarówno dla pozycji początkowej, jak i końcowej, jak pokazano w poniższej tabeli.

Pola wejściowego zbioru danych Wstępnie przetworzone pola zestawu danych szkoleniowych dla QuestionAnsweringTrainer
id identyfikatory_wejściowe
tytuł uwaga_maska
kontekst pozycje_startowe
pytanie pozycje końcowe
Odpowiedzi { answer_start, answer_text } .

Ocena

Połączenia compute_metrics() metoda zajmuje się obliczaniem metryk. Do zadań odpowiadających na pytania używamy następujących popularnych wskaźników:

  • Dokładne dopasowanie – Mierzy procent przewidywań, które dokładnie pasują do jednej z podstawowych odpowiedzi.
  • Wynik F1 – Mierzy średnie nakładanie się między prognozą a odpowiedzią dotyczącą prawdy podstawowej. Wynik F1 to średnia harmoniczna precyzji i przypomnienia:
    • Detaliczność – Stosunek liczby współdzielonych słów do całkowitej liczby słów w predykcji.
    • Odwołanie – Stosunek liczby współdzielonych słów do całkowitej liczby słów w podstawowej prawdzie.

Zarządzane szkolenia na SageMaker

Konfigurowanie niestandardowych środowisk uczenia maszynowego (ML) i zarządzanie nimi może być czasochłonne i kłopotliwe. Z Kontener głębokiego uczenia AWS (DLC) dla bibliotek Hugging Face Transformers, mamy dostęp do wstępnie przygotowanych i zoptymalizowanych struktur głębokiego uczenia, co ułatwia uruchamianie naszego skryptu w wielu zadaniach szkoleniowych przy minimalnym dodatkowym kodzie.

Musimy tylko użyć Przytulanie estymatora twarzy dostępne w SageMaker Python SDK z następującymi danymi wejściowymi:

# Trial configuration
config['model'] = 'deepset/xlm-roberta-base-squad2'
config['instance_type'] = 'ml.p3.16xlarge'
config['instance_count'] = 2 # Define the distribution parameters in the HuggingFace Estimator config['distribution'] = {'smdistributed':{'dataparallel':{ 'enabled': True }}}
trial_configs.append(config) # We can specify a training script that is stored in a GitHub repository as the entry point for our Estimator, # so we don’t have to download the scripts locally.
git_config = {'repo': 'https://github.com/huggingface/transformers.git'} hyperparameters_qa={ 'model_name_or_path': config['model'], 'train_file': '/opt/ml/input/data/train/train.json', 'validation_file': '/opt/ml/input/data/val/val.json', 'do_train': True, 'do_eval': True, 'fp16': True, 'per_device_train_batch_size': 16, 'per_device_eval_batch_size': 16, 'num_train_epochs': 2, 'max_seq_length': 384, 'pad_to_max_length': True, 'doc_stride': 128, 'output_dir': '/opt/ml/model' } huggingface_estimator = HuggingFace(entry_point='run_qa.py', source_dir='./examples/pytorch/question-answering', git_config=git_config, instance_type=config['instance_type'], instance_count=config['instance_count'], role=role, transformers_version='4.12.3', pytorch_version='1.9.1', py_version='py38', distribution=config['distribution'], hyperparameters=hyperparameters_qa, metric_definitions=metric_definitions, enable_sagemaker_metrics=True,) nlp_training_job_name = f"NLPjob-{model}-{instance}-{int(time.time())}" training_input_path = f's3://{sagemaker_session_bucket}/{s3_prefix_qa}/' test_input_path = f's3://{sagemaker_session_bucket}/{s3_prefix_qa}/' huggingface_estimator.fit( inputs={'train': training_input_path, 'val': test_input_path}, job_name=nlp_training_job_name, experiment_config={ "ExperimentName": nlp_experiment.experiment_name, "TrialName": nlp_trial.trial_name, "TrialComponentDisplayName": nlp_trial.trial_name,}, wait=False, )

Oceń wyniki

Po zakończeniu prac dostrajających dla zadania odpowiadania na pytania w języku tureckim porównujemy wydajność modelu trzech podejść:

  • Jednojęzyczny model języka – Wstępnie wytrenowany model dostrojony do tureckiego tekstu odpowiedzi na pytanie nazywa się bert-base-turecki-bezokładkowy [8]. Osiąga wynik F1 75.63 i dokładny wynik dopasowania 56.17 tylko w dwóch epokach i przy 9,000 XNUMX oznaczonych elementach. Jednak to podejście nie jest odpowiednie dla języka o niskich zasobach, gdy nie istnieje wstępnie wytrenowany model języka lub jest mało dostępnych danych do szkolenia od podstaw.
  • Wielojęzyczny model językowy z wielojęzycznym BERT – Wstępnie wytrenowany model nazywa się bert-base-wielojęzyczny-bezokładkowy. Wielojęzyczny artykuł BERT [4] pokazał, że dobrze uogólnia się w różnych językach. W porównaniu z modelem jednojęzycznym działa gorzej (wynik F1 71.73, dopasowanie dokładne 50:45), ale należy pamiętać, że ten model obsługuje ponad 100 innych języków, pozostawiając mniej miejsca na reprezentację języka tureckiego.
  • Wielojęzyczny model językowy z XLM-R – Wstępnie wytrenowany model nazywa się xlm-roberta-base-squad2. Artykuł XLM-R pokazuje, że możliwe jest posiadanie jednego dużego modelu dla ponad 100 języków bez poświęcania wydajności na język [7]. W przypadku zadania odpowiadania na pytania w języku tureckim wyniki przewyższają wyniki wielojęzycznego BERT i jednojęzycznego BERT F1 odpowiednio o 5% i 2% (wynik F1 77.14, dopasowanie dokładne 56.39).

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Nasze porównanie nie uwzględnia innych różnic między modelami, takich jak pojemność modelu, używane zestawy danych treningowych, wstępnie wytrenowane zadania NLP, rozmiar słownictwa lub tokenizacja.

Dodatkowe eksperymenty

Dostarczony notatnik zawiera dodatkowe przykłady eksperymentów.

SageMaker zapewnia szeroką gamę typów instancji szkoleniowych. Dopracowaliśmy model XLM-R na p3.2xlarge (GPU: Nvidia V100 GPU, architektura GPU: Volta (2017)), p3.16xlarge (GPU: 8 Nvidia V100 GPU) i g4dn.xlarge (GPU: Nvidia T4 GPU, architektura GPU: Turing (2018)) i zaobserwowali:

  • Czas trwania szkolenia – Według naszego eksperymentu trenowanie modelu XLM-R na p24xlarge trwało około 3.2 minut, a na g30dn.xlarge 4 minut (o około 23% dłużej). Przeprowadziliśmy również rozproszone dostrajanie na dwóch instancjach p3.16xlarge, a czas trenowania skrócił się do 10 minut. Aby uzyskać więcej informacji na temat rozproszonego uczenia modelu opartego na transformatorach w programie SageMaker, zobacz Rozproszone dostrajanie dużego modelu BERT do zadania polegającego na odpowiadaniu na pytania za pomocą Hugging Face Transformers w Amazon SageMaker.
  • Koszty szkolenia – Wykorzystaliśmy API AWS Pricing do pobrania cen SageMaker na żądanie, aby obliczyć je w locie. Według naszego eksperymentu szkolenie kosztowało około 1.58 USD na p3.2xlarge i około cztery razy mniej na g4dn.xlarge (0.37 USD). Szkolenie rozproszone na dwóch instancjach p3.16xlarge przy użyciu 16 procesorów graficznych kosztuje 9.68 USD.

Podsumowując, chociaż g4dn.xlarge był najtańszą maszyną, trenowanie trwało około trzy razy dłużej niż najpotężniejszego typu instancji, z którym eksperymentowaliśmy (dwa p3.16xlarge). W zależności od priorytetów projektu możesz wybierać spośród szerokiej gamy typów instancji szkoleniowych SageMaker.

Wnioski

W tym poście przyjrzeliśmy się dostrajaniu wstępnie wytrenowanych modeli językowych opartych na transformatorach dla zadania odpowiedzi na pytania dla języka zasobów średnich (w tym przypadku tureckiego). Możesz zastosować to podejście do ponad 100 innych języków przy użyciu jednego modelu. W chwili pisania tego tekstu skalowanie modelu, aby objąć wszystkie 7,000 języków świata, jest nadal zaporowe, ale dziedzina NLP daje możliwość poszerzenia naszych horyzontów.

Język jest podstawową metodą komunikacji międzyludzkiej, sposobem przekazywania wartości i dzielenia się pięknem dziedzictwa kulturowego. Różnorodność językowa wzmacnia dialog międzykulturowy i buduje społeczeństwa integracyjne.

ML to wysoce iteracyjny proces; w ramach jednego projektu naukowcy zajmujący się danymi szkolą setki różnych modeli, zestawów danych i parametrów w poszukiwaniu maksymalnej dokładności. SageMaker oferuje najbardziej kompletny zestaw narzędzi do wykorzystania mocy ML i głębokiego uczenia. Pozwala organizować, śledzić, porównywać i oceniać eksperymenty ML na dużą skalę.

Aplikacja Hugging Face jest zintegrowana z programem SageMaker, aby pomóc naukowcom zajmującym się danymi w szybszym i łatwiejszym opracowywaniu, trenowaniu i dostrajaniu najnowocześniejszych modeli NLP. Zademonstrowaliśmy kilka korzyści płynących z używania transformatorów Hugging Face w Amazon SageMaker, takich jak szkolenia i eksperymenty na dużą skalę oraz zwiększona produktywność i efektywność kosztowa.

Możesz eksperymentować z zadaniami NLP w preferowanym języku w SageMaker we wszystkich regionach AWS, w których SageMaker jest dostępny. Przykładowy kod notebooka jest dostępny w GitHub.

Aby dowiedzieć się, jak Amazon SageMaker Training Compiler może przyspieszyć trenowanie modeli głębokiego uczenia się nawet o 50%, zobacz Nowość – Przedstawiamy kompilator szkoleń SageMaker.

Autorzy wyrażają najgłębsze podziękowania Mariano Kampowi i Emily Webber za recenzowanie wersji roboczych i udzielanie porad.

Referencje

  1. J. Devlin i in., „BERT: Wstępne szkolenie z głębokich dwukierunkowych transformatorów do zrozumienia języka” (2018).
  2. A. Vaswani i in., „Uwaga jest wszystkim, czego potrzebujesz” (2017).
  3. J. Howard i S. Ruder, „Dostrajanie uniwersalnego modelu językowego w celu klasyfikacji tekstu” (2018).
  4. T. Pires i wsp., „Jak wielojęzyczny jest wielojęzyczny BERT?”, (2019).
  5. Y. Liu i in., „RoBERTa: A Robustly Optimized BERT Pretraining Approach”, (2019).
  6. G. Lample i A. Conneau, „Wstępne szkolenie międzyjęzykowe modelu języka”, (2019).
  7. A. Conneau i in., „Nienadzorowane uczenie się reprezentacji międzyjęzykowej w skali”, (2019).
  8. Stefana Schwetera. BERTurk – modele BERT dla języka tureckiego (2020).
  9. Wielojęzyczne statystyki Wiki https://en.wikipedia.org/wiki/Wikipedia:Multilingual_statistics

O autorach

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Arnaw Khare jest głównym architektem rozwiązań dla globalnych usług finansowych w AWS. Jego głównym celem jest pomoc instytucjom finansowym w tworzeniu i projektowaniu aplikacji analitycznych i uczenia maszynowego w chmurze. Arnav uzyskał tytuł magistra sztucznej inteligencji na Uniwersytecie w Edynburgu i ma 18-letnie doświadczenie w branży, od małych start-upów, które założył, po duże przedsiębiorstwa, takie jak Nokia i Bank of America. Poza pracą Arnav uwielbia spędzać czas ze swoimi dwiema córkami, znajdować nowe niezależne kawiarnie, czytać i podróżować. Możesz mnie znaleźć na LinkedIn oraz w Surrey w Wielkiej Brytanii w prawdziwym życiu.

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Hasan-Basri AKIRMAK (licencjat i magister inżynierii komputerowej oraz Executive MBA w Graduate School of Business) jest starszym architektem rozwiązań w Amazon Web Services. Jest technologiem biznesowym doradzającym klientom segmentu enterprise. Specjalizuje się w projektowaniu architektur i przypadków biznesowych w systemach przetwarzania danych na dużą skalę oraz rozwiązaniach Machine Learning. Hasan dostarczał rozwój biznesu, integrację systemów, zarządzanie programami dla klientów z Europy, Bliskiego Wschodu i Afryki. Od 2016 roku mentorował setki przedsiębiorców w programach inkubacji startupów pro-bono.

Dostosuj modele językowe transformatorów do różnorodności językowej za pomocą Hugging Face w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Heiko Hotza jest starszym architektem rozwiązań w zakresie sztucznej inteligencji i uczenia maszynowego oraz kieruje społecznością przetwarzania języka naturalnego (NLP) w ramach AWS. Przed objęciem tego stanowiska był szefem Data Science w dziale obsługi klienta Amazon w UE. Heiko pomaga naszym klientom odnieść sukces w ich podróży AI/ML w AWS i współpracował z organizacjami z wielu branż, w tym ubezpieczeń, usług finansowych, mediów i rozrywki, opieki zdrowotnej, mediów i produkcji. W wolnym czasie Heiko jak najwięcej podróżuje.

Znak czasu:

Więcej z Uczenie maszynowe AWS