Views
No views yet
TeenyTinyLlama-160m-FaQuAD-NLI) fine-tuned on the FaQuAD-NLI dataset.torch.optim.AdamW (learning_rate = 4e-5, epsilon = 1e-8)transformers.pipeline:1from transformers import pipeline
2
3text = "<s>Qual a capital do Brasil?<s>A capital do Brasil é Brasília!</s>"
4
5classifier = pipeline("text-classification", model="nicholasKluge/TeenyTinyLlama-460m-FaQuAD-NLI")
6classifier(text)
7
8# >>> [{'label': 'SUITABLE', 'score': 0.9774010181427002}]1# Faquad-nli
2! pip install transformers datasets evaluate accelerate -q
3
4import evaluate
5import numpy as np
6from datasets import load_dataset, Dataset, DatasetDict
7from transformers import AutoTokenizer, DataCollatorWithPadding
8from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer
9
10# Load the task
11dataset = load_dataset("ruanchaves/faquad-nli")
12
13# Create a `ModelForSequenceClassification`
14model = AutoModelForSequenceClassification.from_pretrained(
15 "nicholasKluge/TeenyTinyLlama-460m",
16 num_labels=2,
17 id2label={0: "UNSUITABLE", 1: "SUITABLE"},
18 label2id={"UNSUITABLE": 0, "SUITABLE": 1}
19)
20
21tokenizer = AutoTokenizer.from_pretrained("nicholasKluge/TeenyTinyLlama-460m")
22
23# Format the dataset
24train = dataset['train'].to_pandas()
25train['text'] = train['question'] + tokenizer.bos_token + train['answer'] + tokenizer.eos_token
26train = train[['text', 'label']]
27train.labels = train.label.astype(int)
28train = Dataset.from_pandas(train)
29
30test = dataset['test'].to_pandas()
31test['text'] = test['question'] + tokenizer.bos_token + test['answer'] + tokenizer.eos_token
32test = test[['text', 'label']]
33test.labels = test.label.astype(int)
34test = Dataset.from_pandas(test)
35
36dataset = DatasetDict({
37 "train": train,
38 "test": test
39})
40
41# Preprocess the dataset
42def preprocess_function(examples):
43 return tokenizer(examples["text"], truncation=True)
44
45dataset_tokenized = dataset.map(preprocess_function, batched=True)
46
47# Create a simple data collactor
48data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
49
50# Use accuracy as evaluation metric
51accuracy = evaluate.load("accuracy")
52
53# Function to compute accuracy
54def compute_metrics(eval_pred):
55 predictions, labels = eval_pred
56 predictions = np.argmax(predictions, axis=1)
57 return accuracy.compute(predictions=predictions, references=labels)
58
59# Define training arguments
60training_args = TrainingArguments(
61 output_dir="checkpoints",
62 learning_rate=4e-5,
63 per_device_train_batch_size=16,
64 per_device_eval_batch_size=16,
65 num_train_epochs=3,
66 weight_decay=0.01,
67 evaluation_strategy="epoch",
68 save_strategy="epoch",
69 load_best_model_at_end=True,
70 push_to_hub=True,
71 hub_token="your_token_here",
72 hub_model_id="username/model-ID"
73)
74
75# Define the Trainer
76trainer = Trainer(
77 model=model,
78 args=training_args,
79 train_dataset=dataset_tokenized["train"],
80 eval_dataset=dataset_tokenized["test"],
81 tokenizer=tokenizer,
82 data_collator=data_collator,
83 compute_metrics=compute_metrics,
84)
85
86# Train!
87trainer.train()
88| Models | IMDB | FaQuAD-NLI | HateBr | Assin2 | AgNews | Average |
|---|---|---|---|---|---|---|
| BERTimbau-large | 93.58 | 92.26 | 91.57 | 88.97 | 94.11 | 92.10 |
| BERTimbau-small | 92.22 | 93.07 | 91.28 | 87.45 | 94.19 | 91.64 |
| TTL-460m | 91.64 | 91.18 | 92.28 | 86.43 | 94.42 | 91.19 |
| TTL-160m | 91.14 | 90.00 | 90.71 | 85.78 | 94.05 | 90.34 |
1@misc{correa24ttllama,
2 title = {TeenyTinyLlama: open-source tiny language models trained in Brazilian Portuguese},
3 author = {Corr{\^e}a, Nicholas Kluge and Falk, Sophia and Fatimah, Shiza and Sen, Aniket and De Oliveira, Nythamar},
4 journal={arXiv preprint arXiv:2401.16640},
5 year={2024}
6}
7
8@misc{correa24ttllama,
9 doi = {10.1016/j.mlwa.2024.100558},
10 url = {https://www.sciencedirect.com/science/article/pii/S2666827024000343},
11 title = {TeenyTinyLlama: open-source tiny language models trained in Brazilian Portuguese},
12 author = {Corr{\^e}a, Nicholas Kluge and Falk, Sophia and Fatimah, Shiza and Sen, Aniket and De Oliveira, Nythamar},
13 journal={Machine Learning With Applications},
14 publisher = {Springer},
15 year={2024}
16}