tokenizer

#1
by mansoorhamidzadeh - opened

من این مدل رو برای bin classification فاین تیون کردم متاسفانه به این ارور بر خرودم
"Exception: data did not match any variant of untagged enum PyPreTokenizerTypeWrapper at line 212 column 3"

Part DP AI org

با سلام و وقت بخیر.
خیلی خرسندیم که از مدل توکابرت برای تست و یا کارهای خودتون استفاده میکنید.
لطفا نسخه دقیق کتابخانه های مورد استفاده را ذکر کنید.
همچنین برای اینکه راحت تر بتوانیم به شما کمک کنیم، یک نمونه کد (حتی الامکان کوتاه و حداقلی) که خطای فوق را بازتولید کند و ملزومات اجرا را به همراه داشته باشد، بفرمایید تا مشکل به صورت دقیق تر بررسی شود.

برای نمونه:

from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("PartAI/TookaBERT-Large")
model = AutoModelForMaskedLM.from_pretrained("PartAI/TookaBERT-Large")

text = "شهر برلین در کشور <mask> واقع شده است."

encoded_input = tokenizer(text, return_tensors='pt')


output = model(**encoded_input)
با تشکر

با سلام و وقت بخیر.
خیلی خرسندیم که از مدل توکابرت برای تست و یا کارهای خودتون استفاده میکنید.
لطفا نسخه دقیق کتابخانه های مورد استفاده را ذکر کنید.
همچنین برای اینکه راحت تر بتوانیم به شما کمک کنیم، یک نمونه کد (حتی الامکان کوتاه و حداقلی) که خطای فوق را بازتولید کند و ملزومات اجرا را به همراه داشته باشد، بفرمایید تا مشکل به صورت دقیق تر بررسی شود.

برای نمونه:

from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("PartAI/TookaBERT-Large")
model = AutoModelForMaskedLM.from_pretrained("PartAI/TookaBERT-Large")

text = "شهر برلین در کشور <mask> واقع شده است."

encoded_input = tokenizer(text, return_tensors='pt')


output = model(**encoded_input)
با تشکر

روزتون بخیر این model رو من داخل hugginface گذاشتم اونجا می تویند فایل و ارور ها رو ببیند
"mansoorhamidzadeh/TookaBert_sentiment"
و دقیقا موقع فراخوانی کردن وتکنایزر "tokenizer = AutoTokenizer.from_pretrained() اون ارور رو میده

با سلام و وقت بخیر.
خیلی خرسندیم که از مدل توکابرت برای تست و یا کارهای خودتون استفاده میکنید.
لطفا نسخه دقیق کتابخانه های مورد استفاده را ذکر کنید.
همچنین برای اینکه راحت تر بتوانیم به شما کمک کنیم، یک نمونه کد (حتی الامکان کوتاه و حداقلی) که خطای فوق را بازتولید کند و ملزومات اجرا را به همراه داشته باشد، بفرمایید تا مشکل به صورت دقیق تر بررسی شود.

برای نمونه:

from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("PartAI/TookaBERT-Large")
model = AutoModelForMaskedLM.from_pretrained("PartAI/TookaBERT-Large")

text = "شهر برلین در کشور <mask> واقع شده است."

encoded_input = tokenizer(text, return_tensors='pt')


output = model(**encoded_input)
با تشکر

بعد از ساختن یک space ارور که می می گیرم برای وجود نداشتن
vocab
برای توکنایزر هست

با سلام و وقت بخیر.
خیلی خرسندیم که از مدل توکابرت برای تست و یا کارهای خودتون استفاده میکنید.
لطفا نسخه دقیق کتابخانه های مورد استفاده را ذکر کنید.
همچنین برای اینکه راحت تر بتوانیم به شما کمک کنیم، یک نمونه کد (حتی الامکان کوتاه و حداقلی) که خطای فوق را بازتولید کند و ملزومات اجرا را به همراه داشته باشد، بفرمایید تا مشکل به صورت دقیق تر بررسی شود.

برای نمونه:

from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("PartAI/TookaBERT-Large")
model = AutoModelForMaskedLM.from_pretrained("PartAI/TookaBERT-Large")

text = "شهر برلین در کشور <mask> واقع شده است."

encoded_input = tokenizer(text, return_tensors='pt')


output = model(**encoded_input)
با تشکر

Exception Traceback (most recent call last)
Cell In[22], line 1
----> 1 tokenize = BertTokenizerFast.from_pretrained("/run/media/mansoor/225B7E7F185EA6D6/content/t1")

File ~/anaconda3/envs/Sentence_similarity/lib/python3.8/site-packages/transformers/tokenization_utils_base.py:1788, in PreTrainedTokenizerBase.from_pretrained(cls, pretrained_model_name_or_path, *init_inputs, **kwargs)
1785 else:
1786 logger.info("loading file {} from cache at {}".format(file_path, resolved_vocab_files[file_id]))
-> 1788 return cls._from_pretrained(
1789 resolved_vocab_files, pretrained_model_name_or_path, init_configuration, *init_inputs, **kwargs
1790 )

File ~/anaconda3/envs/Sentence_similarity/lib/python3.8/site-packages/transformers/tokenization_utils_base.py:1860, in PreTrainedTokenizerBase._from_pretrained(cls, resolved_vocab_files, pretrained_model_name_or_path, init_configuration, *init_inputs, **kwargs)
1858 # Instantiate tokenizer.
1859 try:
-> 1860 tokenizer = cls(*init_inputs, **init_kwargs)
1861 except OSError:
1862 raise OSError(
1863 "Unable to load vocabulary from file. "
1864 "Please check that the provided vocabulary is accessible and not corrupted."
1865 )

File ~/anaconda3/envs/Sentence_similarity/lib/python3.8/site-packages/transformers/models/bert/tokenization_bert_fast.py:177, in BertTokenizerFast.init(self, vocab_file, tokenizer_file, do_lower_case, unk_token, sep_token, pad_token, cls_token, mask_token, tokenize_chinese_chars, strip_accents, **kwargs)
163 def init(
164 self,
165 vocab_file,
(...)
175 **kwargs
176 ):
--> 177 super().init(
178 vocab_file,
179 tokenizer_file=tokenizer_file,
180 do_lower_case=do_lower_case,
181 unk_token=unk_token,
182 sep_token=sep_token,
183 pad_token=pad_token,
184 cls_token=cls_token,
185 mask_token=mask_token,
186 tokenize_chinese_chars=tokenize_chinese_chars,
187 strip_accents=strip_accents,
188 **kwargs,
189 )
191 pre_tok_state = json.loads(self.backend_tokenizer.normalizer.getstate())
192 if (
193 pre_tok_state.get("do_lower_case", do_lower_case) != do_lower_case
194 or pre_tok_state.get("strip_accents", strip_accents) != strip_accents
195 ):

File ~/anaconda3/envs/Sentence_similarity/lib/python3.8/site-packages/transformers/tokenization_utils_fast.py:93, in PreTrainedTokenizerFast.init(self, *args, **kwargs)
86 raise ValueError(
87 "Cannot instantiate this tokenizer from a slow version. If it's based on sentencepiece, make sure you "
88 "have sentencepiece installed."
89 )
91 if fast_tokenizer_file is not None and not from_slow:
92 # We have a serialization from tokenizers which let us directly build the backend
---> 93 fast_tokenizer = TokenizerFast.from_file(fast_tokenizer_file)
94 elif slow_tokenizer is not None:
95 # We need to convert a slow tokenizer to build the backend
96 fast_tokenizer = convert_slow_tokenizer(slow_tokenizer)

Exception: data did not match any variant of untagged enum PyPreTokenizerTypeWrapper at line 212 column 3

Part DP AI org
با سلام و وقت بخیر،

مساله‌ای که وجود دارد این است که تایپ توکنایزر مدل توکابرت با توکنایزر برت انگلیسی متفاوت است.

توکنایزر استفاده شده در توکابرت از جنس BPE است چرا که این مدل توکنایزر در سال‌های اخیر رواج بیشتری داشته است.

نحوه استفاده صحیح از این توکنایزر به یکی از دو شکل زیر است:

from transformers import AutoTokenizer, PreTrainedTokenizerFast

# Method1: In this way the Huggingface library determines the type of the tokenizer from tokenizer_config.json
tokenizer = AutoTokenizer.from_pretrained('mansoorhamidzadeh/TookaBert_sentiment')
# Method2: By specifying the correct type for the TookaBERT tokenizer that matches tokenizer_config.json
tokenizer = PreTrainedTokenizerFast.from_pretrained('mansoorhamidzadeh/TookaBert_sentiment')
امیدوارم که توانسته باشم شما را درست راهنمایی کنم.

موفق باشید

mohalisad changed discussion status to closed
Part DP AI org
با سلام و وقت به خیر @mansoorhamidzadeh

من مشکل Inference Widget را که گفتید را بیشتر بررسی کردم. متاسفانه این مشکل از هاب هاگینگ فیس است و دو هفته است که این مشکل جدید ریپورت شده است. باید منتظر ماند که هاگینگ فیس این مشکل را بر طرف کند.

این مشکل به خاطر نوع توکنایزر نیست، در واقع این باگ جدید باعث شده است که PreTokenizer استفاده شده در این پروژه که از نوع Metaspace است نتواند لود شود.

برای مطالعه بیشتر به لینک‌های زیر مراجعه کنید:

link1
link2

موفق باشید
mohalisad changed discussion status to open
با سلام و وقت به خیر @mansoorhamidzadeh

من مشکل Inference Widget را که گفتید را بیشتر بررسی کردم. متاسفانه این مشکل از هاب هاگینگ فیس است و دو هفته است که این مشکل جدید ریپورت شده است. باید منتظر ماند که هاگینگ فیس این مشکل را بر طرف کند.

این مشکل به خاطر نوع توکنایزر نیست، در واقع این باگ جدید باعث شده است که PreTokenizer استفاده شده در این پروژه که از نوع Metaspace است نتواند لود شود.

برای مطالعه بیشتر به لینک‌های زیر مراجعه کنید:

link1
link2

موفق باشید

خیلی ممنون از پیگیریتون امیدوارم که این باگ رو سریع تر رفع کنند

Part DP AI org

با سلام و وقت به خیر @mansoorhamidzadeh

باگ هاگینگ فیس برطرف شد و الان مدل شما در هاب کار می کند.

موفق باشید

mohalisad changed discussion status to closed

Sign up or log in to comment