# You must install transformers library first
# !pip install transformers
# Ignore warnings for the demo
# TODO: comment this out if you'd like to see the warnings
import logging
logging.disable(logging.WARNING)
This function generalizes the logistic/sigmoid to multiple classes
import torch
torch.set_printoptions(sci_mode=False) # no scientific notation on prints
# just to visualize outputs better
a = torch.tensor([2.0, -3.0, 5.0, 7.0])
a
tensor([ 2., -3., 5., 7.])
softmax = torch.nn.Softmax(dim=0) #the dimension of the input tensor
# for which you want it to sum to 1
out = softmax(a)
out
tensor([ 0.0059, 0.0000, 0.1185, 0.8756])
sum(out)
tensor(1.)
from transformers import pipeline
# "Distilled" version of GPT-2 (smaller but still decent performance)
generator = pipeline("text-generation", model="distilgpt2")
generator(
"Hath in the",
max_length=30,
num_return_sequences=5,
)
/Users/katherinekeith/miniconda3/envs/cs375/lib/python3.8/site-packages/transformers/generation/utils.py:1186: UserWarning: You have modified the pretrained model configuration to control generation. This is a deprecated strategy to control generation and will be removed soon, in a future version. Please use a generation configuration file (see https://huggingface.co/docs/transformers/main_classes/text_generation) warnings.warn(
[{'generated_text': 'Hath in the Middle East,” he said.\n\n\n\n"At the same time, I think it\'s interesting that we still'},
{'generated_text': 'Hath in the dark. The eyes of her father-in-law, Srinagar, are now glazed with red lights.\n\n'},
{'generated_text': 'Hath in the morning, the man was rushed to the scene and died in a hospital at the scene. (Published Thursday, Jan. 21,'},
{'generated_text': 'Hath in the United States.\n\n\nThe Obama administration․s attempt to build on the campaign rhetoric and the press conferences around it at'},
{'generated_text': 'Hath in the last few episodes.\n\n\n\n\n\nThis episode also includes exclusive material and the interview with Eileen Lee (Dr.'}]
# Why don't these sound like Shakespeare?
No fine-tuning on in-domain data.
classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")
classifier(
"while the total impact on grain production is unclear china has said the flooding slashed summer grain output by 11 percent from last year's harvest",
candidate_labels=["not about aid", "about aid"],
)
{'sequence': "while the total impact on grain production is unclear china has said the flooding slashed summer grain output by 11 percent from last year's harvest",
'labels': ['about aid', 'not about aid'],
'scores': [0.6267188191413879, 0.3732811510562897]}
import csv
import os
from transformers import DistilBertTokenizerFast, DistilBertForSequenceClassification
from transformers import Trainer, TrainingArguments
from transformers import AutoModelForSequenceClassification
import torch
from sklearn.metrics import accuracy_score
Load data
#change with your own path to HW 2 data
path_to_hw2_data = './data/triage/'
def load_triage_data(data_dir, split_name):
all_texts = []
all_labels = []
with open(os.path.join(data_dir, split_name + ".csv"),
newline='', mode="r", encoding="utf8") as infile:
reader = csv.DictReader(infile, delimiter="|")
for row in reader:
text = row["Text"]
label = int(row["Label"])
all_texts.append(text)
all_labels.append(label)
print(f'read {len(all_texts)} lines of data')
return all_texts, all_labels
train_texts, train_labels = load_triage_data(path_to_hw2_data, 'train')
read 21046 lines of data
dev_texts, dev_labels = load_triage_data(path_to_hw2_data, 'dev')
read 2573 lines of data
Tokenize
MAX_LENGTH = 20 #specify the maximum length of a sentence
MODEL_NAME = 'distilbert-base-uncased'
#DistilBERT is a small, fast, cheap and light Transformer model
tokenizer = DistilBertTokenizerFast.from_pretrained(MODEL_NAME) # The model_name needs to match our pre-trained model.
train_encodings = tokenizer(train_texts, truncation=True, padding=True, max_length=MAX_LENGTH)
dev_encodings = tokenizer(dev_texts, truncation=True, padding=True, max_length=MAX_LENGTH)
train_labels_encoded = torch.tensor(train_labels)
dev_labels_encoded = torch.tensor(dev_labels)
' '.join(train_encodings[0].tokens[0:MAX_LENGTH])
'[CLS] i would like to know when the national archives will begin to work [SEP] [PAD] [PAD] [PAD] [PAD] [PAD]'
' '.join(train_encodings[200].tokens[0:MAX_LENGTH])
'[CLS] night time loading takes some time under the flood ##lights [SEP] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD] [PAD]'
class MyDataset(torch.utils.data.Dataset):
def __init__(self, encodings, labels):
self.encodings = encodings
self.labels = labels
def __getitem__(self, idx):
item = {key: torch.tensor(val[idx]) for key, val in self.encodings.items()}
item['labels'] = torch.tensor(self.labels[idx])
return item
def __len__(self):
return len(self.labels)
train_dataset = MyDataset(train_encodings, train_labels_encoded)
dev_dataset = MyDataset(dev_encodings, dev_labels_encoded)
model = DistilBertForSequenceClassification.from_pretrained(MODEL_NAME, num_labels=2)
# Hyperparameters you need to set!
training_args = TrainingArguments(
num_train_epochs=1, # total number of training epochs
per_device_train_batch_size=50, # batch size per device during training
per_device_eval_batch_size=50, # batch size for evaluation
learning_rate=1e-5, # initial learning rate for Adam optimizer
output_dir='./results', # output directory
logging_steps=10, # number of steps to output logging (set lower because of small dataset size)
evaluation_strategy='steps', # evaluate during fine-tuning so that we can see progress
)
def compute_metrics(pred):
labels = pred.label_ids
preds = pred.predictions.argmax(axis=-1)
acc = accuracy_score(labels, preds)
return {
'accuracy': acc,
}
trainer = Trainer(
model=model, # the instantiated 🤗 Transformers model to be trained
args=training_args, # training arguments, defined above
train_dataset=train_dataset, # training dataset
eval_dataset=dev_dataset, # evaluation dataset (usually a validation set; here we just send our test set)
compute_metrics=compute_metrics # our custom evaluation function
)
trainer.train()
/Users/katherinekeith/miniconda3/envs/cs375/lib/python3.8/site-packages/transformers/optimization.py:306: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning warnings.warn( /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx])
| Step | Training Loss | Validation Loss | Accuracy |
|---|---|---|---|
| 10 | 0.702100 | 0.679824 | 0.592305 |
| 20 | 0.678100 | 0.664889 | 0.592693 |
| 30 | 0.667200 | 0.652154 | 0.592693 |
| 40 | 0.665000 | 0.642443 | 0.688302 |
| 50 | 0.638400 | 0.613920 | 0.691411 |
| 60 | 0.597900 | 0.588133 | 0.687136 |
| 70 | 0.588600 | 0.564596 | 0.737660 |
| 80 | 0.547000 | 0.548516 | 0.741935 |
| 90 | 0.561600 | 0.533032 | 0.753206 |
| 100 | 0.562800 | 0.531821 | 0.746211 |
| 110 | 0.547300 | 0.517024 | 0.759813 |
| 120 | 0.525600 | 0.511233 | 0.759425 |
| 130 | 0.515900 | 0.511245 | 0.758259 |
| 140 | 0.495500 | 0.508545 | 0.754761 |
| 150 | 0.489200 | 0.503313 | 0.761757 |
| 160 | 0.504100 | 0.499360 | 0.762145 |
| 170 | 0.494500 | 0.499739 | 0.764477 |
| 180 | 0.488700 | 0.503218 | 0.760979 |
| 190 | 0.544900 | 0.499092 | 0.761757 |
| 200 | 0.534500 | 0.497670 | 0.760202 |
| 210 | 0.476000 | 0.499546 | 0.762145 |
| 220 | 0.529300 | 0.494279 | 0.763700 |
| 230 | 0.475200 | 0.493959 | 0.763311 |
| 240 | 0.489200 | 0.492553 | 0.769918 |
| 250 | 0.507400 | 0.500709 | 0.759036 |
| 260 | 0.520600 | 0.490385 | 0.767198 |
| 270 | 0.494600 | 0.489512 | 0.766421 |
| 280 | 0.488100 | 0.489295 | 0.769530 |
| 290 | 0.471300 | 0.489661 | 0.765643 |
| 300 | 0.510800 | 0.490641 | 0.767586 |
| 310 | 0.481000 | 0.491523 | 0.767975 |
| 320 | 0.495500 | 0.490885 | 0.768752 |
| 330 | 0.461800 | 0.488755 | 0.766421 |
| 340 | 0.464300 | 0.488700 | 0.766421 |
| 350 | 0.497300 | 0.488610 | 0.769141 |
| 360 | 0.486800 | 0.488406 | 0.766032 |
| 370 | 0.462500 | 0.488761 | 0.766421 |
| 380 | 0.479400 | 0.488920 | 0.767198 |
| 390 | 0.548900 | 0.489771 | 0.769530 |
| 400 | 0.483900 | 0.489711 | 0.769141 |
| 410 | 0.544700 | 0.489442 | 0.768752 |
| 420 | 0.462700 | 0.489191 | 0.769141 |
/var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx]) /var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx])
TrainOutput(global_step=421, training_loss=0.5281096048423061, metrics={'train_runtime': 499.8907, 'train_samples_per_second': 42.101, 'train_steps_per_second': 0.842, 'total_flos': 108902690316960.0, 'train_loss': 0.5281096048423061, 'epoch': 1.0})
trainer.evaluate()
/var/folders/hw/ghdf3kcs6wl0q0hlk8nmlh3c0000gn/T/ipykernel_53374/3135598630.py:8: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). item['labels'] = torch.tensor(self.labels[idx])
{'eval_loss': 0.4891909658908844,
'eval_accuracy': 0.7691410804508356,
'eval_runtime': 7.294,
'eval_samples_per_second': 352.754,
'eval_steps_per_second': 7.129,
'epoch': 1.0}