From 4390cf73cac69e36c56148ad61852e39d193b7c8 Mon Sep 17 00:00:00 2001 From: AmberLJC Date: Thu, 21 Sep 2023 15:30:27 -0400 Subject: [PATCH 1/6] auxo --- benchmark/configs/others/auxo.yml | 51 +++ examples/auxo/README.md | 1 + examples/auxo/aggregator.py | 583 ++++++++++++++++++++++++++++++ examples/auxo/client_manager.py | 257 +++++++++++++ examples/auxo/client_metadata.py | 17 + examples/auxo/clustering.py | 357 ++++++++++++++++++ examples/auxo/config.py | 16 + examples/auxo/config.yml | 6 + examples/auxo/executor.py | 187 ++++++++++ examples/auxo/resource_manager.py | 59 +++ examples/auxo/utils/helper.py | 15 + examples/auxo/utils/klkmeans.py | 37 ++ 12 files changed, 1586 insertions(+) create mode 100644 benchmark/configs/others/auxo.yml create mode 100644 examples/auxo/README.md create mode 100644 examples/auxo/aggregator.py create mode 100644 examples/auxo/client_manager.py create mode 100644 examples/auxo/client_metadata.py create mode 100644 examples/auxo/clustering.py create mode 100644 examples/auxo/config.py create mode 100644 examples/auxo/config.yml create mode 100644 examples/auxo/executor.py create mode 100644 examples/auxo/resource_manager.py create mode 100644 examples/auxo/utils/helper.py create mode 100644 examples/auxo/utils/klkmeans.py diff --git a/benchmark/configs/others/auxo.yml b/benchmark/configs/others/auxo.yml new file mode 100644 index 00000000..a372979b --- /dev/null +++ b/benchmark/configs/others/auxo.yml @@ -0,0 +1,51 @@ +# Configuration file of fed_hetero experiment + +# ========== Cluster configuration ========== +# ip address of the parameter server (need 1 GPU process) +ps_ip: localhost +ps_port: 12345 + +# ip address of each worker:# of available gpus process on each gpu in this node +# Note that if we collocate ps and worker on same GPU, then we need to decrease this number of available processes on that GPU by 1 +# E.g., master node has 4 available processes, then 1 for the ps, and worker should be set to: worker:3 +worker_ips: + - localhost:[10,10,0,0] # worker_ip: [(# processes on gpu) for gpu in available_gpus] eg. 10.0.0.2:[4,4,4,4] This node has 4 gpus, each gpu has 4 processes. + +exp_path: $FEDSCALE_HOME/examples/auxo + +# Entry function of executor and aggregator under $exp_path +executor_entry: executor.py + +aggregator_entry: aggregator.py + +auth: + ssh_user: "" + ssh_private_key: ~/.ssh/id_rsa + +# cmd to run before we can indeed run FAR (in order) +setup_commands: + - source $HOME/anaconda3/bin/activate fedscale + +# ========== Additional job configuration ========== +# Default parameters are specified in config_parser.py, wherein more description of the parameter can be found + +job_conf: + - job_name: auxo_femnist # Generate logs under this folder: log_path/job_name/time_stamp + - log_path: $FEDSCALE_HOME/benchmark # Path of log files + - num_participants: 200 # Number of participants per round, we use K=100 in our paper, large K will be much slower + - data_set: femnist # Dataset: openImg, google_speech, stackoverflow + - data_dir: $FEDSCALE_HOME/benchmark/dataset/data/femnist # Path of the dataset + - data_map_file: $FEDSCALE_HOME/benchmark/dataset/data/femnist/client_data_mapping/train.csv # Allocation of data to each client, turn to iid setting if not provided + - device_conf_file: $FEDSCALE_HOME/benchmark/dataset/data/device_info/client_device_capacity # Path of the client trace + - device_avail_file: $FEDSCALE_HOME/benchmark/dataset/data/device_info/client_behave_trace + - model: resnet18 # NOTE: Please refer to our model zoo README and use models for these small image (e.g., 32x32x3) inputs +# - model_zoo: fedscale-torch-zoo + - eval_interval: 20 # How many rounds to run a testing on the testing set + - rounds: 1000 # Number of rounds to run this training. We use 1000 in our paper, while it may converge w/ ~400 rounds + - filter_less: 0 # Remove clients w/ less than 21 samples + - num_loaders: 2 + - local_steps: 10 + - learning_rate: 0.05 + - batch_size: 20 + - test_bsz: 20 + - use_cuda: True diff --git a/examples/auxo/README.md b/examples/auxo/README.md new file mode 100644 index 00000000..11d5722a --- /dev/null +++ b/examples/auxo/README.md @@ -0,0 +1 @@ +# Auxo diff --git a/examples/auxo/aggregator.py b/examples/auxo/aggregator.py new file mode 100644 index 00000000..329f9840 --- /dev/null +++ b/examples/auxo/aggregator.py @@ -0,0 +1,583 @@ +# -*- coding: utf-8 -*- +import logging + +from fedscale.cloud.aggregation.aggregator import * +from client_manager import HeterClientManager +from resource_manager import AuxoResourceManager +from utils.helper import * + +class AuxoAggregator(Aggregator): + def __init__(self, args): + super().__init__(args) + + self.sampled_participants = [[]] + self.sampled_executors = [[]] + self.round_stragglers = [[]] + self.stats_util_accumulator = [[]] + self.loss_accumulator = [[]] + self.client_training_results = [[]] + self.test_result_accumulator = [[]] + self.virtual_client_clock = [[]] + self.testing_history = [{'data_set': args.data_set, 'model': args.model, 'sample_mode': args.sample_mode, + 'gradient_policy': args.gradient_policy, 'task': args.task, + 'perf': collections.OrderedDict()}] + + self.model_in_update = [0] + # self.last_saved_round = [0] + self.tasks_round = [0] + self.global_virtual_clock = [0.] + self.round_duration = [0.] + self.model_update_size = [0.] + self.round = [0] + + self.stop_cluster = 0 + self.split_cluster = 1 + self.num_split = 2 + self.resource_manager = AuxoResourceManager(self.experiment_mode) + + def init_model(self): + """Initialize the model""" + if self.args.engine == commons.TENSORFLOW: + self.model_wrapper = [TensorflowModelAdapter(init_model())] + elif self.args.engine == commons.PYTORCH: + self.model_wrapper = [TorchModelAdapter( + init_model(), + optimizer=TorchServerOptimizer( + self.args.gradient_policy, self.args, self.device))] + else: + raise ValueError(f"{self.args.engine} is not a supported engine.") + self.model_weights = [self.model_wrapper[0].get_weights()] + + def init_client_manager(self, args): + """ Initialize client sampler + + Args: + args (dictionary): Variable arguments for fedscale runtime config. defaults to the setup in arg_parser.py + + Returns: + ClientManager: The client manager class + + Currently we implement two client managers: + + 1. Random client sampler - it selects participants randomly in each round + [Ref]: https://arxiv.org/abs/1902.01046 + + 2. Oort sampler + Oort prioritizes the use of those clients who have both data that offers the greatest utility + in improving model accuracy and the capability to run training quickly. + [Ref]: https://www.usenix.org/conference/osdi21/presentation/lai + + 3. Auxo: Client Heterogeneity Manager + [Ref]: https://arxiv.org/abs/2210.16656 + """ + + # sample_mode: random or oort + client_manager = HeterClientManager(args.sample_mode, args=args) + + return client_manager + + def event_monitor(self): + """Activate event handler according to the received new message + """ + logging.info("Start monitoring events ...") + + while True: + # Broadcast events to clients + if len(self.broadcast_events_queue) > 0: + current_event = self.broadcast_events_queue.popleft() + logging.info(f"Event {current_event} is broadcasted to clients") + event_type, cohort_id = decode_msg(current_event) + + if event_type in (commons.UPDATE_MODEL, commons.MODEL_TEST): + self.dispatch_client_events(current_event) + + elif event_type == commons.START_ROUND: + self.dispatch_client_events(generate_msg(commons.CLIENT_TRAIN, cohort_id)) + + elif event_type == 'split': + self.dispatch_client_events(current_event) + + elif event_type == commons.SHUT_DOWN: + self.dispatch_client_events(current_event) + break + + # Handle events queued on the aggregator + elif len(self.sever_events_queue) > 0: + + client_id, current_event, meta, data = self.sever_events_queue.popleft() + logging.info(f"Event {current_event} is received from client {client_id}") + event_type, cohort_id = decode_msg(current_event) + + if event_type == commons.UPLOAD_MODEL: + self.client_completion_handler( + self.deserialize_response(data), cohort_id) + logging.info(f"[Cohort {cohort_id}] Client {client_id} has completed the task. {len(self.stats_util_accumulator[cohort_id])} v.s. {self.tasks_round[cohort_id]}") + if len(self.stats_util_accumulator[cohort_id]) == self.tasks_round[cohort_id]: + self.round_completion_handler(cohort_id) + + elif event_type == commons.MODEL_TEST: + self.testing_completion_handler( + client_id, self.deserialize_response(data), cohort_id) + else: + logging.error(f"Event {current_event} is not defined") + + else: + # execute every 100 ms + time.sleep(0.1) + + def CLIENT_REGISTER(self, request, context): + """FL TorchClient register to the aggregator + + Args: + request (RegisterRequest): Registeration request info from executor. + + Returns: + ServerResponse: Server response to registeration request + + """ + + # NOTE: client_id = executor_id in deployment, + # while multiple client_id uses the same executor_id (VMs) in simulations + executor_id = request.executor_id + executor_info = self.deserialize_response(request.executor_info) + if executor_id not in self.individual_client_events: + # logging.info(f"Detect new client: {executor_id}, executor info: {executor_info}") + self.individual_client_events[executor_id] = collections.deque() + else: + logging.info(f"Previous client: {executor_id} resumes connecting") + + # We can customize whether to admit the clients here + self.executor_info_handler(executor_id, executor_info) + dummy_data = self.serialize_response(generate_msg(commons.DUMMY_RESPONSE, 0)) + + return job_api_pb2.ServerResponse(event=generate_msg(commons.DUMMY_EVENT, 0), + meta=dummy_data, data=dummy_data) + + def CLIENT_PING(self, request, context): + """Handle client ping requests + + Args: + request (PingRequest): Ping request info from executor. + + Returns: + ServerResponse: Server response to ping request + + """ + # NOTE: client_id = executor_id in deployment, + # while multiple client_id may use the same executor_id (VMs) in simulations + executor_id, client_id = request.executor_id, request.client_id + response_data = response_msg = generate_msg(commons.DUMMY_RESPONSE, 0) + + if len(self.individual_client_events[executor_id]) == 0: + # send dummy response + current_event = generate_msg(commons.DUMMY_EVENT, 0) + response_data = response_msg = current_event + else: + current_event = self.individual_client_events[executor_id].popleft() + event_type, cohort_id = decode_msg(current_event) + if event_type == commons.CLIENT_TRAIN: + response_msg, response_data = self.create_client_task( + executor_id, cohort_id) + if response_msg is None: + current_event = generate_msg(commons.DUMMY_EVENT, 0) + if self.experiment_mode != commons.SIMULATION_MODE: + self.individual_client_events[executor_id].append( + commons.CLIENT_TRAIN) + elif event_type == commons.MODEL_TEST: + # TODO: remove fedscale test and add individual client testing + response_msg = self.get_test_config(client_id) + elif event_type == commons.UPDATE_MODEL: + response_data = self.model_wrapper[cohort_id].get_weights() + elif event_type == commons.SHUT_DOWN: + response_msg = self.get_shutdown_config(executor_id) + + response_msg, response_data = self.serialize_response( + response_msg), self.serialize_response(response_data) + # NOTE: in simulation mode, response data is pickle for faster (de)serialization + response = job_api_pb2.ServerResponse(event=current_event, + meta=response_msg, data=response_data) + if decode_msg(current_event)[0] != commons.DUMMY_EVENT: + logging.info(f"Issue EVENT ({current_event}) to EXECUTOR ({executor_id})") + + return response + + def CLIENT_EXECUTE_COMPLETION(self, request, context): + """FL clients complete the execution task. + + Args: + request (CompleteRequest): Complete request info from executor. + + Returns: + ServerResponse: Server response to job completion request + + """ + executor_id, client_id, event = request.executor_id, request.client_id, request.event + execution_status, execution_msg = request.status, request.msg + meta_result, data_result = request.meta_result, request.data_result + event_type, cohort_id = decode_msg(event) + if event_type == commons.CLIENT_TRAIN: + # Training results may be uploaded in CLIENT_EXECUTE_RESULT request later, + # so we need to specify whether to ask client to do so (in case of straggler/timeout in real FL). + if execution_status is False: + logging.error(f"Executor {executor_id} fails to run client {client_id}, due to {execution_msg}") + + if self.resource_manager.has_next_task(executor_id): + # NOTE: we do not pop the train immediately in simulation mode, + # since the executor may run multiple clients + if commons.CLIENT_TRAIN not in self.individual_client_events[executor_id]: + self.individual_client_events[executor_id].append(generate_msg(commons.CLIENT_TRAIN, cohort_id)) + + elif event_type in (commons.MODEL_TEST, commons.UPLOAD_MODEL): + self.add_event_handler( + executor_id, event, meta_result, data_result) + else: + logging.error(f"Received undefined event {event} from client {client_id}") + + return self.CLIENT_PING(request, context) + + + def create_client_task(self, executor_id, cohort_id): + """Issue a new client training task to specific executor + + Args: + executorId (int): Executor Id. + cohort_id (int): Cohort Id. + + Returns: + tuple: Training config for new task. (dictionary, PyTorch or TensorFlow module) + + """ + next_client_id = self.resource_manager.get_next_task(executor_id, cohort_id) + train_config = None + # NOTE: model = None then the executor will load the global model broadcasted in UPDATE_MODEL + if next_client_id is not None: + config = self.get_client_conf(next_client_id) + train_config = {'client_id': next_client_id, 'task_config': config, 'cohort_id': cohort_id} + + return train_config, self.model_wrapper[cohort_id].get_weights() + + + def client_completion_handler(self, results, cohort_id): + """We may need to keep all updates from clients, + if so, we need to append results to the cache + + Args: + results (dictionary): client's training result + + """ + # Format: + # -results = {'client_id':client_id, 'update_weight': model_param, 'moving_loss': round_train_loss, + # 'trained_size': count, 'wall_duration': time_cost, 'success': is_success 'utility': utility} + + if self.args.gradient_policy in ['q-fedavg']: + self.client_training_results[cohort_id].append(results) + # Feed metrics to client sampler + self.stats_util_accumulator[cohort_id].append(results['utility']) + self.loss_accumulator[cohort_id].append(results['moving_loss']) + + self.client_manager.register_feedback(results['client_id'], results['utility'], + auxi=math.sqrt( + results['moving_loss']), + time_stamp=self.round[cohort_id], + duration=self.virtual_client_clock[cohort_id][results['client_id']]['computation'] + + self.virtual_client_clock[cohort_id][results['client_id']]['communication'], + w_new = results['update_weight'], + w_old = self.model_wrapper[cohort_id].get_weights(), + cohort_id=cohort_id + ) + + # ================== Aggregate weights ====================== + self.update_lock.acquire() + + self.model_in_update[cohort_id] += 1 + self.update_weight_aggregation(results, cohort_id) + + self.update_lock.release() + + def tictak_client_tasks(self, sampled_clients, num_clients_to_collect, cohort_id): + """Record sampled client execution information in last round. In the SIMULATION_MODE, + further filter the sampled_client and pick the top num_clients_to_collect clients. + + Args: + sampled_clients (list of int): Sampled clients from client manager + num_clients_to_collect (int): The number of clients actually needed for next round. + + Returns: + Tuple: (the List of clients to run, the List of stragglers in the round, a Dict of the virtual clock of each + client, the duration of the aggregation round, and the durations of each client's task). + + """ + if self.experiment_mode == commons.SIMULATION_MODE: + # NOTE: We try to remove dummy events as much as possible in simulations, + # by removing the stragglers/offline clients in overcommitment""" + sampledClientsReal = [] + completionTimes = [] + completed_client_clock = {} + # 1. remove dummy clients that are not available to the end of training + for client_to_run in sampled_clients: + client_cfg = self.client_conf.get(client_to_run, self.args) + + exe_cost = self.client_manager.get_completion_time(client_to_run, + batch_size=client_cfg.batch_size, + local_steps=client_cfg.local_steps, + upload_size=self.model_update_size, + download_size=self.model_update_size) + + roundDuration = exe_cost['computation'] + \ + exe_cost['communication'] + # if the client is not active by the time of collection, we consider it is lost in this round + if self.client_manager.isClientActive(client_to_run, roundDuration + self.global_virtual_clock[cohort_id]): + sampledClientsReal.append(client_to_run) + completionTimes.append(roundDuration) + completed_client_clock[client_to_run] = exe_cost + + num_clients_to_collect = min( + num_clients_to_collect, len(completionTimes)) + # 2. get the top-k completions to remove stragglers + workers_sorted_by_completion_time = sorted( + range(len(completionTimes)), key=lambda k: completionTimes[k]) + top_k_index = workers_sorted_by_completion_time[:num_clients_to_collect] + clients_to_run = [sampledClientsReal[k] for k in top_k_index] + + stragglers = [sampledClientsReal[k] + for k in workers_sorted_by_completion_time[num_clients_to_collect:]] + round_duration = completionTimes[top_k_index[-1]] + completionTimes.sort() + + return (clients_to_run, stragglers, + completed_client_clock, round_duration, + completionTimes[:num_clients_to_collect]) + else: + completed_client_clock = { + client: {'computation': 1, 'communication': 1} for client in sampled_clients} + completionTimes = [1 for c in sampled_clients] + return (sampled_clients, sampled_clients, completed_client_clock, + 1, completionTimes) + + def update_default_task_config(self, cohort_id): + """Update the default task configuration after each round + """ + # TODO: fix the lr update + if self.round[cohort_id] % self.args.decay_round == 0: + self.args.learning_rate = max( + self.args.learning_rate * self.args.decay_factor, self.args.min_learning_rate) + + def select_participants(self, select_num_participants, overcommitment=1.3, cohort_id=0): + """Select clients for next round. + + Args: + select_num_participants (int): Number of clients to select. + overcommitment (float): Overcommit ration for next round. + + Returns: + list of int: The list of sampled clients id. + + """ + return sorted(self.client_manager.select_participants( + int(select_num_participants * overcommitment), + cur_time=self.global_virtual_clock[cohort_id], + cohort_id=cohort_id) + ) + + + def _init_split_config(self, cohort_id): + def increment_config( in_list ): + in_list.append([]) + in_list[cohort_id ] = [] + + self.model_wrapper.append(copy.deepcopy(self.model_wrapper[cohort_id])) + self.global_virtual_clock.append(copy.deepcopy(self.global_virtual_clock[cohort_id])) + self.model_in_update.append(0) + increment_config(self.round_stragglers) + increment_config(self.virtual_client_clock ) + increment_config(self.round_duration) + increment_config(self.test_result_accumulator ) + increment_config(self.stats_util_accumulator) + increment_config(self.client_training_results) + increment_config(self.tasks_round) + increment_config(self.loss_accumulator) + self.model_weights.append(copy.deepcopy(self.model_weights[cohort_id])) + self.testing_history.append(copy.deepcopy(self.testing_history[cohort_id])) + self.round.append(copy.deepcopy(self.round[cohort_id])) + increment_config(self.sampled_participants) + + def _split_participant_list(self, cohort_id, num_split = 2): + + for s in range(num_split-1): + self._init_split_config(cohort_id) + cohort_id_list = [cohort_id, self.split_cluster - 1] if num_split == 2 else [*range(num_split)] + + for cid in range(num_split): + + # num_client_per_round = self.args.num_participants * self.client_manager.get_cohort_size(cohort_id_list[cid]) // self.total_clients + num_client_per_round = self.client_manager.schedule_plan(self.round[cohort_id_list[cid]] , cid ) + num_client_per_round = max(num_client_per_round,1 ) + + self.sampled_participants[cohort_id_list[cid]] = self.select_participants(select_num_participants = num_client_per_round, \ + overcommitment=self.args.overcommitment, cohort_id = cohort_id_list[cid]) + clients_to_run, round_stragglers, virtual_client_clock, round_duration, _ = \ + self.tictak_client_tasks(self.sampled_participants[cohort_id_list[cid]], num_client_per_round, cohort_id_list[cid]) + self.round_stragglers[cohort_id_list[cid]] = round_stragglers + self.resource_manager.register_tasks(clients_to_run, cohort_id_list[cid]) + self.tasks_round[cohort_id_list[cid]] = len(clients_to_run) + self.virtual_client_clock[cohort_id_list[cid]] = virtual_client_clock + self.round_duration[cohort_id_list[cid]] = round_duration + self.model_in_update[cohort_id_list[cid]] = 0 + self.test_result_accumulator[cohort_id_list[cid]] = [] + self.stats_util_accumulator[cohort_id_list[cid]] = [] + self.client_training_results[cohort_id_list[cid]] = [] + self.loss_accumulator[cohort_id_list[cid]] = [] + + return cohort_id_list + + + def _is_first_result_in_round(self, cohort_id): + return self.model_in_update[cohort_id] == 1 + + def _is_last_result_in_round(self, cohort_id): + return self.model_in_update[cohort_id] == self.tasks_round[cohort_id] + + + def update_weight_aggregation(self, results, cohort_id = 0): + """Updates the aggregation with the new results. + + :param results: the results collected from the client. + """ + update_weights = results['update_weight'] + if type(update_weights) is dict: + update_weights = [x for x in update_weights.values()] + if self._is_first_result_in_round(cohort_id): + self.model_weights[cohort_id] = update_weights + else: + self.model_weights[cohort_id] = [weight + update_weights[i] for i, weight in enumerate(self.model_weights[cohort_id])] + if self._is_last_result_in_round(cohort_id): + self.model_weights[cohort_id] = [np.divide(weight, self.tasks_round[cohort_id]) for weight in self.model_weights[cohort_id]] + self.model_wrapper[cohort_id].set_weights(copy.deepcopy(self.model_weights[cohort_id])) + + + def round_completion_handler(self, cohort_id = 0): + """Triggered upon the round completion, it registers the last round execution info, + broadcast new tasks for executors and select clients for next round. + """ + self.global_virtual_clock[cohort_id] += self.round_duration[cohort_id] + self.round[cohort_id] += 1 + last_round_avg_util = sum(self.stats_util_accumulator[cohort_id]) / max(1, len(self.stats_util_accumulator[cohort_id])) + # assign avg reward to explored, but not ran workers + for client_id in self.round_stragglers[cohort_id]: + self.client_manager.register_feedback(client_id, last_round_avg_util, + time_stamp=self.round[cohort_id], + duration=self.virtual_client_clock[cohort_id][client_id]['computation'] + + self.virtual_client_clock[cohort_id][client_id]['communication'], + success=False) + + avg_loss = sum(self.loss_accumulator[cohort_id]) / max(1, len(self.loss_accumulator[cohort_id])) + logging.info(f"[Cohort {cohort_id}] Wall clock: {round(self.global_virtual_clock[cohort_id])} s, round: {self.round[cohort_id]}, Planned participants: " + + f"{len(self.sampled_participants[cohort_id])}, Succeed participants: {len(self.stats_util_accumulator[cohort_id])}, Training loss: {avg_loss}") + + at_split = False + if self.round[cohort_id] > 1: # TODO: replace with clustering start round + at_split = self.client_manager.cohort_clustering(self.round[cohort_id], cohort_id ) + + # TODO: add split and non-split logic: update the stats and select participants + if at_split: + self.split_cluster = len(self.client_manager.feasibleClients) + self.resource_manager.split(cohort_id) + new_cohort_id_list = self._split_participant_list(cohort_id, self.num_split) + + else: + num_client_per_round = self.client_manager.schedule_plan(self.round[cohort_id], cohort_id) + # update select participants + self.sampled_participants[cohort_id] = self.select_participants( + select_num_participants=num_client_per_round, overcommitment=self.args.overcommitment, cohort_id=cohort_id) + (clients_to_run, round_stragglers, virtual_client_clock, round_duration, + flatten_client_duration) = self.tictak_client_tasks( + self.sampled_participants[cohort_id], num_client_per_round, cohort_id) + + logging.info(f"Selected participants to run: {clients_to_run}") + + # Issue requests to the resource manager; Tasks ordered by the completion time + self.resource_manager.register_tasks(clients_to_run, cohort_id) + self.tasks_round[cohort_id] = len(clients_to_run) + + # Update executors and participants + if self.experiment_mode == commons.SIMULATION_MODE: + self.sampled_executors = list( + self.individual_client_events.keys()) + else: + self.sampled_executors = [str(c_id) + for c_id in self.sampled_participants] + self.round_stragglers[cohort_id] = round_stragglers + self.virtual_client_clock[cohort_id] = virtual_client_clock + self.flatten_client_duration = np.array(flatten_client_duration) + self.round_duration[cohort_id] = round_duration + self.model_in_update[cohort_id] = 0 + self.test_result_accumulator[cohort_id] = [] + self.stats_util_accumulator[cohort_id] = [] + self.client_training_results[cohort_id] = [] + self.loss_accumulator[cohort_id] = [] + self.update_default_task_config(cohort_id) + + if self.round[cohort_id] >= self.args.rounds: + self.broadcast_aggregator_events(generate_msg(commons.SHUT_DOWN)) + elif at_split: + self.broadcast_aggregator_events(generate_msg('split', cohort_id=cohort_id)) + for cid in new_cohort_id_list: + self.broadcast_aggregator_events(generate_msg(commons.UPDATE_MODEL, cohort_id=cid)) + self.broadcast_aggregator_events(generate_msg(commons.START_ROUND, cohort_id=cid)) + elif self.round[cohort_id] % self.args.eval_interval == 0 or self.round[cohort_id] == 1: + self.broadcast_aggregator_events(generate_msg(commons.UPDATE_MODEL, cohort_id=cohort_id)) + self.broadcast_aggregator_events(generate_msg(commons.MODEL_TEST, cohort_id=cohort_id)) + else: + self.broadcast_aggregator_events(generate_msg(commons.UPDATE_MODEL, cohort_id=cohort_id)) + self.broadcast_aggregator_events(generate_msg(commons.START_ROUND, cohort_id=cohort_id)) + + def aggregate_test_result(self, cohort_id): + accumulator = self.test_result_accumulator[cohort_id][0] + for i in range(1, len(self.test_result_accumulator[cohort_id])): + if self.args.task == "detection": + for key in accumulator: + if key == "boxes": + for j in range(596): + accumulator[key][j] = accumulator[key][j] + \ + self.test_result_accumulator[cohort_id][i][key][j] + else: + accumulator[key] += self.test_result_accumulator[cohort_id][i][key] + else: + for key in accumulator: + accumulator[key] += self.test_result_accumulator[cohort_id][i][key] + self.testing_history[cohort_id]['perf'][self.round[cohort_id]] = {'round': self.round[cohort_id], 'clock': self.global_virtual_clock[cohort_id]} + for metric_name in accumulator.keys(): + if metric_name == 'test_loss': + self.testing_history[cohort_id]['perf'][self.round[cohort_id]]['loss'] = accumulator['test_loss'] \ + if self.args.task == "detection" else accumulator['test_loss'] / accumulator['test_len'] + elif metric_name not in ['test_len']: + self.testing_history[cohort_id]['perf'][self.round[cohort_id]][metric_name] \ + = accumulator[metric_name] / accumulator['test_len'] + + round_perf = self.testing_history[cohort_id]['perf'][self.round[cohort_id]] + logging.info( + "FL Testing in round: {}, virtual_clock: {}, results: {}" + .format(self.round[cohort_id], self.global_virtual_clock[cohort_id], round_perf)) + + def testing_completion_handler(self, client_id, results, cohort_id): + """Each executor will handle a subset of testing dataset + + Args: + client_id (int): The client id. + results (dictionary): The client test results. + + """ + + results = results['results'] + # List append is thread-safe + self.test_result_accumulator[cohort_id].append(results) + + # Have collected all testing results + if len(self.test_result_accumulator[cohort_id]) == len(self.executors): + self.aggregate_test_result(cohort_id) + self.broadcast_aggregator_events(generate_msg(commons.START_ROUND, cohort_id=cohort_id)) + + +if __name__ == "__main__": + aggregator = AuxoAggregator(parser.args) + aggregator.run() diff --git a/examples/auxo/client_manager.py b/examples/auxo/client_manager.py new file mode 100644 index 00000000..a801bdb7 --- /dev/null +++ b/examples/auxo/client_manager.py @@ -0,0 +1,257 @@ + +from fedscale.cloud.client_manager import * +from collections import defaultdict +from client_metadata import AuxoClientMetadata +import math +import logging +import numpy as np +from sklearn import preprocessing +from collections import defaultdict +import copy +from clustering import QTable +from sklearn.manifold import TSNE +from config import auxo_config + + +class HeterClientManager(ClientManager): + def __init__(self, mode, args, sample_seed=233): + ''' + Manage cohort membership; + Manane client selection; + Manage cohort training resources usage + ''' + super().__init__(mode, args, sample_seed) + + self.round_clt = defaultdict(list) + self.grad_div_dict = defaultdict(list) + # self.split_round = defaultdict(bool) + self.stop_cluster = False + self.gradient_list = defaultdict(list) + self.feasibleClients = [[]] + + self.total_res = args.num_participants + self.round_acc = defaultdict(dict) + self.num_cluster = 1 + self.latest_acc_list = {0:1} + + + def register_client(self, host_id: int, client_id: int, size: int, speed: Dict[str, float], + duration: float = 1) -> None: + """Register client information to the client manager. + + Args: + host_id (int): executor Id. + client_id (int): client Id. + size (int): number of samples on this client. + speed (Dict[str, float]): device speed (e.g., compuutation and communication). + duration (float): execution latency. + + """ + uniqueId = self.getUniqueId(host_id, client_id) + user_trace = None if self.user_trace is None else self.user_trace[self.user_trace_keys[int( + client_id) % len(self.user_trace)]] + + self.client_metadata[uniqueId] = AuxoClientMetadata(host_id, client_id, speed, user_trace) + # remove clients + # if size >= self.filter_less and size <= self.filter_more: + self.feasibleClients[0].append(client_id) + self.feasible_samples += size + + if self.mode == "oort": + feedbacks = {'reward': min(size, self.args.local_steps * self.args.batch_size), + 'duration': duration, + } + self.ucb_sampler.register_client(client_id, feedbacks=feedbacks) + # else: + # del self.client_metadata[uniqueId] + + + def getUniqueId(self, host_id, client_id): + return int(client_id) + # return (str(host_id) + '_' + str(client_id)) + + def getFeasibleClients(self, cur_time: float, cohort_id: int = 0): + if self.user_trace is None: + clients_online = self.feasibleClients[cohort_id] + else: + clients_online = [client_id for client_id in self.feasibleClients[cohort_id] if self.client_metadata[self.getUniqueId( + 0, client_id)].is_active(cur_time)] + + logging.info(f"Wall clock time: {cur_time}, {len(clients_online)} clients online, " + + f"{len(self.feasibleClients[cohort_id]) - len(clients_online)} clients offline") + + return clients_online + + + def select_participants(self, num_of_clients: int, cur_time: float = 0, cohort_id: int = 0) -> List[int]: + """Select participating clients for current execution task. + + Args: + num_of_clients (int): number of participants to select. + cur_time (float): current wall clock time. + + Returns: + List[int]: indices of selected clients. + + """ + + clients_online = self.getFeasibleClients(cur_time, cohort_id) + + if len(clients_online) <= num_of_clients: + return clients_online + + self.gradient_list[cohort_id] = [] + pickled_clients = None + clients_online_set = set(clients_online) + + # TODO: select clients for testing + if self.mode == "oort": + pickled_clients = self.ucb_sampler.select_participant( + num_of_clients, feasible_clients=clients_online_set) + else: + self.rng.shuffle(clients_online) + client_len = min(num_of_clients, len(clients_online) - 1) + pickled_clients = clients_online[:client_len] + return pickled_clients + + def getDataInfo(self): + train_ratio = self.args.num_participants / len(self.feasibleClients[0]) + avg_train_times = self.args.rounds * self.args.num_participants / len( + self.feasibleClients[0]) + known_clt = len(self.feasibleClients[0]) // 20 + + split_round = auxo_config['split_round'] + exploredecay = auxo_config['exploredecay'] + explorerate = auxo_config['explorerate'] + self.reduction = auxo_config['reduction'] + metric = auxo_config['metric'] + + self.reward_qtable = QTable(1 + len(self.feasibleClients[0]), known_clt = known_clt, + split_round = split_round,\ + elbow_constant=0.97, train_ratio=train_ratio, avg_train_times=avg_train_times, \ + epsilon=explorerate, epsilon_decay = exploredecay,\ + metric=metric) + + return {'total_feasible_clients': len(self.feasibleClients[0]), 'total_num_samples': self.feasible_samples} + + def get_cohort_size(self, cohort_id): + return len(self.feasibleClients[cohort_id]) + + def register_feedback(self, client_id: int, reward: float, auxi: float = 1.0, time_stamp: float = 0, + duration: float = 1., success: bool = True, w_new = None, w_old = None, cohort_id = 0) -> None: + """Collect client execution feedbacks of last round. + + Args: + client_id (int): client Id. + reward (float): execution utilities (processed feedbacks). + auxi (float): unprocessed feedbacks. + time_stamp (float): current wall clock time. + duration (float): system execution duration. + success (bool): whether this client runs successfully. + + """ + # currently, we only use distance as reward + if self.mode == "oort": + feedbacks = { + 'reward': reward, + 'duration': duration, + 'status': True, + 'time_stamp': time_stamp + } + + self.ucb_sampler.update_client_util(client_id, feedbacks=feedbacks) + + if w_new is not None: + grad_norm = self._register_client_grad(client_id, w_new, w_old, cohort_id) + return + + def _register_client_grad(self, client_id, w_new, w_old, cohort_id): + if not self.stop_cluster: + grad_norm = self.client_metadata[client_id].register_gradient(w_new, w_old) + self.round_clt[cohort_id].append(client_id) + self.gradient_list[cohort_id].append(grad_norm) + return grad_norm + return 0 + + def cohort_clustering(self, round, cohort_id=0): + '''Clustering cohort results for current rounds; Update reward table + Args: + round: current round + cohort_id: current cohort + Returns: + whether to split the cohort + ''' + if round < auxo_config['start_round']: + return False + global_index = [int(gid) for gid in self.round_clt[cohort_id]] # [1,2,3,5,7] + logging.info(f'Clustering clients global index {global_index}') + if len(global_index) < 5: + return False + gradient_list = [self.client_metadata[clt].gradient for clt in self.round_clt[cohort_id]] + + # if self.reduction: + # norm_grad = TSNE(n_components=3, init='random').fit_transform(np.array(gradient_list)) + # elif self.distance == 'kl': + # norm_grad = centered_grad = np.array(gradient_list) + # else: + avg_grad = np.mean(gradient_list, axis=0) + centered_grad = gradient_list - avg_grad + norm_grad = preprocessing.normalize(centered_grad) + + # update sub reward + logging.info(f'Update intra-cluster relation ') + self.reward_qtable.knn_update_subR(cohort_id, norm_grad, global_index, False if round > 500 else True) + logging.info(f'Update inter-cluster relation ') + split = self.reward_qtable.update_mainR(cohort_id, centered_grad, global_index, False if round > 500 else True) + + if split: + self._split(len(self.feasibleClients)) + logging.info(f'SPLIT at round {round} ') + self.feasibleClients.append([]) + for i in range(len(self.feasibleClients)): + self.feasibleClients[i] = list(np.argwhere(self.reward_qtable.y_kmeans == i).reshape(-1)) + + # update feasible clients + if len(self.feasibleClients) > 1 and split == False: + for clt in self.round_clt[cohort_id]: # str + new_label = int(self.reward_qtable.y_kmeans[int(clt)]) + if int(clt) in self.feasibleClients[cohort_id] and new_label != cohort_id: + self.feasibleClients[cohort_id].remove(int(clt)) + self.feasibleClients[new_label].append(int(clt)) + elif int(clt) not in self.feasibleClients[cohort_id] and new_label == cohort_id: + for c in range(len(self.feasibleClients)): + if int(clt) in self.feasibleClients[c]: + self.feasibleClients[c].remove(int(clt)) + self.feasibleClients[cohort_id].append(int(clt)) + + self.round_clt[cohort_id] = [] + + self._print_cohort(round) + return split + + def _print_cohort(self, round): + size_ratio = [len(cluster) for cluster in self.feasibleClients] + logging.info(f'Round {round} FeasibleClients client number : {size_ratio}') + + def schedule_plan(self, round, cohort_id) -> int: + """ Schedule the training resources for each cohort + + Args: + round: + cohort_id: + + Returns: + int: number of training resources for each cohort + """ + # TODO: schedule based on accuracy + return self.total_res // self.num_cluster + + def _split(self, cohort_id): + self.num_cluster += 1 + if cohort_id not in self.latest_acc_list: + self.latest_acc_list[cohort_id] = 1 + + def update_eval(self, r, acc, clusterID): + self.round_acc[r][clusterID] = acc + if len(self.round_acc[r]) == self.num_cluster: + self.latest_acc_list = self.round_acc[r] \ No newline at end of file diff --git a/examples/auxo/client_metadata.py b/examples/auxo/client_metadata.py new file mode 100644 index 00000000..ad8fd2c6 --- /dev/null +++ b/examples/auxo/client_metadata.py @@ -0,0 +1,17 @@ +import logging + +from fedscale.cloud.internal.client_metadata import * + +class AuxoClientMetadata(ClientMetadata): + def __init__(self, host_id, client_id, speed, traces=None): + super().__init__(host_id, client_id, speed, traces) + self.grad_ratio = 2 + + def register_gradient(self, W, W_old): + W_old = [dt.cpu().numpy() for dt in W_old] + W = [W[k] for k in W] + gradient = [pb - pa for pa, pb in zip(W, W_old)] + gradient = np.concatenate([v.flatten() for v in gradient]) + val_len = len(gradient) // self.grad_ratio # change grad size + self.gradient = np.float16(gradient[-val_len:]) + return self.gradient diff --git a/examples/auxo/clustering.py b/examples/auxo/clustering.py new file mode 100644 index 00000000..1dab9d62 --- /dev/null +++ b/examples/auxo/clustering.py @@ -0,0 +1,357 @@ +import matplotlib.pyplot as plt +import numpy as np +from sklearn.metrics import silhouette_score +from random import Random +from collections import defaultdict +from sklearn.cluster import KMeans +from sklearn.neighbors import NearestNeighbors, KNeighborsClassifier +from sklearn.cluster import MiniBatchKMeans +import logging, time +from utils.klkmeans import KLKmeans + + +class QEntry(): + def __init__(self, init_R=1, r0=1, train_times_R=0): + self.R = init_R + self.sub_R = [init_R / 2, init_R / 2] + self.lr = 0.9 + self.r0 = r0 # lambda : np.random.normal(r0, r0/20) + self.train_times_R = train_times_R + + def update_R(self, new_reward): + old_R = self.R + # self.R = self.lr * new_reward + self.R * (1 - self.lr) + self.R = new_reward + self.R + delta_R = self.R - old_R + self.sub_R[0] += delta_R / 2 + self.sub_R[1] += delta_R / 2 + + def update_sub(self, sub_id): + self.sub_R[sub_id] += self.r0 # () + self.sub_R[1 - sub_id] -= self.r0 # () + + def reset_sub(self): + self.sub_R = [self.R / 2, self.R / 2] + self.train_times_R = 0 + + +class QTable(): + def __init__(self, num_client, train_ratio=0.1, base_reward=5, sample_seed=233, epsilon=0.01, epsilon_decay=0.99, \ + known_clt=50, elbow_constant=0.45, avg_train_times=4, split_round=None, merge=False, metric='cosine'): + # list dict + self.Qtable = [{0: QEntry()} for row in range(num_client)] # init with one model + self.num_client = num_client + self.y_kmeans = np.zeros(num_client) + self.base_reward = base_reward + self.known_clt = known_clt + self.num_model = 1 + self.init_round = {0: False} + self.epsilon = epsilon + self.epsilon_decay = epsilon_decay + self.rng = Random() + self.rng.seed(sample_seed) + self.sub_num = {} + self.split_counter = defaultdict(int) + self.epoch = defaultdict(int) + self.min_round = 1 + self.elbow_constant = elbow_constant + self.train_ratio = train_ratio + self.min_clt = 100 / train_ratio # minimal # clt per round --> 50 + self.avg_train_times = avg_train_times + self.pivot_clients = defaultdict(list) + self.pivot_clients[0] = [*range(self.num_client)] + self.min_cluster_size = num_client // 10 + self.split_round = split_round + # self.epoch = 0 + self.merge_action = merge + self.metric = metric + if metric == 'kl': + def KL(a, b): + epsilon = 0.00001 + a += epsilon + b += epsilon + + return np.sum(np.where(a != 0, a * np.log(a / b), 0)) + + self.kl = KL + + def update_R(self, cid, mid, new_reward): + self.Qtable[cid][mid].update_R(new_reward) + + if new_reward < 0: + self.Qtable[cid][mid].reset_sub() + + def update_R_batch(self, cid_list, mid, reward_list, remain_round): + for cid, reward in zip(cid_list, reward_list): + self.update_R(cid, mid, reward) + # if remain_round == False and reward > 0: + self.Qtable[cid][mid].train_times_R += 1 + + def update_subR(self, cid, mid, sub_id): + self.Qtable[cid][mid].update_sub(sub_id) + self.Qtable[cid][mid].train_times_R += 1 + + def update_subR_batch(self, cid_list, mid, sub_id): + for cid in cid_list: + self.update_subR(cid, mid, sub_id) + + def get_subid(self, cid, mid): + # ( cid ) prefer which subcluster in mid + if self.Qtable[cid][mid].sub_R[0] == self.Qtable[cid][mid].sub_R[1] or self.Qtable[cid][mid].R < 0: + return 2 + else: + return int(self.Qtable[cid][mid].sub_R[0] < self.Qtable[cid][mid].sub_R[1]) + + def subcluster_policy(self, mid, clt_list): + sub_num = [0, 0, 0] + sub_label_list = [] + for cid in clt_list: + sub_id = self.get_subid(cid, mid) + sub_num[sub_id] += 1 + sub_label_list.append(sub_id) + return sub_num, sub_label_list + + def grow_table(self, mid): + self.split_counter[mid] = 0 + new_mid = self.num_model + self.init_round[new_mid] = False + self.init_round[mid] = False + self.epoch[new_mid] = self.epoch[mid] + for cid in range(self.num_client): + sub_a = self.Qtable[cid][mid].sub_R[0] + sub_b = self.Qtable[cid][mid].sub_R[1] + a_R = 1 if sub_a > sub_b else 0 + b_R = 1 - a_R if sub_a != sub_b else 0 + + reward = self.Qtable[cid][mid].R + times = self.Qtable[cid][mid].train_times_R + self.Qtable[cid][mid] = QEntry(init_R=reward + a_R, train_times_R=times * a_R) + self.Qtable[cid][new_mid] = QEntry(init_R=reward + b_R, train_times_R=times * b_R) + self.num_model += 1 + + def shrink_table(self, mid): + self.num_model -= 1 + for cid in range(self.num_client): + self.Qtable[cid].pop(mid, None) + tmp_dict = self.Qtable[cid] + for m in range(self.num_model): + self.Qtable[cid][m] = list(tmp_dict.values())[m] + + def model_policy(self, cid): + + train_times = [self.Qtable[cid][m].train_times_R for m in self.Qtable[cid]] + new_client = False if np.sum(train_times) > 0 else True + + self.epsilon *= self.epsilon_decay + if new_client or self.rng.random() < self.epsilon: + return self.rng.randint(0, self.num_model - 1) + else: + reward_list = self.get_model_reward(cid) + return np.argmax(reward_list) + + def model_policy_batch(self, client_list): + for cid in client_list: + self.y_kmeans[cid] = self.model_policy(cid) + + self.y_kmeans[0] = -1 + + def get_model_reward(self, cid): + return [self.Qtable[cid][m].R for m in self.Qtable[cid]] + + def dist_to_reward(self, dist_list, known_ratio): + + avg_dist = np.mean(dist_list) + std_dist = np.std(dist_list) + + R0 = self.base_reward + slope = self.base_reward / (avg_dist + std_dist) + return [(R0 - slope * d) * known_ratio for d in dist_list] + + def count_known_main(self, global_index, mid): + known_index_list = [i for i, cid in enumerate(global_index) \ + if self.Qtable[cid][mid].train_times_R > 0 and self.Qtable[cid][mid].R > 1] + # local clt index + return known_index_list + + def split(self, mid): + + if self.split_round is not None and self.epoch[mid] in self.split_round: + return True + elif self.split_round is None: + # whether to split: enough client subreward info + minimal size satisfy + elbow test + mid_client = np.argwhere(self.y_kmeans == mid) # global idx + mid_client = [i[0] for i in mid_client] # [1,3,5,7,9] + if len(mid_client) < self.min_clt: # ensure around 50 participate every round + return False + + sub_num = [0, 0, 0] + for cid in mid_client: + sub_num[self.get_subid(cid, mid)] += 1 + logging.info(f'sub_num : {sub_num} ') + min_size = self.known_clt * 0.9 ** (self.num_model - 1) + ratio = sub_num[0] / max(sub_num[1], 1) + + within_ratio = True if (ratio > 0.5 and ratio < 2) or self.num_model == 1 else False + return sub_num[0] > min_size and sub_num[ + 1] > min_size and within_ratio # self.num_model < self.avg_train_times and within_ratio + else: + return False + + def knn_update_subR(self, mid, X_sub, global_index, keep_split=True): + self.epoch[mid] += 1 + if self.split_round is not None: + if self.epoch[mid] > max(self.split_round) + 1: + keep_split = False + else: + keep_split = True + + if self.init_round[mid] == False: + if self.num_model > 1: + known_clt_list = self.count_known_main(global_index, mid) + if len(known_clt_list) <= 1: + return + X_sub = X_sub[known_clt_list] + global_index = known_clt_list + + if self.metric == 'kl': + clustering = KLKmeans(n_clusters=2, init_center = X_sub[:2] ) + clustering.fit(X_sub) + labels = clustering.labels_ + + else: + clustering = MiniBatchKMeans(n_clusters=2, + random_state=0, + batch_size=10).fit(X_sub) + labels = clustering.labels_ # return labels + + for clt in range(len(global_index)): + self.update_subR(global_index[clt], mid, int(labels[clt])) + self.init_round[mid] = True + + elif keep_split: + sub_num, sub_label_list = self.subcluster_policy(mid, global_index) + + if sub_num[0] == sub_num[1] == 0: + return + + elif sub_num[0] == 0 or sub_num[1] == 0: + sub_size = len(global_index) // 4 + # TODO: KNN on distance metric + if self.metric == 'kl': + neigh = NearestNeighbors(n_neighbors=sub_size, metric=lambda a, b: self.kl(a, b)).fit(X_sub) + else: + neigh = NearestNeighbors(n_neighbors=sub_size).fit(X_sub) + center_solo = np.argwhere(np.array(sub_label_list) != 2)[0][0] + near_clt_id = neigh.kneighbors([X_sub[center_solo]])[1][0] + for clt in near_clt_id: + self.update_subR(global_index[clt], mid, sub_label_list[center_solo]) + return + + else: + labeled_id = np.argwhere(np.array(sub_label_list) != 2).reshape(-1) + knn_label = list(filter(lambda score: score != 2, sub_label_list)) + knn_data = X_sub[labeled_id] + if self.metric == 'kl': + neigh = KNeighborsClassifier(n_neighbors=1, metric=lambda a, b: self.kl(a, b)).fit(knn_data, + knn_label) + else: + neigh = KNeighborsClassifier(n_neighbors=1).fit(knn_data, knn_label) + # labels = neigh.predict(X_sub) + unseen_id = np.argwhere(np.array(sub_label_list) == 2).reshape(-1) + if len(unseen_id) < 1: + return + labels = neigh.predict(X_sub[unseen_id]) + pred_prob = neigh.predict_proba(X_sub[unseen_id]) + for i, unseen_clt in enumerate(unseen_id): + conf = pred_prob[i][0] / max(pred_prob[i][1], 0.1) + if conf > 1.5 or conf < 0.67: + self.update_subR(global_index[unseen_clt], mid, int(labels[i])) + return + + def update_mainR(self, mid, X_sub, global_index, remain_round=True): + + if self.split_round is not None: + if self.epoch[mid] > max(self.split_round) + 1: + remain_round = False + else: + remain_round = True + + if self.num_model > 1: + known_clt_list = self.count_known_main(global_index, mid) + known_ratio = len(known_clt_list) / len(global_index) + + if len(known_clt_list) < 2 and self.train_ratio < 1: + # X_subcen = np.mean(X_sub, axis=0) + # print("know too less") + return False + else: + X_known = X_sub[known_clt_list] + X_subcen = np.mean(X_known, axis=0) + + X_ = X_sub - X_subcen + square_dist = np.sum(X_ ** 2, axis=1) + dist_list = np.sqrt(square_dist) + reward_list = self.dist_to_reward(dist_list, known_ratio) + self.update_R_batch(global_index, mid, reward_list, remain_round) + + split = False + self.split_counter[mid] += 1 + if self.split(mid): + # if self.split_counter[mid] > self.min_round : + split = True + self.grow_table(mid) + + if self.num_model > 2 and self.split_counter[mid] > 5 and self.merge(mid): + self.shrink_table(mid) + print(f"<<< Merge cluster {mid}") + logging.info(f"<<< Merge cluster {mid}") + self.model_policy_batch([*range(self.num_client)]) # update kmeans + + return split + + def update_pivot_client(self, mid): + trained_clt = set() + c = set() + for cid in range(1, self.num_client): + if self.Qtable[cid][mid].train_times_R > 0 and self.Qtable[cid][mid].R > 1: + c.add(cid) + # tmp_dict = self.Qtable[cid] + # if np.argsort(tmp_dict.values())[-1] == mid: + if self.Qtable[cid][mid].R > 1: + trained_clt.add(cid) + print(len(c), len(trained_clt)) + self.pivot_clients[mid] = list(trained_clt) + # TODO: can have many overlap clients, instead choose clients with highest score + + def return_pivot_client(self, mid): + + self.update_pivot_client(mid) + return self.pivot_clients[mid] + + def merge(self, mid): + if self.merge_action == False: + return False + + mid_client = np.argwhere(self.y_kmeans == mid) + if len(mid_client) < self.min_cluster_size: + return True + return False + + def count_trained_clt(self): + trained_clt = [] + for mid in range(self.num_model): + self.update_pivot_client(mid) + trained_clt += self.pivot_clients[mid] + print("Trained clients :", len(set(trained_clt))) + return list(set(trained_clt)) + + def plot(self, X): + trained_clt = self.count_trained_clt() + plt.scatter(X[trained_clt, 0], X[trained_clt, 1], c=self.y_kmeans[trained_clt], s=50, cmap='viridis') + # fig_name = 'result.png' + # plt.savefig(fig_name) + plt.show() + # print("Save to ",fig_name) + if len(np.unique(self.y_kmeans[trained_clt], axis=0)) > 1: + silhouette_avg = silhouette_score(X[trained_clt], self.y_kmeans[trained_clt]) + print("Silhouette score is ", silhouette_avg) diff --git a/examples/auxo/config.py b/examples/auxo/config.py new file mode 100644 index 00000000..e539f31e --- /dev/null +++ b/examples/auxo/config.py @@ -0,0 +1,16 @@ +import yaml, os +global auxo_config + + +# Get the value of the FEDSCALE_HOME environment variable +fedscale_home = os.environ.get('FEDSCALE_HOME') + +# Check if the environment variable is set +if fedscale_home is not None: + config_path = os.path.join(fedscale_home, 'examples', 'auxo', 'config.yml') + + # Now, open the file using the constructed path + with open(config_path, 'r') as f: + auxo_config = yaml.load(f, Loader=yaml.FullLoader) +else: + print("FEDSCALE_HOME environment variable is not set.") \ No newline at end of file diff --git a/examples/auxo/config.yml b/examples/auxo/config.yml new file mode 100644 index 00000000..2f55aedb --- /dev/null +++ b/examples/auxo/config.yml @@ -0,0 +1,6 @@ +split_round: [50,100] +exploredecay: 0.99 +explorerate: 0.01 +reduction: False +metric: 'cosine' +start_round: 0 \ No newline at end of file diff --git a/examples/auxo/executor.py b/examples/auxo/executor.py new file mode 100644 index 00000000..d390474a --- /dev/null +++ b/examples/auxo/executor.py @@ -0,0 +1,187 @@ +import logging + +from fedscale.cloud.execution.executor import * +from utils.helper import * +import copy + +class AuxoExecutor(Executor): + def __init__(self, args): + super().__init__(args) + + self.round = [0] + self.model_adapter = [self.get_client_trainer(args).get_model_adapter(init_model())] + + + def UpdateModel(self, model_weights, cohort_id): + """Receive the broadcasted global model for current round + + Args: + config (PyTorch or TensorFlow model): The broadcasted global model config + cohort_id (int): The cohort id + """ + self.round[cohort_id] += 1 + self.model_adapter[cohort_id].set_weights(model_weights) + + def training_handler(self, client_id, conf, model, cohort_id): + """Train model given client id + + Args: + client_id (int): The client id. + conf (dictionary): The client runtime config. + cohort_id (int): The cohort id. + + Returns: + dictionary: The train result + + """ + self.model_adapter[cohort_id].set_weights(model) + conf.client_id = client_id + conf.tokenizer = tokenizer + client_data = self.training_sets if self.args.task == "rl" else \ + select_dataset(client_id, self.training_sets, + batch_size=conf.batch_size, args=self.args, + collate_fn=self.collate_fn + ) + client = self.get_client_trainer(self.args) + train_res = client.train( + client_data=client_data, model=self.model_adapter[cohort_id].get_model(), conf=conf) + + return train_res + + def Train(self, config): + """Load train config and data to start training on that client + + Args: + config (dictionary): The client training config. + + Returns: + tuple (int, dictionary): The client id and train result + + """ + client_id, train_config, cohort_id = config['client_id'], config['task_config'], config['cohort_id'] + + if 'model' not in config or not config['model']: + raise "The 'model' object must be a non-null value in the training config." + client_conf = self.override_conf(train_config) + train_res = self.training_handler( + client_id=client_id, conf=client_conf, model=config['model'], cohort_id=cohort_id) + + # Report execution completion meta information + response = self.aggregator_communicator.stub.CLIENT_EXECUTE_COMPLETION( + job_api_pb2.CompleteRequest( + client_id=str(client_id), executor_id=self.executor_id, + event=generate_msg(commons.CLIENT_TRAIN, cohort_id), status=True, msg=None, + meta_result=None, data_result=None + ) + ) + self.dispatch_worker_events(response) + logging.info(f"Client {client_id} finished training. ") + + return client_id, train_res + + def testing_handler(self, cohort_id): + """Test model + + Args: + args (dictionary): Variable arguments for fedscale runtime config. defaults to the setup in arg_parser.py + config (dictionary): Variable arguments from coordinator. + Returns: + dictionary: The test result + + """ + test_config = self.override_conf({ + 'rank': self.this_rank, + 'memory_capacity': self.args.memory_capacity, + 'tokenizer': tokenizer + }) + client = self.get_client_trainer(test_config) + data_loader = select_dataset(self.this_rank, self.testing_sets, + batch_size=self.args.test_bsz, args=self.args, + isTest=True, collate_fn=self.collate_fn) + + test_results = client.test(data_loader, self.model_adapter[cohort_id].get_model(), test_config) + gc.collect() + + return test_results + + def Test(self, config, cohort_id): + """Model Testing. By default, we test the accuracy on all data of clients in the test group + + Args: + config (dictionary): The client testing config. + + """ + test_res = self.testing_handler(cohort_id) + test_res = {'executorId': self.this_rank, 'results': test_res} + + # Report execution completion information + response = self.aggregator_communicator.stub.CLIENT_EXECUTE_COMPLETION( + job_api_pb2.CompleteRequest( + client_id=self.executor_id, executor_id=self.executor_id, + event=generate_msg(commons.MODEL_TEST, cohort_id), status=True, msg=None, + meta_result=None, data_result=self.serialize_response(test_res) + ) + ) + self.dispatch_worker_events(response) + + def _init_split(self, cohort_id, new_cohort_id): + if len(self.model_adapter) <= new_cohort_id: + self.model_adapter.append(copy.deepcopy(self.model_adapter[cohort_id])) + self.round.append(copy.deepcopy(self.round[cohort_id])) + + def event_monitor(self): + """Activate event handler once receiving new message + """ + logging.info("Start monitoring events ...") + self.client_register() + + while not self.received_stop_request: + if len(self.event_queue) > 0: + request = self.event_queue.popleft() + current_event = request.event + event_type, cohort_id = decode_msg(current_event) + if event_type != commons.DUMMY_EVENT: + logging.info("Received message: {}".format(current_event)) + + if event_type == commons.CLIENT_TRAIN: + train_config = self.deserialize_response(request.meta) + train_model = self.deserialize_response(request.data) + train_config['model'] = train_model + train_config['client_id'] = int(train_config['client_id']) + client_id, train_res = self.Train(train_config) + + # Upload model updates + future_call = self.aggregator_communicator.stub.CLIENT_EXECUTE_COMPLETION.future( + job_api_pb2.CompleteRequest(client_id=str(client_id), executor_id=self.executor_id, + event=generate_msg(commons.UPLOAD_MODEL, cohort_id), status=True, msg=None, + meta_result=None, data_result=self.serialize_response(train_res) + )) + future_call.add_done_callback(lambda _response: self.dispatch_worker_events(_response.result())) + + elif event_type == commons.MODEL_TEST: + self.Test(self.deserialize_response(request.meta), cohort_id) + + elif event_type == commons.UPDATE_MODEL: + model_weights = self.deserialize_response(request.data) + self.UpdateModel(model_weights, cohort_id) + + elif event_type == 'split': + new_cohort_id = len(self.model_adapter) + self._init_split(cohort_id, new_cohort_id) + + elif event_type == commons.SHUT_DOWN: + self.Stop() + + elif event_type == commons.DUMMY_EVENT: + pass + else: + time.sleep(1) + try: + self.client_ping() + except Exception as e: + logging.info(f"Caught exception {e} from aggregator, terminating executor {self.this_rank} ...") + self.Stop() + +if __name__ == "__main__": + executor = AuxoExecutor(parser.args) + executor.run() diff --git a/examples/auxo/resource_manager.py b/examples/auxo/resource_manager.py new file mode 100644 index 00000000..57dd50d2 --- /dev/null +++ b/examples/auxo/resource_manager.py @@ -0,0 +1,59 @@ +from fedscale.cloud.resource_manager import * + + +class AuxoResourceManager(ResourceManager): + def __init__(self, experiment_mode): + self.client_run_queue = [[]] + self.client_run_queue_idx = [0] + self.experiment_mode = experiment_mode + self.update_lock = threading.Lock() + + + def register_tasks(self, clientsToRun, cohort_id): + self.client_run_queue[cohort_id] = clientsToRun.copy() + self.client_run_queue_idx[cohort_id] = 0 + + def split(self, cohort_id): + self.client_run_queue.append( self.client_run_queue[cohort_id].copy()) + self.client_run_queue_idx.append(0) + + def get_task_length(self, cohort_id) -> int: + """Number of tasks left in the queue + + Returns: + int: Number of tasks left in the queue + """ + self.update_lock.acquire() + remaining_task_num: int = len(self.client_run_queue[cohort_id]) - self.client_run_queue_idx[cohort_id] + self.update_lock.release() + return remaining_task_num + + def remove_client_task(self, client_id, cohort_id): + assert(client_id in self.client_run_queue[cohort_id], + f"client task {client_id} is not in task queue") + + def has_next_task(self, client_id=None, cohort_id=0): + # TODO: always has next task + exist_next_task = False + if self.experiment_mode == commons.SIMULATION_MODE: + exist_next_task = self.client_run_queue_idx[cohort_id] < len( + self.client_run_queue[cohort_id]) + else: + exist_next_task = client_id in self.client_run_queue[cohort_id] + return exist_next_task + + def get_next_task(self, client_id=None, cohort_id=0): + # TODO: remove client id when finish + next_task_id = None + self.update_lock.acquire() + if self.experiment_mode == commons.SIMULATION_MODE: + if self.has_next_task(client_id, cohort_id): + next_task_id = self.client_run_queue[cohort_id][self.client_run_queue_idx[cohort_id]] + self.client_run_queue_idx[cohort_id] += 1 + else: + if client_id in self.client_run_queue[cohort_id]: + next_task_id = client_id + self.client_run_queue[cohort_id].remove(next_task_id) + + self.update_lock.release() + return next_task_id \ No newline at end of file diff --git a/examples/auxo/utils/helper.py b/examples/auxo/utils/helper.py new file mode 100644 index 00000000..4c61353d --- /dev/null +++ b/examples/auxo/utils/helper.py @@ -0,0 +1,15 @@ + + +def decode_msg(msg): + """Decode message into event type and cohort id + + Args: + msg (string): message from client + """ + return msg.split('-')[0], int(msg.split('-')[1]) + + +def generate_msg( msg_type, cohort_id=0): + return f'{msg_type}-{cohort_id}' + + diff --git a/examples/auxo/utils/klkmeans.py b/examples/auxo/utils/klkmeans.py new file mode 100644 index 00000000..7545e308 --- /dev/null +++ b/examples/auxo/utils/klkmeans.py @@ -0,0 +1,37 @@ +from nltk.cluster import KMeansClusterer, euclidean_distance +import numpy as np + + +class KLKmeans(object): + def __init__(self,n_clusters, init_center =None ): + self.labels_ = None + + def _processNegVals(x): + x = np.array(x) + minx = np.min(x) + if minx < 0: + x = x + abs(minx) + """ 0.000001 is used here to avoid 0. """ + x = x + 0.000001 + # px = x / np.sum(x) + return x + + def _KL(P, Q): + epsilon = 0.00001 + P = _processNegVals(P) + Q = _processNegVals(Q) + # You may want to instead make copies to avoid changing the np arrays. + divergence = np.sum(P * np.log(P / Q)) + return divergence + + self.klkmeans = KMeansClusterer(n_clusters, _KL, initial_means = init_center) + + def fit(self, x): + print(x) + self.klkmeans.cluster(x) + self.cluster_centers_ = self.klkmeans.means() + self.labels_ = self.predict(x) + + def predict(self, x): + return [ self.klkmeans.classify(i) for i in x] + From 53f64de4399b021ba461256e2f0ebf385e18a8ba Mon Sep 17 00:00:00 2001 From: AmberLJC Date: Fri, 22 Sep 2023 01:03:10 -0400 Subject: [PATCH 2/6] testing; readme --- benchmark/configs/auxo/auxo.yml | 52 ++++++++ examples/auxo/Dockerfile | 29 +++++ examples/auxo/README.md | 77 +++++++++++- examples/auxo/aggregator.py | 23 +++- examples/auxo/client_manager.py | 19 ++- examples/auxo/client_metadata.py | 2 +- examples/auxo/clustering.py | 31 +++-- examples/auxo/config.yml | 4 +- examples/auxo/executor.py | 83 +++++++++++-- examples/auxo/fig/auxo.png | Bin 0 -> 1278 bytes examples/auxo/fig/epoch_100.png | Bin 0 -> 2396 bytes examples/auxo/fig/epoch_11.png | Bin 0 -> 2396 bytes examples/auxo/fig/epoch_300.png | Bin 0 -> 2396 bytes examples/auxo/fig/epoch_500.png | Bin 0 -> 2396 bytes examples/auxo/fig/epoch_700.png | Bin 0 -> 2396 bytes examples/auxo/fig/epoch_900.png | Bin 0 -> 2396 bytes examples/auxo/fig/epoch_99.png | Bin 0 -> 2396 bytes examples/auxo/playground.py | 64 ++++++++++ examples/auxo/requirements.txt | 32 +++++ examples/auxo/resource_manager.py | 1 - examples/auxo/utils/openimg.py | 138 ++++++++++++++++++++++ examples/auxo/utils/prepare_train_test.py | 65 ++++++++++ 22 files changed, 584 insertions(+), 36 deletions(-) create mode 100644 benchmark/configs/auxo/auxo.yml create mode 100644 examples/auxo/Dockerfile create mode 100644 examples/auxo/fig/auxo.png create mode 100644 examples/auxo/fig/epoch_100.png create mode 100644 examples/auxo/fig/epoch_11.png create mode 100644 examples/auxo/fig/epoch_300.png create mode 100644 examples/auxo/fig/epoch_500.png create mode 100644 examples/auxo/fig/epoch_700.png create mode 100644 examples/auxo/fig/epoch_900.png create mode 100644 examples/auxo/fig/epoch_99.png create mode 100644 examples/auxo/playground.py create mode 100644 examples/auxo/requirements.txt create mode 100644 examples/auxo/utils/openimg.py create mode 100644 examples/auxo/utils/prepare_train_test.py diff --git a/benchmark/configs/auxo/auxo.yml b/benchmark/configs/auxo/auxo.yml new file mode 100644 index 00000000..aca16936 --- /dev/null +++ b/benchmark/configs/auxo/auxo.yml @@ -0,0 +1,52 @@ +# Configuration file of fed_hetero experiment + +# ========== Cluster configuration ========== +# ip address of the parameter server (need 1 GPU process) +ps_ip: localhost +ps_port: 12345 + +# ip address of each worker:# of available gpus process on each gpu in this node +# Note that if we collocate ps and worker on same GPU, then we need to decrease this number of available processes on that GPU by 1 +# E.g., master node has 4 available processes, then 1 for the ps, and worker should be set to: worker:3 +worker_ips: + - localhost:[7,7,0,0] # worker_ip: [(# processes on gpu) for gpu in available_gpus] eg. 10.0.0.2:[4,4,4,4] This node has 4 gpus, each gpu has 4 processes. + +exp_path: $FEDSCALE_HOME/examples/auxo + +# Entry function of executor and aggregator under $exp_path +executor_entry: executor.py + +aggregator_entry: aggregator.py + +auth: + ssh_user: "" + ssh_private_key: ~/.ssh/id_rsa + +# cmd to run before we can indeed run FAR (in order) +setup_commands: + - source $HOME/anaconda3/bin/activate fedscale + +# ========== Additional job configuration ========== +# Default parameters are specified in config_parser.py, wherein more description of the parameter can be found + +job_conf: + - job_name: auxo_femnist # Generate logs under this folder: log_path/job_name/time_stamp + - log_path: $FEDSCALE_HOME/benchmark # Path of log files + - num_participants: 200 # Number of participants per round, we use K=100 in our paper, large K will be much slower + - data_set: femnist # Dataset: openImg, google_speech, stackoverflow + - data_dir: $FEDSCALE_HOME/benchmark/dataset/data/ # Path of the dataset + - data_map_file: $FEDSCALE_HOME/benchmark/dataset/data/femnist/client_data_mapping/train.csv # Allocation of data to each client, turn to iid setting if not provided + - device_conf_file: $FEDSCALE_HOME/benchmark/dataset/data/device_info/client_device_capacity # Path of the client trace + - device_avail_file: $FEDSCALE_HOME/benchmark/dataset/data/device_info/client_behave_trace + - model: resnet18 # NOTE: Please refer to our model zoo README and use models for these small image (e.g., 32x32x3) inputs +# - model_zoo: fedscale-torch-zoo + - eval_interval: 20 # How many rounds to run a testing on the testing set + - rounds: 1000 # Number of rounds to run this training. We use 1000 in our paper, while it may converge w/ ~400 rounds + - filter_less: 0 # Remove clients w/ less than 21 samples + - num_loaders: 2 + - local_steps: 10 + - learning_rate: 0.05 + - batch_size: 20 + - test_bsz: 20 + - use_cuda: True + - save_checkpoint: False diff --git a/examples/auxo/Dockerfile b/examples/auxo/Dockerfile new file mode 100644 index 00000000..8e5bb3e3 --- /dev/null +++ b/examples/auxo/Dockerfile @@ -0,0 +1,29 @@ +# Use an official CUDA image as a parent image +FROM nvidia/cuda:11.0-base-ubuntu20.04 + +# Set the working directory inside the container +WORKDIR /app + +# Install necessary system packages +RUN apt-get update && apt-get install -y python3.7 python3-pip + +# Create a virtual environment and activate it +RUN python3.7 -m pip install virtualenv +RUN python3.7 -m virtualenv venv +RUN /bin/bash -c "source venv/bin/activate" + +# Copy the requirements file into the container +COPY requirements.txt . + +# Install the Python dependencies +RUN pip install --upgrade pip && pip install -r requirements.txt + +# Copy the project files into the container (assuming your project is in the current directory) +COPY . . + +# Install your project using pip +RUN pip install -e . + +# Command to run when the container starts +CMD ["bash"] + diff --git a/examples/auxo/README.md b/examples/auxo/README.md index 11d5722a..53b338cf 100644 --- a/examples/auxo/README.md +++ b/examples/auxo/README.md @@ -1 +1,76 @@ -# Auxo + + +
+ + Auxo logo + +

Auxo: Efficient Federated Learning via Scalable Client Clustering

+ +
+ +Auxo is a heterogeneity manager in Federated Learning (FL) through scalable and efficient cohort-based training mechanisms. +For more details, refer to our academic paper on SoCC'23 [paper](https://arxiv.org/abs/2210.16656). + + +## Key Features + +- **Scalable Cohort Identification**: Efficiently identifies cohorts even in large-scale FL deployments. + +- **Cohort-Based Training**: Optimizes the performance of existing FL algorithms by reducing intra-cohort heterogeneity. + +- **Resource Efficiency**: Designed to work in low-availability, resource-constrained settings without additional computational overhead. + +- **Privacy Preservation**: Respects user privacy by avoiding the need for traditional clustering methods that require access to client data. + + +## Getting Started +### Install +```commandline +docker build -t fedscale:auxo . +docker run --gpus all -it --name auxo -v $FEDSCALE_HOME:/workspace/FedScale fedscale:auxo /bin/bash +``` + +``` +echo export FEDSCALE_HOME=$(pwd) >> ~/.bashrc +echo alias fedscale=\'bash ${FEDSCALE_HOME}/fedscale.sh\' >> ~/.bashrc +source ~/.bashrc +``` + +### Prepare dataset +After setting up the fedscale environment, you can download the dataset and partition each client dataset into train set and test set. + +```commandline +cd $FEDSCALE_HOME/examples/auxo +``` + +``` +fedscale dataset download femnist +python -m utils.prepare_test_train ../../benchmark/dataset/data/femnist/client_data_mapping/train.csv +python -m utils.prepare_test_train ../../benchmark/dataset/data/femnist/client_data_mapping/test.csv +python -m utils.prepare_test_train ../../benchmark/dataset/data/femnist/client_data_mapping/val.csv +``` +### Run Auxo +``` +cd $FEDSCALE_HOME +fedscale driver start benchmark/configs/auxo/auxo.yml +``` + +### Visualize continuous clustering algorithm +```commandline +cd $FEDSCALE_HOME/examples/auxo +python playground.py +``` +Visualized Results: + +

+ + + +

+ + +

+ + + +

\ No newline at end of file diff --git a/examples/auxo/aggregator.py b/examples/auxo/aggregator.py index 329f9840..2a4c73ea 100644 --- a/examples/auxo/aggregator.py +++ b/examples/auxo/aggregator.py @@ -153,6 +153,21 @@ def CLIENT_REGISTER(self, request, context): return job_api_pb2.ServerResponse(event=generate_msg(commons.DUMMY_EVENT, 0), meta=dummy_data, data=dummy_data) + def get_test_config(self, client_id, cohort_id=0): + """FL model testing on clients, developers can further define personalized client config here. + + Args: + client_id (int): The client id. + + Returns: + dictionary: The testing config for new task. + + """ + num_client = self.client_manager.schedule_plan() + client_list = self.select_participants(num_client, overcommitment = 1, cohort_id = cohort_id, test=True) + return {'client_id': client_list} + + def CLIENT_PING(self, request, context): """Handle client ping requests @@ -185,7 +200,7 @@ def CLIENT_PING(self, request, context): commons.CLIENT_TRAIN) elif event_type == commons.MODEL_TEST: # TODO: remove fedscale test and add individual client testing - response_msg = self.get_test_config(client_id) + response_msg = self.get_test_config(client_id, cohort_id) elif event_type == commons.UPDATE_MODEL: response_data = self.model_wrapper[cohort_id].get_weights() elif event_type == commons.SHUT_DOWN: @@ -362,7 +377,7 @@ def update_default_task_config(self, cohort_id): self.args.learning_rate = max( self.args.learning_rate * self.args.decay_factor, self.args.min_learning_rate) - def select_participants(self, select_num_participants, overcommitment=1.3, cohort_id=0): + def select_participants(self, select_num_participants, overcommitment=1.3, cohort_id=0, test=False): """Select clients for next round. Args: @@ -376,10 +391,12 @@ def select_participants(self, select_num_participants, overcommitment=1.3, cohor return sorted(self.client_manager.select_participants( int(select_num_participants * overcommitment), cur_time=self.global_virtual_clock[cohort_id], - cohort_id=cohort_id) + cohort_id=cohort_id, + test=test) ) + def _init_split_config(self, cohort_id): def increment_config( in_list ): in_list.append([]) diff --git a/examples/auxo/client_manager.py b/examples/auxo/client_manager.py index a801bdb7..e8e88f60 100644 --- a/examples/auxo/client_manager.py +++ b/examples/auxo/client_manager.py @@ -2,7 +2,6 @@ from fedscale.cloud.client_manager import * from collections import defaultdict from client_metadata import AuxoClientMetadata -import math import logging import numpy as np from sklearn import preprocessing @@ -83,7 +82,7 @@ def getFeasibleClients(self, cur_time: float, cohort_id: int = 0): return clients_online - def select_participants(self, num_of_clients: int, cur_time: float = 0, cohort_id: int = 0) -> List[int]: + def select_participants(self, num_of_clients: int, cur_time: float = 0, cohort_id: int = 0, test: bool = False) -> List[int]: """Select participating clients for current execution task. Args: @@ -104,8 +103,18 @@ def select_participants(self, num_of_clients: int, cur_time: float = 0, cohort_i pickled_clients = None clients_online_set = set(clients_online) - # TODO: select clients for testing - if self.mode == "oort": + if test: + pivot_client = self.reward_qtable.return_pivot_client(cohort_id) + pivot_client = list(set(pivot_client) & set(self.feasibleClients[cohort_id])) + self.rng.shuffle(pivot_client) + extra_clt = list(set(clients_online) - set(pivot_client)) + self.rng.shuffle(extra_clt) + + pickled_clients = pivot_client + extra_clt + client_len = min(num_of_clients, len(pickled_clients) - 1) + pickled_clients = pickled_clients[:client_len] + + elif self.mode == "oort": pickled_clients = self.ucb_sampler.select_participant( num_of_clients, feasible_clients=clients_online_set) else: @@ -233,7 +242,7 @@ def _print_cohort(self, round): size_ratio = [len(cluster) for cluster in self.feasibleClients] logging.info(f'Round {round} FeasibleClients client number : {size_ratio}') - def schedule_plan(self, round, cohort_id) -> int: + def schedule_plan(self, round=0, cohort_id=0) -> int: """ Schedule the training resources for each cohort Args: diff --git a/examples/auxo/client_metadata.py b/examples/auxo/client_metadata.py index ad8fd2c6..87c961e5 100644 --- a/examples/auxo/client_metadata.py +++ b/examples/auxo/client_metadata.py @@ -5,7 +5,7 @@ class AuxoClientMetadata(ClientMetadata): def __init__(self, host_id, client_id, speed, traces=None): super().__init__(host_id, client_id, speed, traces) - self.grad_ratio = 2 + self.grad_ratio = 10 def register_gradient(self, W, W_old): W_old = [dt.cpu().numpy() for dt in W_old] diff --git a/examples/auxo/clustering.py b/examples/auxo/clustering.py index 1dab9d62..19f69a2d 100644 --- a/examples/auxo/clustering.py +++ b/examples/auxo/clustering.py @@ -62,18 +62,19 @@ def __init__(self, num_client, train_ratio=0.1, base_reward=5, sample_seed=233, self.pivot_clients[0] = [*range(self.num_client)] self.min_cluster_size = num_client // 10 self.split_round = split_round - # self.epoch = 0 self.merge_action = merge self.metric = metric if metric == 'kl': - def KL(a, b): - epsilon = 0.00001 - a += epsilon - b += epsilon + self._initialize_kl() - return np.sum(np.where(a != 0, a * np.log(a / b), 0)) - - self.kl = KL + def _initialize_kl(self): + """Initialize KL divergence metric if applicable.""" + def KL(a, b): + epsilon = 0.00001 + a += epsilon + b += epsilon + return np.sum(np.where(a != 0, a * np.log(a / b), 0)) + self.kl = KL def update_R(self, cid, mid, new_reward): self.Qtable[cid][mid].update_R(new_reward) @@ -192,8 +193,7 @@ def split(self, mid): ratio = sub_num[0] / max(sub_num[1], 1) within_ratio = True if (ratio > 0.5 and ratio < 2) or self.num_model == 1 else False - return sub_num[0] > min_size and sub_num[ - 1] > min_size and within_ratio # self.num_model < self.avg_train_times and within_ratio + return sub_num[0] > min_size and sub_num[1] > min_size and within_ratio # self.num_model < self.avg_train_times and within_ratio else: return False @@ -236,7 +236,6 @@ def knn_update_subR(self, mid, X_sub, global_index, keep_split=True): elif sub_num[0] == 0 or sub_num[1] == 0: sub_size = len(global_index) // 4 - # TODO: KNN on distance metric if self.metric == 'kl': neigh = NearestNeighbors(n_neighbors=sub_size, metric=lambda a, b: self.kl(a, b)).fit(X_sub) else: @@ -345,13 +344,13 @@ def count_trained_clt(self): print("Trained clients :", len(set(trained_clt))) return list(set(trained_clt)) - def plot(self, X): + def plot(self, X, epoch): trained_clt = self.count_trained_clt() - plt.scatter(X[trained_clt, 0], X[trained_clt, 1], c=self.y_kmeans[trained_clt], s=50, cmap='viridis') - # fig_name = 'result.png' - # plt.savefig(fig_name) + plt.scatter(X[trained_clt, 0], X[trained_clt, 1], c=self.y_kmeans[trained_clt], s=30, cmap='viridis') + plt.title(f"Epoch {epoch}: {len(np.unique(self.y_kmeans[trained_clt], axis=0))} clusters") plt.show() - # print("Save to ",fig_name) + plt.savefig(f"epoch_{epoch}.png") + if len(np.unique(self.y_kmeans[trained_clt], axis=0)) > 1: silhouette_avg = silhouette_score(X[trained_clt], self.y_kmeans[trained_clt]) print("Silhouette score is ", silhouette_avg) diff --git a/examples/auxo/config.yml b/examples/auxo/config.yml index 2f55aedb..4946c84b 100644 --- a/examples/auxo/config.yml +++ b/examples/auxo/config.yml @@ -1,4 +1,6 @@ -split_round: [50,100] +train_data_map_file: examples/auxo/train_by_clt.csv +test_data_map_file: examples/auxo/test_by_clt.csv +split_round: [50,100] # can be removed exploredecay: 0.99 explorerate: 0.01 reduction: False diff --git a/examples/auxo/executor.py b/examples/auxo/executor.py index d390474a..b18b845c 100644 --- a/examples/auxo/executor.py +++ b/examples/auxo/executor.py @@ -3,6 +3,7 @@ from fedscale.cloud.execution.executor import * from utils.helper import * import copy +from config import auxo_config class AuxoExecutor(Executor): def __init__(self, args): @@ -43,6 +44,13 @@ def training_handler(self, client_id, conf, model, cohort_id): collate_fn=self.collate_fn ) client = self.get_client_trainer(self.args) + if len(client_data) == 0: + state_dicts = self.model_adapter[cohort_id].get_model().state_dict() + return {'client_id': client_id, 'moving_loss': 0, + 'trained_size': 0, 'utility': 0, 'wall_duration': 0, + 'update_weight': {p: state_dicts[p].data.cpu().numpy() + for p in state_dicts}, + 'success': 1} train_res = client.train( client_data=client_data, model=self.model_adapter[cohort_id].get_model(), conf=conf) @@ -79,7 +87,51 @@ def Train(self, config): return client_id, train_res - def testing_handler(self, cohort_id): + def _init_train_test_data(self): + + if self.args.data_set == 'femnist': + from utils.openimg import OpenImage + train_transform, test_transform = get_data_transform('mnist') + train_dataset = OpenImage(self.args.data_dir, dataset='femnist', transform=train_transform, client_mapping_file = auxo_config['train_data_map_file'] ) + test_dataset = OpenImage(self.args.data_dir, dataset='femnist', transform=test_transform, client_mapping_file = auxo_config['test_data_map_file'] ) + else: + raise NotImplementedError + return train_dataset, test_dataset + + + def init_data(self): + """Return the training and testing dataset + + Returns: + Tuple of DataPartitioner class: The partioned dataset class for training and testing + + """ + train_dataset, test_dataset = self._init_train_test_data() + if self.args.task == "rl": + return train_dataset, test_dataset + if self.args.task == 'nlp': + self.collate_fn = collate + elif self.args.task == 'voice': + self.collate_fn = voice_collate_fn + # load data partitionxr (entire_train_data) + logging.info("Data partitioner starts ...") + + training_sets = DataPartitioner( + data=train_dataset, args=self.args, numOfClass=self.args.num_class) + training_sets.partition_data_helper( + num_clients=self.args.num_participants, data_map_file=auxo_config['train_data_map_file']) + + testing_sets = DataPartitioner( + data=test_dataset, args=self.args, numOfClass=self.args.num_class) + testing_sets.partition_data_helper( + num_clients=self.args.num_participants, data_map_file=auxo_config['test_data_map_file']) + + logging.info("Data partitioner completes ...") + + return training_sets, testing_sets + + + def testing_handler(self, client_list, cohort_id=0): """Test model Args: @@ -89,20 +141,35 @@ def testing_handler(self, cohort_id): dictionary: The test result """ + + test_num_clt = max(len(client_list) // self.num_executors, 1) + test_client_id_list = client_list[(self.this_rank - 1) * test_num_clt: self.this_rank * test_num_clt] + logging.info(f"[Cohort {cohort_id}] Test client ID: {test_client_id_list}") + testResults_accum = {'top_1': 0, 'top_5': 0, 'test_loss': 0, 'test_len': 0} + test_config = self.override_conf({ 'rank': self.this_rank, 'memory_capacity': self.args.memory_capacity, 'tokenizer': tokenizer }) - client = self.get_client_trainer(test_config) - data_loader = select_dataset(self.this_rank, self.testing_sets, - batch_size=self.args.test_bsz, args=self.args, - isTest=True, collate_fn=self.collate_fn) + for clt in test_client_id_list: + client = self.get_client_trainer(test_config) + data_loader = select_dataset(clt, self.testing_sets, + batch_size=self.args.test_bsz, args=self.args, + isTest=False, collate_fn=self.collate_fn) + if len(data_loader) > 0: + test_results = client.test(data_loader, self.model_adapter[cohort_id].get_model(), test_config) + testResults_accum['top_1'] += test_results['top_1'] + testResults_accum['top_5'] += test_results['top_5'] + testResults_accum['test_loss'] += test_results['test_loss'] + testResults_accum['test_len'] += test_results['test_len'] + + # testRes = {'top_1': correct, 'top_5': top_5, + # 'test_loss': sum_loss, 'test_len': test_len} - test_results = client.test(data_loader, self.model_adapter[cohort_id].get_model(), test_config) gc.collect() - return test_results + return testResults_accum def Test(self, config, cohort_id): """Model Testing. By default, we test the accuracy on all data of clients in the test group @@ -111,7 +178,7 @@ def Test(self, config, cohort_id): config (dictionary): The client testing config. """ - test_res = self.testing_handler(cohort_id) + test_res = self.testing_handler(config['client_id'], cohort_id) test_res = {'executorId': self.this_rank, 'results': test_res} # Report execution completion information diff --git a/examples/auxo/fig/auxo.png b/examples/auxo/fig/auxo.png new file mode 100644 index 0000000000000000000000000000000000000000..90bc3574e1f43aab908db9f15efd77980b31d00d GIT binary patch literal 1278 zcmeAS@N?(olHy`uVBq!ia0vp^nn29Q!3HEZoiwcgQjEnx?oJHr&dIz4a#~U&JkxxA z8MJ_G4hB|6AqHlU5+Gz?lwx27vl$q?7^UItAVv+S8YTvY_DlvAsG2As4Fc1E7^oXc zGcRC7n7Dumu3B>eGn~x_(spn<<3b?CS>O>_%)lTn1j3Bz^DhCtz#{DF;uzw=`!>`w zKRQ&z?)$#y4=v>$Yx1e>P}MT^64mfmE4~As&Ai zmMCpf;0`#gV7Nm|qEn$mvS~4o*PA81&tL8>*S}vnSwJQ@VuRx&kL&OE7N4{IzWctU z&zJpwta&oZxrBS&+%29b^R+u0`)=NMemXBNZ|{$qebsaPmS1huh*lBulxUmSa;|OF z-t+(S=o-x;$`AZfe8-W|VW%XTNs_FR71Ur%2@UAp(!8M}C1g?NSqnGO3x zR)#!F5T3Pc?~Cuh=SRfH@7Fmmecg5XTtT`2f@#~I@1A>Z`MmOI?MWRMKi~V!Iz7E& z`$w_ePHP<$KIG_#Ra;8%$T1ltl!R{Ewymh+uiM(N)BjaH)?c@_v$C4SIGbObt93EM zM=h~)J9HDwIUV?wGE%~ym+d~@*50mu{n|C9Ln7-ZK9Mrb7LMtvo;xWtf8MgLm!^GL zDf1p|+u;?yg16pY@4FcTUvrPVL~`VYO0N6*o|@MgK9%mPcK9#MH#y<8LBvFlR`G^; zx864!DQx}4+I}a@bDDzRq=|d=BwjA*bU5(7>dL~CoY5KAPnv!HFy(IE_jeUGa>tII zI-BO-J6#S5ImO7lv5LqR6w=J-^xUcC z`AlLXN1<7g*SE#aCgLHp%F7#rZDfkCKdjKSxX+a45`LGD;xKH-uvC%#NgNRh~3ke6@phzk#4voEiJwHXU#qiwbCVt*;!d$ zy&dTrL_DOwUUm!iyy3UVB<(8WiuF9-Zf%JEq$8Pj+E{VNUxw+w#3#ATSi+(3cDuu* zMzJ12*1L1M@3A=lwKi1kOMXAy<7;h)^x@X(0EpLH8W>V+n4^u zjdce<8#Zv{UM&+D5~8gdfua+d+M7%NsqcZuV1)mT%H@EkO+KvaGw-xwj&%I`C z;=MgY{B*mO{7L0wzK?!Ab}FADJNKK+?;f2W!d5?H%x2fJPT#}5`25zLJ0l%?@*S?M z*~Bjty5ZIQ75i6S*?#H0sL8#l8Clm9zsBwPe!GhA{}=Y@rXe~%w3q#l{$#BmcBvw? SHuXBF?C^B;b6Mw<&;$Skq7LE! literal 0 HcmV?d00001 diff --git a/examples/auxo/fig/epoch_100.png b/examples/auxo/fig/epoch_100.png new file mode 100644 index 0000000000000000000000000000000000000000..b092edb57df1a8f61ef2ec903e8120a336c74037 GIT binary patch literal 2396 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1{5*9c;^X_vMh0pC<)F_D=AMbN@eg( zEGfvzFUiSFQYcF;D$dN$GuAWLGt^PYC@Co@w$j(ng)7j@FG| 3 else DEFAULT_TOTAL_EPOCH + total_sample = int(sys.argv[1]) if len(sys.argv) > 3 else DEFAULT_TOTAL_SAMPLE + sample_size = int(sys.argv[2]) if len(sys.argv) > 3 else DEFAULT_SAMPLE_SIZE + known_clt = DEFAULT_KNOWN_CLT if len(sys.argv) <= 3 else 1000 + + bipartition_cluster(total_epoch, total_sample, sample_size, known_clt) diff --git a/examples/auxo/requirements.txt b/examples/auxo/requirements.txt new file mode 100644 index 00000000..a66a9f9a --- /dev/null +++ b/examples/auxo/requirements.txt @@ -0,0 +1,32 @@ +tensorboard +numba==0.48.0 +pip==20.0.2 +torch_optimizer +torch +tensorflow +torchvision +transformers +scipy==1.4.1 +matplotlib==3.1.3 +torch_baidu_ctc==0.3.0 +tensorboardX==2.1 +overrides==3.1.0 +python-levenshtein==0.12.0 +pandas==1.1.0 +PyYAML +pytest +sox==1.3.7 +grpcio==1.40.0 +gym +jupyter +pillow==9 +sentencepiece +gdown +h5py +librosa==0.7.2 +SoundFile +resampy==0.3.1 +kubernetes +wandb +nltk + diff --git a/examples/auxo/resource_manager.py b/examples/auxo/resource_manager.py index 57dd50d2..12055df7 100644 --- a/examples/auxo/resource_manager.py +++ b/examples/auxo/resource_manager.py @@ -33,7 +33,6 @@ def remove_client_task(self, client_id, cohort_id): f"client task {client_id} is not in task queue") def has_next_task(self, client_id=None, cohort_id=0): - # TODO: always has next task exist_next_task = False if self.experiment_mode == commons.SIMULATION_MODE: exist_next_task = self.client_run_queue_idx[cohort_id] < len( diff --git a/examples/auxo/utils/openimg.py b/examples/auxo/utils/openimg.py new file mode 100644 index 00000000..498a7b05 --- /dev/null +++ b/examples/auxo/utils/openimg.py @@ -0,0 +1,138 @@ +from __future__ import print_function +import warnings +from PIL import Image +import os +import os.path +import csv + + +class OpenImage(): + """ + Args: + root (string): Root directory of dataset where ``MNIST/processed/training.pt`` + and ``MNIST/processed/test.pt`` exist. + train (bool, optional): If True, creates dataset from ``training.pt``, + otherwise from ``test.pt``. + download (bool, optional): If true, downloads the dataset from the internet and + puts it in root directory. If dataset is already downloaded, it is not + downloaded again. + transform (callable, optional): A function/transform that takes in an PIL image + and returns a transformed version. E.g, ``transforms.RandomCrop`` + target_transform (callable, optional): A function/transform that takes in the + target and transforms it. + """ + + classes = [] + + @property + def train_labels(self): + warnings.warn("train_labels has been renamed targets") + return self.targets + + @property + def test_labels(self): + warnings.warn("test_labels has been renamed targets") + return self.targets + + @property + def train_data(self): + warnings.warn("train_data has been renamed data") + return self.data + + @property + def test_data(self): + warnings.warn("test_data has been renamed data") + return self.data + + def __init__(self, root, dataset='train', transform=None, target_transform=None, + imgview=False, client_mapping_file=None, num_clt=1e10, noniid=0): + + self.root = root + self.transform = transform + self.target_transform = target_transform + self.data_file = dataset # 'train', 'test', 'validation' + self.client_mapping_file = client_mapping_file + self.num_clt = num_clt + if not self._check_exists(): + raise RuntimeError('Dataset not found. You have to download it') + + self.path = os.path.join(self.processed_folder, self.data_file) + # load data and targets + self.data_to_clientID = {} + self.data, self.targets = self.load_file(self.path) + self.imgview = imgview + self.noniid = noniid + + def __getitem__(self, index): + """ + Args: + id_clt (int): Index, client ID + + Returns: + tuple: (image, target) where target is index of the target class. + """ + # index , clientID = id_clt + imgName, target = self.data[index], int(self.targets[index]) + + # doing this so that it is consistent with all other datasets + # to return a PIL Image + img = Image.open(os.path.join(self.path, imgName)) + # avoid channel error + if img.mode != 'RGB': + img = img.convert('RGB') + + if self.transform is not None: + img = self.transform(img) + + if self.target_transform is not None: + target = self.target_transform(target) + + return img, target + + def __len__(self): + return len(self.data) + + @property + def raw_folder(self): + return self.root + + @property + def processed_folder(self): + return self.root + + def _check_exists(self): + + print("Checking data path:", os.path.join(self.processed_folder, self.data_file)) + return (os.path.exists(os.path.join(self.processed_folder, + self.data_file))) + + def load_meta_data(self, path): + datas, labels = [], [] + unique_clientIds = set() + with open(path) as csv_file: + csv_reader = csv.reader(csv_file, delimiter=',') + line_count = 0 + for row in csv_reader: + if line_count != 0: + unique_clientIds.add(row[0]) + self.data_to_clientID[len(datas)] = row[0] + if len(unique_clientIds) > self.num_clt: + break + datas.append(row[1]) + labels.append(int(row[-1])) + + line_count += 1 + return datas, labels + + def load_file(self, path): + # load meta file to get labels + # datas, labels = self.load_meta_data(os.path.join(self.processed_folder, 'client_data_mapping', self.data_file+'.csv')) + if self.client_mapping_file is not None: + datas, labels = self.load_meta_data(self.client_mapping_file) + else: + datas, labels = self.load_meta_data( + os.path.join(self.processed_folder, 'client_data_mapping', self.data_file + '.csv')) + + return datas, labels + + diff --git a/examples/auxo/utils/prepare_train_test.py b/examples/auxo/utils/prepare_train_test.py new file mode 100644 index 00000000..eb528075 --- /dev/null +++ b/examples/auxo/utils/prepare_train_test.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import csv +import sys +from collections import defaultdict +from os import path +import pandas as pd + + +def partition_by_client_unsort(file_path='train.csv'): + print(f"Processing {file_path} into train and test sets.") + + clt_smp = defaultdict(list) + title = None + + # Read CSV and partition by client + with open(file_path, 'r') as fin: + csv_reader = csv.reader(fin) + for ind, row in enumerate(csv_reader): + if ind == 0: + title = row + else: + clt_smp[row[0]].append(ind - 1) + + # Check if output files already exist + no_title = path.exists('train_by_clt.csv') or path.exists('test_by_clt.csv') + + # Initialize CSV writers for train and test sets + with open('train_by_clt.csv', 'a') as write_partition_train_file, open('test_by_clt.csv', + 'a') as write_partition_test_file: + writer_train = csv.writer(write_partition_train_file) + writer_test = csv.writer(write_partition_test_file) + + if not no_title: + writer_train.writerow(title) + writer_test.writerow(title) + + # Read original CSV into a Pandas DataFrame + print("Reading into pandas DataFrame.") + df = pd.read_csv(file_path) + + cnt = 0 + clt_num = 0 + + # Partition data and write to train and test CSV files + for clt, samples in clt_smp.items(): + sample_num = len(samples) + cnt += sample_num + clt_num += 1 + + for i, sample_idx in enumerate(samples): + if i < sample_num * 0.8: + writer_train.writerow(list(df.loc[sample_idx].values)) + else: + writer_test.writerow(list(df.loc[sample_idx].values)) + + if cnt % 10000 == 0: + print(f"Wrote {cnt} samples.") + print(f"Running average sample: {cnt / clt_num}") + + +if __name__ == "__main__": + file_path = sys.argv[1] + partition_by_client_unsort(file_path) From 3792cef8c107e0293276fa3426de77a08b6e4216 Mon Sep 17 00:00:00 2001 From: AmberLJC Date: Fri, 22 Sep 2023 01:10:58 -0400 Subject: [PATCH 3/6] figure --- examples/auxo/README.md | 16 +++++++--------- examples/auxo/clustering.py | 2 +- examples/auxo/fig/auxo.png | Bin 1278 -> 33145 bytes examples/auxo/fig/epoch_100.png | Bin 2396 -> 70746 bytes examples/auxo/fig/epoch_11.png | Bin 2396 -> 0 bytes examples/auxo/fig/epoch_14.png | Bin 0 -> 61974 bytes examples/auxo/fig/epoch_224.png | Bin 0 -> 78346 bytes examples/auxo/fig/epoch_300.png | Bin 2396 -> 76931 bytes examples/auxo/fig/epoch_500.png | Bin 2396 -> 76529 bytes examples/auxo/fig/epoch_700.png | Bin 2396 -> 75606 bytes examples/auxo/fig/epoch_900.png | Bin 2396 -> 0 bytes examples/auxo/fig/epoch_99.png | Bin 2396 -> 0 bytes examples/auxo/playground.py | 4 ++-- 13 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 examples/auxo/fig/epoch_11.png create mode 100644 examples/auxo/fig/epoch_14.png create mode 100644 examples/auxo/fig/epoch_224.png delete mode 100644 examples/auxo/fig/epoch_900.png delete mode 100644 examples/auxo/fig/epoch_99.png diff --git a/examples/auxo/README.md b/examples/auxo/README.md index 53b338cf..95ca6d0d 100644 --- a/examples/auxo/README.md +++ b/examples/auxo/README.md @@ -60,17 +60,15 @@ fedscale driver start benchmark/configs/auxo/auxo.yml cd $FEDSCALE_HOME/examples/auxo python playground.py ``` -Visualized Results: +Visualized clustering Results:

- - + + + + +

- -

- - - -

\ No newline at end of file + \ No newline at end of file diff --git a/examples/auxo/clustering.py b/examples/auxo/clustering.py index 19f69a2d..c090c8af 100644 --- a/examples/auxo/clustering.py +++ b/examples/auxo/clustering.py @@ -348,8 +348,8 @@ def plot(self, X, epoch): trained_clt = self.count_trained_clt() plt.scatter(X[trained_clt, 0], X[trained_clt, 1], c=self.y_kmeans[trained_clt], s=30, cmap='viridis') plt.title(f"Epoch {epoch}: {len(np.unique(self.y_kmeans[trained_clt], axis=0))} clusters") - plt.show() plt.savefig(f"epoch_{epoch}.png") + plt.show() if len(np.unique(self.y_kmeans[trained_clt], axis=0)) > 1: silhouette_avg = silhouette_score(X[trained_clt], self.y_kmeans[trained_clt]) diff --git a/examples/auxo/fig/auxo.png b/examples/auxo/fig/auxo.png index 90bc3574e1f43aab908db9f15efd77980b31d00d..71458bb5b0692d767e453d4b1f0a1dbb673cde03 100644 GIT binary patch literal 33145 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 delta 1142 zcmV-+1d03kf&%^tA&F2zjpymTcQ4;{lMozJSg=9jNZ0SZbIv{YyWbg1^uPQ&3}|->6OBekIOk)34u?ZC zO|!nwmkkXKjre@Ndz?$HER=GihG@sRd1fAis?0uYGj_^wzx`Hs11KVF84M74ugyz7-Ly~uz3pKFG(ra z0P=OddqDpa4wGQ(Fj$dDg%^OH+V6uhAhr4hhul_4mLN`&k-aV$>76Mk0i^XE`5=y2F@QNIS87wZO;22UI1?}^RM8Xn6 zTpa8=SZfgyDQJmFxhhG2<`}UEaW-N~_M<~I7gU;ecH&-)K#H&|tD$swuL58L&mO*k zAi>%gYGktAZkLeG%cza2$KyF23WWlLAsy5@?bcOWSf2<7IC_W)76-ZMj^;Yq zea<*>aMzwjrDG>0gftA6!{Kmv5)1}$n;9%0>co-D+G%)(7Si6=3AXBN78-UUq8ylnfe7*=K zb);cyYHCW2h-a`ANE`LjMpH@HPNFns)d8rl4EEZvTkKx~i{1o7{W~!wj$`kaNcDY)8^eWrW9$IPYPA|gAwPl|EY|DwX>7cP z^pB%~e!=rGfCy}FZ&z&F{u;o3#ymTZz-keufwj82`V~gV4RTtCG+UnHjNT`+@f+u^ zF`HNvApOue;a;Gna=lum3IN^6WHQG=$Tf7enzw|0XyBZG&sE$5Ac5X4l}g{k_APGo zlX3#^U(t1M;@d>(gHTn<T`CK-eeFc}i3!~4qxw%=J1B-w*8l(j diff --git a/examples/auxo/fig/epoch_100.png b/examples/auxo/fig/epoch_100.png index b092edb57df1a8f61ef2ec903e8120a336c74037..305f0e61408792190d1aec21d0b7945793cc3d2b 100644 GIT binary patch literal 70746 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

5WxDc{|MC2F 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 W6GuoYFw!vK2O%NZD_ny!E8q{G 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
X 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 XaGWzVYky|~0uJNr=KAH=93%e+t}Sa| literal 2396 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 JN-%bL@E`0udp`gG literal 2396 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 TdQ5?GQh`q!p{I^fwFv$fwLr}q literal 2396 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1{5*9c;^X_vMh0pC<)F_D=AMbN@eg( zEGfvzFUiSFQYcF;D$dN$GuAWLGt^PYC@Co@w$j(ng)7j@FG| Date: Fri, 22 Sep 2023 11:07:11 -0400 Subject: [PATCH 4/6] readme; tweak --- examples/auxo/README.md | 12 ++++++------ examples/auxo/aggregator.py | 2 +- examples/auxo/client_manager.py | 2 ++ examples/auxo/executor.py | 3 ++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/examples/auxo/README.md b/examples/auxo/README.md index 95ca6d0d..b59698e0 100644 --- a/examples/auxo/README.md +++ b/examples/auxo/README.md @@ -63,12 +63,12 @@ python playground.py Visualized clustering Results:

- - - - - - + + + + + +

\ No newline at end of file diff --git a/examples/auxo/aggregator.py b/examples/auxo/aggregator.py index 2a4c73ea..829bf837 100644 --- a/examples/auxo/aggregator.py +++ b/examples/auxo/aggregator.py @@ -236,7 +236,7 @@ def CLIENT_EXECUTE_COMPLETION(self, request, context): if execution_status is False: logging.error(f"Executor {executor_id} fails to run client {client_id}, due to {execution_msg}") - if self.resource_manager.has_next_task(executor_id): + if self.resource_manager.has_next_task(executor_id, cohort_id): # NOTE: we do not pop the train immediately in simulation mode, # since the executor may run multiple clients if commons.CLIENT_TRAIN not in self.individual_client_events[executor_id]: diff --git a/examples/auxo/client_manager.py b/examples/auxo/client_manager.py index e8e88f60..86409efd 100644 --- a/examples/auxo/client_manager.py +++ b/examples/auxo/client_manager.py @@ -33,6 +33,8 @@ def __init__(self, mode, args, sample_seed=233): self.num_cluster = 1 self.latest_acc_list = {0:1} + logging.info(f'Client manager initialized with auxo config: {auxo_config}') + def register_client(self, host_id: int, client_id: int, size: int, speed: Dict[str, float], duration: float = 1) -> None: diff --git a/examples/auxo/executor.py b/examples/auxo/executor.py index b18b845c..f7c6d48a 100644 --- a/examples/auxo/executor.py +++ b/examples/auxo/executor.py @@ -46,6 +46,7 @@ def training_handler(self, client_id, conf, model, cohort_id): client = self.get_client_trainer(self.args) if len(client_data) == 0: state_dicts = self.model_adapter[cohort_id].get_model().state_dict() + logging.info(f"Client {client_id} has no data, return empty result") return {'client_id': client_id, 'moving_loss': 0, 'trained_size': 0, 'utility': 0, 'wall_duration': 0, 'update_weight': {p: state_dicts[p].data.cpu().numpy() @@ -83,7 +84,7 @@ def Train(self, config): ) ) self.dispatch_worker_events(response) - logging.info(f"Client {client_id} finished training. ") + logging.info(f"[Cohort {cohort_id}] Client {client_id} finished training. ") return client_id, train_res From cdd7cd2f02fdfd75557295a69ca4537c846c3f79 Mon Sep 17 00:00:00 2001 From: AmberLJC Date: Fri, 22 Sep 2023 17:51:22 -0400 Subject: [PATCH 5/6] add gradient statbility monitor --- examples/auxo/README.md | 8 ++-- examples/auxo/clustering.py | 13 +++-- examples/auxo/executor.py | 2 - examples/auxo/utils/grad_monitor.py | 73 +++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 12 deletions(-) create mode 100644 examples/auxo/utils/grad_monitor.py diff --git a/examples/auxo/README.md b/examples/auxo/README.md index b59698e0..4ac86fdf 100644 --- a/examples/auxo/README.md +++ b/examples/auxo/README.md @@ -2,7 +2,7 @@
- Auxo logo + Auxo logo

Auxo: Efficient Federated Learning via Scalable Client Clustering

@@ -25,6 +25,7 @@ For more details, refer to our academic paper on SoCC'23 [paper](https://arxiv.o ## Getting Started ### Install +Following the installation steps if you have not installed fedscale yet. ```commandline docker build -t fedscale:auxo . docker run --gpus all -it --name auxo -v $FEDSCALE_HOME:/workspace/FedScale fedscale:auxo /bin/bash @@ -40,11 +41,8 @@ source ~/.bashrc After setting up the fedscale environment, you can download the dataset and partition each client dataset into train set and test set. ```commandline -cd $FEDSCALE_HOME/examples/auxo -``` - -``` fedscale dataset download femnist +cd $FEDSCALE_HOME/examples/auxo python -m utils.prepare_test_train ../../benchmark/dataset/data/femnist/client_data_mapping/train.csv python -m utils.prepare_test_train ../../benchmark/dataset/data/femnist/client_data_mapping/test.csv python -m utils.prepare_test_train ../../benchmark/dataset/data/femnist/client_data_mapping/val.csv diff --git a/examples/auxo/clustering.py b/examples/auxo/clustering.py index c090c8af..007124be 100644 --- a/examples/auxo/clustering.py +++ b/examples/auxo/clustering.py @@ -85,7 +85,6 @@ def update_R(self, cid, mid, new_reward): def update_R_batch(self, cid_list, mid, reward_list, remain_round): for cid, reward in zip(cid_list, reward_list): self.update_R(cid, mid, reward) - # if remain_round == False and reward > 0: self.Qtable[cid][mid].train_times_R += 1 def update_subR(self, cid, mid, sub_id): @@ -175,7 +174,7 @@ def count_known_main(self, global_index, mid): return known_index_list def split(self, mid): - + # whether to split: enough client subreward info + minimal size satisfy + elbow test if self.split_round is not None and self.epoch[mid] in self.split_round: return True elif self.split_round is None: @@ -193,11 +192,12 @@ def split(self, mid): ratio = sub_num[0] / max(sub_num[1], 1) within_ratio = True if (ratio > 0.5 and ratio < 2) or self.num_model == 1 else False - return sub_num[0] > min_size and sub_num[1] > min_size and within_ratio # self.num_model < self.avg_train_times and within_ratio + return sub_num[0] > min_size and sub_num[1] > min_size and within_ratio else: return False def knn_update_subR(self, mid, X_sub, global_index, keep_split=True): + # update cluster membership for each clusters self.epoch[mid] += 1 if self.split_round is not None: if self.epoch[mid] > max(self.split_round) + 1: @@ -206,6 +206,7 @@ def knn_update_subR(self, mid, X_sub, global_index, keep_split=True): keep_split = True if self.init_round[mid] == False: + # First round of clustering if self.num_model > 1: known_clt_list = self.count_known_main(global_index, mid) if len(known_clt_list) <= 1: @@ -229,6 +230,7 @@ def knn_update_subR(self, mid, X_sub, global_index, keep_split=True): self.init_round[mid] = True elif keep_split: + # Continuous clustering of subsequent rounds sub_num, sub_label_list = self.subcluster_policy(mid, global_index) if sub_num[0] == sub_num[1] == 0: @@ -268,7 +270,7 @@ def knn_update_subR(self, mid, X_sub, global_index, keep_split=True): return def update_mainR(self, mid, X_sub, global_index, remain_round=True): - + # update cluster membership for each clusters if self.split_round is not None: if self.epoch[mid] > max(self.split_round) + 1: remain_round = False @@ -323,7 +325,7 @@ def update_pivot_client(self, mid): # TODO: can have many overlap clients, instead choose clients with highest score def return_pivot_client(self, mid): - + # Return the clients that belong to the cohort self.update_pivot_client(mid) return self.pivot_clients[mid] @@ -345,6 +347,7 @@ def count_trained_clt(self): return list(set(trained_clt)) def plot(self, X, epoch): + # Visualize the clustering result trained_clt = self.count_trained_clt() plt.scatter(X[trained_clt, 0], X[trained_clt, 1], c=self.y_kmeans[trained_clt], s=30, cmap='viridis') plt.title(f"Epoch {epoch}: {len(np.unique(self.y_kmeans[trained_clt], axis=0))} clusters") diff --git a/examples/auxo/executor.py b/examples/auxo/executor.py index f7c6d48a..4e10f0ec 100644 --- a/examples/auxo/executor.py +++ b/examples/auxo/executor.py @@ -8,11 +8,9 @@ class AuxoExecutor(Executor): def __init__(self, args): super().__init__(args) - self.round = [0] self.model_adapter = [self.get_client_trainer(args).get_model_adapter(init_model())] - def UpdateModel(self, model_weights, cohort_id): """Receive the broadcasted global model for current round diff --git a/examples/auxo/utils/grad_monitor.py b/examples/auxo/utils/grad_monitor.py new file mode 100644 index 00000000..8475dcf5 --- /dev/null +++ b/examples/auxo/utils/grad_monitor.py @@ -0,0 +1,73 @@ +import logging +import numpy as np +import math + +class Gradient_Monitor(): + def __init__(self, rank): + self.client_grad = {} + self.client_data = {} + self.grad_stability = [] + self.rank = rank + + + def register_client(self, client_id, new_w, old_w, client_data): + if self.rank > 1: + return + + old_w = [dt.cpu().numpy() for dt in old_w] + new_w = [new_w[k] for k in new_w] + gradient = [pb - pa for pa, pb in zip(new_w, old_w)] + self.client_grad[client_id] = np.concatenate([n.ravel() for n in gradient]) + clt_data = None + for data_pair in client_data: + (data, target) = data_pair + if clt_data is None: + clt_data = [np.asarray(data.ravel())] + else: + clt_data.append(np.asarray(data.ravel())) + + self.client_data[client_id] = np.mean(clt_data, axis=0) + logging.info(f'client_data[{client_id}] registered') + + def _cal_data_similarity(self, client_1, client_2): + '''Calculate the cosine similarity between the data of two clients''' + data_1 = self.client_data[client_1].ravel() + data_2 = self.client_data[client_2].ravel() + cosine_similarity = np.dot(data_1, data_2) / (np.linalg.norm(data_1) * np.linalg.norm(data_2)) + return cosine_similarity + + def _cal_grad_similarity(self, client_1, client_2): + '''Calculate the cosine similarity between the gradient of two clients''' + grad_1 = self.client_grad[client_1] + grad_2 = self.client_grad[client_2] + + # Calculate the magnitude (Euclidean norm) of A and B + magnitude_A = np.linalg.norm(grad_1) + magnitude_B = np.linalg.norm(grad_2) + # Calculate the cosine similarity + cosine_similarity = np.dot(grad_1, grad_2) / (magnitude_A * magnitude_B) + + return cosine_similarity + + def cal_pairwise_grad_stability(self): + '''Calculate the pairwise gradient similarity and data similarity''' + if len(self.client_grad) > 0: + grad_sim = [] + data_sim = [] + for client_id1 in self.client_grad: + for client_id2 in self.client_grad: + if client_id1 > client_id2: + data_similarity = self._cal_data_similarity(client_id1, client_id2) + grad_similarity = self._cal_grad_similarity(client_id1, client_id2) + # logging.info(f"Gradient similarity between {client_id1} and {client_id2}: {grad_similarity}") + # logging.info(f"Data similarity between {client_id1} and {client_id2}: {data_similarity}") + data_sim.append(data_similarity) + grad_sim.append(grad_similarity) + correlation_coefficient = np.corrcoef(grad_sim, data_sim)[0, 1] + + self.grad_stability.append(correlation_coefficient) + logging.info(f"Gradient stability: {self.grad_stability}") + # Reset for the next round + self.client_grad = {} + self.client_data = {} + From dabf26a46e7f648656070ffa56a2756427b0807a Mon Sep 17 00:00:00 2001 From: Jiachen LIU <42296458+AmberLJC@users.noreply.github.com> Date: Fri, 22 Sep 2023 23:02:48 -0400 Subject: [PATCH 6/6] Delete benchmark/configs/others/auxo.yml --- benchmark/configs/others/auxo.yml | 51 ------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 benchmark/configs/others/auxo.yml diff --git a/benchmark/configs/others/auxo.yml b/benchmark/configs/others/auxo.yml deleted file mode 100644 index a372979b..00000000 --- a/benchmark/configs/others/auxo.yml +++ /dev/null @@ -1,51 +0,0 @@ -# Configuration file of fed_hetero experiment - -# ========== Cluster configuration ========== -# ip address of the parameter server (need 1 GPU process) -ps_ip: localhost -ps_port: 12345 - -# ip address of each worker:# of available gpus process on each gpu in this node -# Note that if we collocate ps and worker on same GPU, then we need to decrease this number of available processes on that GPU by 1 -# E.g., master node has 4 available processes, then 1 for the ps, and worker should be set to: worker:3 -worker_ips: - - localhost:[10,10,0,0] # worker_ip: [(# processes on gpu) for gpu in available_gpus] eg. 10.0.0.2:[4,4,4,4] This node has 4 gpus, each gpu has 4 processes. - -exp_path: $FEDSCALE_HOME/examples/auxo - -# Entry function of executor and aggregator under $exp_path -executor_entry: executor.py - -aggregator_entry: aggregator.py - -auth: - ssh_user: "" - ssh_private_key: ~/.ssh/id_rsa - -# cmd to run before we can indeed run FAR (in order) -setup_commands: - - source $HOME/anaconda3/bin/activate fedscale - -# ========== Additional job configuration ========== -# Default parameters are specified in config_parser.py, wherein more description of the parameter can be found - -job_conf: - - job_name: auxo_femnist # Generate logs under this folder: log_path/job_name/time_stamp - - log_path: $FEDSCALE_HOME/benchmark # Path of log files - - num_participants: 200 # Number of participants per round, we use K=100 in our paper, large K will be much slower - - data_set: femnist # Dataset: openImg, google_speech, stackoverflow - - data_dir: $FEDSCALE_HOME/benchmark/dataset/data/femnist # Path of the dataset - - data_map_file: $FEDSCALE_HOME/benchmark/dataset/data/femnist/client_data_mapping/train.csv # Allocation of data to each client, turn to iid setting if not provided - - device_conf_file: $FEDSCALE_HOME/benchmark/dataset/data/device_info/client_device_capacity # Path of the client trace - - device_avail_file: $FEDSCALE_HOME/benchmark/dataset/data/device_info/client_behave_trace - - model: resnet18 # NOTE: Please refer to our model zoo README and use models for these small image (e.g., 32x32x3) inputs -# - model_zoo: fedscale-torch-zoo - - eval_interval: 20 # How many rounds to run a testing on the testing set - - rounds: 1000 # Number of rounds to run this training. We use 1000 in our paper, while it may converge w/ ~400 rounds - - filter_less: 0 # Remove clients w/ less than 21 samples - - num_loaders: 2 - - local_steps: 10 - - learning_rate: 0.05 - - batch_size: 20 - - test_bsz: 20 - - use_cuda: True