





import importlib
import sys
from argparse import REMAINDER, ArgumentParser
from pathlib import Path

import torch_xla.distributed.xla_multiprocessing as xmp







def  _SCREAMING_SNAKE_CASE				(   )      ->      Any:
					__A	:						Dict       =				ArgumentParser(
					    description=(
					        'PyTorch TPU distributed training launch '
					        'helper utility that will spawn up '
					        'multiple distributed processes'
					    )  )

					# Optional arguments for the launch helper
					parser.add_argument('--num_cores'					,						type=lowerCamelCase_					,						default=1					,						help='Number of TPU cores to use (1 or 8).'  )

					# positional
					parser.add_argument(
					    'training_script'					,						type=lowerCamelCase_					,						help=(
					        'The full path to the single TPU training '
					        'program/script to be launched in parallel, '
					        'followed by all the arguments for the '
					        'training script'
					    )					,						)

					# rest from the training program
					parser.add_argument('training_script_args'					,						nargs=lowerCamelCase_  )

					return parser.parse_args()







def  _SCREAMING_SNAKE_CASE				(   )      ->      int:
					__A	:						List[str]       =				parse_args()

					# Import training_script as a module.
					__A	:						int       =				Path(args.training_script  )
					sys.path.append(str(script_fpath.parent.resolve()  )  )
					__A	:						str       =				script_fpath.stem
					__A	:						Optional[int]       =				importlib.import_module(lowerCamelCase_  )

					# Patch sys.argv
					__A	:						List[Any]       =				[args.training_script] + args.training_script_args + ['--tpu_num_cores', str(args.num_cores  )]
					xmp.spawn(mod._mp_fn					,						args=()					,						nprocs=args.num_cores  )


if __name__ == "__main__":
				main()








from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_tokenizers_available,
    is_torch_available,
)


SCREAMING_SNAKE_CASE       :      str												= {
    "configuration_llama": ["LLAMA_PRETRAINED_CONFIG_ARCHIVE_MAP", "LlamaConfig"],
}

try:
 if not is_sentencepiece_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE       :      Tuple												= ["LlamaTokenizer"]

try:
 if not is_tokenizers_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE       :      Optional[Any]												= ["LlamaTokenizerFast"]

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE       :      int												= [
     "LlamaForCausalLM",
     "LlamaModel",
     "LlamaPreTrainedModel",
     "LlamaForSequenceClassification",
 ]


if TYPE_CHECKING:
 from .configuration_llama import LLAMA_PRETRAINED_CONFIG_ARCHIVE_MAP, LlamaConfig

 try:
  if not is_sentencepiece_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_llama import LlamaTokenizer

 try:
  if not is_tokenizers_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_llama_fast import LlamaTokenizerFast

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_llama import LlamaForCausalLM, LlamaForSequenceClassification, LlamaModel, LlamaPreTrainedModel


else:
 import sys

 SCREAMING_SNAKE_CASE       :      Optional[int]												= _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)


