AttributeError: 'dict' object has no attribute 'full_determinism' when trying to train the model
I am trying to simply use the smallest bloom model to learn how to train or specialize the model to generate a new language.
I run into this error: AttributeError: 'dict' object has no attribute 'full_determinism'.
I executed pip install transformers so I am hoping it has the latest transformer library. Any help is much appreciated!
Full error message:
AttributeError Traceback (most recent call last)
Cell In[25], line 9
5 t = time.process_time()
6 #model = AutoModelForCausalLM.from_pretrained("bigscience/bloom-1b1", use_cache=True)
7 #tokenizer = AutoTokenizer.from_pretrained("bigscience/bloom-1b1")
----> 9 trainer = Trainer(
10 model=AutoModelForCausalLM.from_pretrained("bigscience/bloom-1b1"),
11 args=training_args,
12 train_dataset=dataset["train"]
13 )
14 t2 = time.process_time()
15 print("Chekpoint 1 elapsed time "+t2-t1)
File /opt/homebrew/lib/python3.11/site-packages/transformers/trainer.py:337, in Trainer.init(self, model, args, data_collator, train_dataset, eval_dataset, tokenizer, model_init, compute_metrics, callbacks, optimizers, preprocess_logits_for_metrics)
335 self.args = args
336 # Seed must be set before instantiating the model when using model
--> 337 enable_full_determinism(self.args.seed) if self.args.full_determinism else set_seed(self.args.seed)
338 self.hp_name = None
339 self.deepspeed = None
AttributeError: 'dict' object has no attribute 'full_determinism'
Here is my code-------------------------------------:
#Load the smallest Bloom tokenizer:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bigscience/bloom-1b1")
print("Done loading")
#Load the treaining dataset
dataset = load_dataset("text", data_files={"train": "FirstTrainingSet_clean_v1.txt"})
print(dataset)
#Define the training arguments:
training_args = {
"output_dir": "trained_model",
"num_train_epochs": 10,
"per_device_train_batch_size": 4,
"learning_rate": 1e-5,
"full_determinism":"False",
}
#Train the model:
from transformers import Trainer, AutoModelForCausalLM
import time
t = time.process_time()
#model = AutoModelForCausalLM.from_pretrained("bigscience/bloom-1b1", use_cache=True)
#tokenizer = AutoTokenizer.from_pretrained("bigscience/bloom-1b1")
trainer = Trainer(
model=AutoModelForCausalLM.from_pretrained("bigscience/bloom-1b1"),
args=training_args,
train_dataset=dataset["train"]
)
t2 = time.process_time()
print("Chekpoint 1 elapsed time "+t2-t)
trainer.train()
t3 = time.process_time()
print("Chekpoint 2 elapsed time [trainer.train()] "+t3-t2)
#save the trained model
trainer.save_model()
t4 = time.process_time()
print("Chekpoint 2 elapsed time [trainer.save_model()] "+t4-t3)
Hello, it seems to me like your args are a dict
rather than a TrainingArguments
instance. Please update as follows:
- training_args = {
- "output_dir": "trained_model",
- "num_train_epochs": 10,
- "per_device_train_batch_size": 4,
- "learning_rate": 1e-5,
- "full_determinism":"False",
}
+ training_args = TrainingArguments(
+ output_dir="trained_model",
+ num_train_epochs=10,
+ per_device_train_batch_size=4,
+ learning_rate=1e-5,
+ full_determinism=False,
+ )
Thanks for this advice, I was able to move beyond this step. For the benefit of others who might search this, I encountered another error related to my hardware Apple Silicon M2 mac. I used the following to get around those.
conda install -c apple tensorflow-deps
python -m pip install tensorflow-macos
python -m pip install tensorflow-metal
I also ran into an issue with pip time out so I had to use the following:
pip --default-timeout=5000 install tensorflow
I found these medium posts to be helpful:
https://medium.com/@faizififita1/huggingface-installation-on-apple-silicon-2022-m1-pro-max-ultra-m2-9c449b9b4c14
https://claytonpilat.medium.com/tutorial-tensorflow-on-an-m1-mac-using-jupyter-notebooks-and-miniforge-dbb0ef67bf90
Using TrainingArguments I'm getting this error
ImportError Traceback (most recent call last)
in <cell line: 5>()
3 model_name = model_checkpoint.split("/")[-1]
4
----> 5 training_args = TrainingArguments(
6 output_dir=f"{model_name}-finetuned-squad",
7 evaluation_strategy="epoch",
4 frames
/usr/local/lib/python3.10/dist-packages/transformers/training_args.py in _setup_devices(self)
1785 if not is_sagemaker_mp_enabled():
1786 if not is_accelerate_available(min_version="0.20.1"):
-> 1787 raise ImportError(
1788 "Using the Trainer
with PyTorch
requires accelerate>=0.20.1
: Please run pip install transformers[torch]
or pip install accelerate -U
"
1789 )
ImportError: Using the Trainer
with PyTorch
requires accelerate>=0.20.1
: Please run pip install transformers[torch]
or pip install accelerate -U