





import argparse
import logging
import pickle
from collections import Counter


logging.basicConfig(
    format='''%(asctime)s - %(levelname)s - %(name)s - %(message)s''', datefmt='''%m/%d/%Y %H:%M:%S''', level=logging.INFO
)
lowerCAmelCase_        =							logging.getLogger(__name__)

if __name__ == "__main__":
	lowerCAmelCase_        =							argparse.ArgumentParser(
	    description='''Token Counts for smoothing the masking probabilities in MLM (cf XLM/word2vec)'''
	)
	parser.add_argument(
	    '''--data_file''', type=str, default='''data/dump.bert-base-uncased.pickle''', help='''The binarized dataset.'''
	)
	parser.add_argument(
	    '''--token_counts_dump''', type=str, default='''data/token_counts.bert-base-uncased.pickle''', help='''The dump file.'''
	)
	parser.add_argument('''--vocab_size''', default=3_0_5_2_2, type=int)
	lowerCAmelCase_        =							parser.parse_args()

	logger.info(F'''Loading data from {args.data_file}''')
	with open(args.data_file, '''rb''') as fp:
		lowerCAmelCase_        =							pickle.load(fp)

	logger.info('''Counting occurrences for MLM.''')
	lowerCAmelCase_        =							Counter()
	for tk_ids in data:
		counter.update(tk_ids)
	lowerCAmelCase_        =							[0] * args.vocab_size
	for k, v in counter.items():
		lowerCAmelCase_        =							v

	logger.info(F'''Dump to {args.token_counts_dump}''')
	with open(args.token_counts_dump, '''wb''') as handle:
		pickle.dump(counts, handle, protocol=pickle.HIGHEST_PROTOCOL)







import unittest
from dataclasses import dataclass

import pytest

from accelerate.commands.config.config_args import SageMakerConfig
from accelerate.utils import ComputeEnvironment
from accelerate.utils.launch import _convert_nargs_to_dict




@dataclass
class        SCREAMING_SNAKE_CASE__					(		UpperCamelCase__ ):
 __SCREAMING_SNAKE_CASE							=      ComputeEnvironment.AMAZON_SAGEMAKER
 __SCREAMING_SNAKE_CASE							=      True
 __SCREAMING_SNAKE_CASE							=      '''ml.p3.2xlarge'''
 __SCREAMING_SNAKE_CASE							=      '''accelerate_sagemaker_execution_role'''
 __SCREAMING_SNAKE_CASE							=      '''hf-sm'''
 __SCREAMING_SNAKE_CASE							=      '''us-east-1'''
 __SCREAMING_SNAKE_CASE							=      1
 __SCREAMING_SNAKE_CASE							=      '''accelerate-sagemaker-1'''
 __SCREAMING_SNAKE_CASE							=      '''1.6'''
 __SCREAMING_SNAKE_CASE							=      '''4.4'''
 __SCREAMING_SNAKE_CASE							=      '''train.py'''
 __SCREAMING_SNAKE_CASE							=      [
     '''--model_name_or_path''',
     '''bert''',
     '''--do_train''',
     '''False''',
     '''--epochs''',
     '''3''',
     '''--learning_rate''',
     '''5e-5''',
     '''--max_steps''',
     '''50.5''',
 ]
 __SCREAMING_SNAKE_CASE							=      [
     '''--model_name_or_path''',
     '''bert''',
     '''--do_train''',
     '''--do_test''',
     '''False''',
     '''--do_predict''',
     '''--epochs''',
     '''3''',
     '''--learning_rate''',
     '''5e-5''',
     '''--max_steps''',
     '''50.5''',
 ]




class        SCREAMING_SNAKE_CASE__					(		unittest.TestCase ):



 def 							UpperCamelCase     (				self					):
        # If no defaults are changed, `to_kwargs` returns an empty dict.
        A__		   =		_convert_nargs_to_dict(MockLaunchConfig.success_training_script_args					)
        assert isinstance(converted_args['''model_name_or_path'''],__lowerCamelCase					)
        assert isinstance(converted_args['''do_train'''],__lowerCamelCase					)
        assert isinstance(converted_args['''epochs'''],__lowerCamelCase					)
        assert isinstance(converted_args['''learning_rate'''],__lowerCamelCase					)
        assert isinstance(converted_args['''max_steps'''],__lowerCamelCase					)

        with pytest.raises(__lowerCamelCase					):
               _convert_nargs_to_dict(MockLaunchConfig.fail_training_script_args					)





