Se lavori nel settore della scienza dei dati o dell’apprendimento automatico, è probabile che tu abbia già sentito il termine AI generativa, che si riferisce ad algoritmi AI in grado di creare nuovi contenuti come testi, immagini o audio. In questo articolo approfondiremo uno dei modelli di intelligenza artificiale generativa: il modello GPT. Come avrai intuito, GPT è un modello fondamentale di ChatGPT in grado di generare sequenze di testi.
Nello specifico, discuteremo a breve del processo di messa a punto e di generazione del testo di un modello GPT. Sebbene esistano molte librerie e piattaforme consolidate che possiamo utilizzare per gestire questa attività, spesso astraggono molti dettagli di implementazione, lasciandoci curiosi su ciò che realmente accade sotto il cofano.
Pertanto, esploreremo il processo di messa a punto e di generazione del testo nei dettagli di basso livello. Ciò significa che copriremo tutto in modo completo, dalla preelaborazione dei dati, alla costruzione del modello, all’impostazione della funzione di perdita, al processo di messa a punto e alla logica dietro la generazione del testo dopo la messa a punto del modello.
Quindi, senza ulteriori indugi, iniziamo con il set di dati che utilizzeremo per mettere a punto il nostro modello GPT!
Il set di dati che utilizzeremo è il Set di dati TED-talkche possiamo scaricare direttamente da HuggingFace Hub. È elencato come dotato di licenza CC-BY 4.0, quindi non è necessario preoccuparsi del copyright.
# Load all necessary libraries
!pip install datasetsimport torch
import numpy as np
from torch import nn
from transformers import GPT2Tokenizer, GPT2Config, GPT2Model, GPT2PreTrainedModel
from torch.optim import AdamW
from datasets import load_dataset
from tqdm import tqdm
from torch.nn import functional as F
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
device = 'cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_built() else 'cpu'
dataset = load_dataset("gigant/ted_descriptions")
print(len(dataset('train')))
'''
Output:
5705
'''
In totale, il set di dati comprende 5705 voci, ciascuna contenente un URL (URL) e una descrizione di un evento TED (descr). Ai fini di questo articolo utilizzeremo esclusivamente il file descr…
Fonte: towardsdatascience.com