AWS voert fine-tuning uit op een Large Language Model (LLM) om giftige spraak te classificeren voor een groot gamingbedrijf | Amazon-webservices

AWS voert fine-tuning uit op een Large Language Model (LLM) om giftige spraak te classificeren voor een groot gamingbedrijf | Amazon-webservices

De videogame-industrie heeft een geschat gebruikersbestand van meer dan 3 miljard wereldwijd1. Het bestaat uit enorme hoeveelheden spelers die elke dag virtueel met elkaar communiceren. Helaas communiceren niet alle spelers op gepaste en respectvolle wijze, net als in de echte wereld. In een poging om een ​​maatschappelijk verantwoorde spelomgeving te creëren en in stand te houden, werd AWS Professional Services gevraagd een mechanisme te bouwen dat ongepast taalgebruik (giftige spraak) detecteert binnen interacties met online spelspelers. Het algemene zakelijke resultaat was om de activiteiten van de organisatie te verbeteren door een bestaand handmatig proces te automatiseren en om de gebruikerservaring te verbeteren door de snelheid en kwaliteit te verhogen bij het detecteren van ongepaste interacties tussen spelers, wat uiteindelijk een schonere en gezondere spelomgeving bevorderde.

De vraag van de klant was om een ​​Engelse taaldetector te maken die spraak- en tekstfragmenten classificeert in hun eigen aangepaste gedefinieerde toxische taalcategorieën. Ze wilden eerst bepalen of het gegeven taalfragment giftig is en vervolgens het fragment classificeren in een specifieke, door de klant gedefinieerde categorie van toxiciteit, zoals godslastering of grof taalgebruik.

AWS ProServe heeft deze use case opgelost door een gezamenlijke inspanning van het Generative AI Innovation Center (GAIIC) en het ProServe ML Delivery Team (MLDT). De AWS GAIIC is een groep binnen AWS ProServe die klanten koppelt aan experts om generatieve AI-oplossingen te ontwikkelen voor een breed scala aan zakelijke use-cases met behulp van proof of concept (PoC)-builds. AWS ProServe MLDT leidt de PoC vervolgens door de productie door de oplossing voor de klant te schalen, te versterken en te integreren.

Deze use case van de klant wordt in twee afzonderlijke berichten getoond. Dit bericht (deel 1) dient als een diepe duik in de wetenschappelijke methodologie. Het legt het denkproces en het experimenteren achter de oplossing uit, inclusief het training- en ontwikkelingsproces van het model. Deel 2 gaat dieper in op de geproduceerde oplossing, waarbij de ontwerpbeslissingen, de gegevensstroom en de illustratie van de modeltraining en implementatiearchitectuur worden uitgelegd.

Dit bericht behandelt de volgende onderwerpen:

  • De uitdagingen die AWS ProServe moest oplossen voor deze use case
  • Historische context over grote taalmodellen (LLM's) en waarom deze technologie perfect past bij deze use case
  • AWS GAIIC's PoC en AWS ProServe MLDT's oplossing vanuit een data science en machine learning (ML) perspectief

Data uitdaging

De grootste uitdaging waarmee AWS ProServe te maken kreeg bij het trainen van een toxische taalclassificator, was het verkrijgen van voldoende gelabelde gegevens van de klant om een ​​nauwkeurig model vanaf nul te trainen. AWS ontving ongeveer 100 voorbeelden van gelabelde gegevens van de klant, wat veel minder is dan de 1,000 voorbeelden die worden aanbevolen voor het verfijnen van een LLM in de datawetenschapsgemeenschap.

Als extra inherente uitdaging is het historisch gezien bekend dat natuurlijke taalverwerking (NLP) classificatoren erg duur zijn om te trainen en een groot aantal woordenschat vereisen, ook wel bekend als een corpus, om nauwkeurige voorspellingen te doen. Een rigoureuze en effectieve NLP-oplossing, als er voldoende hoeveelheden gelabelde gegevens worden geleverd, zou zijn om een ​​aangepast taalmodel te trainen met behulp van de gelabelde gegevens van de klant. Het model zou uitsluitend worden getraind met het spelvocabulaire van de spelers, waardoor het is afgestemd op de taal die in de spellen wordt waargenomen. De klant had zowel kosten- als tijdbeperkingen die deze oplossing onhaalbaar maakten. AWS ProServe moest een oplossing vinden om een ​​nauwkeurige taaltoxiciteitsclassificator te trainen met een relatief kleine gelabelde dataset. De oplossing lag in wat bekend staat als overdracht leren.

Het idee achter transferleren is om de kennis van een vooraf getraind model te gebruiken en toe te passen op een ander maar relatief vergelijkbaar probleem. Als een classificator voor afbeeldingen bijvoorbeeld is getraind om te voorspellen of een afbeelding een kat bevat, kunt u de kennis die het model tijdens de training heeft opgedaan, gebruiken om andere dieren, zoals tijgers, te herkennen. Voor deze taalgebruikscase moest AWS ProServe een eerder getrainde taalclassificator vinden die was getraind om giftige taal te detecteren en deze te verfijnen met behulp van de gelabelde gegevens van de klant.

De oplossing was het vinden en verfijnen van een LLM om giftige taal te classificeren. LLM's zijn neurale netwerken die zijn getraind met behulp van een enorm aantal parameters, meestal in de orde van miljarden, met behulp van niet-gelabelde gegevens. Voordat we ingaan op de AWS-oplossing, geeft het volgende gedeelte een overzicht van de geschiedenis van LLM's en hun historische use-cases.

De kracht van LLM's aanboren

LLM's zijn onlangs het middelpunt geworden voor bedrijven die op zoek zijn naar nieuwe toepassingen van ML, sinds ChatGPT de publieke opinie veroverde door de snelst groeiende consumententoepassing in de geschiedenis te zijn2, met 100 miljoen actieve gebruikers in januari 2023, slechts 2 maanden na de release. LLM's zijn echter geen nieuwe technologie in de ML-ruimte. Ze zijn op grote schaal gebruikt om NLP-taken uit te voeren, zoals het analyseren van sentiment, het samenvatten van corpussen, het extraheren van trefwoorden, het vertalen van spraak en het classificeren van tekst.

Vanwege de sequentiële aard van tekst, waren terugkerende neurale netwerken (RNN's) de state-of-the-art voor NLP-modellering. Met name de encoder-decoder netwerkarchitectuur is geformuleerd omdat het een RNN-structuur creëerde die in staat is om een ​​input van willekeurige lengte te nemen en een output van willekeurige lengte te genereren. Dit was ideaal voor NLP-taken zoals vertalen waarbij een uitvoerzin van de ene taal kon worden voorspeld op basis van een invoerzin van een andere taal, meestal met een verschillend aantal woorden tussen de invoer en de uitvoer. De Transformer-architectuur3 (Vaswani, 2017) was een baanbrekende verbetering ten opzichte van de encoder-decoder; het introduceerde het concept van zelfaandacht, waardoor het model zijn aandacht kon richten op verschillende woorden in de invoer- en uitvoerzinnen. In een typische encoder-decoder wordt elk woord door het model op identieke wijze geïnterpreteerd. Aangezien het model elk woord in een invoerzin achtereenvolgens verwerkt, kan de semantische informatie aan het begin aan het einde van de zin verloren gaan. Het mechanisme voor zelfaandacht veranderde dit door een aandachtslaag toe te voegen aan zowel het encoder- als het decoderblok, zodat het model verschillende wegingen kon toekennen aan bepaalde woorden uit de invoerzin bij het genereren van een bepaald woord in de uitvoerzin. Zo ontstond de basis van het transformatormodel.

De transformatorarchitectuur vormde de basis voor twee van de meest bekende en populaire LLM's die tegenwoordig in gebruik zijn, de Bidirectional Encoder Representations from Transformers (BERT)4 (Radford, 2018) en de Generative Pretrained Transformer (GPT)5 (Devil 2018). Latere versies van het GPT-model, namelijk GPT3 en GPT4, zijn de engine die de ChatGPT-applicatie aandrijft. Het laatste deel van het recept dat LLM's zo krachtig maakt, is de mogelijkheid om informatie te destilleren uit enorme tekstcorpussen zonder uitgebreide labeling of voorbewerking via een proces genaamd ULMFiT. Deze methode heeft een pre-trainingsfase waarin algemene tekst kan worden verzameld en het model wordt getraind in het voorspellen van het volgende woord op basis van eerdere woorden; het voordeel hier is dat elke invoertekst die voor training wordt gebruikt, inherent vooraf is gelabeld op basis van de volgorde van de tekst. LLM's zijn echt in staat om te leren van gegevens op internet. Het oorspronkelijke BERT-model was bijvoorbeeld vooraf getraind op de BookCorpus en volledige Engelse Wikipedia-tekstdatasets.

Dit nieuwe modelleringsparadigma heeft geleid tot twee nieuwe concepten: basismodellen (FM's) en generatieve AI. In tegenstelling tot het vanaf het begin trainen van een model met taakspecifieke gegevens, wat gebruikelijk is bij klassiek begeleid leren, worden LLM's vooraf getraind om algemene kennis te extraheren uit een brede tekstdataset voordat ze worden aangepast aan specifieke taken of domeinen met een veel kleinere omvang. dataset (meestal in de orde van honderden monsters). De nieuwe ML-workflow begint nu met een vooraf getraind model dat een basismodel wordt genoemd. Het is belangrijk om op de juiste basis te bouwen en er zijn steeds meer opties, zoals het nieuwe Amazon Titan FM's, door AWS uitgebracht als onderdeel van Amazonebodem. Deze nieuwe modellen worden ook als generatief beschouwd omdat hun uitvoer door mensen kan worden geïnterpreteerd en in hetzelfde gegevenstype is als de invoergegevens. Terwijl eerdere ML-modellen beschrijvend waren, zoals het classificeren van afbeeldingen van katten versus honden, zijn LLM's generatief omdat hun uitvoer de volgende reeks woorden is op basis van invoerwoorden. Dat stelt hen in staat interactieve applicaties zoals ChatGPT aan te drijven die expressief kunnen zijn in de inhoud die ze genereren.

Hugging Face werkt samen met AWS om FM's te democratiseren en ze gemakkelijk toegankelijk te maken en ermee te bouwen. Hugging Face heeft een Transformers-API dat meer dan 50 verschillende transformatorarchitecturen verenigt op verschillende ML-frameworks, inclusief toegang tot vooraf getrainde modelgewichten in hun Model Hub, dat op het moment van schrijven is uitgegroeid tot meer dan 200,000 modellen. In de volgende secties onderzoeken we het proof of concept, de oplossing en de FM's die zijn getest en gekozen als basis voor het oplossen van deze toxische spraakclassificatie use case voor de klant.

AWS GAIIC-proof of concept

AWS GAIIC koos ervoor om te experimenteren met LLM-basismodellen met de BERT-architectuur om een ​​toxische taalclassificatie te verfijnen. Er zijn in totaal drie modellen van Hugging Face's modelhub getest:

Alle drie de modelarchitecturen zijn gebaseerd op de BERTweet architectuur. BERTweet is getraind op basis van de RoBERTa vooropleidingsprocedure. De RoBERTa-pre-trainingsprocedure is het resultaat van een replicatiestudie van BERT-pre-training die de effecten van hyperparameterafstemming en trainingssetgrootte evalueerde om het recept voor het trainen van BERT-modellen te verbeteren6 (Liu 2019). Het experiment probeerde een pre-trainingsmethode te vinden die de prestatieresultaten van BERT verbeterde zonder de onderliggende architectuur te veranderen. Uit de conclusie van het onderzoek bleek dat de volgende aanpassingen voorafgaand aan de training de prestaties van BERT aanzienlijk verbeterden:

  • Het model trainen met grotere batches over meer gegevens
  • Het doel voor het voorspellen van de volgende zin verwijderen
  • Trainen op langere reeksen
  • Dynamisch wijzigen van het maskeerpatroon toegepast op de trainingsgegevens

Het bertweet-base model gebruikt de voorafgaande pre-trainingsprocedure uit de RoBERTa-studie om de originele BERT-architectuur voor te trainen met behulp van 850 miljoen Engelse tweets. Het is het eerste openbare grootschalige taalmodel dat vooraf is getraind voor Engelse tweets.

Men dacht dat vooraf getrainde FM's die tweets gebruikten, om twee belangrijke theoretische redenen in de use case pasten:

  • De lengte van een tweet lijkt sterk op de lengte van een ongepaste of giftige zin die wordt gevonden in online gamechats
  • Tweets zijn afkomstig van een populatie met een grote verscheidenheid aan verschillende gebruikers, vergelijkbaar met die van de populatie op spelplatforms

AWS besloot om BERTweet eerst af te stemmen op de gelabelde gegevens van de klant om een ​​basislijn te krijgen. Kies er vervolgens voor om twee andere FM's te verfijnen in bertweet-base-offensief en bertweet-base-haat die verder zijn voorgetraind, specifiek op relevantere giftige tweets om potentieel een hogere nauwkeurigheid te bereiken. Het bertweet-base-offensief model maakt gebruik van de basis BertTweet FM en is vooraf getraind op 14,100 geannoteerde tweets die als aanstootgevend werden beschouwd7 (Zampieri 2019). Het bertweet-base-hate-model maakt ook gebruik van de basis BertTweet FM, maar is verder vooraf getraind op 19,600 tweets die als haatdragende taal werden beschouwd8 (Basiliek 2019).

Om de prestaties van het PoC-model verder te verbeteren, heeft AWS GAIIC twee ontwerpbeslissingen genomen:

  • Een voorspellingsstroom in twee fasen gemaakt waarbij het eerste model fungeert als een binaire classificator die classificeert of een stuk tekst giftig of niet giftig is. Het tweede model is een fijnmazig model dat tekst classificeert op basis van de door de klant gedefinieerde toxische typen. Alleen als het eerste model de tekst als giftig voorspelt, wordt deze doorgegeven aan het tweede model.
  • De trainingsgegevens uitgebreid en een subset toegevoegd van een door een derde partij gelabelde dataset met toxische tekst uit een openbare Kaggle-wedstrijd (Jigsaw-toxiciteit) aan de oorspronkelijke 100 monsters die van de klant zijn ontvangen. Ze koppelden de Jigsaw-labels aan de bijbehorende, door de klant gedefinieerde toxiciteitslabels en deden een 80%-splitsing als trainingsgegevens en 20%-splitsing als testgegevens om het model te valideren.

AWS voert verfijning uit van een Large Language Model (LLM) om giftige spraak te classificeren voor een groot gamingbedrijf | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

AWS GAIIC gebruikt Amazon Sage Maker notebooks om hun fine-tuning-experimenten uit te voeren en ontdekten dat het bertweet-base-offensive-model de beste scores behaalde op de validatieset. De volgende tabel geeft een overzicht van de waargenomen metrische scores.

Model precisie Terugroepen F1 AUC
binair .92 .90 .91 .92
Fijn gemalen .81 .80 .81 .89

Vanaf dit punt droeg GAIIC de PoC over aan het AWS ProServe ML Delivery Team om de PoC te produceren.

AWS ProServe ML Delivery Team-oplossing

Om de modelarchitectuur in productie te nemen, werd het AWS ProServe ML Delivery Team (MLDT) door de klant gevraagd om een ​​oplossing te creëren die schaalbaar en gemakkelijk te onderhouden is. Er waren enkele onderhoudsuitdagingen van een modelbenadering in twee fasen:

  • De modellen zouden een dubbele hoeveelheid modelmonitoring vereisen, waardoor de timing van de herscholing inconsistent is. Het kan voorkomen dat het ene model vaker moet worden omgeschoold dan het andere.
  • Verhoogde kosten voor het uitvoeren van twee modellen in plaats van één.
  • De snelheid van inferentie vertraagt ​​omdat inferentie door twee modellen gaat.

Om deze uitdagingen het hoofd te bieden, moest AWS ProServe MLDT uitzoeken hoe de tweetrapsmodelarchitectuur kon worden omgezet in een enkelvoudige modelarchitectuur terwijl de nauwkeurigheid van de tweetrapsarchitectuur behouden kon blijven.

De oplossing was om de klant eerst om meer trainingsgegevens te vragen en vervolgens het bertweet-base-offensief-model op alle labels, inclusief niet-toxische monsters, te verfijnen tot één model. Het idee was dat het verfijnen van één model met meer gegevens zou resulteren in vergelijkbare resultaten als het verfijnen van een tweetrapsmodelarchitectuur op minder gegevens. Om de tweetrapsmodelarchitectuur te verfijnen, heeft AWS ProServe MLDT de vooraf getrainde model multi-label classificatiekop geüpdatet met één extra knooppunt om de niet-toxische klasse weer te geven.

Het volgende is een codevoorbeeld van hoe u een vooraf getraind model van de Hugging Face-modelhub zou verfijnen met behulp van hun transformatorplatform en de classificatiekop met meerdere labels van het model zou wijzigen om het gewenste aantal klassen te voorspellen. AWS ProServe MLDT gebruikte deze blauwdruk als basis voor finetuning. Het gaat ervan uit dat u uw treingegevens en validatiegegevens gereed heeft en in het juiste invoerformaat.

Eerst worden Python-modules geïmporteerd, evenals het gewenste vooraf getrainde model uit de Hugging Face-modelhub:

# Imports.
from transformers import ( AutoModelForSequenceClassification, AutoTokenizer, DataCollatorWithPadding, PreTrainedTokenizer, Trainer, TrainingArguments,
) # Load pretrained model from model hub into a tokenizer.
model_checkpoint = “cardiffnlp/bertweet-base-offensive”
tokenizer = AutoTokenizer.from_pretrained(checkpoint)

Het vooraf getrainde model wordt vervolgens geladen en voorbereid voor fijnafstemming. Dit is de stap waarin het aantal toxische categorieën en alle modelparameters worden gedefinieerd:

# Load pretrained model into a sequence classifier to be fine-tuned and define the number of classes you want to classify in the num_labels parameter. model = AutoModelForSequenceClassification.from_pretrained( model_checkpoint, num_labels=[number of classes] ) # Set your training parameter arguments. The below are some key parameters that AWS ProServe MLDT tuned:
training_args = TrainingArguments( num_train_epochs=[enter input] per_device_train_batch_size=[enter input] per_device_eval_batch_size=[enter input] evaluation_strategy="epoch", logging_strategy="epoch", save_strategy="epoch", learning_rate=[enter input] load_best_model_at_end=True, metric_for_best_model=[enter input] optim=[enter input], )

Het verfijnen van modellen begint met het invoeren van paden naar de trainings- en validatiedatasets:

# Finetune the model from the model_checkpoint, tokenizer, and training_args defined assuming train and validation datasets are correctly preprocessed.
trainer = Trainer( model=model, args=training_args, train_dataset=[enter input], eval_dataset=[enter input], tokenizer=tokenizer, data_collator=data_collator, ) # Finetune model command.
trainer.train()

AWS ProServe MLDT ontving ongeveer 5,000 meer gelabelde datamonsters, waarvan 3,000 niet-toxisch en 2,000 giftig, en verfijnde alle drie de bertweet-base-modellen, waarbij alle labels in één model werden gecombineerd. Ze gebruikten deze gegevens naast de 5,000 monsters van de PoC om nieuwe eentrapsmodellen te verfijnen met dezelfde 80% treinset, 20% testsetmethode. De volgende tabel laat zien dat de prestatiescores vergelijkbaar waren met die van het tweetrapsmodel.

Model precisie Terugroepen F1 AUC
bertweet-basis (1-traps) .76 .72 .74 .83
bertweet-base-haat (1-traps) .85 .82 .84 .87
bertweet-base-offensief (1-traps) .88 .83 .86 .89
bertweet-base-offensief (2-traps) .91 .90 .90 .92

De eentrapsmodelbenadering leverde de kosten- en onderhoudsverbeteringen op, terwijl de precisie slechts met 3% afnam. Na afweging van de afwegingen koos de klant voor AWS ProServe MLDT om het eentrapsmodel te produceren.

Door één model af te stemmen met meer gelabelde gegevens, kon AWS ProServe MLDT een oplossing leveren die voldeed aan de drempel van de klant voor modelnauwkeurigheid, en tegemoet kwam aan hun vraag naar onderhoudsgemak, terwijl de kosten werden verlaagd en de robuustheid werd vergroot.

Conclusie

Een grote gaming-klant was op zoek naar een manier om giftige taal binnen hun communicatiekanalen te detecteren om een ​​maatschappelijk verantwoorde gaming-omgeving te promoten. AWS GAIIC creëerde een PoC van een toxische taaldetector door een LLM te verfijnen om toxische taal te detecteren. AWS ProServe MLDT heeft vervolgens de modeltrainingsflow geüpdatet van een tweetrapsbenadering naar een eentrapsbenadering en de LLM geproduceerd zodat de klant deze op grote schaal kan gebruiken.

In dit bericht demonstreert AWS de effectiviteit en bruikbaarheid van het verfijnen van een LLM om deze use case van de klant op te lossen, deelt het context over de geschiedenis van basismodellen en LLM's, en introduceert het de workflow tussen het AWS Generative AI Innovation Center en de AWS ProServe ML Bezorgteam. In het volgende bericht in deze serie gaan we dieper in op hoe AWS ProServe MLDT het resulterende eentrapsmodel produceerde met behulp van SageMaker.

Als u geïnteresseerd bent om met AWS samen te werken om een ​​generatieve AI-oplossing te bouwen, neem dan contact op met de GAIIC. Ze zullen uw use case beoordelen, een generatief-AI-gebaseerd proof of concept bouwen en opties hebben om de samenwerking met AWS uit te breiden om de resulterende PoC in productie te implementeren.

Referenties

  1. Gamer-demografie: feiten en statistieken over de populairste hobby ter wereld
  2. ChatGPT vestigt record voor snelst groeiende gebruikersbestand - notitie van analist
  3. Vaswani et al., "Aandacht is alles wat je nodig hebt"
  4. Radford et al., "Taalbegrip verbeteren door generatieve pre-training"
  5. Devlin et al., "BERT: pre-training van diepe bidirectionele transformatoren voor taalbegrip"
  6. Yinhan Liu et al., "RoBERTa: een robuust geoptimaliseerde BERT Pretraining-benadering"
  7. Marcos Zampieri et al., "SemEval-2019 Taak 6: Identificeren en categoriseren van beledigend taalgebruik in sociale media (OffensEval)"
  8. Valerio Basile et al., "SemEval-2019 Taak 5: Meertalige detectie van aanzetten tot haat tegen immigranten en vrouwen op Twitter"

Over de auteurs

AWS voert verfijning uit van een Large Language Model (LLM) om giftige spraak te classificeren voor een groot gamingbedrijf | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.James Poquiz is een datawetenschapper bij AWS Professional Services in Orange County, Californië. Hij heeft een BS in Computer Science van de University of California, Irvine en heeft meerdere jaren ervaring in het datadomein waar hij veel verschillende rollen heeft vervuld. Tegenwoordig werkt hij aan het implementeren en implementeren van schaalbare ML-oplossingen om bedrijfsresultaten voor AWS-klanten te behalen.

AWS voert verfijning uit van een Large Language Model (LLM) om giftige spraak te classificeren voor een groot gamingbedrijf | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Han man is een Senior Data Science & Machine Learning Manager bij AWS Professional Services in San Diego, CA. Hij is gepromoveerd in Engineering aan de Northwestern University en heeft meerdere jaren ervaring als managementconsultant in het adviseren van klanten op het gebied van productie, financiële dienstverlening en energie. Tegenwoordig werkt hij gepassioneerd samen met belangrijke klanten uit verschillende branches om ML- en GenAI-oplossingen op AWS te ontwikkelen en te implementeren.

AWS voert verfijning uit van een Large Language Model (LLM) om giftige spraak te classificeren voor een groot gamingbedrijf | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Safa Tinaztepe is een full-stack datawetenschapper bij AWS Professional Services. Hij heeft een BS in computerwetenschappen van Emory University en heeft belangen in MLOps, gedistribueerde systemen en web3.

Tijdstempel:

Meer van AWS-machine learning