pai/common/consts.py (87 lines of code) (raw):

# Copyright 2023 Alibaba, Inc. or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import enum import os # Default path for pai config file DEFAULT_CONFIG_PATH = os.environ.get( "PAI_CONFIG_PATH", os.path.join(os.path.expanduser("~"), ".pai", "config.json") ) # Default network type used to connect to PAI services DEFAULT_NETWORK_TYPE = os.environ.get("PAI_NETWORK_TYPE", None) # PAI VPC endpoint PAI_VPC_ENDPOINT = "pai-vpc.{}.aliyuncs.com" class Network(enum.Enum): VPC = "VPC" PUBLIC = "PUBLIC" @classmethod def from_string(cls, s: str) -> "Network": try: return cls[s.upper()] except KeyError: raise ValueError( "Invalid network type: %s, supported types are: %s" % (s, ", ".join(cls.__members__.keys())) ) class JobType(object): """PAI DLCJob/TrainingJob type.""" TFJob = "TFJob" PyTorchJob = "PyTorchJob" XGBoostJob = "XGBoostJob" MPIJob = "MPIJob" SUPPORTED_JOB_TYPEs = [TFJob, PyTorchJob, XGBoostJob, MPIJob] _JOB_TYPE_MAPPING = {job_type.lower(): job_type for job_type in SUPPORTED_JOB_TYPEs} @classmethod def normalize(cls, job_type): """Normalize given job_type. If given job_type is unknown, just returns the original data. """ return cls._JOB_TYPE_MAPPING.get(job_type.lower(), job_type) class ResourceAccessibility(object): PRIVATE = "PRIVATE" PUBLIC = "PUBLIC" class DataSourceType(object): NAS = "NAS" OSS = "OSS" class FileProperty(object): FILE = "FILE" DIRECTORY = "DIRECTORY" TABULAR = "TABULAR" class DataType(object): COMMON = "COMMON" PIC = "PIC" TEXT = "TEXT" VIDEO = "VIDEO" AUDIO = "AUDIO" class DatasetSourceType(object): USER = "USER" ITAG = "ITAG" PAI_PUBLIC_DATASET = "PAI_PUBLIC_DATASET" class ModelFormat(object): SavedModel = "SavedModel" FrozenPb = "FrozenPb" KerasH5 = "KerasH5" CaffePrototxt = "Caffe" ONNX = "ONNX" BladeModel = "BladeModel" PMML = "PMML" TorchScript = "TorchScript" TFLite = "TFLite" class FrameworkTypes(object): PyTorch = "PyTorch" TFLite = "TFLite" Keras = "Keras" Caffe = "Caffe" Blade = "Blade" Alink = "Alink" TensorFlow = "TensorFlow" INSTANCE_TYPE_LOCAL = "local" INSTANCE_TYPE_LOCAL_GPU = "local_gpu" class FileSystemInputScheme(object): # Standard/Extreme/CPFS 1.0 file system type NAS = "nas" # CPFS2.0 file system type CPFS = "cpfs" # BMCPFS file system type BMCPFS = "bmcpfs" class DefaultChannelName(object): MODEL = "model" CHECKPOINT = "checkpoints" TENSORBOARD = "tensorboard" class StoragePathCategory(object): """PAI builtin remote storage path.""" # For inference InferenceSrc = "inference_src" # For evaluation EvaluationSrc = "evaluation_src" # For training job TrainingSrc = "training_src" TrainingJob = "training_job" TrainData = "train_data" ModelData = "model_data" # For processing job ProcessingJob = "processing_job" ProcessingSrc = "processing_src" InputData = "input_data"