Nå skal vi sette opp simpletransformers til å ta imot dataene våre, og sette parameterene. Kjernfunksjonene er i bare tre linjer: Definere modellen, trene modellen, og evaluere modellen. Hos meg skjer det med kodelinjene:

    model = NERModel(family,transformersmodel , labels = tags,args=model_args)
    model.train_model(train_path, output_dir= out_d)
    result, model_outputs, predictions = model.eval_model(dev_path)

Jeg definerer disse variablene i andre linjer, for at det skal være enkelere å sette i gang sløyfer med flere eksperimenter. Min notebook for dette finner du her:

Parameterne for treningen er noe du kan eksperimentere med. Simpletransformers fikk nytt opplegg for å sette parametre til denne type oppgaver nå i 2020, så jeg måtte skrive om koden jeg hadde fra siste vinter. Her er mine parametre:

    model_args = NERArgs() # New args loading fall 2020
    model_args.train_batch_size = 32
    model_args.num_train_epochs = 3
    model_args.weight_decay = 0.001
    model_args.overwrite_output_dir = True
    model_args.silent = False
    model_args.save_steps = 200000

Jeg gjorde mine eksperimenter med åtte epoker, men tre skulle egentlig holde. Bruk 1 epoke først for å se at opplegget fungerer. Jeg har lagt til kode som skal lagre resultatene fra hvert eksperiment etter hvert som de kjører, og noe kode som samler alle eksperimentene til slutt.