Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker

Heute werden etwa 7,000 Sprachen verwendet. Trotz Versuchen im späten 19. Jahrhundert, konstruierte Sprachen wie Volapük oder Esperanto zu erfinden, gibt es keine Anzeichen einer Vereinheitlichung. Die Leute entscheiden sich immer noch dafür, neue Sprachen zu entwickeln (denken Sie an Ihre Lieblingsfilmfigur, die Klingonisch, Dothraki oder Elbisch spricht).

Heutzutage werden Beispiele für die Verarbeitung natürlicher Sprache (NLP) von der englischen Sprache dominiert, der Muttersprache von nur 5 % der menschlichen Bevölkerung, die nur von 17 % gesprochen wird.

Das digitale Kluft ist definiert als die Kluft zwischen denen, die Zugang zu digitalen Technologien haben, und denen, die dies nicht können. Mangelnder Zugang zu Wissen oder Bildung aufgrund von Sprachbarrieren trägt ebenfalls zur digitalen Kluft bei, nicht nur zwischen Menschen, die kein Englisch sprechen, sondern auch für englischsprachige Menschen, die keinen Zugang zu nicht-englischen Inhalten haben verringert die Denk- und Wissensvielfalt. Es gibt so viel voneinander zu lernen.

In diesem Beitrag fassen wir die Herausforderungen von ressourcenarmen Sprachen zusammen und experimentieren mit verschiedenen Lösungsansätzen, die über 100 Sprachen abdecken, indem wir Hugging Face-Transformatoren auf Amazon SageMaker verwenden.

Wir optimieren verschiedene vortrainierte transformatorbasierte Sprachmodelle für eine Frage-Antwort-Aufgabe. In unserem Beispiel verwenden wir Türkisch, aber Sie können diesen Ansatz auch auf andere unterstützte Sprachen anwenden. Unser Fokus liegt auf BERT [1]-Varianten, denn ein großartiges Merkmal von BERT ist seine einheitliche Architektur über verschiedene Aufgaben hinweg.

Wir demonstrieren mehrere Vorteile der Verwendung von Hugging Face-Transformatoren Amazon Sage Maker, wie z. B. Schulungen und Experimente in großem Maßstab, und erhöhte Produktivität und Kosteneffizienz.

Überblick über NLP

Seit 2017 gab es mehrere wichtige Entwicklungen im NLP. Das Aufkommen von Deep-Learning-Architekturen wie Transformers [2], die unüberwachten Lerntechniken zum Trainieren solcher Modelle auf extrem großen Datensätzen und Transfer Learning haben den Stand der Technik erheblich verbessert. Kunst im Verstehen natürlicher Sprache. Die Ankunft von vortrainierten Modell-Hubs hat den Zugang zum kollektiven Wissen der NLP-Community weiter demokratisiert, wodurch die Notwendigkeit entfällt, bei Null anzufangen.

Ein Sprachmodell ist ein NLP-Modell, das lernt, das nächste Wort (oder ein beliebiges maskiertes Wort) in einer Sequenz vorherzusagen. Die echte Schönheit von Sprachmodellen als Ausgangspunkt ist dreifach: Erstens hat die Forschung gezeigt, dass Sprachmodelle, die auf Daten eines großen Textkorpus trainiert wurden, komplexere Bedeutungen von Wörtern lernen als frühere Methoden. Um beispielsweise das nächste Wort in einem Satz vorhersagen zu können, muss das Sprachmodell den Kontext, die Semantik und auch die Grammatik gut verstehen. Zweitens sind zum Trainieren eines Sprachmodells gekennzeichnete Daten – die knapp und teuer sind – während des Vortrainings nicht erforderlich. Dies ist wichtig, da eine enorme Menge an unbeschrifteten Textdaten in vielen Sprachen im Internet öffentlich verfügbar ist. Drittens wurde gezeigt, dass es relativ einfach ist, andere NLP-Aufgaben wie Stimmungsanalyse oder Fragenbeantwortung mit sehr wenigen gekennzeichneten Daten durchzuführen, sobald das Sprachmodell intelligent genug ist, um das nächste Wort für einen bestimmten Satz vorherzusagen, da die Feinabstimmung wiederverwendet wird Darstellungen aus einem vortrainierten Sprachmodell [3].

Vollständig verwaltete NLP-Dienste haben auch die Einführung von NLP beschleunigt. Amazon verstehen ist ein vollständig verwalteter Dienst, der es der Textanalyse ermöglicht, Erkenntnisse aus dem Inhalt von Dokumenten zu gewinnen, und der eine Vielzahl von Sprachen unterstützt. Amazon Comprehend unterstützt benutzerdefinierte Klassifizierung und Erkennung von benutzerdefinierten Entitäten und ermöglicht es Ihnen, benutzerdefinierte NLP-Modelle zu erstellen, die speziell auf Ihre Anforderungen zugeschnitten sind, ohne dass ML-Expertise erforderlich ist.

Herausforderungen und Lösungen für ressourcenarme Sprachen

Die größte Herausforderung für eine große Anzahl von Sprachen besteht darin, dass sie relativ wenig Daten für das Training zur Verfügung haben. Diese nennt man ressourcenarme Sprachen. Das m-BERT-Papier [4] und das XLM-R-Papier [7] beziehen sich auf Urdu und Suaheli als ressourcenarme Sprachen.

Die folgende Abbildung zeigt die ISO-Codes von über 80 Sprachen und den Größenunterschied (im logarithmischen Maßstab) zwischen den beiden wichtigsten Vorschulungen [7]. Bei Wikipedia (orange) gibt es nur 18 Sprachen mit über 1 Million Artikeln und 52 Sprachen mit über 1,000 Artikeln, aber 164 Sprachen mit nur 1–10,000 Artikeln [9]. Das CommonCrawl-Korpus (blau) erhöht die Datenmenge für ressourcenarme Sprachen um zwei Größenordnungen. Trotzdem sind sie im Vergleich zu ressourcenintensiven Sprachen wie Englisch, Russisch oder Deutsch noch relativ klein.

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

In Bezug auf die Wikipedia-Artikelnummern ist Türkisch eine weitere Sprache in derselben Gruppe von über 100,000 Artikeln (Platz 28), zusammen mit Urdu (Platz 54). Verglichen mit Urdu würde Türkisch als Mid-Ressource-Sprache angesehen werden. Türkisch hat einige interessante Eigenschaften, die Sprachmodelle leistungsfähiger machen könnten, indem sie bestimmte Herausforderungen in der Linguistik und Tokenisierung schaffen. Es ist eine agglutinierende Sprache. Es hat eine sehr freie Wortstellung, eine komplexe Morphologie oder Zeitformen ohne englische Entsprechungen. Sätze, die aus mehreren Wörtern in Sprachen wie Englisch bestehen, können mit einer einzigen Wortform ausgedrückt werden, wie im folgenden Beispiel gezeigt.

Türkische Englisch
Kedi Katze
Kediler Katzes
Kedigiller Familie von Katzen
felinesam Gehört zu Familie von Katzen
Kedileştirebileceklerimizdenmişçesineyken Wenn es so aussieht, als ob das einer ist, den wir machen können Katze

Zwei Hauptlösungsansätze sind sprachspezifische Modelle oder mehrsprachige Modelle (mit oder ohne sprachübergreifende Betreuung):

  • Einsprachige Sprachmodelle – Der erste Ansatz besteht darin, eine BERT-Variante auf eine bestimmte Zielsprache anzuwenden. Je mehr Trainingsdaten vorhanden sind, desto besser ist die Modellleistung.
  • Mehrsprachige maskierte Sprachmodelle – Der andere Ansatz besteht darin, große Transformatormodelle in vielen Sprachen vorzutrainieren. Die mehrsprachige Sprachmodellierung zielt darauf ab, das Problem des Mangels an Daten für ressourcenarme Sprachen zu lösen, indem eine große Anzahl von Sprachen vorab trainiert wird, sodass NLP-Aufgaben, die von einer Sprache gelernt wurden, auf andere Sprachen übertragen werden können. Mehrsprachige maskierte Sprachmodelle (MLMs) haben den Stand der Technik bei sprachübergreifenden Verständnisaufgaben vorangetrieben. Zwei Beispiele sind:
    • Mehrsprachig BERT – Das mehrsprachige BERT-Modell wurde mit dem Wikipedia-Korpus in 104 verschiedenen Sprachen trainiert. Es hat sich jedoch gezeigt, dass es nur über ähnliche sprachliche Strukturen und typologische Merkmale (z. B. Sprachen mit ähnlicher Wortstellung) hinweg gut verallgemeinert werden kann. Seine Mehrsprachigkeit wird insbesondere bei Sprachen mit unterschiedlichen Wortstellungen (z. B. Subjekt/Objekt/Verb) verringert [4].
    • XLM-R – Sprachübergreifende Sprachmodelle (XLMs) werden mit einem sprachübergreifenden Ziel unter Verwendung von parallelen Datensätzen (derselbe Text in zwei verschiedenen Sprachen) oder ohne ein sprachübergreifendes Ziel unter Verwendung von einsprachigen Datensätzen trainiert [6]. Untersuchungen zeigen, dass ressourcenarme Sprachen von der Skalierung auf mehr Sprachen profitieren. XLM-RoBERTa ist ein Transformer-basiertes Modell, das von RoBERTa [5] inspiriert ist, und sein Ausgangspunkt ist die These, dass mehrsprachiges BERT und XLM zu wenig abgestimmt sind. Es wird auf 100 Sprachen trainiert, wobei sowohl das Wikipedia- als auch das CommonCrawl-Korpus verwendet werden, sodass die Menge an Trainingsdaten für ressourcenarme Sprachen ungefähr zwei Größenordnungen größer ist als bei m-BERT [7].

Eine weitere Herausforderung mehrsprachiger Sprachmodelle für ressourcenarme Sprachen ist die Größe des Vokabulars und die Tokenisierung. Da alle Sprachen dasselbe gemeinsame Vokabular in mehrsprachigen Sprachmodellen verwenden, gibt es einen Kompromiss zwischen der Vergrößerung des Vokabulars (was die Rechenanforderungen erhöht) und der Verkleinerung (Wörter, die nicht im Vokabular vorhanden sind, würden als unbekannt markiert oder Zeichen verwendet werden). anstelle von Wörtern, da Token jede Struktur ignorieren würden). Der Wortstück-Tokenisierungsalgorithmus kombiniert die Vorteile beider Ansätze. Beispielsweise behandelt es effektiv Wörter, die außerhalb des Vokabulars liegen, indem es das Wort in Teilwörter aufteilt, bis es im Vokabular vorhanden ist oder bis das einzelne Zeichen erreicht ist. Die zeichenbasierte Tokenisierung ist nicht sehr nützlich, außer für bestimmte Sprachen, wie z. B. Chinesisch. Es gibt Techniken, um Herausforderungen für ressourcenarme Sprachen anzugehen, wie z. B. Sampling mit bestimmten Distributionen [6].

Die folgende Tabelle zeigt, wie sich drei verschiedene Tokenizer für das Wort „kedileri“ (was „seine Katzen“ bedeutet) verhalten. Für bestimmte Sprachen und NLP-Aufgaben würde dies einen Unterschied machen. Beispielsweise gibt das Modell für die Fragebeantwortungsaufgabe die Spanne des Start-Token-Index und des End-Token-Index zurück; Die Rückgabe von „kediler“ („Katzen“) oder „kedileri“ („seine Katzen“) würde etwas Kontext verlieren und zu unterschiedlichen Auswertungsergebnissen für bestimmte Metriken führen.

Vortrainiertes Modell Wortschatzgröße Tokenisierung für „Kedileri“*
dbmdz/bert-base-turkish-uncased 32,000 Tokens [CLS] Katzen ##ich [SEP]
Eingabe-IDs 2 23714 1023 3
bert-base-multilingual-uncased 105,879 Tokens [CLS] ked ##iler ##ich [SEP]
Eingabe-IDs 101 30210 33719 10116 102
deepset/xlm-roberta-base-squad2 250,002 Tokens Ke di s
Eingabe-IDs 0 1345 428 1341 .
*Auf Englisch: (seine) Katzen

Obwohl ressourcenarme Sprachen von mehrsprachigen Sprachmodellen profitieren, kann die Durchführung der Tokenisierung über ein gemeinsames Vokabular hinweg einige linguistische Merkmale für bestimmte Sprachen ignorieren.

Im nächsten Abschnitt vergleichen wir drei Ansätze, indem wir sie für eine Frage-Antwort-Aufgabe unter Verwendung eines QA-Datensatzes für Türkisch verfeinern: BERTurk [8], mehrsprachiges BERT [4] und XLM-R [7].

Lösungsüberblick

Unser Arbeitsablauf ist wie folgt:

  1. Bereiten Sie den Datensatz in einem vor Amazon SageMaker-Studio notebook-Umgebung und laden Sie es hoch Amazon Simple Storage-Service (Amazon S3).
  2. Starten Sie parallele Trainingsjobs in SageMaker-Trainings-Deep-Learning-Containern, indem Sie das Feinabstimmungsskript bereitstellen.
  3. Sammeln Sie Metadaten von jedem Experiment.
  4. Vergleichen Sie die Ergebnisse und identifizieren Sie das am besten geeignete Modell.

Das folgende Diagramm zeigt die Lösungsarchitektur.

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Weitere Informationen zu Studio-Notebooks finden Sie unter Tauchen Sie tief in die Architektur von Amazon SageMaker Studio Notebooks ein. Weitere Informationen zur Integration von Hugging Face in SageMaker finden Sie unter AWS und Hugging Face arbeiten zusammen, um die Einführung von Natural Language Processing-Modellen zu vereinfachen und zu beschleunigen.

Bereiten Sie den Datensatz vor

Die Hugging Face Datasets-Bibliothek bietet leistungsstarke Datenverarbeitungsmethoden, um schnell ein Dataset für das Training in einem Deep-Learning-Modell vorzubereiten. Der folgende Code lädt das türkische QA-Dataset und untersucht, was darin enthalten ist:

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'])))

Es gibt ungefähr 9,000 Proben.

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Das Eingabe-Dataset wird leicht in ein Format transformiert, das von den vortrainierten Modellen erwartet wird, und enthält die folgenden Spalten:

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

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
Die englische Übersetzung der Ausgabe lautet wie folgt:

  • Kontext – Resit Emre Kongar (* 13. Oktober 1941, Istanbul), türkischer Soziologe, Professor.
  • Frage – Wie lautet der akademische Titel von Emre Kongar?
  • beantworten - Professor

Skript zur Feinabstimmung

Die Hugging Face Transformers-Bibliothek bietet einen Beispielcode zur Feinabstimmung eines Modells für eine Aufgabe zur Beantwortung von Fragen mit dem Namen run_qa.py. Der folgende Code initialisiert den Trainer:

 # 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, )

Sehen wir uns die Bausteine ​​einmal auf hoher Ebene an.

Tokenisierer

Das Skript lädt einen Tokenizer mit der AutoTokenizer Klasse. Das AutoTokenizer Die Klasse kümmert sich um die Rückgabe des richtigen Tokenizers, der dem Modell entspricht:

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, )

Das Folgende ist ein Beispiel, wie der Tokenizer funktioniert:

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()

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Modell

Das Skript lädt ein Modell. AutoModel Klassen (zum Beispiel AutoModelForQuestionAnswering) erstellen Sie direkt eine Klasse mit Gewichtungen, Konfiguration und Vokabular der relevanten Architektur, indem Sie den Namen und den Pfad zum vorab trainierten Modell angeben. Dank der Abstraktion von Hugging Face können Sie mit demselben Code einfach zu einem anderen Modell wechseln, indem Sie einfach den Namen des Modells angeben. Siehe folgenden Beispielcode:

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

Vorverarbeitung und Schulung

Das prepare_train_features() und prepare_validation_features() Methoden den Trainingsdatensatz bzw. den Validierungsdatensatz vorverarbeiten. Der Code iteriert über den Eingabedatensatz und erstellt aus dem Kontext und der aktuellen Frage eine Sequenz mit den richtigen modellspezifischen Tokentyp-IDs (numerische Darstellungen von Token) und Aufmerksamkeitsmasken. Die Sequenz wird dann durch das Modell geleitet. Dies gibt eine Reihe von Punktzahlen sowohl für die Start- als auch für die Endposition aus, wie in der folgenden Tabelle gezeigt.

Dataset-Eingabefelder Vorverarbeitete Trainingsdatensatzfelder für QuestionAnsweringTrainer
id input_ids
Titel Aufmerksamkeit_Maske
Kontext start_positionen
Frage end_positionen
Antworten { answer_start, answer_text } .

Evaluierung

Das compute_metrics() Methode kümmert sich um die Berechnung von Metriken. Wir verwenden die folgenden gängigen Metriken für Aufgaben zur Beantwortung von Fragen:

  • Exakte Übereinstimmung – Misst den Prozentsatz der Vorhersagen, die genau mit einer der Ground-Truth-Antworten übereinstimmen.
  • F1-Punktzahl – Misst die durchschnittliche Überlappung zwischen der Vorhersage und der Ground-Truth-Antwort. Der F1-Score ist das harmonische Mittel aus Präzision und Erinnerung:
    • Präzision – Das Verhältnis der Anzahl der geteilten Wörter zur Gesamtzahl der Wörter in der Vorhersage.
    • Erinnern – Das Verhältnis der Anzahl der geteilten Wörter zur Gesamtzahl der Wörter in der Grundwahrheit.

Verwaltete Schulungen zu SageMaker

Das Einrichten und Verwalten benutzerdefinierter Umgebungen für maschinelles Lernen (ML) kann zeitaufwändig und umständlich sein. Mit AWS Deep Learning-Container (DLCs) für Hugging Face Transformers-Bibliotheken haben wir Zugriff auf vorgefertigte und optimierte Deep-Learning-Frameworks, die es einfach machen, unser Skript mit minimalem zusätzlichem Code über mehrere Trainingsjobs hinweg auszuführen.

Wir müssen nur die verwenden Umarmungs-Gesichtsschätzer verfügbar im SageMaker Python SDK mit den folgenden Eingaben:

# 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, )

Bewerten Sie die Ergebnisse

Wenn die Feinabstimmungsarbeiten für die türkische Fragebeantwortungsaufgabe abgeschlossen sind, vergleichen wir die Modellleistung der drei Ansätze:

  • Einsprachiges Sprachmodell – Das vortrainierte Modell, das auf den türkischen Frage-Antwort-Text abgestimmt ist, wird aufgerufen bert-base-türkisch-uncased [8]. Es erreicht einen F1-Score von 75.63 und einen exakten Match-Score von 56.17 in nur zwei Epochen und mit 9,000 gekennzeichneten Artikeln. Dieser Ansatz ist jedoch nicht für eine Sprache mit geringen Ressourcen geeignet, wenn kein vortrainiertes Sprachmodell vorhanden ist oder nur wenige Daten für ein völlig neues Training verfügbar sind.
  • Mehrsprachiges Sprachmodell mit mehrsprachigem BERT – Das vortrainierte Modell wird aufgerufen bert-base-multilingual-uncased. Das mehrsprachige BERT-Papier [4] hat gezeigt, dass es sich gut über Sprachen hinweg verallgemeinern lässt. Verglichen mit dem einsprachigen Modell schneidet es schlechter ab (F1-Ergebnis 71.73, exakte Übereinstimmung 50:45), aber beachten Sie, dass dieses Modell über 100 andere Sprachen verarbeitet und weniger Raum für die Darstellung der türkischen Sprache lässt.
  • Mehrsprachiges Sprachmodell mit XLM-R – Das vortrainierte Modell wird aufgerufen xlm-roberta-base-squad2. Das XLM-R-Papier zeigt, dass es möglich ist, ein einziges großes Modell für über 100 Sprachen zu haben, ohne die Leistung pro Sprache zu beeinträchtigen [7]. Bei der Aufgabe zur Beantwortung türkischer Fragen übertrifft es die mehrsprachigen BERT- und einsprachigen BERT-F1-Ergebnisse um 5 % bzw. 2 % (F1-Ergebnis 77.14, exakte Übereinstimmung 56.39).

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Unser Vergleich berücksichtigt keine anderen Unterschiede zwischen Modellen wie die Modellkapazität, verwendete Trainingsdatensätze, vortrainierte NLP-Aufgaben, Vokabulargröße oder Tokenisierung.

Zusätzliche Experimente

Das mitgelieferte Notebook enthält weitere Versuchsbeispiele.

SageMaker bietet eine große Auswahl an Trainingsinstanztypen. Wir haben das XLM-R-Modell auf p3.2xlarge (GPU: Nvidia V100 GPU, GPU-Architektur: Volta (2017)), p3.16xlarge (GPU: 8 Nvidia V100 GPUs) und g4dn.xlarge (GPU: Nvidia T4 GPU, GPU-Architektur: Turing (2018)) und beobachtete Folgendes:

  • Trainingsdauer – Gemäß unserem Experiment benötigte das XLM-R-Modell etwa 24 Minuten zum Trainieren auf p3.2xlarge und 30 Minuten auf g4dn.xlarge (etwa 23 % länger). Wir haben auch eine verteilte Feinabstimmung auf zwei p3.16xlarge-Instances durchgeführt, und die Trainingszeit hat sich auf 10 Minuten verringert. Weitere Informationen zum verteilten Training eines transformatorbasierten Modells in SageMaker finden Sie unter Verteilte Feinabstimmung eines BERT Large-Modells für eine Frage-Antwort-Aufgabe mit Hugging Face Transformers auf Amazon SageMaker.
  • Trainingskosten – Wir haben die AWS Pricing API verwendet, um SageMaker On-Demand-Preise abzurufen, um sie spontan zu berechnen. Gemäß unserem Experiment kostet das Training auf p1.58xlarge etwa 3.2 $ und auf g4dn.xlarge etwa viermal weniger (0.37 $). Verteiltes Training auf zwei p3.16xlarge-Instances mit 16 GPUs kostet 9.68 $.

Zusammenfassend lässt sich sagen, dass g4dn.xlarge zwar die kostengünstigste Maschine war, das Training aber auch etwa dreimal länger dauerte als der leistungsstärkste Instance-Typ, mit dem wir experimentiert haben (zwei p3.16xlarge). Abhängig von Ihren Projektprioritäten können Sie aus einer Vielzahl von SageMaker-Trainingsinstanztypen wählen.

Zusammenfassung

In diesem Beitrag haben wir die Feinabstimmung vortrainierter transformatorbasierter Sprachmodelle für eine Fragebeantwortungsaufgabe für eine Mid-Ressource-Sprache (in diesem Fall Türkisch) untersucht. Sie können diesen Ansatz mit einem einzigen Modell auf über 100 andere Sprachen anwenden. Zum jetzigen Zeitpunkt ist es noch unerschwinglich, ein Modell auf alle 7,000 Sprachen der Welt zu erweitern, aber das Gebiet des NLP bietet eine Gelegenheit, unseren Horizont zu erweitern.

Sprache ist die wichtigste Methode der menschlichen Kommunikation und ein Mittel, um Werte zu vermitteln und die Schönheit eines kulturellen Erbes zu teilen. Die sprachliche Vielfalt stärkt den interkulturellen Dialog und baut inklusive Gesellschaften auf.

ML ist ein hochgradig iterativer Prozess; Im Laufe eines einzigen Projekts trainieren Data Scientists Hunderte von verschiedenen Modellen, Datensätzen und Parametern auf der Suche nach maximaler Genauigkeit. SageMaker bietet den umfassendsten Satz an Tools, um die Leistungsfähigkeit von ML und Deep Learning zu nutzen. Damit können Sie ML-Experimente im großen Maßstab organisieren, nachverfolgen, vergleichen und auswerten.

Hugging Face ist in SageMaker integriert, um Datenwissenschaftlern dabei zu helfen, hochmoderne NLP-Modelle schneller und einfacher zu entwickeln, zu trainieren und zu optimieren. Wir haben mehrere Vorteile der Verwendung von Hugging Face-Transformatoren auf Amazon SageMaker demonstriert, wie z. B. Schulungen und Experimente in großem Maßstab sowie erhöhte Produktivität und Kosteneffizienz.

Sie können mit NLP-Aufgaben in Ihrer bevorzugten Sprache in SageMaker in allen AWS-Regionen experimentieren, in denen SageMaker verfügbar ist. Der Beispiel-Notebook-Code ist verfügbar in GitHub.

Um zu erfahren, wie Amazon SageMaker Training Compiler das Training von Deep-Learning-Modellen um bis zu 50 % beschleunigen kann, siehe Neu – Einführung des SageMaker-Schulungscompilers.

Die Autoren möchten Mariano Kamp und Emily Webber ihre tiefste Anerkennung für die Überprüfung der Entwürfe und die Bereitstellung von Ratschlägen aussprechen.

Bibliographie

  1. J. Devlin et al., „BERT: Pre-Training of Deep Bidirectional Transformers for Language Understanding“, (2018).
  2. A. Vaswani et al., „Aufmerksamkeit ist alles, was Sie brauchen“, (2017).
  3. J. Howard und S. Ruder, „Universal Language Model Fine-Tuning for Text Classification“, (2018).
  4. T. Pires et al., „How multilingual is Multilingual BERT?“, (2019).
  5. Y. Liu et al., „RoBERTa: A Robustly Optimized BERT Pretraining Approach“, (2019).
  6. G. Lample und A. Conneau, „Cross-Lingual Language Model Pretraining“, (2019).
  7. A. Conneau et al., „Unsupervised Cross-Lingual Representation Learning at Scale“, (2019).
  8. Stefan Schweter. BERTurk – BERT-Modelle für Türkisch (2020).
  9. Mehrsprachige Wiki-Statistiken https://en.wikipedia.org/wiki/Wikipedia:Multilingual_statistics

Über die Autoren

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Arnav Khare ist Principal Solutions Architect für Global Financial Services bei AWS. Sein Hauptaugenmerk liegt auf der Unterstützung von Finanzdienstleistungsinstituten beim Aufbau und Design von Analytics- und Machine-Learning-Anwendungen in der Cloud. Arnav hat einen MSc in Künstlicher Intelligenz von der Edinburgh University und verfügt über 18 Jahre Branchenerfahrung, die von kleinen Startups, die er gründete, bis hin zu großen Unternehmen wie Nokia und der Bank of America reicht. Außerhalb der Arbeit verbringt Arnav gerne Zeit mit seinen beiden Töchtern, findet neue unabhängige Cafés, liest und reist. Sie finden mich auf LinkedIn und im wirklichen Leben in Surrey, UK.

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Hasan-Basri AKIRMAK (BSc und MSc in Computer Engineering und Executive MBA in der Graduate School of Business) ist Senior Solutions Architect bei Amazon Web Services. Er ist Wirtschaftstechnologe und berät Kunden im Unternehmenssegment. Sein Spezialgebiet ist das Entwerfen von Architekturen und Business Cases für groß angelegte Datenverarbeitungssysteme und Lösungen für maschinelles Lernen. Hasan hat Geschäftsentwicklung, Systemintegration und Programmmanagement für Kunden in Europa, dem Nahen Osten und Afrika bereitgestellt. Seit 2016 betreute er Hunderte von Unternehmern bei Startup-Inkubationsprogrammen ehrenamtlich.

Optimieren Sie Transformer-Sprachmodelle für sprachliche Vielfalt mit Hugging Face auf Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Heiko Hotz ist Senior Solutions Architect für KI und maschinelles Lernen und leitet die Natural Language Processing (NLP)-Community innerhalb von AWS. Vor dieser Funktion war er Head of Data Science für den EU-Kundendienst von Amazon. Heiko hilft unseren Kunden dabei, ihre KI/ML-Reise auf AWS erfolgreich zu gestalten, und hat mit Organisationen in vielen Branchen zusammengearbeitet, darunter Versicherungen, Finanzdienstleistungen, Medien und Unterhaltung, Gesundheitswesen, Versorgungsunternehmen und Fertigung. In seiner Freizeit reist Heiko so viel wie möglich.

Zeitstempel:

Mehr von AWS Maschinelles Lernen