Initialize FDConfig from either RolloutModelConfig or argparse.Namespace Args: config: Configuration object containing all parameters (either RolloutModelConfig or argparse.Namespace) Returns: FDConfig: Initialized FastDeploy configuration object
(args, ranks: int = 1, local_rank: int = 0)
| 1112 | |
| 1113 | |
| 1114 | def initialize_fd_config(args, ranks: int = 1, local_rank: int = 0) -> FDConfig: |
| 1115 | """Initialize FDConfig from either RolloutModelConfig or argparse.Namespace |
| 1116 | |
| 1117 | Args: |
| 1118 | config: Configuration object containing all parameters (either RolloutModelConfig or argparse.Namespace) |
| 1119 | |
| 1120 | Returns: |
| 1121 | FDConfig: Initialized FastDeploy configuration object |
| 1122 | """ |
| 1123 | # RL rollout |
| 1124 | paddle.set_default_dtype(args.dtype) |
| 1125 | model_config = ModelConfig(vars(args)) |
| 1126 | device_config = DeviceConfig(vars(args)) |
| 1127 | speculative_config = SpeculativeConfig(args.speculative_config) |
| 1128 | parallel_config = ParallelConfig(vars(args)) |
| 1129 | cache_config = CacheConfig(vars(args)) |
| 1130 | scheduler_config = SchedulerConfig(vars(args)) |
| 1131 | eplb_config = EPLBConfig(args.eplb_config) |
| 1132 | |
| 1133 | parallel_config.tensor_parallel_rank = local_rank % parallel_config.tensor_parallel_size |
| 1134 | parallel_config.data_parallel_rank = local_rank // parallel_config.tensor_parallel_size |
| 1135 | # config for DP |
| 1136 | if parallel_config.data_parallel_size > 1: |
| 1137 | max_chips_per_node = 16 if current_platform.is_iluvatar() else 8 |
| 1138 | parallel_config.local_data_parallel_id = parallel_config.data_parallel_rank % ( |
| 1139 | max_chips_per_node // parallel_config.tensor_parallel_size |
| 1140 | ) |
| 1141 | # config for EP |
| 1142 | if parallel_config.expert_parallel_size > 1: |
| 1143 | expert_parallel_rank = int(local_rank % parallel_config.expert_parallel_size) |
| 1144 | if isinstance(model_config.moe_num_experts, list): |
| 1145 | num_experts = model_config.moe_num_experts[0] + eplb_config.redundant_experts_num |
| 1146 | elif hasattr(model_config, "num_local_experts") and model_config.num_local_experts is not None: |
| 1147 | num_experts = model_config.num_local_experts + eplb_config.redundant_experts_num |
| 1148 | else: |
| 1149 | num_experts = model_config.moe_num_experts + eplb_config.redundant_experts_num |
| 1150 | num_experts_per_rank = num_experts // parallel_config.expert_parallel_size |
| 1151 | num_experts_start_offset = expert_parallel_rank * num_experts_per_rank |
| 1152 | parallel_config.expert_parallel_rank = expert_parallel_rank |
| 1153 | parallel_config.num_experts_per_rank = num_experts_per_rank |
| 1154 | parallel_config.num_experts_start_offset = num_experts_start_offset |
| 1155 | |
| 1156 | parallel_config.set_communicate_group() |
| 1157 | |
| 1158 | load_config = LoadConfig(vars(args)) |
| 1159 | |
| 1160 | graph_opt_config = GraphOptimizationConfig(args.graph_optimization_config) |
| 1161 | |
| 1162 | plas_attention_config = PlasAttentionConfig(args.plas_attention_config) |
| 1163 | |
| 1164 | early_stop_config = EarlyStopConfig(args.early_stop_config) |
| 1165 | |
| 1166 | structured_outputs_config: StructuredOutputsConfig = StructuredOutputsConfig(args=vars(args)) |
| 1167 | routing_replay_config = RoutingReplayConfig(args.routing_replay_config) |
| 1168 | |
| 1169 | # Note(tangbinhan): used for load_checkpoint |
| 1170 | model_config.pretrained_config.tensor_parallel_rank = parallel_config.tensor_parallel_rank |
| 1171 | model_config.pretrained_config.tensor_model_parallel_size = parallel_config.tensor_parallel_size |
no test coverage detected