Spaces:
Runtime error
Runtime error
| # Copyright (c) Facebook, Inc. and its affiliates. | |
| # | |
| # This source code is licensed under the MIT license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| from enum import Enum, EnumMeta | |
| from typing import List | |
| class StrEnumMeta(EnumMeta): | |
| # this is workaround for submitit pickling leading to instance checks failing in hydra for StrEnum, see | |
| # https://github.com/facebookresearch/hydra/issues/1156 | |
| def __instancecheck__(cls, other): | |
| return "enum" in str(type(other)) | |
| class StrEnum(Enum, metaclass=StrEnumMeta): | |
| def __str__(self): | |
| return self.value | |
| def __eq__(self, other: str): | |
| return self.value == other | |
| def __repr__(self): | |
| return self.value | |
| def __hash__(self): | |
| return hash(str(self)) | |
| def ChoiceEnum(choices: List[str]): | |
| """return the Enum class used to enforce list of choices""" | |
| return StrEnum("Choices", {k: k for k in choices}) | |
| LOG_FORMAT_CHOICES = ChoiceEnum(["json", "none", "simple", "tqdm"]) | |
| DDP_BACKEND_CHOICES = ChoiceEnum( | |
| [ | |
| "c10d", # alias for pytorch_ddp | |
| "fully_sharded", # FullyShardedDataParallel from fairscale | |
| "legacy_ddp", | |
| "no_c10d", # alias for legacy_ddp | |
| "pytorch_ddp", | |
| "slowmo", | |
| ] | |
| ) | |
| DDP_COMM_HOOK_CHOICES = ChoiceEnum(["none", "fp16"]) | |
| DATASET_IMPL_CHOICES = ChoiceEnum(["raw", "lazy", "cached", "mmap", "fasta", "huffman"]) | |
| GENERATION_CONSTRAINTS_CHOICES = ChoiceEnum(["ordered", "unordered"]) | |
| GENERATION_DECODING_FORMAT_CHOICES = ChoiceEnum( | |
| ["unigram", "ensemble", "vote", "dp", "bs"] | |
| ) | |
| ZERO_SHARDING_CHOICES = ChoiceEnum(["none", "os"]) | |
| PIPELINE_CHECKPOINT_CHOICES = ChoiceEnum(["always", "never", "except_last"]) | |
| PRINT_ALIGNMENT_CHOICES = ChoiceEnum(["hard", "soft"]) | |