





"""simple docstring"""






from dataclasses import dataclass, field
from typing import Optional



@dataclass
class 	lowerCAmelCase					:

       '''simple docstring'''





       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot"""			,	metadata={"""help""": """Model name or path of model to be trained."""}							)
       lowerCAmelCase__						 =  field(
           default="""./"""			,	metadata={"""help""": """Save dir where model repo is cloned and models updates are saved to."""}							)
       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot-clean-train"""			,	metadata={"""help""": """Name or path of training dataset."""}							)
       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot-clean-valid"""			,	metadata={"""help""": """Name or path of validation dataset."""}							)
       lowerCAmelCase__						 =  field(default=2			,	metadata={"""help""": """Batch size for training."""}							)
       lowerCAmelCase__						 =  field(default=2			,	metadata={"""help""": """Batch size for evaluation."""}							)
       lowerCAmelCase__						 =  field(default=0.1			,	metadata={"""help""": """Value of weight decay."""}							)
       lowerCAmelCase__						 =  field(
           default=1_0000			,	metadata={"""help""": """Size of buffer used to shuffle streaming dataset."""}							)
       lowerCAmelCase__						 =  field(default=2e-4			,	metadata={"""help""": """Learning rate fo training."""}							)
       lowerCAmelCase__						 =  field(default="""cosine"""			,	metadata={"""help""": """Learning rate."""}							)
       lowerCAmelCase__						 =  field(
           default=750			,	metadata={"""help""": """Number of warmup steps in the learning rate schedule."""}							)
       lowerCAmelCase__						 =  field(
           default=16			,	metadata={"""help""": """Number of gradient accumulation steps."""}							)
       lowerCAmelCase__						 =  field(
           default=snake_case			,	metadata={"""help""": """Use gradient checkpointing to reduce memory footprint."""}							)
       lowerCAmelCase__						 =  field(default=5_0000			,	metadata={"""help""": """Maximum number of training steps."""}							)
       lowerCAmelCase__						 =  field(
           default=-1			,	metadata={"""help""": """Maximum number of evaluation steps. If -1 the full dataset is evaluated."""}							)
       lowerCAmelCase__						 =  field(default=1024			,	metadata={"""help""": """Sequence lengths used for training."""}							)
       lowerCAmelCase__						 =  field(default=1			,	metadata={"""help""": """Training seed."""}							)
       lowerCAmelCase__						 =  field(
           default=1024			,	metadata={"""help""": """Interval to save checkpoints. Measured as number of forward passes not training steps."""}			,	)
       lowerCAmelCase__						 =  field(
           default=snake_case			,	metadata={"""help""": """States path if the training should continue from a checkpoint folder."""}							)
       lowerCAmelCase__						 =  field(default=snake_case			,	metadata={"""help""": """If True the data is pretokenized."""}							)



@dataclass
class 	lowerCAmelCase					:

       '''simple docstring'''





       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot"""			,	metadata={"""help""": """Model name or path of model to be evaluated."""}							)
       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot-clean-valid"""			,	metadata={"""help""": """Name or path of validation dataset."""}							)
       lowerCAmelCase__						 =  field(default=2			,	metadata={"""help""": """Batch size used for evaluation."""}							)
       lowerCAmelCase__						 =  field(
           default=-1			,	metadata={"""help""": """Maximum number of evaluation steps. If -1 the full dataset is evaluated."""}							)
       lowerCAmelCase__						 =  field(default=1024			,	metadata={"""help""": """Length of sequences to be evaluated."""}							)
       lowerCAmelCase__						 =  field(default=1			,	metadata={"""help""": """Random seed used for evaluation."""}							)



@dataclass
class 	lowerCAmelCase					:

       '''simple docstring'''





       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot"""			,	metadata={"""help""": """Model name or path of model to be evaluated."""}							)
       lowerCAmelCase__						 =  field(default=snake_case			,	metadata={"""help""": """Number of workers used for code evaluation."""}							)
       lowerCAmelCase__						 =  field(
           default=snake_case			,	metadata={"""help""": """The number of human-eval tasks to run. If not included all tasks are evaluated."""}			,	)
       lowerCAmelCase__						 =  field(
           default=snake_case			,	metadata={"""help""": """Sample from the language model's output distribution."""}							)
       lowerCAmelCase__						 =  field(default=0.2			,	metadata={"""help""": """Sampling temperature used for generation."""}							)
       lowerCAmelCase__						 =  field(default=256			,	metadata={"""help""": """Maximum number of newly generated tokens."""}							)
       lowerCAmelCase__						 =  field(default=0			,	metadata={"""help""": """Top-k parameter used for generation."""}							)
       lowerCAmelCase__						 =  field(default=0.95			,	metadata={"""help""": """Top-p parameter used for nucleus sampling."""}							)
       lowerCAmelCase__						 =  field(default=10			,	metadata={"""help""": """Number of generations to run in parallel."""}							)
       lowerCAmelCase__						 =  field(
           default=200			,	metadata={"""help""": """Number of completions to generate for each sample."""}							)
       lowerCAmelCase__						 =  field(default=1			,	metadata={"""help""": """Random seed used for evaluation."""}							)
       lowerCAmelCase__						 =  field(
           default="""eval_results.json"""			,	metadata={"""help""": """Random seed used for evaluation."""}							)
       lowerCAmelCase__						 =  field(
           default="""0"""			,	metadata={"""help""": """Allow `code_eval` to execute Python code on machine"""}							)
       lowerCAmelCase__						 =  field(
           default=-1			,	metadata={
               """help""": (
                   """Determine which device to run the `text-generation` Pipeline on. -1 is CPU and any zero or positive"""
                   """ number corresponds to which GPU device id to run on."""
               )
           }			,	)



@dataclass
class 	lowerCAmelCase					:

       '''simple docstring'''





       lowerCAmelCase__						 =  field(
           default=snake_case			,	metadata={
               """help""": """The number of CPU cores to use for parallel preprocessing. Default uses the maximum available."""
           }			,	)
       lowerCAmelCase__						 =  field(
           default="""transformersbook/codeparrot"""			,	metadata={"""help""": """Folder or name of dataset to process."""}							)
       lowerCAmelCase__						 =  field(
           default="""codeparrot-clean"""			,	metadata={"""help""": """Folder to save processed processed dataset."""}							)
       lowerCAmelCase__						 =  field(
           default=10_0000			,	metadata={"""help""": """Number of files to save per JSON output file."""}							)
       lowerCAmelCase__						 =  field(default="""content"""			,	metadata={"""help""": """Column containing text data to process."""}							)
       lowerCAmelCase__						 =  field(
           default=1000			,	metadata={"""help""": """Maximum line length in file, otherwise file is filtered."""}							)
       lowerCAmelCase__						 =  field(
           default=100			,	metadata={"""help""": """Maximum mean line length in file, otherwise file is filtered."""}							)
       lowerCAmelCase__						 =  field(
           default=0.25			,	metadata={"""help""": """Maximum fraction of non-alphanumeric characters, otherwise file is filtered."""}							)
       lowerCAmelCase__						 =  field(
           default=1.5			,	metadata={"""help""": """Minimum character token ratio for the file, otherwise file is filtered."""}							)
       lowerCAmelCase__						 =  field(
           default=0.7			,	metadata={"""help""": """Probability for filtering config, test and uncommon files."""}							)
       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot"""			,	metadata={"""help""": """Name or path to the tokenizer."""}			,	)
       lowerCAmelCase__						 =  field(
           default=snake_case			,	metadata={"""help""": """If True, near-duplicate samples are removed."""}							)
       lowerCAmelCase__						 =  field(
           default=0.85			,	metadata={"""help""": """Jaccard threshold for near-duplicate samples."""}							)



@dataclass
class 	lowerCAmelCase					:

       '''simple docstring'''





       lowerCAmelCase__						 =  field(
           default="""gpt2"""			,	metadata={"""help""": """Base tokenizer to build new tokenizer from."""}							)
       lowerCAmelCase__						 =  field(
           default="""transformersbook/codeparrot-train"""			,	metadata={"""help""": """Dataset to train tokenizer on."""}							)
       lowerCAmelCase__						 =  field(default="""content"""			,	metadata={"""help""": """Column containing text data to process."""}							)
       lowerCAmelCase__						 =  field(default=20_0000			,	metadata={"""help""": """Number of examples to train tokenizer on."""}							)
       lowerCAmelCase__						 =  field(
           default=3_2768			,	metadata={"""help""": """Number of examples to train the tokenizer on."""}							)
       lowerCAmelCase__						 =  field(default="""codeparrot"""			,	metadata={"""help""": """Name of new tokenizer."""}							)
       lowerCAmelCase__						 =  field(default=snake_case			,	metadata={"""help""": """Push saved tokenizer to the hub."""}							)



@dataclass
class 	lowerCAmelCase					:

       '''simple docstring'''





       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot"""			,	metadata={"""help""": """Name or path to the tokenizer."""}							)
       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot-clean-train"""			,	metadata={"""help""": """Name or path to the dataset to pretokenize."""}							)
       lowerCAmelCase__						 =  field(
           default="""tokenized-codeparrot-train"""			,	metadata={"""help""": """Repo name of the pretokenized data."""}							)
       lowerCAmelCase__						 =  field(default=snake_case			,	metadata={"""help""": """Number of workers used for code evaluation."""}							)



@dataclass
class 	lowerCAmelCase					:

       '''simple docstring'''





       lowerCAmelCase__						 =  field(
           default="""gpt2-large"""			,	metadata={"""help""": """Configuration to use for model initialization."""}							)
       lowerCAmelCase__						 =  field(
           default="""codeparrot/codeparrot"""			,	metadata={"""help""": """Tokenizer attached to model."""}							)
       lowerCAmelCase__						 =  field(default="""codeparrot"""			,	metadata={"""help""": """Name of the created model."""}							)
       lowerCAmelCase__						 =  field(default=snake_case			,	metadata={"""help""": """Push saved tokenizer to the hub."""}							)













"""simple docstring"""






from itertools import product

def       __lowerCamelCase    (       SCREAMING_SNAKE_CASE,SCREAMING_SNAKE_CASE							)		->       list[int]:






       """simple docstring"""




       _UpperCAmelCase     =     sides_number
       _UpperCAmelCase     =     max_face_number * dice_number
       _UpperCAmelCase     =     [0] * (max_total + 1)

       _UpperCAmelCase     =     1
       _UpperCAmelCase     =     range(SCREAMING_SNAKE_CASE,max_face_number + 1							)
       for dice_numbers in product(SCREAMING_SNAKE_CASE,repeat=SCREAMING_SNAKE_CASE							):
              _UpperCAmelCase     =     sum(SCREAMING_SNAKE_CASE							)
              totals_frequencies[total] += 1

       return totals_frequencies

def       __lowerCamelCase    (       )		->       float:






       """simple docstring"""




       _UpperCAmelCase     =     total_frequency_distribution(
           sides_number=4,dice_number=9							)
       _UpperCAmelCase     =     total_frequency_distribution(
           sides_number=6,dice_number=6							)

       _UpperCAmelCase     =     0
       _UpperCAmelCase     =     9
       _UpperCAmelCase     =     4 * 9
       _UpperCAmelCase     =     6
       for peter_total in range(SCREAMING_SNAKE_CASE,max_peter_total + 1							):
              peter_wins_count += peter_totals_frequencies[peter_total] * sum(
                  colin_totals_frequencies[min_colin_total:peter_total]							)

       _UpperCAmelCase     =     (4**9) * (6**6)
       _UpperCAmelCase     =     peter_wins_count / total_games_number

       _UpperCAmelCase     =     round(SCREAMING_SNAKE_CASE,ndigits=7							)

       return rounded_peter_win_probability


if __name__ == "__main__":
    print(F'''{solution() = }''')






