Llama AttributeError: 'bool' object has no attribute 'all_special_tokens'

Hi all,

while fine-tuning LLama3.1-8B-Instruct using Unsloth, I have encountered the following error:

Traceback (most recent call last):

File "/data/gpfs/projects/punim0478/guida/mfc_fine_tuning/code/multi_label.py", line 226, in <module>

fine_tuner.main()

File "/data/gpfs/projects/punim0478/guida/mfc_fine_tuning/code/multi_label.py", line 106, in main

self.model, self.tokenizer = FastLanguageModel.from_pretrained(

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/data/gpfs/projects/punim0478/guida/unsloth_env/lib/python3.11/site-packages/unsloth/models/loader.py", line 292, in from_pretrained

model, tokenizer = dispatch_model.from_pretrained(

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/data/gpfs/projects/punim0478/guida/unsloth_env/lib/python3.11/site-packages/unsloth/models/llama.py", line 1816, in from_pretrained

tokenizer = load_correct_tokenizer(

^^^^^^^^^^^^^^^^^^^^^^^

File "/data/gpfs/projects/punim0478/guida/unsloth_env/lib/python3.11/site-packages/unsloth/tokenizer_utils.py", line 557, in load_correct_tokenizer

tokenizer = _load_correct_tokenizer(

^^^^^^^^^^^^^^^^^^^^^^^^

File "/data/gpfs/projects/punim0478/guida/unsloth_env/lib/python3.11/site-packages/unsloth/tokenizer_utils.py", line 536, in _load_correct_tokenizer

if assert_same_tokenization(slow_tokenizer, fast_tokenizer):

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/data/gpfs/projects/punim0478/guida/unsloth_env/lib/python3.11/site-packages/unsloth/tokenizer_utils.py", line 266, in assert_same_tokenization

all_special_tokens = list(set(special_tokens + slow_tokenizer.all_special_tokens))

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

AttributeError: 'bool' object has no attribute 'all_special_tokens'

Any lead here? Here's how I define my classes:

class MFCFineTuner:

def __init__(self, model_name, output_dir, save_path, json_output_file, file_name, subset_size):

self.model_name = model_name

self.output_dir = output_dir

self.save_path = save_path

self.json_output_file = json_output_file

self.file_name = file_name

self.subset_size = subset_size

self.max_seq_length = 1000

self.dtype = None

self.load_in_4bit = True

self.system_instruction = PROMPT_MULTI

self.alpaca_prompt = """Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

### Instruction:

{}

### Input:

Text to analyze: {}

### Response:

{}"""

self.model = None

self.tokenizer = None

self.EOS_TOKEN = None

def main(self):

self.model, self.tokenizer = FastLanguageModel.from_pretrained(

model_name=self.model_name,

max_seq_length=self.max_seq_length,

dtype=self.dtype,

load_in_4bit=self.load_in_4bit,

cache_dir="/data/gpfs/projects/punim0478/guida/models",

# device_map="auto",

# trust_remote_code=True

)

self.EOS_TOKEN = self.tokenizer.eos_token

Thanks in advance! I have tried to use both the base model (Llama3.1-8B) and the Instruct model, in both cases trying both 8bit or full.