Transfer Learning: La democratització dels Transformers

La llibreria Hugging Face posa els Transformers a l’abast de tothom

(versió anglesa d’aquesta publicació a Medium)

Ja hem vist que les xarxes neuronals Transformers son actualment la tecnologia dominant en l’àmbit del processat de llenguatge natural, podent-se usar en tasques com classificació, extracció, generació, etc. Per exemple, permet classificar un text en funció de si s’ha escrit amb un sentiment positiu o negatiu, extreure’n un resum d’aquest o generar-ne la seva traducció a un altre idioma. A més, l’ús dels Transformers no només es limiten al text escrit, també poden usar-se alhora en combinació amb veu o imatges, per exemple generant una descripció del contingut d’una imatge o una transcripció d’una nota d’àudio.

Però ja hem vist l’alt cost computacional d’entrenar les xarxes neuronals Transformers, fent que aquesta tecnologia es trobi només a l’abast de grans empreses que disposen de recursos econòmics suficient per accedir a infraestructures de computació d’alt rendiment. Per això, un dels principals reptes a nivell pràctic ara mateix, es que els  Transformers siguin més accessible per a les aplicacions Deep Learning convencionals.

Aquesta “democratització” dels Transformers s’està conseguint en bona part gràcies a l’esperit col.laboratiu de la comunitat d’investigació d’intel.ligencia artificial. Però també pel què es coneix com Transfer Learning, que bàsicament consisteix a entrenar un model per a una tasca i utilitzar els coneixements adquirits per a realitzar una tasca diferent. El resultat es que nombrosos conjunts de dades i treballs de recerca estan esdevenint d’accés obert i això ha permès que el Transfer Learning aplicat a Transformers hagi començat a canviar dràsticament la incorporació dels resultats de recerca en aplicacions comercials.

El millor exemple del què està succeint és Hugging Face, que s’ha convertit en una plataforma de referència que ofereix milers de models de Transformers d’última generació, pre-entrenats, que poden ser descarregats i utilitzats per qualsevol. Com a mostra del seu funcionament i accessibilitat, anem a programar un “Hello World” d’ús d’aquesta llibreria.

Primer de tot haurem d’instal.lar la llibreria amb:

pip install transformers

L’objecte més bàsic de la llibreria Transformers és la funció pipeline ():

from transformers import pipeline

Aquest objecte pipeline () facilita la integració del model amb el preprocessament i postprocessament necessaris per poder tractar un text (com veurem més endavant).  Considerem l’exemple de classificació d’analisi de sentiments que em esmentat abans. Usarem l’argument d’aquest objecte pipeline () per indicar que volem seleccionar un model preentrenat que realitzi l’anàlisi de sentiments d’un text (en anglès):

classifier = pipeline("sentiment-analysis")

Per usar aquest classificador simplement cal  cridar-lo passant-li com a argument el text que volem classificar:

classifier("I was very excited to visit the Sagrada Familia cathedral in Barcelona")

El mètode retorna si és positiu o negatiu i amb quina probabilitat:

[{'label': 'POSITIVE', 'score': 0.9996306896209717}]

Podem provar aquest classificador amb qualsevol altre text:

classifier("I am not comfortable with the test results I have obtained")
[{'label': 'NEGATIVE', 'score': 0.9996986389160156}]

Oi que sembla fàcil d’usar? Certament ho és, els enginyers de Hugging Face han fet una molt bona feina. Espero que hagi estat útil aquest primer contacte amb el codi.

El codi usat en aquest post es pot trobar en el Github de l’autor.