Hoe Hugging Face Transformers in Python te gebruiken

Hoe Hugging Face Transformers In Python Te Gebruiken



Hugging Face wordt erkend als een artificiële intelligente gemeenschap die open-source is en alle belangrijke kaders, tools, modellen en architecturen biedt die helpen om te communiceren of te trainen met de taalmodellen (natuurlijke taalverwerking). Hugging Face Transformers is een taalarchitectuur die helpt bij het aanbieden van de vooraf getrainde taalverwerkingsmodellen in Python. Deze transformatoren van Hugging Face bieden een breed scala aan datasets en gelaagde API's die de programmeurs helpen om eenvoudig een interactie te creëren met de vooraf getrainde modellen met hun bibliotheekpakketten.

Syntaxis

De ultramoderne Hugging Face-transformatoren hebben een grote verscheidenheid aan vooraf getrainde modellen. Deze modellen kunnen worden toegepast op verschillende taalmodellen die hieronder worden vermeld:

  • Deze transformatoren kunnen de tekst in verschillende talen verwerken en kunnen verschillende taken op de tekst uitvoeren, zoals tekstclassificatie, vraagstelling en antwoord, vertaling van de tekst naar verschillende talen en het genereren van de tekst.
  • We kunnen deze transformatoren ook gebruiken in Hugging Face voor op visie gebaseerde classificatietaken zoals objectdetectie en spraakgebaseerde taken, b.v. sprekerclassificatie of spraakidentificatie/herkenning.

De transformatoren van Hugging Face omvatten TensorFlow, PyTorch, ONNX, enz. Voor de syntaxis van het installeren van het pakket voor deze transformatoren gebruiken we de volgende opdracht:







$ pip installeer transformatoren

Nu proberen we verschillende voorbeelden te proberen waarbij we de modellen van de Hugging Face-transformator gebruiken voor verschillende taalverwerkingstaken.



Voorbeeld 1: Tekst genereren met behulp van de Hugging Face Transformers

Dit voorbeeld behandelt de methode om de transformatoren te gebruiken voor het genereren van tekst. Voor de tekstgeneratie gebruiken en importeren we het vooraf getrainde tekstgeneratiemodel van de transformator. De transformator heeft een basisbibliotheek die bekend staat als 'pijplijnen'. Deze pijplijnen werken voor transformatoren door alle voor- en nabewerkingen uit te voeren op de gegevens die nodig zijn om als invoer naar de vooraf getrainde modellen te worden gevoerd.



We beginnen met het coderen van het voorbeeld door eerst het bibliotheekpakket van de 'transformatoren' in de Python-terminal te installeren. Om het pakket van de transformator te downloaden, gebruikt u de 'pip-installatie met de naam van het pakket, d.w.z. transformator'. Nadat we het transformatorpakket hebben gedownload en geïnstalleerd, gaan we verder door het 'pijpleidingen' -pakket van de transformator te importeren. De pijplijn wordt gebruikt om de gegevens te verwerken voordat deze in het model worden ingevoerd.





We importeren de “pprint” uit de pprint. Dit pakket wordt geïnstalleerd om de uitvoer van het tekstgeneratiemodel af te drukken in een beter leesbare, gestructureerde en beter opgemaakte vorm. Anders, als we de functie 'print()' gebruiken, wordt de uitvoer weergegeven in een enkele regel die niet goed is opgemaakt en gemakkelijk leesbaar is. De modellen voor het genereren van tekst helpen bij het genereren of toevoegen van tekst aan de tekst die we in eerste instantie als invoer aan het model hebben verstrekt.

Om het getrainde model vanuit de transformator aan te roepen, gebruiken we de functie pipeline() die de twee parameters als invoer heeft. De eerste specificeert de naam van de geselecteerde taak en de tweede is de naam van het model van een transformator. In dit scenario is de geselecteerde taak het genereren van tekst. Het vooraf getrainde model dat we gebruiken van de transformator is 'gpt'.



Nadat we de pijplijnfunctie hebben gebruikt, beslissen we welke invoer we aan ons model willen geven om er extra tekst voor te genereren. Vervolgens geven we deze invoer door aan de functie 'task_pipeline()'. Deze functie maakt de uitvoer voor het model door de invoer, de maximale lengte van de uitvoer en het aantal zinnen dat de uitvoer als invoerparameters moet hebben, op te nemen.

We geven de input als “Dit is een taalmodel”. We stellen de maximale lengte van de uitvoer vast op '30' en het aantal zinnen in de uitvoer op '3'. Nu roepen we gewoon de functie pprint() aan om de resultaten weer te geven die uit ons model worden gegenereerd.

!pip installeer transformatoren

van transformatoren importeren pijplijn
van pprint importeer pprint

SELECTED_TASK = 'tekst genereren'
MODEL = 'gpt2'
taak = pijplijn(f'{SELECTED_TASK}', model = MODEL)

INPUT = 'Dit is een taalmodel'
OUT_put = taak(INPUT, max_length = 30, num_return_sequences=3)

pprint(OUT_put)

Uit het fragment en de uitvoer van de eerder genoemde code kunnen we zien dat het model de aanvullende informatie/tekst genereert die relevant is voor de invoer die we erin hebben ingevoerd.

Voorbeeld 2: tekstclassificatie met behulp van pijplijnen van de transformatoren

Het vorige voorbeeld behandelde de methode om de aanvullende tekst te genereren die relevant is voor de invoer met behulp van de transformatoren en hun pakketpijplijnen. Dit voorbeeld laat zien hoe we de tekstclassificatie met de pijplijnen kunnen uitvoeren. Tekstclassificatie is het proces van het identificeren van de invoer die naar het model wordt gevoerd als lid van een specifieke klasse, b.v. positief of negatief.

We importeren eerst de leidingen van de transformatoren. Vervolgens noemen we de functie 'pipeline()'. We geven de naam van het model, in ons geval 'tekstclassificatie', door aan de parameters. Zodra het model is gespecificeerd met behulp van de pijplijn, kunnen we het nu 'classifier' noemen. Tot dit punt wordt het standaardmodel voor de tekstclassificatie gedownload naar onze hostmachine. Nu kunnen we dit model gebruiken voor onze taak.

Importeer de Panda's dus als 'pd'. We willen dit pakket importeren omdat we de uitvoer van het model willen afdrukken in de vorm van het DataFrame. Nu specificeren we de tekst die we aan ons model willen geven als invoer om het te classificeren als een positieve of een negatieve zin. We hebben de tekst ingesteld als 'Ik ben een goede vent'. We geven deze tekst door aan het classifier()-model dat we zojuist in dit voorbeeld hebben gemaakt en slaan de resultaten op in een 'output'-variabele.

Om de uitvoer weer te geven, noemen we het voorvoegsel van Panda's, d.w.z. pd als '.Dataframe()' en geven we de uitvoer van het classificatiemodel door aan deze functie. Het toont nu de resultaten van het classificatiemodel zoals weergegeven in het volgende uitvoerfragment. Ons classificatiemodel classificeert de tekst als de positieve klasse.

!pip installeer transformatoren
van transformatoren importeren pijplijn
importeer panda's als pd
classifier = pipeline('text-classification',model = 'textattack/distillbert-base-uncased-CoLA')
tekst = 'ik ben een goede vent'
resultaat = classifier(tekst)
pprint(resultaat)
df = pd.DataFrame(resultaat)

Conclusie

Deze gids behandelde de transformatorarchitectuur van Hugging Face. We bespraken de 'pipeline' -bibliotheek van de Hugging Face-transformator. Vervolgens hebben we met behulp van deze bibliotheek de vooraf getrainde transformatormodellen gebruikt voor tekstgeneratie- en classificatietaken.