Full Code of bytedance/monolith for AI

master 135c491a52b1 cached
1324 files
26.8 MB
2.6M tokens
8901 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (10,209K chars total). Download the full file to get everything.
Repository: bytedance/monolith
Branch: master
Commit: 135c491a52b1
Files: 1324
Total size: 26.8 MB

Directory structure:
gitextract_ddr9m3f9/

├── .bazelrc
├── .gitignore
├── LICENSE
├── README.md
├── WORKSPACE
├── conf/
│   └── BUILD
├── deploy/
│   ├── .dockerignore
│   ├── .gitignore
│   ├── .golangci.yaml
│   ├── Dockerfile
│   ├── Makefile
│   ├── PROJECT
│   ├── README.md
│   ├── api/
│   │   └── v1/
│   │       ├── groupversion_info.go
│   │       ├── mlservice_types.go
│   │       └── zz_generated.deepcopy.go
│   ├── build.sh
│   ├── config/
│   │   ├── crd/
│   │   │   ├── bases/
│   │   │   │   └── mlplatform.volcengine.com_mlservices.yaml
│   │   │   ├── kustomization.yaml
│   │   │   ├── kustomizeconfig.yaml
│   │   │   └── patches/
│   │   │       ├── cainjection_in_mlservices.yaml
│   │   │       └── webhook_in_mlservices.yaml
│   │   ├── default/
│   │   │   ├── kustomization.yaml
│   │   │   ├── manager_auth_proxy_patch.yaml
│   │   │   └── manager_config_patch.yaml
│   │   ├── manager/
│   │   │   ├── controller_manager_config.yaml
│   │   │   ├── kustomization.yaml
│   │   │   └── manager.yaml
│   │   ├── prometheus/
│   │   │   ├── kustomization.yaml
│   │   │   └── monitor.yaml
│   │   ├── rbac/
│   │   │   ├── auth_proxy_client_clusterrole.yaml
│   │   │   ├── auth_proxy_role.yaml
│   │   │   ├── auth_proxy_role_binding.yaml
│   │   │   ├── auth_proxy_service.yaml
│   │   │   ├── kustomization.yaml
│   │   │   ├── leader_election_role.yaml
│   │   │   ├── leader_election_role_binding.yaml
│   │   │   ├── mlservice_editor_role.yaml
│   │   │   ├── mlservice_viewer_role.yaml
│   │   │   ├── role.yaml
│   │   │   ├── role_binding.yaml
│   │   │   └── service_account.yaml
│   │   └── samples/
│   │       └── mlplatform_v1_mlservice.yaml
│   ├── controllers/
│   │   ├── constants.go
│   │   ├── deployment_handler.go
│   │   ├── mlservice_controller.go
│   │   ├── service_handler.go
│   │   └── status.go
│   ├── go.mod
│   ├── go.sum
│   ├── hack/
│   │   └── boilerplate.go.txt
│   ├── main.go
│   └── serving/
│       ├── agent.conf
│       ├── docker/
│       │   ├── Dockerfile
│       │   ├── assets/
│       │   │   ├── Python-3.8.6.tar.xz
│       │   │   ├── bashrc
│       │   │   ├── build.sh
│       │   │   ├── configurator_dumpenv.service
│       │   │   ├── configurator_dumpenv.sh
│       │   │   ├── pip.conf
│       │   │   ├── rdma/
│       │   │   │   ├── ibverbs-providers_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── ibverbs-utils_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── libibumad3_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── libibverbs-dev_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── libibverbs1_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── librdmacm1_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   └── rdmacm-utils_50mlnx1-1.50100.0_amd64.deb
│       │   │   └── requirements.txt
│       │   └── run
│       ├── open_source_serving.sh
│       └── scripts/
│           ├── build_serving.sh
│           └── run_server
├── idl/
│   ├── BUILD
│   └── matrix/
│       ├── compression/
│       │   ├── compression.cc
│       │   ├── compression.h
│       │   ├── compression_qtz8mm.cc
│       │   ├── compression_qtz8mm.h
│       │   └── float16.h
│       └── proto/
│           ├── example.proto
│           ├── feature.proto
│           ├── line_id.proto
│           └── proto_parser.proto
├── markdown/
│   ├── demo/
│   │   ├── AWS-EKS.md
│   │   ├── BUILD
│   │   ├── Batch.md
│   │   ├── README.md
│   │   ├── Stream.md
│   │   ├── demo_local_runner.py
│   │   ├── demo_model.py
│   │   ├── kafka_producer.py
│   │   ├── kafka_receiver.py
│   │   ├── kafka_utils/
│   │   │   ├── add_data_topics.sh
│   │   │   ├── delete_topics.sh
│   │   │   ├── kafka_base.sh
│   │   │   └── start_broker.sh
│   │   └── ml_dataset.py
│   ├── input_and_model_fn.md
│   ├── primus_demo/
│   │   ├── README.md
│   │   ├── main.sh
│   │   ├── monolith.Dockerfile
│   │   └── primus_monolith.json
│   └── serving.md
├── monolith/
│   ├── BUILD
│   ├── __init__.py
│   ├── agent_service/
│   │   ├── BUILD
│   │   ├── __init__.py
│   │   ├── agent.conf
│   │   ├── agent.py
│   │   ├── agent_base.py
│   │   ├── agent_client.py
│   │   ├── agent_controller.py
│   │   ├── agent_controller_test.py
│   │   ├── agent_service.proto
│   │   ├── agent_service.py
│   │   ├── agent_service_test.py
│   │   ├── agent_v1.py
│   │   ├── agent_v3.py
│   │   ├── agent_v3_test.py
│   │   ├── backends.py
│   │   ├── backends_test.py
│   │   ├── client.py
│   │   ├── constants.py
│   │   ├── data_def.py
│   │   ├── data_def_test.py
│   │   ├── example_batch.pbtxt
│   │   ├── mocked_tfserving.py
│   │   ├── mocked_tfserving_test.py
│   │   ├── mocked_zkclient.py
│   │   ├── mocked_zkclient_test.py
│   │   ├── model_manager.py
│   │   ├── model_manager_test.py
│   │   ├── profile.sh
│   │   ├── replica_manager.py
│   │   ├── replica_manager_test.py
│   │   ├── resource_utils.py
│   │   ├── resource_utils_test.py
│   │   ├── run.py
│   │   ├── svr_client.py
│   │   ├── test_data/
│   │   │   ├── BUILD
│   │   │   ├── inst.dump
│   │   │   ├── inst.json
│   │   │   └── inst.pbtext
│   │   ├── tfs_client.py
│   │   ├── tfs_client_test.py
│   │   ├── tfs_monitor.py
│   │   ├── tfs_monitor_test.py
│   │   ├── tfs_wrapper.py
│   │   ├── utils.py
│   │   ├── utils_test.py
│   │   ├── zk_mirror.py
│   │   └── zk_mirror_test.py
│   ├── base_runner.py
│   ├── common/
│   │   └── python/
│   │       ├── BUILD
│   │       └── mem_profiling.py
│   ├── core/
│   │   ├── BUILD
│   │   ├── __init__.py
│   │   ├── auto_checkpoint_feed_hook.py
│   │   ├── base_embedding_host_call.py
│   │   ├── base_embedding_host_call_test.py
│   │   ├── base_embedding_task.py
│   │   ├── base_host_call.py
│   │   ├── base_layer.py
│   │   ├── base_layer_test.py
│   │   ├── base_model_params.py
│   │   ├── base_task.py
│   │   ├── base_tpu_test.py
│   │   ├── core_test_suite.py
│   │   ├── dense.py
│   │   ├── dense_test.py
│   │   ├── feature.py
│   │   ├── feature_test.py
│   │   ├── host_call.py
│   │   ├── hyperparams.py
│   │   ├── hyperparams_test.py
│   │   ├── mixed_emb_op_comb_nws.py
│   │   ├── model.py
│   │   ├── model_imports.py
│   │   ├── model_registry.py
│   │   ├── optimizers.py
│   │   ├── py_utils.py
│   │   ├── testing_utils.py
│   │   ├── tpu_variable.py
│   │   ├── util.py
│   │   ├── util_test.py
│   │   └── variance_scaling.py
│   ├── gpu_runner.py
│   ├── monolith_workspace.bzl
│   ├── native_training/
│   │   ├── BUILD
│   │   ├── alert/
│   │   │   ├── BUILD
│   │   │   ├── alert.proto
│   │   │   ├── alert_manager.py
│   │   │   └── alert_manager_test.py
│   │   ├── barrier_ops.py
│   │   ├── barrier_ops_test.py
│   │   ├── basic_restore_hook.py
│   │   ├── basic_restore_hook_test.py
│   │   ├── clip_ops.py
│   │   ├── clip_ops_test.py
│   │   ├── cluster_manager.py
│   │   ├── cluster_manager_test.py
│   │   ├── consul.py
│   │   ├── consul_test.py
│   │   ├── cpu_sync_training_test.py
│   │   ├── cpu_training.py
│   │   ├── cpu_training_distributed_test_binary.py
│   │   ├── cpu_training_test.py
│   │   ├── data/
│   │   │   ├── BUILD
│   │   │   ├── __init__.py
│   │   │   ├── data_op_config.proto
│   │   │   ├── data_ops_test.py
│   │   │   ├── data_service_parquet_test.py
│   │   │   ├── data_service_test.py
│   │   │   ├── datasets.py
│   │   │   ├── docker-compose.yaml
│   │   │   ├── eager_mode_test.py
│   │   │   ├── extract_fid_test.py
│   │   │   ├── feature_list.py
│   │   │   ├── feature_list_test.py
│   │   │   ├── feature_utils.py
│   │   │   ├── feature_utils_test.py
│   │   │   ├── item_pool_hook.py
│   │   │   ├── item_pool_test.py
│   │   │   ├── kafka_dataset_test.py
│   │   │   ├── kernels/
│   │   │   │   ├── add_action_kernel.cc
│   │   │   │   ├── add_label_kernel.cc
│   │   │   │   ├── cache_one_dataset_kernel.cc
│   │   │   │   ├── cache_one_dataset_kernel.h
│   │   │   │   ├── df_resource_kernel.cc
│   │   │   │   ├── df_resource_kernel.h
│   │   │   │   ├── dynamic_match_file_dataset_kernel.cc
│   │   │   │   ├── extract_fid_kernel.cc
│   │   │   │   ├── feature_hash.cc
│   │   │   │   ├── feature_name_mapper_tf_bridge.cc
│   │   │   │   ├── feature_name_mapper_tf_bridge.h
│   │   │   │   ├── fill_multi_rank_output_kernel.cc
│   │   │   │   ├── filter_by_label_kernel.cc
│   │   │   │   ├── gen_fid_mask.cc
│   │   │   │   ├── instance_reweight_dataset_kernel.cc
│   │   │   │   ├── instance_reweight_dataset_kernel.h
│   │   │   │   ├── internal/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── arrow_random_access_file.h
│   │   │   │   │   ├── cache_mgr.cc
│   │   │   │   │   ├── cache_mgr.h
│   │   │   │   │   ├── cache_mgr_test.cc
│   │   │   │   │   ├── datasource_utils.cc
│   │   │   │   │   ├── datasource_utils.h
│   │   │   │   │   ├── datasource_utils_test.cc
│   │   │   │   │   ├── file_match_split_provider.cc
│   │   │   │   │   ├── file_match_split_provider.h
│   │   │   │   │   ├── file_match_split_provider_test.cc
│   │   │   │   │   ├── label_utils.cc
│   │   │   │   │   ├── label_utils.h
│   │   │   │   │   ├── label_utils_test.cc
│   │   │   │   │   ├── parquet_column_buffer.h
│   │   │   │   │   ├── parquet_example_reader.h
│   │   │   │   │   ├── relational_utils.h
│   │   │   │   │   ├── relational_utils_test.cc
│   │   │   │   │   ├── sized_random_access_file.h
│   │   │   │   │   ├── uniq_hashtable.h
│   │   │   │   │   ├── uniq_hashtable_test.cc
│   │   │   │   │   ├── value_filter_by_feature.cc
│   │   │   │   │   ├── value_filter_by_feature.h
│   │   │   │   │   ├── value_filter_by_line_id.cc
│   │   │   │   │   ├── value_filter_by_line_id.h
│   │   │   │   │   └── value_filter_test.cc
│   │   │   │   ├── item_pool_kernels.cc
│   │   │   │   ├── item_pool_kernels.h
│   │   │   │   ├── kafka_kernels.cc
│   │   │   │   ├── label_normalization_kernel.cc
│   │   │   │   ├── label_upper_bound_kernel.cc
│   │   │   │   ├── map_id_kernels.cc
│   │   │   │   ├── merge_flow_dataset_kernel.cc
│   │   │   │   ├── multi_label_gen_kernel.cc
│   │   │   │   ├── negative_gen_dataset_kernel.cc
│   │   │   │   ├── negative_gen_dataset_kernel.h
│   │   │   │   ├── parquet_dataset_kernel.cc
│   │   │   │   ├── parse_example_lib.cc
│   │   │   │   ├── parse_example_lib.h
│   │   │   │   ├── parse_input_data_kernel.cc
│   │   │   │   ├── parse_sparse_feature.cc
│   │   │   │   ├── parse_sparse_feature.h
│   │   │   │   ├── pb_dataset_kernel.cc
│   │   │   │   ├── ragged_feature_kernel.cc
│   │   │   │   ├── scatter_label_kernel.cc
│   │   │   │   ├── split_flow_dataset_kernel.cc
│   │   │   │   ├── string_to_variant.cc
│   │   │   │   ├── tf_example_to_example_kernel.cc
│   │   │   │   ├── transform_dataset_kernel.cc
│   │   │   │   ├── transform_dataset_kernel.h
│   │   │   │   └── variant_filter_kernel.cc
│   │   │   ├── multi_flow_test.py
│   │   │   ├── negative_gen_test.py
│   │   │   ├── ops/
│   │   │   │   ├── feature_utils_ops.cc
│   │   │   │   ├── parse_input_data_ops.cc
│   │   │   │   └── pb_dataset_ops.cc
│   │   │   ├── parse_sparse_feature_test.py
│   │   │   ├── parsers.py
│   │   │   ├── test_data/
│   │   │   │   ├── BUILD
│   │   │   │   └── mhy.conf
│   │   │   ├── tf_example_to_example_test.py
│   │   │   ├── training_instance/
│   │   │   │   ├── BUILD
│   │   │   │   ├── cc/
│   │   │   │   │   ├── cached_mem_pool.cc
│   │   │   │   │   ├── cached_mem_pool.h
│   │   │   │   │   ├── cached_mem_pool_test.cc
│   │   │   │   │   ├── data_format_options.h
│   │   │   │   │   ├── data_read_write_test.cc
│   │   │   │   │   ├── data_reader.cc
│   │   │   │   │   ├── data_reader.h
│   │   │   │   │   ├── data_writer.cc
│   │   │   │   │   ├── data_writer.h
│   │   │   │   │   ├── fid.h
│   │   │   │   │   ├── fid_test.cc
│   │   │   │   │   ├── instance_dataset_kernel.cc
│   │   │   │   │   ├── instance_dataset_ops.cc
│   │   │   │   │   ├── instance_processor.cc
│   │   │   │   │   ├── instance_reader.cc
│   │   │   │   │   ├── instance_utils.cc
│   │   │   │   │   ├── instance_utils.h
│   │   │   │   │   ├── instance_utils_test.cc
│   │   │   │   │   ├── parse_instance_kernel.cc
│   │   │   │   │   ├── parse_instance_lib.cc
│   │   │   │   │   ├── parse_instance_lib.h
│   │   │   │   │   ├── parse_instance_ops.cc
│   │   │   │   │   ├── pb_variant.cc
│   │   │   │   │   ├── pb_variant.h
│   │   │   │   │   ├── reader_util.cc
│   │   │   │   │   ├── reader_util.h
│   │   │   │   │   ├── reader_util_test.cc
│   │   │   │   │   ├── snappy_inputbuffer.cc
│   │   │   │   │   ├── snappy_inputbuffer.h
│   │   │   │   │   ├── ue_compress.cc
│   │   │   │   │   ├── ue_compress.h
│   │   │   │   │   ├── ue_compress_test.cc
│   │   │   │   │   ├── zstd_inputbuffer.cc
│   │   │   │   │   └── zstd_inputbuffer.h
│   │   │   │   └── python/
│   │   │   │       ├── instance_dataset_op.py
│   │   │   │       ├── instance_dataset_op_test_stdin.py
│   │   │   │       ├── instance_negative_gen_dataset_op_test.py
│   │   │   │       ├── parse_instance_ops.py
│   │   │   │       ├── parse_instance_ops_test.py
│   │   │   │       ├── parser_utils.py
│   │   │   │       ├── pb_datasource_ops.py
│   │   │   │       └── test_data_utils.py
│   │   │   ├── transform/
│   │   │   │   ├── BUILD
│   │   │   │   ├── cc/
│   │   │   │   │   ├── transforms.cc
│   │   │   │   │   └── transforms.h
│   │   │   │   ├── transform_config.proto
│   │   │   │   ├── transforms.py
│   │   │   │   └── transforms_test.py
│   │   │   ├── transform_dataset_test.py
│   │   │   └── utils.py
│   │   ├── debugging/
│   │   │   ├── BUILD
│   │   │   ├── README.md
│   │   │   ├── debugging_client.py
│   │   │   └── debugging_server.py
│   │   ├── demo.py
│   │   ├── dense_reload_utils.py
│   │   ├── dense_reload_utils_test.py
│   │   ├── device_utils.py
│   │   ├── device_utils_test.py
│   │   ├── distribute/
│   │   │   ├── BUILD
│   │   │   ├── distributed_dataset.py
│   │   │   ├── distributed_dataset_test.py
│   │   │   ├── str_queue.py
│   │   │   └── str_queue_test.py
│   │   ├── distributed_ps.py
│   │   ├── distributed_ps_benchmark.py
│   │   ├── distributed_ps_factory.py
│   │   ├── distributed_ps_factory_test.py
│   │   ├── distributed_ps_sync.py
│   │   ├── distributed_ps_sync_test.py
│   │   ├── distributed_ps_test.py
│   │   ├── distributed_serving_ops.py
│   │   ├── distributed_serving_ops_test.py
│   │   ├── distribution_ops.py
│   │   ├── distribution_ops_benchmark.py
│   │   ├── distribution_ops_fused_benchmark.py
│   │   ├── distribution_ops_fused_test.py
│   │   ├── distribution_ops_test.py
│   │   ├── distribution_utils.py
│   │   ├── embedding_combiners.py
│   │   ├── embedding_combiners_test.py
│   │   ├── entry.py
│   │   ├── entry_test.py
│   │   ├── env_utils.py
│   │   ├── env_utils_test.py
│   │   ├── estimator.py
│   │   ├── estimator_dist_test.py
│   │   ├── estimator_mode_test.py
│   │   ├── estimator_test.py
│   │   ├── feature.py
│   │   ├── feature_test.py
│   │   ├── feature_utils.py
│   │   ├── feature_utils_test.py
│   │   ├── file_ops.py
│   │   ├── file_ops_test.py
│   │   ├── fountain/
│   │   │   ├── BUILD
│   │   │   └── README.md
│   │   ├── fused_embedding_to_layout_test.py
│   │   ├── gen_seq_mask.py
│   │   ├── gen_seq_mask_test.py
│   │   ├── gflags_utils.py
│   │   ├── gflags_utils_test.py
│   │   ├── graph_meta.py
│   │   ├── graph_utils.py
│   │   ├── hash_filter_ops.py
│   │   ├── hash_filter_ops_test.py
│   │   ├── hash_table_ops.proto
│   │   ├── hash_table_ops.py
│   │   ├── hash_table_ops_benchmark.py
│   │   ├── hash_table_ops_test.py
│   │   ├── hash_table_utils.py
│   │   ├── hash_table_utils_test.py
│   │   ├── hooks/
│   │   │   ├── BUILD
│   │   │   ├── ckpt_hooks.proto
│   │   │   ├── ckpt_hooks.py
│   │   │   ├── ckpt_hooks_test.py
│   │   │   ├── ckpt_info.py
│   │   │   ├── ckpt_info_test.py
│   │   │   ├── controller_hooks.proto
│   │   │   ├── controller_hooks.py
│   │   │   ├── controller_hooks_test.py
│   │   │   ├── feature_engineering_hooks.py
│   │   │   ├── hook_utils.py
│   │   │   ├── hook_utils_test.py
│   │   │   ├── ps_check_hooks.py
│   │   │   ├── ps_check_hooks_test.py
│   │   │   ├── server/
│   │   │   │   ├── BUILD
│   │   │   │   ├── client_lib.py
│   │   │   │   ├── constants.py
│   │   │   │   ├── server_lib.py
│   │   │   │   ├── server_lib_test.py
│   │   │   │   └── service.proto
│   │   │   ├── session_hooks.py
│   │   │   └── session_hooks_test.py
│   │   ├── hvd_lib.py
│   │   ├── input.py
│   │   ├── layers/
│   │   │   ├── BUILD
│   │   │   ├── README.md
│   │   │   ├── __init__.py
│   │   │   ├── add_bias.py
│   │   │   ├── add_bias_test.py
│   │   │   ├── advanced_activations.py
│   │   │   ├── advanced_activations_test.py
│   │   │   ├── agru.py
│   │   │   ├── agru_test.py
│   │   │   ├── dense.py
│   │   │   ├── dense_test.py
│   │   │   ├── feature_cross.py
│   │   │   ├── feature_cross_test.py
│   │   │   ├── feature_seq.py
│   │   │   ├── feature_seq_test.py
│   │   │   ├── feature_trans.py
│   │   │   ├── feature_trans_test.py
│   │   │   ├── kernels/
│   │   │   │   ├── feature_insight_kernels.cc
│   │   │   │   ├── ffm_kernels.cc
│   │   │   │   ├── ffm_kernels.cu.cc
│   │   │   │   ├── ffm_kernels.h
│   │   │   │   └── fid_counter_kernel.cc
│   │   │   ├── layer_ops.py
│   │   │   ├── layer_ops_test.py
│   │   │   ├── lhuc.py
│   │   │   ├── lhuc_test.py
│   │   │   ├── logit_correction.py
│   │   │   ├── logit_correction_test.py
│   │   │   ├── mlp.py
│   │   │   ├── mlp_test.py
│   │   │   ├── multi_task.py
│   │   │   ├── multi_task_test.py
│   │   │   ├── norms.py
│   │   │   ├── norms_test.py
│   │   │   ├── ops/
│   │   │   │   ├── feature_insight_ops.cc
│   │   │   │   ├── ffm_ops.cc
│   │   │   │   ├── fid_counter_op.cc
│   │   │   │   └── nas_ops.cc
│   │   │   ├── pooling.py
│   │   │   ├── pooling_test.py
│   │   │   ├── sparse_nas.py
│   │   │   ├── sparse_nas_test.py
│   │   │   └── utils.py
│   │   ├── learning_rate_functions.py
│   │   ├── learning_rate_functions_test.py
│   │   ├── logging_ops.py
│   │   ├── logging_ops_test.py
│   │   ├── losses/
│   │   │   ├── BUILD
│   │   │   ├── batch_softmax_loss.py
│   │   │   ├── batch_softmax_loss_test.py
│   │   │   ├── inbatch_auc_loss.py
│   │   │   ├── inbatch_auc_loss_test.py
│   │   │   └── ltr_losses.py
│   │   ├── metric/
│   │   │   ├── BUILD
│   │   │   ├── cli.py
│   │   │   ├── deep_insight_ops.py
│   │   │   ├── deep_insight_ops_test.py
│   │   │   ├── exit_hook.py
│   │   │   ├── kafka_utils.py
│   │   │   ├── metric_hook.py
│   │   │   ├── metric_hook_test.py
│   │   │   ├── utils.py
│   │   │   └── utils_test.py
│   │   ├── mlp_utils.py
│   │   ├── model.py
│   │   ├── model_comp_test.py
│   │   ├── model_dump/
│   │   │   ├── BUILD
│   │   │   ├── dump_utils.py
│   │   │   ├── graph_utils.py
│   │   │   ├── graph_utils_test.py
│   │   │   └── monolith_model.proto
│   │   ├── model_export/
│   │   │   ├── BUILD
│   │   │   ├── __init__.py
│   │   │   ├── data_gen_utils.py
│   │   │   ├── data_gen_utils_test.py
│   │   │   ├── demo_export.py
│   │   │   ├── demo_export_test.py
│   │   │   ├── demo_predictor.py
│   │   │   ├── demo_predictor_client.py
│   │   │   ├── export.proto
│   │   │   ├── export_context.py
│   │   │   ├── export_hooks.py
│   │   │   ├── export_hooks_test.py
│   │   │   ├── export_state_utils.py
│   │   │   ├── export_state_utils_test.py
│   │   │   ├── export_utils.py
│   │   │   ├── export_utils_test.py
│   │   │   ├── saved_model_exporters.py
│   │   │   ├── saved_model_exporters_test.py
│   │   │   ├── saved_model_visulizer.py
│   │   │   ├── testdata/
│   │   │   │   ├── BUILD
│   │   │   │   └── saved_model/
│   │   │   │       ├── entry/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       ├── ps_0/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       ├── assets/
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │       │       │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       ├── ps_1/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       ├── assets/
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │       │       │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       ├── ps_2/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       ├── assets/
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │       │       │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       ├── ps_3/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       ├── assets/
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │       │       │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       └── ps_4/
│   │   │   │           └── 1622716114/
│   │   │   │               ├── assets/
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │               │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │               └── variables/
│   │   │   │                   ├── variables.data-00000-of-00001
│   │   │   │                   └── variables.index
│   │   │   ├── warmup_data_decoder.py
│   │   │   ├── warmup_data_gen.py
│   │   │   └── warmup_example_batch.py
│   │   ├── monolith_checkpoint_state.proto
│   │   ├── monolith_export.py
│   │   ├── multi_hash_table_ops.proto
│   │   ├── multi_hash_table_ops.py
│   │   ├── multi_hash_table_ops_test.py
│   │   ├── multi_type_hash_table.py
│   │   ├── multi_type_hash_table_test.py
│   │   ├── native_model.py
│   │   ├── native_task.py
│   │   ├── native_task_context.py
│   │   ├── nested_tensors.py
│   │   ├── nested_tensors_test.py
│   │   ├── net_utils.py
│   │   ├── net_utils_test.py
│   │   ├── optimizers/
│   │   │   ├── BUILD
│   │   │   ├── adamom.py
│   │   │   ├── adamom_test.py
│   │   │   ├── cc/
│   │   │   │   ├── kernels/
│   │   │   │   │   ├── training_op_helpers.h
│   │   │   │   │   ├── training_ops.cc
│   │   │   │   │   ├── training_ops.h
│   │   │   │   │   └── training_ops_gpu.cu.cc
│   │   │   │   └── training_ops.cc
│   │   │   ├── rmsprop.py
│   │   │   ├── rmsprop_test.py
│   │   │   ├── rmspropv2_test.py
│   │   │   └── shampoo.py
│   │   ├── prefetch_queue.py
│   │   ├── prefetch_queue_test.py
│   │   ├── proto/
│   │   │   ├── BUILD
│   │   │   ├── ckpt_info.proto
│   │   │   ├── debugging_info.proto
│   │   │   └── primus_am_service.proto
│   │   ├── ps_benchmark.py
│   │   ├── ps_benchmark_test.py
│   │   ├── ragged_utils.py
│   │   ├── ragged_utils_test.py
│   │   ├── remote_predict_ops.py
│   │   ├── restore_test.py
│   │   ├── runner_utils.py
│   │   ├── runner_utils_test.py
│   │   ├── runtime/
│   │   │   ├── allocator/
│   │   │   │   ├── BUILD
│   │   │   │   ├── block_allocator.cc
│   │   │   │   ├── block_allocator.h
│   │   │   │   └── block_allocator_test.cc
│   │   │   ├── common/
│   │   │   │   ├── BUILD
│   │   │   │   ├── cpu_info.cc
│   │   │   │   ├── cpu_info.h
│   │   │   │   ├── linalg_utils.h
│   │   │   │   ├── linalg_utils_test.cc
│   │   │   │   ├── metrics.cc
│   │   │   │   ├── metrics.h
│   │   │   │   └── metrics_test.cc
│   │   │   ├── concurrency/
│   │   │   │   ├── BUILD
│   │   │   │   ├── micro_one_bit_spin_lock.h
│   │   │   │   ├── queue.h
│   │   │   │   ├── queue_test.cc
│   │   │   │   ├── random_number_generator_benchmark.cc
│   │   │   │   ├── sleeper.h
│   │   │   │   ├── thread_pool.cc
│   │   │   │   ├── thread_pool.h
│   │   │   │   ├── xorshift.cc
│   │   │   │   ├── xorshift.h
│   │   │   │   └── xorshift_test.cc
│   │   │   ├── deep_insight/
│   │   │   │   ├── BUILD
│   │   │   │   ├── deep_insight.cc
│   │   │   │   ├── deep_insight.h
│   │   │   │   └── deep_insight_test.cc
│   │   │   ├── hash_filter/
│   │   │   │   ├── BUILD
│   │   │   │   ├── dummy_hash_filter.h
│   │   │   │   ├── filter.h
│   │   │   │   ├── hash_filter.cc
│   │   │   │   ├── hash_filter.h
│   │   │   │   ├── hash_filter_test.cc
│   │   │   │   ├── probabilistic_filter.cc
│   │   │   │   ├── probabilistic_filter.h
│   │   │   │   ├── probabilistic_filter_test.cc
│   │   │   │   ├── sliding_hash_filter.cc
│   │   │   │   ├── sliding_hash_filter.h
│   │   │   │   ├── sliding_hash_filter_test.cc
│   │   │   │   └── types.h
│   │   │   ├── hash_table/
│   │   │   │   ├── BUILD
│   │   │   │   ├── compressor/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── fake_quantizer.h
│   │   │   │   │   ├── fake_quantizer_test.cc
│   │   │   │   │   ├── float_compressor.cc
│   │   │   │   │   ├── float_compressor.h
│   │   │   │   │   ├── float_compressor.proto
│   │   │   │   │   ├── float_compressor_test.cc
│   │   │   │   │   ├── hash_net_quantizer.h
│   │   │   │   │   └── hash_net_quantizer_test.cc
│   │   │   │   ├── cuckoohash/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── CUCKOO_ORIGINAL_LICENSE
│   │   │   │   │   ├── bucket_container.hpp
│   │   │   │   │   ├── cuckoo_embedding_hash_table.cc
│   │   │   │   │   ├── cuckoo_embedding_hash_table.h
│   │   │   │   │   ├── cuckoo_embedding_hash_table_benchmark.cc
│   │   │   │   │   ├── cuckoo_embedding_hash_table_test.cc
│   │   │   │   │   ├── cuckoohash_config.hpp
│   │   │   │   │   ├── cuckoohash_map.hpp
│   │   │   │   │   └── cuckoohash_util.hpp
│   │   │   │   ├── embedding_hash_table.proto
│   │   │   │   ├── embedding_hash_table_factory.cc
│   │   │   │   ├── embedding_hash_table_factory.h
│   │   │   │   ├── embedding_hash_table_interface.h
│   │   │   │   ├── embedding_hash_table_test.h
│   │   │   │   ├── entry_accessor.cc
│   │   │   │   ├── entry_accessor.h
│   │   │   │   ├── entry_accessor_decorator.h
│   │   │   │   ├── entry_accessor_test.cc
│   │   │   │   ├── entry_defs.h
│   │   │   │   ├── entry_defs_test.cc
│   │   │   │   ├── hash_table_benchmark.cc
│   │   │   │   ├── initializer/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── constants_initializer.cc
│   │   │   │   │   ├── constants_initializer.h
│   │   │   │   │   ├── initializer_combination.cc
│   │   │   │   │   ├── initializer_combination.h
│   │   │   │   │   ├── initializer_combination_test.cc
│   │   │   │   │   ├── initializer_config.proto
│   │   │   │   │   ├── initializer_factory.cc
│   │   │   │   │   ├── initializer_factory.h
│   │   │   │   │   ├── initializer_interface.h
│   │   │   │   │   ├── random_uniform_initializer.cc
│   │   │   │   │   ├── random_uniform_initializer.h
│   │   │   │   │   └── random_uniform_initializer_test.cc
│   │   │   │   ├── optimizer/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── adadelta_optimizer.cc
│   │   │   │   │   ├── adadelta_optimizer.h
│   │   │   │   │   ├── adadelta_optimizer_test.cc
│   │   │   │   │   ├── adagrad_optimizer.cc
│   │   │   │   │   ├── adagrad_optimizer.h
│   │   │   │   │   ├── adagrad_optimizer_test.cc
│   │   │   │   │   ├── adam_optimizer.cc
│   │   │   │   │   ├── adam_optimizer.h
│   │   │   │   │   ├── adam_optimizer_test.cc
│   │   │   │   │   ├── amsgrad_optimizer.cc
│   │   │   │   │   ├── amsgrad_optimizer.h
│   │   │   │   │   ├── amsgrad_optimizer_test.cc
│   │   │   │   │   ├── avx_benchmark.cc
│   │   │   │   │   ├── avx_test.cc
│   │   │   │   │   ├── avx_utils.h
│   │   │   │   │   ├── batch_softmax_optimizer.cc
│   │   │   │   │   ├── batch_softmax_optimizer.h
│   │   │   │   │   ├── batch_softmax_optimizer_test.cc
│   │   │   │   │   ├── dc_optimizer.cc
│   │   │   │   │   ├── dc_optimizer.h
│   │   │   │   │   ├── dc_optimizer_test.cc
│   │   │   │   │   ├── dynamic_wd_adagrad_optimizer.cc
│   │   │   │   │   ├── dynamic_wd_adagrad_optimizer.h
│   │   │   │   │   ├── dynamic_wd_adagrad_optimizer_test.cc
│   │   │   │   │   ├── dynamic_wd_avx_test.cc
│   │   │   │   │   ├── dynamic_wd_avx_utils.h
│   │   │   │   │   ├── ftrl_optimizer.cc
│   │   │   │   │   ├── ftrl_optimizer.h
│   │   │   │   │   ├── ftrl_optimizer_test.cc
│   │   │   │   │   ├── group_adagrad_optimizer.cc
│   │   │   │   │   ├── group_adagrad_optimizer.h
│   │   │   │   │   ├── group_adagrad_optimizer_test.cc
│   │   │   │   │   ├── group_ftrl_optimizer.cc
│   │   │   │   │   ├── group_ftrl_optimizer.h
│   │   │   │   │   ├── group_ftrl_optimizer_test.cc
│   │   │   │   │   ├── momentum_optimizer.cc
│   │   │   │   │   ├── momentum_optimizer.h
│   │   │   │   │   ├── momentum_optimizer_test.cc
│   │   │   │   │   ├── moving_average_optimizer.cc
│   │   │   │   │   ├── moving_average_optimizer.h
│   │   │   │   │   ├── moving_average_optimizer_test.cc
│   │   │   │   │   ├── optimizer.proto
│   │   │   │   │   ├── optimizer_combination.cc
│   │   │   │   │   ├── optimizer_combination.h
│   │   │   │   │   ├── optimizer_combination_test.cc
│   │   │   │   │   ├── optimizer_decorator.h
│   │   │   │   │   ├── optimizer_factory.cc
│   │   │   │   │   ├── optimizer_factory.h
│   │   │   │   │   ├── optimizer_interface.h
│   │   │   │   │   ├── rmsprop_optimizer.cc
│   │   │   │   │   ├── rmsprop_optimizer.h
│   │   │   │   │   ├── rmsprop_optimizer_test.cc
│   │   │   │   │   ├── sgd_optimizer.cc
│   │   │   │   │   ├── sgd_optimizer.h
│   │   │   │   │   ├── sgd_optimizer_test.cc
│   │   │   │   │   ├── stochastic_rounding.cc
│   │   │   │   │   ├── stochastic_rounding.h
│   │   │   │   │   ├── stochastic_rounding_test.cc
│   │   │   │   │   └── test_utils.h
│   │   │   │   ├── quantized_entry_accessor.h
│   │   │   │   ├── quantized_entry_accessor_test.cc
│   │   │   │   ├── retriever/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── fake_quant_retriever.cc
│   │   │   │   │   ├── fake_quant_retriever.h
│   │   │   │   │   ├── fake_quant_retriever_test.cc
│   │   │   │   │   ├── hash_net_retriever.cc
│   │   │   │   │   ├── hash_net_retriever.h
│   │   │   │   │   ├── hash_net_retriever_test.cc
│   │   │   │   │   ├── raw_retriever.cc
│   │   │   │   │   ├── raw_retriever.h
│   │   │   │   │   ├── raw_retriever_test.cc
│   │   │   │   │   ├── retriever_base.h
│   │   │   │   │   ├── retriever_combination.cc
│   │   │   │   │   ├── retriever_combination.h
│   │   │   │   │   ├── retriever_combination_test.cc
│   │   │   │   │   └── retriever_interface.h
│   │   │   │   ├── utils.h
│   │   │   │   └── workspace.bzl
│   │   │   ├── hopscotch/
│   │   │   │   ├── BUILD
│   │   │   │   ├── hopscotch_hash_set.cc
│   │   │   │   ├── hopscotch_hash_set.h
│   │   │   │   └── hopscotch_hash_set_test.cc
│   │   │   ├── ops/
│   │   │   │   ├── BUILD
│   │   │   │   ├── agent_heartbeat.cc
│   │   │   │   ├── agent_heartbeat.h
│   │   │   │   ├── agent_heartbeat_test.cc
│   │   │   │   ├── aligned_concat_split.cu.cc
│   │   │   │   ├── alloc_utils.h
│   │   │   │   ├── clip_by_global_norm.cu.cc
│   │   │   │   ├── clip_by_global_norm.h
│   │   │   │   ├── clip_by_global_norm_fused.cu.cc
│   │   │   │   ├── clip_by_global_norm_op.cc
│   │   │   │   ├── deep_insight_client_tf_bridge.h
│   │   │   │   ├── deep_insight_ops.cc
│   │   │   │   ├── embedding_hash_table_tf_bridge.cc
│   │   │   │   ├── embedding_hash_table_tf_bridge.h
│   │   │   │   ├── file_metric_writer.cc
│   │   │   │   ├── file_metric_writer.h
│   │   │   │   ├── file_metric_writer_test.cc
│   │   │   │   ├── file_ops.cc
│   │   │   │   ├── file_utils.cc
│   │   │   │   ├── file_utils.h
│   │   │   │   ├── file_utils_test.cc
│   │   │   │   ├── fused_embedding_to_layout.cc
│   │   │   │   ├── fused_embedding_to_layout.cu.cc
│   │   │   │   ├── fused_embedding_to_layout.h
│   │   │   │   ├── fused_reorder_by_indices.cc
│   │   │   │   ├── gen_monolith_ops.py
│   │   │   │   ├── gen_seq_mask.cc
│   │   │   │   ├── global_norm.cu.cc
│   │   │   │   ├── gpu_multi_hash_table.h
│   │   │   │   ├── hash_filter_intercept_gradient_op.cc
│   │   │   │   ├── hash_filter_op.cc
│   │   │   │   ├── hash_filter_restore_op.cc
│   │   │   │   ├── hash_filter_save_op.cc
│   │   │   │   ├── hash_filter_tf_bridge.cc
│   │   │   │   ├── hash_filter_tf_bridge.h
│   │   │   │   ├── hash_table/
│   │   │   │   │   └── misc_ops.cc
│   │   │   │   ├── hash_table_lookup_op.cc
│   │   │   │   ├── hash_table_op.cc
│   │   │   │   ├── hash_table_restore_op.cc
│   │   │   │   ├── hash_table_save_op.cc
│   │   │   │   ├── hash_table_update_op.cc
│   │   │   │   ├── inbatch_auc_loss.cc
│   │   │   │   ├── logging_ops.cc
│   │   │   │   ├── logging_ops.proto
│   │   │   │   ├── map_id_to_embedding.cu.cc
│   │   │   │   ├── map_id_to_embedding_op.cc
│   │   │   │   ├── multi_hash_table.h
│   │   │   │   ├── multi_hash_table_lookup_op.cc
│   │   │   │   ├── multi_hash_table_op.cc
│   │   │   │   ├── multi_hash_table_save_restore_ops.cc
│   │   │   │   ├── multi_hash_table_update_op.cc
│   │   │   │   ├── net_utils.cc
│   │   │   │   ├── net_utils.h
│   │   │   │   ├── net_utils_test.cc
│   │   │   │   ├── normalize_merged_split_op.cc
│   │   │   │   ├── parameter_sync_ops.cc
│   │   │   │   ├── parameter_sync_tf_bridge.cc
│   │   │   │   ├── parameter_sync_tf_bridge.h
│   │   │   │   ├── prediction_service_grpc.cc
│   │   │   │   ├── prediction_service_grpc.h
│   │   │   │   ├── reduce_op.cc
│   │   │   │   ├── reduce_op.cu.cc
│   │   │   │   ├── remote_predict_op.h
│   │   │   │   ├── remote_predict_op_grpc.cc
│   │   │   │   ├── split_by_indices_op.cc
│   │   │   │   ├── static_reshape_op.cc
│   │   │   │   ├── touched_key_set_insert_op.cc
│   │   │   │   ├── touched_key_set_op.cc
│   │   │   │   ├── touched_key_set_steal_op.cc
│   │   │   │   ├── touched_key_set_tf_bridge.h
│   │   │   │   └── unique_mapping_ops.cc
│   │   │   └── parameter_sync/
│   │   │       ├── BUILD
│   │   │       ├── dummy_sync_client.h
│   │   │       ├── dummy_sync_server.cc
│   │   │       ├── dummy_sync_server.h
│   │   │       ├── parameter_sync.proto
│   │   │       ├── parameter_sync_client.cc
│   │   │       ├── parameter_sync_client.h
│   │   │       ├── parameter_sync_client_test.cc
│   │   │       ├── request_splitter.cc
│   │   │       ├── request_splitter.h
│   │   │       ├── request_splitter_test.cc
│   │   │       ├── sync_client_interface.h
│   │   │       ├── sync_client_manager.cc
│   │   │       └── sync_client_manager.h
│   │   ├── save_utils.py
│   │   ├── save_utils_test.py
│   │   ├── service_discovery.py
│   │   ├── service_discovery_test.py
│   │   ├── serving_ps_test.py
│   │   ├── session_run_hooks.py
│   │   ├── session_run_hooks_test.py
│   │   ├── signal_utils.py
│   │   ├── signal_utils_test.py
│   │   ├── static_reshape_op.py
│   │   ├── static_reshape_op_test.py
│   │   ├── summary/
│   │   │   ├── BUILD
│   │   │   ├── summary_ops.py
│   │   │   ├── summary_ops_test.py
│   │   │   ├── utils.py
│   │   │   └── utils_test.py
│   │   ├── sync_hooks.py
│   │   ├── sync_hooks_test.py
│   │   ├── sync_training_hooks.py
│   │   ├── sync_training_hooks_test.py
│   │   ├── tensor_utils.py
│   │   ├── tensor_utils_test.py
│   │   ├── test_utils.py
│   │   ├── touched_key_set_ops.py
│   │   ├── touched_key_set_ops_test.py
│   │   ├── utils.py
│   │   ├── utils_test.py
│   │   ├── variables.py
│   │   ├── variables_test.py
│   │   ├── yarn_runtime.py
│   │   ├── yarn_runtime_test.py
│   │   └── zk_utils.py
│   ├── path_utils.py
│   ├── tf_serving_workspace.bzl
│   ├── tpu_runner.py
│   ├── utils.py
│   └── utils_test.py
└── third_party/
    ├── BUILD
    ├── arrow.BUILD
    ├── brotli.BUILD
    ├── bzip2.BUILD
    ├── cli11/
    │   ├── BUILD
    │   ├── CLI11.hpp
    │   └── current_version
    ├── cuCollections.patch
    ├── cuco.BUILD
    ├── dpssdk.BUILD
    ├── eigen3/
    │   ├── README.txt
    │   └── eigen_gcc6.patch
    ├── gperftools/
    │   ├── gperftools.BUILD
    │   └── gperftools.patch
    ├── half_sourceforge_net/
    │   ├── BUILD
    │   └── half.hpp
    ├── jemalloc/
    │   ├── VERSION
    │   └── jeprof
    ├── kafka.BUILD
    ├── libdata_java_model_training.BUILD
    ├── lz4.BUILD
    ├── msgpack/
    │   └── msgpack.BUILD
    ├── nlohmann/
    │   ├── BUILD
    │   └── json.hpp
    ├── org_apache_zookeeper/
    │   ├── BUILD
    │   ├── Makefile.in
    │   ├── config.guess
    │   ├── config.h.in
    │   ├── config.sub
    │   ├── configure
    │   ├── generated/
    │   │   ├── zookeeper.jute.c
    │   │   └── zookeeper.jute.h
    │   ├── install-sh
    │   ├── ltmain.sh
    │   ├── missing
    │   ├── zookeeper-client-c.BUILD
    │   └── zookeeper.bzl
    ├── org_tensorflow/
    │   ├── README.md
    │   └── tf.patch
    ├── org_tensorflow_serving/
    │   ├── public_tf_serving.patch
    │   └── support_diff_dim_size_inputs.patch
    ├── pip_deps/
    │   ├── BUILD
    │   └── requirements.txt
    ├── rapidjson.BUILD
    ├── repo.bzl
    ├── tcmalloc/
    │   └── libtcmalloc_minimal.so.4.3.0
    ├── thrift.BUILD
    ├── tlearner_arch.BUILD
    ├── upb.patch
    ├── xsimd.BUILD
    └── zstd.BUILD

================================================
FILE CONTENTS
================================================

================================================
FILE: .bazelrc
================================================
# Copied from https://github.com/tensorflow/serving/blob/master/.bazelrc
# Some entries are commented to fit to ByteDance environment

# Options used to build with CUDA.
build:cuda --repo_env TF_NEED_CUDA=1
build:cuda --crosstool_top=@local_config_cuda//crosstool:toolchain
build:cuda --define=using_cuda=true --define=using_cuda_nvcc=true
# build:cuda --action_env=TF_CUDA_COMPUTE_CAPABILITIES="sm_50,sm_60,sm_70,sm_75,compute_80"
# Just compile for V100 and T4 and A100 for development:
build:cuda --action_env=TF_CUDA_COMPUTE_CAPABILITIES="sm_70,sm_75,compute_80"

# Explicitly specify "local" here to avoid sandboxed for local.
# Use ./configure to create .monolith_configure.bazelrc to enable build from remote buildfarm.
build --spawn_strategy=local

build --define=grpc_no_ares=true

# Sets the default Apple platform to macOS.
build --apple_platform_type=macos

build -c opt

# LLVM, MLIR and TF require C++14.
build --cxxopt=-std=c++14
build --host_cxxopt=-std=c++14

# preventing relocation overflow error
build:dbg --copt=-gsplit-dwarf

# dbg config, copied from tensorflow v2.4.0
build:dbg -c dbg
# for now, disable arm_neon. see: https://github.com/tensorflow/tensorflow/issues/33360
build:dbg --cxxopt -DTF_LITE_DISABLE_X86_NEON
# AWS SDK must be compiled in release mode. see: https://github.com/tensorflow/tensorflow/issues/37498
build:dbg --copt -DDEBUG_BUILD

# Adding "--cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0" creates parity with TF
# compilation options. It also addresses memory use due to
# copy-on-write semantics of std::strings of the older ABI.
build --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0

build --experimental_repo_remote_exec
### end ###

fetch --experimental_repo_remote_exec
query --experimental_repo_remote_exec
build --genrule_strategy=local

# Make it default to TF2
build --define=tf_api_version=2
build --action_env=TF2_BEHAVIOR=1

# Horovod requires dynamic load on shared object.
build --define=framework_shared_object=true

# Some optimization config.
build --define=open_source_build=true
build --define=use_fast_cpp_protos=true
build --define=allow_oversize_protos=true
build --define=with_xla_support=true

# Some native optimizations
build --copt=-O3
build --copt=-mavx 
build --copt=-mavx2 
build --copt=-mfma 
build --copt=-msse4.1 
build --copt=-msse4.2

# TF currently relies on some bazel deprecated behavior, removes theses options
# once TF fixes bugs.
build --noincompatible_remove_legacy_whole_archive --noincompatible_prohibit_aapt1

# Import user configured options (e.g., like building cluster)
try-import %workspace%/.monolith_configure.bazelrc
# Import bazel 4 compatible options
try-import %workspace%/.bazel4-compatible.bazelrc



================================================
FILE: .gitignore
================================================
# Ignore .DS_Store
.DS_Store
fid_mapping/.DS_Store
fid_analysis/.DS_Store

# Ignore some test data files
fid_mapping/test_data.gz
fid_mapping/downloaded/*
fid_analysis/downloaded/*

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]

# C extensions
*.so

# Distribution / packaging
.Python
.env
venv/
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover

# Translations
*.mo
*.pot

# Django stuff:
*.log

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Bazel binary folders
/bazel-*
/.vscode

# Jupyter noteobok
.ipynb_checkpoints

# go
vendor/



================================================
FILE: LICENSE
================================================
Copyright 2022 ByteDance and/or its affiliates 

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


                              Apache License
                        Version 2.0, January 2004
                     http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

   "License" shall mean the terms and conditions for use, reproduction,
   and distribution as defined by Sections 1 through 9 of this document.

   "Licensor" shall mean the copyright owner or entity authorized by
   the copyright owner that is granting the License.

   "Legal Entity" shall mean the union of the acting entity and all
   other entities that control, are controlled by, or are under common
   control with that entity. For the purposes of this definition,
   "control" means (i) the power, direct or indirect, to cause the
   direction or management of such entity, whether by contract or
   otherwise, or (ii) ownership of fifty percent (50%) or more of the
   outstanding shares, or (iii) beneficial ownership of such entity.

   "You" (or "Your") shall mean an individual or Legal Entity
   exercising permissions granted by this License.

   "Source" form shall mean the preferred form for making modifications,
   including but not limited to software source code, documentation
   source, and configuration files.

   "Object" form shall mean any form resulting from mechanical
   transformation or translation of a Source form, including but
   not limited to compiled object code, generated documentation,
   and conversions to other media types.

   "Work" shall mean the work of authorship, whether in Source or
   Object form, made available under the License, as indicated by a
   copyright notice that is included in or attached to the work
   (an example is provided in the Appendix below).

   "Derivative Works" shall mean any work, whether in Source or Object
   form, that is based on (or derived from) the Work and for which the
   editorial revisions, annotations, elaborations, or other modifications
   represent, as a whole, an original work of authorship. For the purposes
   of this License, Derivative Works shall not include works that remain
   separable from, or merely link (or bind by name) to the interfaces of,
   the Work and Derivative Works thereof.

   "Contribution" shall mean any work of authorship, including
   the original version of the Work and any modifications or additions
   to that Work or Derivative Works thereof, that is intentionally
   submitted to Licensor for inclusion in the Work by the copyright owner
   or by an individual or Legal Entity authorized to submit on behalf of
   the copyright owner. For the purposes of this definition, "submitted"
   means any form of electronic, verbal, or written communication sent
   to the Licensor or its representatives, including but not limited to
   communication on electronic mailing lists, source code control systems,
   and issue tracking systems that are managed by, or on behalf of, the
   Licensor for the purpose of discussing and improving the Work, but
   excluding communication that is conspicuously marked or otherwise
   designated in writing by the copyright owner as "Not a Contribution."

   "Contributor" shall mean Licensor and any individual or Legal Entity
   on behalf of whom a Contribution has been received by Licensor and
   subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
   this License, each Contributor hereby grants to You a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   copyright license to reproduce, prepare Derivative Works of,
   publicly display, publicly perform, sublicense, and distribute the
   Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
   this License, each Contributor hereby grants to You a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   (except as stated in this section) patent license to make, have made,
   use, offer to sell, sell, import, and otherwise transfer the Work,
   where such license applies only to those patent claims licensable
   by such Contributor that are necessarily infringed by their
   Contribution(s) alone or by combination of their Contribution(s)
   with the Work to which such Contribution(s) was submitted. If You
   institute patent litigation against any entity (including a
   cross-claim or counterclaim in a lawsuit) alleging that the Work
   or a Contribution incorporated within the Work constitutes direct
   or contributory patent infringement, then any patent licenses
   granted to You under this License for that Work shall terminate
   as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
   Work or Derivative Works thereof in any medium, with or without
   modifications, and in Source or Object form, provided that You
   meet the following conditions:

   (a) You must give any other recipients of the Work or
       Derivative Works a copy of this License; and

   (b) You must cause any modified files to carry prominent notices
       stating that You changed the files; and

   (c) You must retain, in the Source form of any Derivative Works
       that You distribute, all copyright, patent, trademark, and
       attribution notices from the Source form of the Work,
       excluding those notices that do not pertain to any part of
       the Derivative Works; and

   (d) If the Work includes a "NOTICE" text file as part of its
       distribution, then any Derivative Works that You distribute must
       include a readable copy of the attribution notices contained
       within such NOTICE file, excluding those notices that do not
       pertain to any part of the Derivative Works, in at least one
       of the following places: within a NOTICE text file distributed
       as part of the Derivative Works; within the Source form or
       documentation, if provided along with the Derivative Works; or,
       within a display generated by the Derivative Works, if and
       wherever such third-party notices normally appear. The contents
       of the NOTICE file are for informational purposes only and
       do not modify the License. You may add Your own attribution
       notices within Derivative Works that You distribute, alongside
       or as an addendum to the NOTICE text from the Work, provided
       that such additional attribution notices cannot be construed
       as modifying the License.

   You may add Your own copyright statement to Your modifications and
   may provide additional or different license terms and conditions
   for use, reproduction, or distribution of Your modifications, or
   for any such Derivative Works as a whole, provided Your use,
   reproduction, and distribution of the Work otherwise complies with
   the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
   names, trademarks, service marks, or product names of the Licensor,
   except as required for reasonable and customary use in describing the
   origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
   agreed to in writing, Licensor provides the Work (and each
   Contributor provides its Contributions) on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
   implied, including, without limitation, any warranties or conditions
   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
   PARTICULAR PURPOSE. You are solely responsible for determining the
   appropriateness of using or redistributing the Work and assume any
   risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
   whether in tort (including negligence), contract, or otherwise,
   unless required by applicable law (such as deliberate and grossly
   negligent acts) or agreed to in writing, shall any Contributor be
   liable to You for damages, including any direct, indirect, special,
   incidental, or consequential damages of any character arising as a
   result of this License or out of the use or inability to use the
   Work (including but not limited to damages for loss of goodwill,
   work stoppage, computer failure or malfunction, or any and all
   other commercial damages or losses), even if such Contributor
   has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
   the Work or Derivative Works thereof, You may choose to offer,
   and charge a fee for, acceptance of support, warranty, indemnity,
   or other liability obligations and/or rights consistent with this
   License. However, in accepting such obligations, You may act only
   on Your own behalf and on Your sole responsibility, not on behalf
   of any other Contributor, and only if You agree to indemnify,
   defend, and hold each Contributor harmless for any liability
   incurred by, or claims asserted against, such Contributor by reason
   of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

   To apply the Apache License to your work, attach the following
   boilerplate notice, with the fields enclosed by brackets "[]"
   replaced with your own identifying information. (Don't include
   the brackets!)  The text should be enclosed in the appropriate
   comment syntax for the file format. We also recommend that a
   file or class name and description of purpose be included on the
   same "printed page" as the copyright notice for easier
   identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

======
Monolith project incorporates components or files from the following third project:
===
alibaba/x-deeplearning (https://github.com/alibaba/x-deeplearning)
SPDX-License-Identifier: Apache-2.0
===
Apache ZooKeeper
Copyright: Copyright 2009-2022 The Apache Software Foundation
SPDX-License-Identifier: Apache-2.0
===
apache/singa
Copyright: Copyright 2017 The Apache Software Foundation
SPDX-License-Identifier: Apache-2.0
===
Folly (https://github.com/facebook/folly)
SPDX-License-Identifier: Apache-2.0
===
Libcuckoo
Copyright: 
SPDX-License-Identifier: Apache-2.0
===
Lingvo
Copyright: 
SPDX-License-Identifier: Apache-2.0
===
TensorFlow
Copyright: 
SPDX-License-Identifier: Apache-2.0
===
tiny-dnn
Copyright: 
All contributions by Taiga Nomi
Copyright (c) 2013, Taiga Nomi
All rights reserved.
All other contributions:
Copyright (c) 2013-2016, the respective contributors.
All rights reserved.
Each contributor holds copyright over their respective contributions.
The project versioning (Git) records all such contribution source information.
SPDX-License-Identifier: BSD 3-Clause
===
brotli 
Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
SPDX-License-Identifier: MIT
===


================================================
FILE: README.md
================================================
 Monolith

## What is it?

[Monolith](https://arxiv.org/abs/2209.07663) is a deep learning framework for large scale recommendation modeling. It introduces two important features which are crucial for advanced recommendation system: 
* collisionless embedding tables guarantees unique represeantion for different id features
* real time training captures the latest hotspots and help users to discover new intersts rapidly

Monolith is built on the top of TensorFlow and supports batch/real-time training and serving.


## Discussion Group

### Join us at Discord

https://discord.gg/QYTDeKxGMX

## Quick start

### Build from source

Currently, we only support compilation on the Linux.

First, download bazel 3.1.0
```bash
wget https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-installer-linux-x86_64.sh && \
  chmod +x bazel-3.1.0-installer-linux-x86_64.sh && \
  ./bazel-3.1.0-installer-linux-x86_64.sh && \
  rm bazel-3.1.0-installer-linux-x86_64.sh
```

Then, prepare a python environment
```bash
pip install -U --user pip numpy wheel packaging requests opt_einsum
pip install -U --user keras_preprocessing --no-deps
```

Finally, you can build any target in the monolith.
For example,
```bash
bazel run //monolith/native_training:demo --output_filter=IGNORE_LOGS
```

### Demo and tutorials

There are a tutorial in [markdown/demo](markdown/demo) on how to run distributed async training, and few guides on how to use the `MonolithModel` API [here](markdown).  

================================================
FILE: WORKSPACE
================================================
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_python",
    sha256 = "b6d46438523a3ec0f3cead544190ee13223a52f6a6765a29eae7b7cc24cc83a0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.1.0/rules_python-0.1.0.tar.gz",
)

http_archive(
    name = "rules_foreign_cc",
    sha256 = "c2cdcf55ffaf49366725639e45dedd449b8c3fe22b54e31625eb80ce3a240f1e",
    strip_prefix = "rules_foreign_cc-0.1.0",
    url = "https://github.com/bazelbuild/rules_foreign_cc/archive/0.1.0.zip",
)

load("@rules_foreign_cc//:workspace_definitions.bzl", "rules_foreign_cc_dependencies")

# This sets up some common toolchains for building targets. For more details, please see
# https://bazelbuild.github.io/rules_foreign_cc/0.1.0/#rules_foreign_cc_dependencies
rules_foreign_cc_dependencies()

load("//monolith:monolith_workspace.bzl", "monolith_workspace")

monolith_workspace()

load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

# This is an unofficial boost build but it is useful.
git_repository(
    name = "com_github_nelhage_rules_boost",
    commit = "1e3a69bf2d5cd10c34b74f066054cd335d033d71",
    remote = "https://github.com/nelhage/rules_boost",
    shallow_since = "1591047380 -0700",
)

load("@com_github_nelhage_rules_boost//:boost/boost.bzl", "boost_deps")

boost_deps()

http_archive(
    name = "org_tensorflow_serving",
    patch_args = ["-p1"],
    patches = [
        "//third_party:org_tensorflow_serving/public_tf_serving.patch",
        "//third_party:org_tensorflow_serving/support_diff_dim_size_inputs.patch",
    ],
    sha256 = "8c1a4d31ec7ab041b9302348a01422e21349507c7a6f0974639386c8901b721b",
    strip_prefix = "serving-2.4.0",
    url = "https://github.com/tensorflow/serving/archive/2.4.0.tar.gz",
)

# To update TensorFlow to a new revision.
# 1. Update the 'git_commit' args below to include the new git hash.
# 2. Get the sha256 hash of the archive with a command such as...
#    curl -L https://github.com/tensorflow/tensorflow/archive/<git hash>.tar.gz | sha256sum
#    and update the 'sha256' arg with the result.
# 3. Request the new archive to be mirrored on mirror.bazel.build for more
#    reliable downloads.
load("@org_tensorflow_serving//tensorflow_serving:repo.bzl", "tensorflow_http_archive")

# Tensorflow 2.4.0
tensorflow_http_archive(
    name = "org_tensorflow",
    git_commit = "582c8d236cb079023657287c318ff26adb239002",
    patch = "//third_party:org_tensorflow/tf.patch",
    sha256 = "9c94bfec7214853750c7cacebd079348046f246ec0174d01cd36eda375117628",
)

http_archive(
    name = "rules_pkg",
    sha256 = "352c090cc3d3f9a6b4e676cf42a6047c16824959b438895a76c2989c6d7c246a",
    url = "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.5/rules_pkg-0.2.5.tar.gz",
)

load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")

rules_pkg_dependencies()

load(
    "@org_tensorflow//third_party/toolchains/preconfig/generate:archives.bzl",
    "bazel_toolchains_archive",
)

bazel_toolchains_archive()

load(
    "@bazel_toolchains//repositories:repositories.bzl",
    bazel_toolchains_repositories = "repositories",
)

bazel_toolchains_repositories()

# START: Upstream TensorFlow dependencies
# TensorFlow build depends on these dependencies.
# Needs to be in-sync with TensorFlow sources.
http_archive(
    name = "io_bazel_rules_closure",
    sha256 = "5b00383d08dd71f28503736db0500b6fb4dda47489ff5fc6bed42557c07c6ba9",
    strip_prefix = "rules_closure-308b05b2419edb5c8ee0471b67a40403df940149",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/308b05b2419edb5c8ee0471b67a40403df940149.tar.gz",
        "https://github.com/bazelbuild/rules_closure/archive/308b05b2419edb5c8ee0471b67a40403df940149.tar.gz",  # 2019-06-13
    ],
)

http_archive(
    name = "bazel_skylib",
    sha256 = "1dde365491125a3db70731e25658dfdd3bc5dbdfd11b840b3e987ecf043c7ca0",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/bazelbuild/bazel-skylib/releases/download/0.9.0/bazel_skylib-0.9.0.tar.gz",
        "https://github.com/bazelbuild/bazel-skylib/releases/download/0.9.0/bazel_skylib-0.9.0.tar.gz",
    ],
)  # https://github.com/bazelbuild/bazel-skylib/releases

# END: Upstream TensorFlow dependencies

# Please add all new TensorFlow Serving and Archon dependencies in workspace.bzl.
load("//monolith:tf_serving_workspace.bzl", "tf_serving_workspace")

tf_serving_workspace()


load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")

protobuf_deps()

# Specify the minimum required bazel version.
load("@org_tensorflow//tensorflow:version_check.bzl", "check_bazel_version_at_least")

check_bazel_version_at_least("3.0.0")

# GPRC deps, required to match TF's.  Only after calling tf_serving_workspace()
load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")

grpc_deps()

http_archive(
    name = "upb",
    patch_args = ["-p1"],
    patches = ["//third_party:upb.patch"],
    sha256 = "61d0417abd60e65ed589c9deee7c124fe76a4106831f6ad39464e1525cef1454",
    strip_prefix = "upb-9effcbcb27f0a665f9f345030188c0b291e32482",
    url = "https://github.com/protocolbuffers/upb/archive/9effcbcb27f0a665f9f345030188c0b291e32482.tar.gz",
)

load("@upb//bazel:repository_defs.bzl", "bazel_version_repository")

bazel_version_repository(name = "bazel_version")

# Hedron's Compile Commands Extractor for Bazel
# https://github.com/hedronvision/bazel-compile-commands-extractor
http_archive(
    name = "hedron_compile_commands",
    strip_prefix = "bazel-compile-commands-extractor-79f8dcae6b451abb97fe76853c867792ac9ac703",

    # Replace the commit hash in both places (below) with the latest, rather than using the stale one here.
    # Even better, set up Renovate and let it do the work for you (see "Suggestion: Updates" in the README).
    url = "https://github.com/hedronvision/bazel-compile-commands-extractor/archive/79f8dcae6b451abb97fe76853c867792ac9ac703.tar.gz",
    # When you first run this tool, it'll recommend a sha256 hash to put here with a message like: "DEBUG: Rule 'hedron_compile_commands' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = ..."
)

load("@hedron_compile_commands//:workspace_setup.bzl", "hedron_compile_commands_setup")

hedron_compile_commands_setup()


http_archive(
    name = "zstd",
    build_file = "//third_party:zstd.BUILD",
    sha256 = "a364f5162c7d1a455cc915e8e3cf5f4bd8b75d09bc0f53965b0c9ca1383c52c8",
    strip_prefix = "zstd-1.4.4",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/facebook/zstd/archive/v1.4.4.tar.gz",
        "https://github.com/facebook/zstd/archive/v1.4.4.tar.gz",
    ],
)

http_archive(
    name = "lz4",
    build_file = "//third_party:lz4.BUILD",
    sha256 = "658ba6191fa44c92280d4aa2c271b0f4fbc0e34d249578dd05e50e76d0e5efcc",
    strip_prefix = "lz4-1.9.2",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/lz4/lz4/archive/v1.9.2.tar.gz",
        "https://github.com/lz4/lz4/archive/v1.9.2.tar.gz",
    ],
)

http_archive(
    name = "kafka",
    build_file = "//third_party:kafka.BUILD",
    patch_cmds = [
        "rm -f src/win32_config.h",
        # TODO: Remove the fowllowing once librdkafka issue is resolved.
        """sed -i.bak '\\|rd_kafka_log(rk,|,/ exceeded);/ s/^/\\/\\//' src/rdkafka_cgrp.c""",
    ],
    sha256 = "f7fee59fdbf1286ec23ef0b35b2dfb41031c8727c90ced6435b8cf576f23a656",
    strip_prefix = "librdkafka-1.5.0",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/edenhill/librdkafka/archive/v1.5.0.tar.gz",
        "https://github.com/edenhill/librdkafka/archive/v1.5.0.tar.gz",
    ],
)

load("//third_party:repo.bzl", "tf_http_archive")

tf_http_archive(
    name = "cuCollections",
    build_file = "//third_party:cuco.BUILD",
    patch_file = "//third_party:cuCollections.patch",
    sha256 = "2e059ea1ae18173c5cc3f00989b114c431af78c674f92e35bed56367a9b8b186",
    strip_prefix = "cuCollections-1e3c5842c6e212e0bd7de9802af583e53009f4a6",
    urls = [
        "https://github.com/NVIDIA/cuCollections/archive/1e3c5842c6e212e0bd7de9802af583e53009f4a6.zip",
        "https://github.com/NVIDIA/cuCollections/archive/1e3c5842c6e212e0bd7de9802af583e53009f4a6.zip",
    ],
)

http_archive(
    name = "arrow",
    build_file = "//third_party:arrow.BUILD",
    sha256 = "57e13c62f27b710e1de54fd30faed612aefa22aa41fa2c0c3bacd204dd18a8f3",
    strip_prefix = "arrow-apache-arrow-7.0.0",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/apache/arrow/archive/apache-arrow-7.0.0.tar.gz",
        "https://github.com/apache/arrow/archive/apache-arrow-7.0.0.tar.gz",
    ],
)

# extra dependencies of arrow begin
http_archive(
    name = "rapidjson",
    build_file = "//third_party:rapidjson.BUILD",
    sha256 = "30bd2c428216e50400d493b38ca33a25efb1dd65f79dfc614ab0c957a3ac2c28",
    strip_prefix = "rapidjson-418331e99f859f00bdc8306f69eba67e8693c55e",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/miloyip/rapidjson/archive/418331e99f859f00bdc8306f69eba67e8693c55e.tar.gz",
        "https://github.com/miloyip/rapidjson/archive/418331e99f859f00bdc8306f69eba67e8693c55e.tar.gz",
    ],
)

http_archive(
    name = "xsimd",
    build_file = "//third_party:xsimd.BUILD",
    sha256 = "21b4700e9ef70f6c9a86952047efd8272317df4e6fee35963de9394fd9c5677f",
    strip_prefix = "xsimd-8.0.1",
    urls = [
        "https://github.com/xtensor-stack/xsimd/archive/refs/tags/8.0.1.tar.gz",
    ],
)

http_archive(
    name = "brotli",
    build_file = "//third_party:brotli.BUILD",
    sha256 = "4c61bfb0faca87219ea587326c467b95acb25555b53d1a421ffa3c8a9296ee2c",
    strip_prefix = "brotli-1.0.7",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/brotli/archive/v1.0.7.tar.gz",
        "https://github.com/google/brotli/archive/v1.0.7.tar.gz",
    ],
)

http_archive(
    name = "bzip2",
    build_file = "//third_party:bzip2.BUILD",
    sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269",
    strip_prefix = "bzip2-1.0.8",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz",
        "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz",
    ],
)

http_archive(
    name = "thrift",
    build_file = "//third_party:thrift.BUILD",
    sha256 = "5da60088e60984f4f0801deeea628d193c33cec621e78c8a43a5d8c4055f7ad9",
    strip_prefix = "thrift-0.13.0",
    urls = [
        "https://storage.googleapis.com/mirror.tensorflow.org/github.com/apache/thrift/archive/v0.13.0.tar.gz",
        "https://github.com/apache/thrift/archive/v0.13.0.tar.gz",
    ],
)

# extra dependencies of arrow end


================================================
FILE: conf/BUILD
================================================
package(
    default_visibility = ["//visibility:public"],
)
filegroup(
    name = "serving",
    srcs = glob([
        "*.properties",
        "*.conf",
        "*.cfg",
    ]),
)

================================================
FILE: deploy/.dockerignore
================================================
# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file
# Ignore all files which are not go type
!**/*.go
!**/*.mod
!**/*.sum


================================================
FILE: deploy/.gitignore
================================================

# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
bin
testbin/*

# Test binary, build with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Kubernetes Generated files - skip generated files, except for vendored files

!vendor/**/zz_generated.*

# editor and IDE paraphernalia
.idea
*.swp
*.swo
*~


================================================
FILE: deploy/.golangci.yaml
================================================
# This file contains all available configuration options
# with their default values.

# options for analysis running
run:
  # default concurrency is a available CPU number
  concurrency: 4

  # timeout for analysis, e.g. 30s, 5m, default is 1m
  timeout: 5m

  # exit code when at least one issue was found, default is 1
  issues-exit-code: 1

  # include test files or not, default is true
  tests: false

  # list of build tags, all linters use it. Default is empty list.
  build-tags: []

  # which dirs to skip: issues from them won't be reported;
  # can use regexp here: generated.*, regexp is applied on full path;
  # default value is empty list, but default dirs are skipped independently
  # from this option's value (see skip-dirs-use-default).
  # "/" will be replaced by current OS file path separator to properly work
  # on Windows.
  skip-dirs:
    - common/model/api
    - test

  # default is true. Enables skipping of directories:
  #   vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
  skip-dirs-use-default: true

  # which files to skip: they will be analyzed, but issues from them
  # won't be reported. Default value is empty list, but there is
  # no need to include all autogenerated files, we confidently recognize
  # autogenerated files. If it's not please let us know.
  # "/" will be replaced by current OS file path separator to properly work
  # on Windows.
  skip-files:
    - ".*_gen.go"
    - "k-*.go"

  # Allow multiple parallel golangci-lint instances running.
  # If false (default) - golangci-lint acquires file lock on start.
  allow-parallel-runners: false


# output configuration options
output:
  # colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions
  # default is "colored-line-number"
  format: colored-line-number

  # print lines of code with issue, default is true
  print-issued-lines: true

  # print linter name in the end of issue text, default is true
  print-linter-name: true

  # make issues output unique by line, default is true
  uniq-by-line: true

  # add a prefix to the output file references; default is no prefix
  path-prefix: ""

  # sorts results by: filepath, line and column
  sort-results: false


linters-settings:
  dupl:
    threshold: 100
  funlen:
    lines: 120
    statements: 70
  goconst:
    min-len: 2
    min-occurrences: 2
  gocritic:
    enabled-tags:
      - diagnostic
      - experimental
      - opinionated
      - performance
      - style
    disabled-checks:
      - dupImport # https://github.com/go-critic/go-critic/issues/845
      - ifElseChain
      - octalLiteral
      - whyNoLint
      - wrapperFunc
  gocognit:
    min-complexity: 15
  gomnd:
    settings:
      mnd:
        # don't include the "operation" and "assign"
        checks: [argument, case, condition, return]
  govet:
    check-shadowing: true
  lll:
    line-length: 120
  misspell:
    locale: US
  nolintlint:
    allow-leading-space: true # don't require machine-readable nolint directives (i.e. with no leading space)
    allow-unused: false # report any unused nolint directives
    require-explanation: false # don't require an explanation for nolint directives

linters:
  # please, do not use `enable-all`: it's deprecated and will be removed soon.
  # inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint
  disable-all: true
  enable:
    - bodyclose
    - deadcode
    - dogsled
    - dupl
    - errcheck
    - exportloopref
    - exhaustive
    - funlen
    - gochecknoinits
    - goconst
    - gocritic
    - gofmt
    - goimports
    - gomnd
    - goprintffuncname
    - gosec
    - gosimple
    - govet
    - ineffassign
    - lll
    - misspell
    - nakedret
    - noctx
    - nolintlint
    - rowserrcheck
    - staticcheck
    - structcheck
    - stylecheck
    - typecheck
    - unconvert
    - unparam
    - unused
    - varcheck
    - whitespace
    - wrapcheck
    - gocognit
    - asciicheck
    - nestif
    - sqlclosecheck
    - prealloc

  # don't enable:
  # - scopelint
  # - gochecknoglobals
  # - godot
  # - godox
  # - goerr113
  # - golint
  # - interfacer
  # - maligned
  # - testpackage
  # - revive
  # - wsl

issues:
  # Excluding configuration per-path, per-linter, per-text and per-source
  exclude-rules:
    - path: _test\.go
      linters:
        - gomnd

    # https://github.com/go-critic/go-critic/issues/926
    - linters:
        - gocritic
      text: "unnecessaryDefer:"

    - linters:
        - stylecheck
      text: "ST1003:"


================================================
FILE: deploy/Dockerfile
================================================
# Build the manager binary
FROM golang:1.15 as builder

WORKDIR /workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
# cache deps before building and copying source so that we don't need to re-download as much
# and so that source changes don't invalidate our downloaded layer
RUN go mod download

# Copy the go source
COPY main.go main.go
COPY api/ api/
COPY controllers/ controllers/

# Build
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o manager main.go

# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
FROM gcr.io/distroless/static:nonroot
WORKDIR /
COPY --from=builder /workspace/manager .
USER 65532:65532

ENTRYPOINT ["/manager"]


================================================
FILE: deploy/Makefile
================================================

# Image URL to use all building/pushing image targets
REGISTRY ?= ml-platform-cn-guilin-boe.cr.volces.com/ml-platform
NAME ?= data.monolith.controller-manager
# TAG ?= $(shell git describe --always --dirty)
TAG ?= b85906ce01ef40a75ba48779efdd4e3f

# IMG ?= controller:latest
IMG ?= ${REGISTRY}/${NAME}:${TAG}

# Produce CRDs that work back to Kubernetes 1.11 (no version conversion)
CRD_OPTIONS ?= "crd:trivialVersions=true,preserveUnknownFields=false,generateEmbeddedObjectMeta=true"

# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin
else
GOBIN=$(shell go env GOBIN)
endif

# Setting SHELL to bash allows bash commands to be executed by recipes.
# This is a requirement for 'setup-envtest.sh' in the test target.
# Options are set to exit when a recipe line exits non-zero or a piped command fails.
SHELL = /usr/bin/env bash -o pipefail
.SHELLFLAGS = -ec

all: build

##@ General

# The help target prints out all targets with their descriptions organized
# beneath their categories. The categories are represented by '##@' and the
# target descriptions by '##'. The awk commands is responsible for reading the
# entire set of makefiles included in this invocation, looking for lines of the
# file as xyz: ## something, and then pretty-format the target and help. Then,
# if there's a line with ##@ something, that gets pretty-printed as a category.
# More info on the usage of ANSI control characters for terminal formatting:
# https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters
# More info on the awk command:
# http://linuxcommand.org/lc3_adv_awk.php

help: ## Display this help.
	@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n  make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf "  \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

##@ Development

manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
	$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./..." output:crd:artifacts:config=config/crd/bases

generate: controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
	$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."

fmt: ## Run go fmt against code.
	go fmt ./...

vet: ## Run go vet against code.
	go vet ./...

ENVTEST_ASSETS_DIR=$(shell pwd)/testbin
test: manifests generate fmt vet ## Run tests.
	mkdir -p ${ENVTEST_ASSETS_DIR}
	test -f ${ENVTEST_ASSETS_DIR}/setup-envtest.sh || curl -sSLo ${ENVTEST_ASSETS_DIR}/setup-envtest.sh https://raw.githubusercontent.com/kubernetes-sigs/controller-runtime/v0.7.2/hack/setup-envtest.sh
	source ${ENVTEST_ASSETS_DIR}/setup-envtest.sh; fetch_envtest_tools $(ENVTEST_ASSETS_DIR); setup_envtest_env $(ENVTEST_ASSETS_DIR); go test ./... -coverprofile cover.out

##@ Build

build: generate fmt vet ## Build manager binary.
	go build -o bin/manager main.go

run: manifests generate fmt vet ## Run a controller from your host.
	go run ./main.go

docker-build: test ## Build docker image with the manager.
	docker build -t ${IMG} .

docker-push: ## Push docker image with the manager.
	docker push ${IMG}

##@ Deployment

install: manifests kustomize ## Install CRDs into the K8s cluster specified in ~/.kube/config.
	$(KUSTOMIZE) build config/crd | kubectl apply -f -

uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified in ~/.kube/config.
	$(KUSTOMIZE) build config/crd | kubectl delete -f -

deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config.
	cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
	$(KUSTOMIZE) build config/default | kubectl apply -f -

undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/config.
	$(KUSTOMIZE) build config/default | kubectl delete -f -


CONTROLLER_GEN = $(shell pwd)/bin/controller-gen
controller-gen: ## Download controller-gen locally if necessary.
	$(call go-get-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen@v0.6.1)

KUSTOMIZE = $(shell pwd)/bin/kustomize
kustomize: ## Download kustomize locally if necessary.
	$(call go-get-tool,$(KUSTOMIZE),sigs.k8s.io/kustomize/kustomize/v3@v3.8.7)

# go-get-tool will 'go get' any package $2 and install it to $1.
PROJECT_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
define go-get-tool
@[ -f $(1) ] || { \
set -e ;\
TMP_DIR=$$(mktemp -d) ;\
cd $$TMP_DIR ;\
go mod init tmp ;\
echo "Downloading $(2)" ;\
GOBIN=$(PROJECT_DIR)/bin go get $(2) ;\
rm -rf $$TMP_DIR ;\
}
endef


================================================
FILE: deploy/PROJECT
================================================
domain: volcengine.com
layout:
- go.kubebuilder.io/v3
projectName: deploy
repo: code.byted.org/data/monolith/deploy
resources:
- api:
    crdVersion: v1
    namespaced: true
  controller: true
  domain: volcengine.com
  group: mlplatform
  kind: MLService
  path: code.byted.org/data/monolith/deploy/api/v1
  version: v1
version: "3"


================================================
FILE: deploy/README.md
================================================
# 项目介绍

项目初始结构通过kubebuilder(https://github.com/kubernetes-sigs/kubebuilder) 生成

kubebuilder使用文档:https://book.kubebuilder.io/cronjob-tutorial/cronjob-tutorial.html

```
kubebuilder init --domain volcengine.com --repo https://github.com/bytedance/monolith/blob/master/deploy --skip-go-version-check

kubebuilder create api --group mlplatform --version v1 --kind MLService --controller --resource
```

# 安装部署

配置好集群kubeconfig后执行以下命令:

```
make deploy  # 安装CRD,部署controller
```



================================================
FILE: deploy/api/v1/groupversion_info.go
================================================
/*
Copyright 2023.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// Package v1 contains API Schema definitions for the mlplatform v1 API group
//+kubebuilder:object:generate=true
//+groupName=mlplatform.volcengine.com
package v1

import (
	"k8s.io/apimachinery/pkg/runtime/schema"
	"sigs.k8s.io/controller-runtime/pkg/scheme"
)

var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "mlplatform.volcengine.com", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)


================================================
FILE: deploy/api/v1/mlservice_types.go
================================================
/*
Copyright 2023.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package v1

import (
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// NOTE: json tags are required.  Any new fields you add must have json tags for the fields to be serialized.

// ServicePortType is the data type of ServicePort Type
type ServicePortType string

const (
	ServicePortTypeHttp    ServicePortType = "HTTP"
	ServicePortTypeRpc     ServicePortType = "RPC"
	ServicePortTypeMetrics ServicePortType = "Metrics"
	ServicePortTypeOther   ServicePortType = "Other"
)

// DeploymentTemplateSpec defines the metadata and spec of a Deployment
type DeploymentTemplateSpec struct {
	// Standard object metadata.
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired behavior of the Deployment.
	Spec appsv1.DeploymentSpec `json:"spec"`
}

// ServicePort contains information on service's port.
type ServicePort struct {
	// The type of this port within the service.
	Type ServicePortType `json:"type,omitempty"`
	// The port that will be exposed by this service.
	Port int32 `json:"port"`
}

// ServiceSpec describes the attributes that a user creates on a service.
type ServiceSpec struct {
	// ServiceType defines which type of service need to be created
	ServiceType corev1.ServiceType `json:"serviceType,omitempty"`

	// The list of ports that are exposed by this service.
	// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
	Ports []ServicePort `json:"ports,omitempty"`
}

// RoleSpec defines the desired state of a role in MLService
type RoleSpec struct {
	// Name of the role
	Name string `json:"name"`

	// Number of shards for the role, each shard associated with a Deployment
	ShardNum int32 `json:"shardNum,omitempty"`

	// Template of the DeploymentSpec
	Template DeploymentTemplateSpec `json:"template"`

	ServiceSpec *ServiceSpec `json:"serviceSpec,omitempty"`
}

// MLServiceSpec defines the desired state of MLService
type MLServiceSpec struct {
	// selector is a label query over deployment.
	// It must match the deployment template's labels.
	Selector *metav1.LabelSelector `json:"selector"`

	// Roles defines desired state for each role in the service
	Roles []RoleSpec `json:"roles"`
}

// ServicePhase is a label for the condition of a MLService at the current time.
type ServicePhase string

const (
	// ServiceQueuing means the service is queuing, waiting to be scheduled
	ServiceQueuing ServicePhase = "Queuing"
	// ServiceDeploying means pods of the service are scheduled and being initializing
	ServiceDeploying ServicePhase = "Deploying"
	// ServiceRunning means all pods of the service are running
	ServiceRunning ServicePhase = "Running"
	// ServiceAbnormal means some pods of the service are abnormal
	ServiceAbnormal ServicePhase = "Abnormal"
	// ServiceDeleting means the service is being deleted
	ServiceDeleting ServicePhase = "Deleting"
	// ServiceStopping means replicas of the service is being scaled down to 0
	ServiceStopping ServicePhase = "Stopping"
	// ServiceStopped means replicas of the service has been scaled down to 0
	ServiceStopped ServicePhase = "Stopped"
)

// MLServiceStatus defines the observed state of MLService
type MLServiceStatus struct {
	// Phase is a simple, high-level summary of where the Service is in its lifecycle.
	// +optional
	Phase ServicePhase `json:"phase,omitempty"`

	// RoleShardStatusMap shows the current status for all Deployments.
	// The key is Deployment name, value is its status info
	RoleShardStatusMap map[string]appsv1.DeploymentStatus `json:"roleShardStatusMap,omitempty"`

	// RoleShardStatusMap shows the current status for all Services.
	// The key is Service name, value is its status info
	RoleServiceStatusMap map[string]corev1.ServiceStatus `json:"roleServiceStatusMap,omitempty"`

	// RoleServiceClusterIps shows the cluster ip for all Services.
	// The key is Service name, value is its clusterIP
	RoleServiceClusterIps map[string]string `json:"roleServiceClusterIps,omitempty"`

	// LastTransitionTime is time the last Phase transitioned to current one.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`

	// Unique, one-word, CamelCase reason for the phase's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`

	// Human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
// +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase`
// +kubebuilder:resource:path=mlservices,shortName=mlsvc

// MLService is the Schema for the mlservices API
type MLService struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   MLServiceSpec   `json:"spec,omitempty"`
	Status MLServiceStatus `json:"status,omitempty"`
}

//+kubebuilder:object:root=true

// MLServiceList contains a list of MLService
type MLServiceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []MLService `json:"items"`
}

func init() {
	SchemeBuilder.Register(&MLService{}, &MLServiceList{})
}


================================================
FILE: deploy/api/v1/zz_generated.deepcopy.go
================================================
//go:build !ignore_autogenerated
// +build !ignore_autogenerated

/*
Copyright 2023.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// Code generated by controller-gen. DO NOT EDIT.

package v1

import (
	appsv1 "k8s.io/api/apps/v1"
	corev1 "k8s.io/api/core/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DeploymentTemplateSpec) DeepCopyInto(out *DeploymentTemplateSpec) {
	*out = *in
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentTemplateSpec.
func (in *DeploymentTemplateSpec) DeepCopy() *DeploymentTemplateSpec {
	if in == nil {
		return nil
	}
	out := new(DeploymentTemplateSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MLService) DeepCopyInto(out *MLService) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
	in.Spec.DeepCopyInto(&out.Spec)
	in.Status.DeepCopyInto(&out.Status)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MLService.
func (in *MLService) DeepCopy() *MLService {
	if in == nil {
		return nil
	}
	out := new(MLService)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MLService) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MLServiceList) DeepCopyInto(out *MLServiceList) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ListMeta.DeepCopyInto(&out.ListMeta)
	if in.Items != nil {
		in, out := &in.Items, &out.Items
		*out = make([]MLService, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MLServiceList.
func (in *MLServiceList) DeepCopy() *MLServiceList {
	if in == nil {
		return nil
	}
	out := new(MLServiceList)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MLServiceList) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MLServiceSpec) DeepCopyInto(out *MLServiceSpec) {
	*out = *in
	if in.Selector != nil {
		in, out := &in.Selector, &out.Selector
		*out = new(metav1.LabelSelector)
		(*in).DeepCopyInto(*out)
	}
	if in.Roles != nil {
		in, out := &in.Roles, &out.Roles
		*out = make([]RoleSpec, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MLServiceSpec.
func (in *MLServiceSpec) DeepCopy() *MLServiceSpec {
	if in == nil {
		return nil
	}
	out := new(MLServiceSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MLServiceStatus) DeepCopyInto(out *MLServiceStatus) {
	*out = *in
	if in.RoleShardStatusMap != nil {
		in, out := &in.RoleShardStatusMap, &out.RoleShardStatusMap
		*out = make(map[string]appsv1.DeploymentStatus, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.RoleServiceStatusMap != nil {
		in, out := &in.RoleServiceStatusMap, &out.RoleServiceStatusMap
		*out = make(map[string]corev1.ServiceStatus, len(*in))
		for key, val := range *in {
			(*out)[key] = *val.DeepCopy()
		}
	}
	if in.RoleServiceClusterIps != nil {
		in, out := &in.RoleServiceClusterIps, &out.RoleServiceClusterIps
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MLServiceStatus.
func (in *MLServiceStatus) DeepCopy() *MLServiceStatus {
	if in == nil {
		return nil
	}
	out := new(MLServiceStatus)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RoleSpec) DeepCopyInto(out *RoleSpec) {
	*out = *in
	in.Template.DeepCopyInto(&out.Template)
	if in.ServiceSpec != nil {
		in, out := &in.ServiceSpec, &out.ServiceSpec
		*out = new(ServiceSpec)
		(*in).DeepCopyInto(*out)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleSpec.
func (in *RoleSpec) DeepCopy() *RoleSpec {
	if in == nil {
		return nil
	}
	out := new(RoleSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServicePort) DeepCopyInto(out *ServicePort) {
	*out = *in
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicePort.
func (in *ServicePort) DeepCopy() *ServicePort {
	if in == nil {
		return nil
	}
	out := new(ServicePort)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) {
	*out = *in
	if in.Ports != nil {
		in, out := &in.Ports, &out.Ports
		*out = make([]ServicePort, len(*in))
		copy(*out, *in)
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.
func (in *ServiceSpec) DeepCopy() *ServiceSpec {
	if in == nil {
		return nil
	}
	out := new(ServiceSpec)
	in.DeepCopyInto(out)
	return out
}


================================================
FILE: deploy/build.sh
================================================
#!/bin/bash

mkdir output
cd deploy && make build
cp bin/manager ../output


================================================
FILE: deploy/config/crd/bases/mlplatform.volcengine.com_mlservices.yaml
================================================

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.6.1
  creationTimestamp: null
  name: mlservices.mlplatform.volcengine.com
spec:
  group: mlplatform.volcengine.com
  names:
    kind: MLService
    listKind: MLServiceList
    plural: mlservices
    shortNames:
    - mlsvc
    singular: mlservice
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    - jsonPath: .status.phase
      name: Phase
      type: string
    name: v1
    schema:
      openAPIV3Schema:
        description: MLService is the Schema for the mlservices API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: MLServiceSpec defines the desired state of MLService
            properties:
              roles:
                description: Roles defines desired state for each role in the service
                items:
                  description: RoleSpec defines the desired state of a role in MLService
                  properties:
                    name:
                      description: Name of the role
                      type: string
                    serviceSpec:
                      description: ServiceSpec describes the attributes that a user
                        creates on a service.
                      properties:
                        ports:
                          description: 'The list of ports that are exposed by this
                            service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies'
                          items:
                            description: ServicePort contains information on service's
                              port.
                            properties:
                              port:
                                description: The port that will be exposed by this
                                  service.
                                format: int32
                                type: integer
                              type:
                                description: The type of this port within the service.
                                type: string
                            required:
                            - port
                            type: object
                          type: array
                        serviceType:
                          description: ServiceType defines which type of service need
                            to be created
                          type: string
                      type: object
                    shardNum:
                      description: Number of shards for the role, each shard associated
                        with a Deployment
                      format: int32
                      type: integer
                    template:
                      description: Template of the DeploymentSpec
                      properties:
                        metadata:
                          description: Standard object metadata.
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            finalizers:
                              items:
                                type: string
                              type: array
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                          type: object
                        spec:
                          description: Specification of the desired behavior of the
                            Deployment.
                          properties:
                            minReadySeconds:
                              description: Minimum number of seconds for which a newly
                                created pod should be ready without any of its container
                                crashing, for it to be considered available. Defaults
                                to 0 (pod will be considered available as soon as
                                it is ready)
                              format: int32
                              type: integer
                            paused:
                              description: Indicates that the deployment is paused.
                              type: boolean
                            progressDeadlineSeconds:
                              description: The maximum time in seconds for a deployment
                                to make progress before it is considered to be failed.
                                The deployment controller will continue to process
                                failed deployments and a condition with a ProgressDeadlineExceeded
                                reason will be surfaced in the deployment status.
                                Note that progress will not be estimated during the
                                time a deployment is paused. Defaults to 600s.
                              format: int32
                              type: integer
                            replicas:
                              description: Number of desired pods. This is a pointer
                                to distinguish between explicit zero and not specified.
                                Defaults to 1.
                              format: int32
                              type: integer
                            revisionHistoryLimit:
                              description: The number of old ReplicaSets to retain
                                to allow rollback. This is a pointer to distinguish
                                between explicit zero and not specified. Defaults
                                to 10.
                              format: int32
                              type: integer
                            selector:
                              description: Label selector for pods. Existing ReplicaSets
                                whose pods are selected by this will be the ones affected
                                by this deployment. It must match the pod template's
                                labels.
                              properties:
                                matchExpressions:
                                  description: matchExpressions is a list of label
                                    selector requirements. The requirements are ANDed.
                                  items:
                                    description: A label selector requirement is a
                                      selector that contains values, a key, and an
                                      operator that relates the key and values.
                                    properties:
                                      key:
                                        description: key is the label key that the
                                          selector applies to.
                                        type: string
                                      operator:
                                        description: operator represents a key's relationship
                                          to a set of values. Valid operators are
                                          In, NotIn, Exists and DoesNotExist.
                                        type: string
                                      values:
                                        description: values is an array of string
                                          values. If the operator is In or NotIn,
                                          the values array must be non-empty. If the
                                          operator is Exists or DoesNotExist, the
                                          values array must be empty. This array is
                                          replaced during a strategic merge patch.
                                        items:
                                          type: string
                                        type: array
                                    required:
                                    - key
                                    - operator
                                    type: object
                                  type: array
                                matchLabels:
                                  additionalProperties:
                                    type: string
                                  description: matchLabels is a map of {key,value}
                                    pairs. A single {key,value} in the matchLabels
                                    map is equivalent to an element of matchExpressions,
                                    whose key field is "key", the operator is "In",
                                    and the values array contains only "value". The
                                    requirements are ANDed.
                                  type: object
                              type: object
                            strategy:
                              description: The deployment strategy to use to replace
                                existing pods with new ones.
                              properties:
                                rollingUpdate:
                                  description: 'Rolling update config params. Present
                                    only if DeploymentStrategyType = RollingUpdate.
                                    --- TODO: Update this to follow our convention
                                    for oneOf, whatever we decide it to be.'
                                  properties:
                                    maxSurge:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'The maximum number of pods that
                                        can be scheduled above the desired number
                                        of pods. Value can be an absolute number (ex:
                                        5) or a percentage of desired pods (ex: 10%).
                                        This can not be 0 if MaxUnavailable is 0.
                                        Absolute number is calculated from percentage
                                        by rounding up. Defaults to 25%. Example:
                                        when this is set to 30%, the new ReplicaSet
                                        can be scaled up immediately when the rolling
                                        update starts, such that the total number
                                        of old and new pods do not exceed 130% of
                                        desired pods. Once old pods have been killed,
                                        new ReplicaSet can be scaled up further, ensuring
                                        that total number of pods running at any time
                                        during the update is at most 130% of desired
                                        pods.'
                                      x-kubernetes-int-or-string: true
                                    maxUnavailable:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: 'The maximum number of pods that
                                        can be unavailable during the update. Value
                                        can be an absolute number (ex: 5) or a percentage
                                        of desired pods (ex: 10%). Absolute number
                                        is calculated from percentage by rounding
                                        down. This can not be 0 if MaxSurge is 0.
                                        Defaults to 25%. Example: when this is set
                                        to 30%, the old ReplicaSet can be scaled down
                                        to 70% of desired pods immediately when the
                                        rolling update starts. Once new pods are ready,
                                        old ReplicaSet can be scaled down further,
                                        followed by scaling up the new ReplicaSet,
                                        ensuring that the total number of pods available
                                        at all times during the update is at least
                                        70% of desired pods.'
                                      x-kubernetes-int-or-string: true
                                  type: object
                                type:
                                  description: Type of deployment. Can be "Recreate"
                                    or "RollingUpdate". Default is RollingUpdate.
                                  type: string
                              type: object
                            template:
                              description: Template describes the pods that will be
                                created.
                              properties:
                                metadata:
                                  description: 'Standard object''s metadata. More
                                    info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                                  properties:
                                    annotations:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    finalizers:
                                      items:
                                        type: string
                                      type: array
                                    labels:
                                      additionalProperties:
                                        type: string
                                      type: object
                                    name:
                                      type: string
                                    namespace:
                                      type: string
                                  type: object
                                spec:
                                  description: 'Specification of the desired behavior
                                    of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
                                  properties:
                                    activeDeadlineSeconds:
                                      description: Optional duration in seconds the
                                        pod may be active on the node relative to
                                        StartTime before the system will actively
                                        try to mark it failed and kill associated
                                        containers. Value must be a positive integer.
                                      format: int64
                                      type: integer
                                    affinity:
                                      description: If specified, the pod's scheduling
                                        constraints
                                      properties:
                                        nodeAffinity:
                                          description: Describes node affinity scheduling
                                            rules for the pod.
                                          properties:
                                            preferredDuringSchedulingIgnoredDuringExecution:
                                              description: The scheduler will prefer
                                                to schedule pods to nodes that satisfy
                                                the affinity expressions specified
                                                by this field, but it may choose a
                                                node that violates one or more of
                                                the expressions. The node that is
                                                most preferred is the one with the
                                                greatest sum of weights, i.e. for
                                                each node that meets all of the scheduling
                                                requirements (resource request, requiredDuringScheduling
                                                affinity expressions, etc.), compute
                                                a sum by iterating through the elements
                                                of this field and adding "weight"
                                                to the sum if the node matches the
                                                corresponding matchExpressions; the
                                                node(s) with the highest sum are the
                                                most preferred.
                                              items:
                                                description: An empty preferred scheduling
                                                  term matches all objects with implicit
                                                  weight 0 (i.e. it's a no-op). A
                                                  null preferred scheduling term matches
                                                  no objects (i.e. is also a no-op).
                                                properties:
                                                  preference:
                                                    description: A node selector term,
                                                      associated with the corresponding
                                                      weight.
                                                    properties:
                                                      matchExpressions:
                                                        description: A list of node
                                                          selector requirements by
                                                          node's labels.
                                                        items:
                                                          description: A node selector
                                                            requirement is a selector
                                                            that contains values,
                                                            a key, and an operator
                                                            that relates the key and
                                                            values.
                                                          properties:
                                                            key:
                                                              description: The label
                                                                key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents
                                                                a key's relationship
                                                                to a set of values.
                                                                Valid operators are
                                                                In, NotIn, Exists,
                                                                DoesNotExist. Gt,
                                                                and Lt.
                                                              type: string
                                                            values:
                                                              description: An array
                                                                of string values.
                                                                If the operator is
                                                                In or NotIn, the values
                                                                array must be non-empty.
                                                                If the operator is
                                                                Exists or DoesNotExist,
                                                                the values array must
                                                                be empty. If the operator
                                                                is Gt or Lt, the values
                                                                array must have a
                                                                single element, which
                                                                will be interpreted
                                                                as an integer. This
                                                                array is replaced
                                                                during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                          required:
                                                          - key
                                                          - operator
                                                          type: object
                                                        type: array
                                                      matchFields:
                                                        description: A list of node
                                                          selector requirements by
                                                          node's fields.
                                                        items:
                                                          description: A node selector
                                                            requirement is a selector
                                                            that contains values,
                                                            a key, and an operator
                                                            that relates the key and
                                                            values.
                                                          properties:
                                                            key:
                                                              description: The label
                                                                key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents
                                                                a key's relationship
                                                                to a set of values.
                                                                Valid operators are
                                                                In, NotIn, Exists,
                                                                DoesNotExist. Gt,
                                                                and Lt.
                                                              type: string
                                                            values:
                                                              description: An array
                                                                of string values.
                                                                If the operator is
                                                                In or NotIn, the values
                                                                array must be non-empty.
                                                                If the operator is
                                                                Exists or DoesNotExist,
                                                                the values array must
                                                                be empty. If the operator
                                                                is Gt or Lt, the values
                                                                array must have a
                                                                single element, which
                                                                will be interpreted
                                                                as an integer. This
                                                                array is replaced
                                                                during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                          required:
                                                          - key
                                                          - operator
                                                          type: object
                                                        type: array
                                                    type: object
                                                  weight:
                                                    description: Weight associated
                                                      with matching the corresponding
                                                      nodeSelectorTerm, in the range
                                                      1-100.
                                                    format: int32
                                                    type: integer
                                                required:
                                                - preference
                                                - weight
                                                type: object
                                              type: array
                                            requiredDuringSchedulingIgnoredDuringExecution:
                                              description: If the affinity requirements
                                                specified by this field are not met
                                                at scheduling time, the pod will not
                                                be scheduled onto the node. If the
                                                affinity requirements specified by
                                                this field cease to be met at some
                                                point during pod execution (e.g. due
                                                to an update), the system may or may
                                                not try to eventually evict the pod
                                                from its node.
                                              properties:
                                                nodeSelectorTerms:
                                                  description: Required. A list of
                                                    node selector terms. The terms
                                                    are ORed.
                                                  items:
                                                    description: A null or empty node
                                                      selector term matches no objects.
                                                      The requirements of them are
                                                      ANDed. The TopologySelectorTerm
                                                      type implements a subset of
                                                      the NodeSelectorTerm.
                                                    properties:
                                                      matchExpressions:
                                                        description: A list of node
                                                          selector requirements by
                                                          node's labels.
                                                        items:
                                                          description: A node selector
                                                            requirement is a selector
                                                            that contains values,
                                                            a key, and an operator
                                                            that relates the key and
                                                            values.
                                                          properties:
                                                            key:
                                                              description: The label
                                                                key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents
                                                                a key's relationship
                                                                to a set of values.
                                                                Valid operators are
                                                                In, NotIn, Exists,
                                                                DoesNotExist. Gt,
                                                                and Lt.
                                                              type: string
                                                            values:
                                                              description: An array
                                                                of string values.
                                                                If the operator is
                                                                In or NotIn, the values
                                                                array must be non-empty.
                                                                If the operator is
                                                                Exists or DoesNotExist,
                                                                the values array must
                                                                be empty. If the operator
                                                                is Gt or Lt, the values
                                                                array must have a
                                                                single element, which
                                                                will be interpreted
                                                                as an integer. This
                                                                array is replaced
                                                                during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                          required:
                                                          - key
                                                          - operator
                                                          type: object
                                                        type: array
                                                      matchFields:
                                                        description: A list of node
                                                          selector requirements by
                                                          node's fields.
                                                        items:
                                                          description: A node selector
                                                            requirement is a selector
                                                            that contains values,
                                                            a key, and an operator
                                                            that relates the key and
                                                            values.
                                                          properties:
                                                            key:
                                                              description: The label
                                                                key that the selector
                                                                applies to.
                                                              type: string
                                                            operator:
                                                              description: Represents
                                                                a key's relationship
                                                                to a set of values.
                                                                Valid operators are
                                                                In, NotIn, Exists,
                                                                DoesNotExist. Gt,
                                                                and Lt.
                                                              type: string
                                                            values:
                                                              description: An array
                                                                of string values.
                                                                If the operator is
                                                                In or NotIn, the values
                                                                array must be non-empty.
                                                                If the operator is
                                                                Exists or DoesNotExist,
                                                                the values array must
                                                                be empty. If the operator
                                                                is Gt or Lt, the values
                                                                array must have a
                                                                single element, which
                                                                will be interpreted
                                                                as an integer. This
                                                                array is replaced
                                                                during a strategic
                                                                merge patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                          required:
                                                          - key
                                                          - operator
                                                          type: object
                                                        type: array
                                                    type: object
                                                  type: array
                                              required:
                                              - nodeSelectorTerms
                                              type: object
                                          type: object
                                        podAffinity:
                                          description: Describes pod affinity scheduling
                                            rules (e.g. co-locate this pod in the
                                            same node, zone, etc. as some other pod(s)).
                                          properties:
                                            preferredDuringSchedulingIgnoredDuringExecution:
                                              description: The scheduler will prefer
                                                to schedule pods to nodes that satisfy
                                                the affinity expressions specified
                                                by this field, but it may choose a
                                                node that violates one or more of
                                                the expressions. The node that is
                                                most preferred is the one with the
                                                greatest sum of weights, i.e. for
                                                each node that meets all of the scheduling
                                                requirements (resource request, requiredDuringScheduling
                                                affinity expressions, etc.), compute
                                                a sum by iterating through the elements
                                                of this field and adding "weight"
                                                to the sum if the node has pods which
                                                matches the corresponding podAffinityTerm;
                                                the node(s) with the highest sum are
                                                the most preferred.
                                              items:
                                                description: The weights of all of
                                                  the matched WeightedPodAffinityTerm
                                                  fields are added per-node to find
                                                  the most preferred node(s)
                                                properties:
                                                  podAffinityTerm:
                                                    description: Required. A pod affinity
                                                      term, associated with the corresponding
                                                      weight.
                                                    properties:
                                                      labelSelector:
                                                        description: A label query
                                                          over a set of resources,
                                                          in this case pods.
                                                        properties:
                                                          matchExpressions:
                                                            description: matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: A label
                                                                selector requirement
                                                                is a selector that
                                                                contains values, a
                                                                key, and an operator
                                                                that relates the key
                                                                and values.
                                                              properties:
                                                                key:
                                                                  description: key
                                                                    is the label key
                                                                    that the selector
                                                                    applies to.
                                                                  type: string
                                                                operator:
                                                                  description: operator
                                                                    represents a key's
                                                                    relationship to
                                                                    a set of values.
                                                                    Valid operators
                                                                    are In, NotIn,
                                                                    Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description: values
                                                                    is an array of
                                                                    string values.
                                                                    If the operator
                                                                    is In or NotIn,
                                                                    the values array
                                                                    must be non-empty.
                                                                    If the operator
                                                                    is Exists or DoesNotExist,
                                                                    the values array
                                                                    must be empty.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              required:
                                                              - key
                                                              - operator
                                                              type: object
                                                            type: array
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: matchLabels
                                                              is a map of {key,value}
                                                              pairs. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                      namespaces:
                                                        description: namespaces specifies
                                                          which namespaces the labelSelector
                                                          applies to (matches against);
                                                          null or empty list means
                                                          "this pod's namespace"
                                                        items:
                                                          type: string
                                                        type: array
                                                      topologyKey:
                                                        description: This pod should
                                                          be co-located (affinity)
                                                          or not co-located (anti-affinity)
                                                          with the pods matching the
                                                          labelSelector in the specified
                                                          namespaces, where co-located
                                                          is defined as running on
                                                          a node whose value of the
                                                          label with key topologyKey
                                                          matches that of any node
                                                          on which any of the selected
                                                          pods is running. Empty topologyKey
                                                          is not allowed.
                                                        type: string
                                                    required:
                                                    - topologyKey
                                                    type: object
                                                  weight:
                                                    description: weight associated
                                                      with matching the corresponding
                                                      podAffinityTerm, in the range
                                                      1-100.
                                                    format: int32
                                                    type: integer
                                                required:
                                                - podAffinityTerm
                                                - weight
                                                type: object
                                              type: array
                                            requiredDuringSchedulingIgnoredDuringExecution:
                                              description: If the affinity requirements
                                                specified by this field are not met
                                                at scheduling time, the pod will not
                                                be scheduled onto the node. If the
                                                affinity requirements specified by
                                                this field cease to be met at some
                                                point during pod execution (e.g. due
                                                to a pod label update), the system
                                                may or may not try to eventually evict
                                                the pod from its node. When there
                                                are multiple elements, the lists of
                                                nodes corresponding to each podAffinityTerm
                                                are intersected, i.e. all terms must
                                                be satisfied.
                                              items:
                                                description: Defines a set of pods
                                                  (namely those matching the labelSelector
                                                  relative to the given namespace(s))
                                                  that this pod should be co-located
                                                  (affinity) or not co-located (anti-affinity)
                                                  with, where co-located is defined
                                                  as running on a node whose value
                                                  of the label with key <topologyKey>
                                                  matches that of any node on which
                                                  a pod of the set of pods is running
                                                properties:
                                                  labelSelector:
                                                    description: A label query over
                                                      a set of resources, in this
                                                      case pods.
                                                    properties:
                                                      matchExpressions:
                                                        description: matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: A label selector
                                                            requirement is a selector
                                                            that contains values,
                                                            a key, and an operator
                                                            that relates the key and
                                                            values.
                                                          properties:
                                                            key:
                                                              description: key is
                                                                the label key that
                                                                the selector applies
                                                                to.
                                                              type: string
                                                            operator:
                                                              description: operator
                                                                represents a key's
                                                                relationship to a
                                                                set of values. Valid
                                                                operators are In,
                                                                NotIn, Exists and
                                                                DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: values
                                                                is an array of string
                                                                values. If the operator
                                                                is In or NotIn, the
                                                                values array must
                                                                be non-empty. If the
                                                                operator is Exists
                                                                or DoesNotExist, the
                                                                values array must
                                                                be empty. This array
                                                                is replaced during
                                                                a strategic merge
                                                                patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                          required:
                                                          - key
                                                          - operator
                                                          type: object
                                                        type: array
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: matchLabels is
                                                          a map of {key,value} pairs.
                                                          A single {key,value} in
                                                          the matchLabels map is equivalent
                                                          to an element of matchExpressions,
                                                          whose key field is "key",
                                                          the operator is "In", and
                                                          the values array contains
                                                          only "value". The requirements
                                                          are ANDed.
                                                        type: object
                                                    type: object
                                                  namespaces:
                                                    description: namespaces specifies
                                                      which namespaces the labelSelector
                                                      applies to (matches against);
                                                      null or empty list means "this
                                                      pod's namespace"
                                                    items:
                                                      type: string
                                                    type: array
                                                  topologyKey:
                                                    description: This pod should be
                                                      co-located (affinity) or not
                                                      co-located (anti-affinity) with
                                                      the pods matching the labelSelector
                                                      in the specified namespaces,
                                                      where co-located is defined
                                                      as running on a node whose value
                                                      of the label with key topologyKey
                                                      matches that of any node on
                                                      which any of the selected pods
                                                      is running. Empty topologyKey
                                                      is not allowed.
                                                    type: string
                                                required:
                                                - topologyKey
                                                type: object
                                              type: array
                                          type: object
                                        podAntiAffinity:
                                          description: Describes pod anti-affinity
                                            scheduling rules (e.g. avoid putting this
                                            pod in the same node, zone, etc. as some
                                            other pod(s)).
                                          properties:
                                            preferredDuringSchedulingIgnoredDuringExecution:
                                              description: The scheduler will prefer
                                                to schedule pods to nodes that satisfy
                                                the anti-affinity expressions specified
                                                by this field, but it may choose a
                                                node that violates one or more of
                                                the expressions. The node that is
                                                most preferred is the one with the
                                                greatest sum of weights, i.e. for
                                                each node that meets all of the scheduling
                                                requirements (resource request, requiredDuringScheduling
                                                anti-affinity expressions, etc.),
                                                compute a sum by iterating through
                                                the elements of this field and adding
                                                "weight" to the sum if the node has
                                                pods which matches the corresponding
                                                podAffinityTerm; the node(s) with
                                                the highest sum are the most preferred.
                                              items:
                                                description: The weights of all of
                                                  the matched WeightedPodAffinityTerm
                                                  fields are added per-node to find
                                                  the most preferred node(s)
                                                properties:
                                                  podAffinityTerm:
                                                    description: Required. A pod affinity
                                                      term, associated with the corresponding
                                                      weight.
                                                    properties:
                                                      labelSelector:
                                                        description: A label query
                                                          over a set of resources,
                                                          in this case pods.
                                                        properties:
                                                          matchExpressions:
                                                            description: matchExpressions
                                                              is a list of label selector
                                                              requirements. The requirements
                                                              are ANDed.
                                                            items:
                                                              description: A label
                                                                selector requirement
                                                                is a selector that
                                                                contains values, a
                                                                key, and an operator
                                                                that relates the key
                                                                and values.
                                                              properties:
                                                                key:
                                                                  description: key
                                                                    is the label key
                                                                    that the selector
                                                                    applies to.
                                                                  type: string
                                                                operator:
                                                                  description: operator
                                                                    represents a key's
                                                                    relationship to
                                                                    a set of values.
                                                                    Valid operators
                                                                    are In, NotIn,
                                                                    Exists and DoesNotExist.
                                                                  type: string
                                                                values:
                                                                  description: values
                                                                    is an array of
                                                                    string values.
                                                                    If the operator
                                                                    is In or NotIn,
                                                                    the values array
                                                                    must be non-empty.
                                                                    If the operator
                                                                    is Exists or DoesNotExist,
                                                                    the values array
                                                                    must be empty.
                                                                    This array is
                                                                    replaced during
                                                                    a strategic merge
                                                                    patch.
                                                                  items:
                                                                    type: string
                                                                  type: array
                                                              required:
                                                              - key
                                                              - operator
                                                              type: object
                                                            type: array
                                                          matchLabels:
                                                            additionalProperties:
                                                              type: string
                                                            description: matchLabels
                                                              is a map of {key,value}
                                                              pairs. A single {key,value}
                                                              in the matchLabels map
                                                              is equivalent to an
                                                              element of matchExpressions,
                                                              whose key field is "key",
                                                              the operator is "In",
                                                              and the values array
                                                              contains only "value".
                                                              The requirements are
                                                              ANDed.
                                                            type: object
                                                        type: object
                                                      namespaces:
                                                        description: namespaces specifies
                                                          which namespaces the labelSelector
                                                          applies to (matches against);
                                                          null or empty list means
                                                          "this pod's namespace"
                                                        items:
                                                          type: string
                                                        type: array
                                                      topologyKey:
                                                        description: This pod should
                                                          be co-located (affinity)
                                                          or not co-located (anti-affinity)
                                                          with the pods matching the
                                                          labelSelector in the specified
                                                          namespaces, where co-located
                                                          is defined as running on
                                                          a node whose value of the
                                                          label with key topologyKey
                                                          matches that of any node
                                                          on which any of the selected
                                                          pods is running. Empty topologyKey
                                                          is not allowed.
                                                        type: string
                                                    required:
                                                    - topologyKey
                                                    type: object
                                                  weight:
                                                    description: weight associated
                                                      with matching the corresponding
                                                      podAffinityTerm, in the range
                                                      1-100.
                                                    format: int32
                                                    type: integer
                                                required:
                                                - podAffinityTerm
                                                - weight
                                                type: object
                                              type: array
                                            requiredDuringSchedulingIgnoredDuringExecution:
                                              description: If the anti-affinity requirements
                                                specified by this field are not met
                                                at scheduling time, the pod will not
                                                be scheduled onto the node. If the
                                                anti-affinity requirements specified
                                                by this field cease to be met at some
                                                point during pod execution (e.g. due
                                                to a pod label update), the system
                                                may or may not try to eventually evict
                                                the pod from its node. When there
                                                are multiple elements, the lists of
                                                nodes corresponding to each podAffinityTerm
                                                are intersected, i.e. all terms must
                                                be satisfied.
                                              items:
                                                description: Defines a set of pods
                                                  (namely those matching the labelSelector
                                                  relative to the given namespace(s))
                                                  that this pod should be co-located
                                                  (affinity) or not co-located (anti-affinity)
                                                  with, where co-located is defined
                                                  as running on a node whose value
                                                  of the label with key <topologyKey>
                                                  matches that of any node on which
                                                  a pod of the set of pods is running
                                                properties:
                                                  labelSelector:
                                                    description: A label query over
                                                      a set of resources, in this
                                                      case pods.
                                                    properties:
                                                      matchExpressions:
                                                        description: matchExpressions
                                                          is a list of label selector
                                                          requirements. The requirements
                                                          are ANDed.
                                                        items:
                                                          description: A label selector
                                                            requirement is a selector
                                                            that contains values,
                                                            a key, and an operator
                                                            that relates the key and
                                                            values.
                                                          properties:
                                                            key:
                                                              description: key is
                                                                the label key that
                                                                the selector applies
                                                                to.
                                                              type: string
                                                            operator:
                                                              description: operator
                                                                represents a key's
                                                                relationship to a
                                                                set of values. Valid
                                                                operators are In,
                                                                NotIn, Exists and
                                                                DoesNotExist.
                                                              type: string
                                                            values:
                                                              description: values
                                                                is an array of string
                                                                values. If the operator
                                                                is In or NotIn, the
                                                                values array must
                                                                be non-empty. If the
                                                                operator is Exists
                                                                or DoesNotExist, the
                                                                values array must
                                                                be empty. This array
                                                                is replaced during
                                                                a strategic merge
                                                                patch.
                                                              items:
                                                                type: string
                                                              type: array
                                                          required:
                                                          - key
                                                          - operator
                                                          type: object
                                                        type: array
                                                      matchLabels:
                                                        additionalProperties:
                                                          type: string
                                                        description: matchLabels is
                                                          a map of {key,value} pairs.
                                                          A single {key,value} in
                                                          the matchLabels map is equivalent
                                                          to an element of matchExpressions,
                                                          whose key field is "key",
                                                          the operator is "In", and
                                                          the values array contains
                                                          only "value". The requirements
                                                          are ANDed.
                                                        type: object
                                                    type: object
                                                  namespaces:
                                                    description: namespaces specifies
                                                      which namespaces the labelSelector
                                                      applies to (matches against);
                                                      null or empty list means "this
                                                      pod's namespace"
                                                    items:
                                                      type: string
                                                    type: array
                                                  topologyKey:
                                                    description: This pod should be
                                                      co-located (affinity) or not
                                                      co-located (anti-affinity) with
                                                      the pods matching the labelSelector
                                                      in the specified namespaces,
                                                      where co-located is defined
                                                      as running on a node whose value
                                                      of the label with key topologyKey
                                                      matches that of any node on
                                                      which any of the selected pods
                                                      is running. Empty topologyKey
                                                      is not allowed.
                                                    type: string
                                                required:
                                                - topologyKey
                                                type: object
                                              type: array
                                          type: object
                                      type: object
                                    automountServiceAccountToken:
                                      description: AutomountServiceAccountToken indicates
                                        whether a service account token should be
                                        automatically mounted.
                                      type: boolean
                                    containers:
                                      description: List of containers belonging to
                                        the pod. Containers cannot currently be added
                                        or removed. There must be at least one container
                                        in a Pod. Cannot be updated.
                                      items:
                                        description: A single application container
                                          that you want to run within a pod.
                                        properties:
                                          args:
                                            description: 'Arguments to the entrypoint.
                                              The docker image''s CMD is used if this
                                              is not provided. Variable references
                                              $(VAR_NAME) are expanded using the container''s
                                              environment. If a variable cannot be
                                              resolved, the reference in the input
                                              string will be unchanged. The $(VAR_NAME)
                                              syntax can be escaped with a double
                                              $$, ie: $$(VAR_NAME). Escaped references
                                              will never be expanded, regardless of
                                              whether the variable exists or not.
                                              Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                            items:
                                              type: string
                                            type: array
                                          command:
                                            description: 'Entrypoint array. Not executed
                                              within a shell. The docker image''s
                                              ENTRYPOINT is used if this is not provided.
                                              Variable references $(VAR_NAME) are
                                              expanded using the container''s environment.
                                              If a variable cannot be resolved, the
                                              reference in the input string will be
                                              unchanged. The $(VAR_NAME) syntax can
                                              be escaped with a double $$, ie: $$(VAR_NAME).
                                              Escaped references will never be expanded,
                                              regardless of whether the variable exists
                                              or not. Cannot be updated. More info:
                                              https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                                            items:
                                              type: string
                                            type: array
                                          env:
                                            description: List of environment variables
                                              to set in the container. Cannot be updated.
                                            items:
                                              description: EnvVar represents an environment
                                                variable present in a Container.
                                              properties:
                                                name:
                                                  description: Name of the environment
                                                    variable. Must be a C_IDENTIFIER.
                                                  type: string
                                                value:
                                                  description: 'Variable references
                                                    $(VAR_NAME) are expanded using
                                                    the previous defined environment
                                                    variables in the container and
                                                    any service environment variables.
                                                    If a variable cannot be resolved,
                                                    the reference in the input string
                                                    will be unchanged. The $(VAR_NAME)
                                                    syntax can be escaped with a double
                                                    $$, ie: $$(VAR_NAME). Escaped
                                                    references will never be expanded,
                                                    regardless of whether the variable
                                                    exists or not. Defaults to "".'
                                                  type: string
                                                valueFrom:
                                                  description: Source for the environment
                                                    variable's value. Cannot be used
                                                    if value is not empty.
                                                  properties:
                                                    configMapKeyRef:
                                                      description: Selects a key of
                                                        a ConfigMap.
                                                      properties:
                                                        key:
                                                          description: The key to
                                                            select.
                                                          type: string
                                                        name:
                                                          description: 'Name of the
                                                            referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                            TODO: Add other useful
                                                            fields. apiVersion, kind,
                                                            uid?'
                                                          type: string
                                                        optional:
                                                          description: Specify whether
                                                            the ConfigMap or its key
                                                            must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                    fieldRef:
                                                      description: 'Selects a field
                                                        of the pod: supports metadata.name,
                                                        metadata.namespace, `metadata.labels[''<KEY>'']`,
                                                        `metadata.annotations[''<KEY>'']`,
                                                        spec.nodeName, spec.serviceAccountName,
                                                        status.hostIP, status.podIP,
                                                        status.podIPs.'
                                                      properties:
                                                        apiVersion:
                                                          description: Version of
                                                            the schema the FieldPath
                                                            is written in terms of,
                                                            defaults to "v1".
                                                          type: string
                                                        fieldPath:
                                                          description: Path of the
                                                            field to select in the
                                                            specified API version.
                                                          type: string
                                                      required:
                                                      - fieldPath
                                                      type: object
                                                    resourceFieldRef:
                                                      description: 'Selects a resource
                                                        of the container: only resources
                                                        limits and requests (limits.cpu,
                                                        limits.memory, limits.ephemeral-storage,
                                                        requests.cpu, requests.memory
                                                        and requests.ephemeral-storage)
                                                        are currently supported.'
                                                      properties:
                                                        containerName:
                                                          description: 'Container
                                                            name: required for volumes,
                                                            optional for env vars'
                                                          type: string
                                                        divisor:
                                                          anyOf:
                                                          - type: integer
                                                          - type: string
                                                          description: Specifies the
                                                            output format of the exposed
                                                            resources, defaults to
                                                            "1"
                                                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                                          x-kubernetes-int-or-string: true
                                                        resource:
                                                          description: 'Required:
                                                            resource to select'
                                                          type: string
                                                      required:
                                                      - resource
                                                      type: object
                                                    secretKeyRef:
                                                      description: Selects a key of
                                                        a secret in the pod's namespace
                                                      properties:
                                                        key:
                                                          description: The key of
                                                            the secret to select from.  Must
                                                            be a valid secret key.
                                                          type: string
                                                        name:
                                                          description: 'Name of the
                                                            referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                            TODO: Add other useful
                                                            fields. apiVersion, kind,
                                                            uid?'
                                                          type: string
                                                        optional:
                                                          description: Specify whether
                                                            the Secret or its key
                                                            must be defined
                                                          type: boolean
                                                      required:
                                                      - key
                                                      type: object
                                                  type: object
                                              required:
                                              - name
                                              type: object
                                            type: array
                                          envFrom:
                                            description: List of sources to populate
                                              environment variables in the container.
                                              The keys defined within a source must
                                              be a C_IDENTIFIER. All invalid keys
                                              will be reported as an event when the
                                              container is starting. When a key exists
                                              in multiple sources, the value associated
                                              with the last source will take precedence.
                                              Values defined by an Env with a duplicate
                                              key will take precedence. Cannot be
                                              updated.
                                            items:
                                              description: EnvFromSource represents
                                                the source of a set of ConfigMaps
                                              properties:
                                                configMapRef:
                                                  description: The ConfigMap to select
                                                    from
                                                  properties:
                                                    name:
                                                      description: 'Name of the referent.
                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                        TODO: Add other useful fields.
                                                        apiVersion, kind, uid?'
                                                      type: string
                                                    optional:
                                                      description: Specify whether
                                                        the ConfigMap must be defined
                                                      type: boolean
                                                  type: object
                                                prefix:
                                                  description: An optional identifier
                                                    to prepend to each key in the
                                                    ConfigMap. Must be a C_IDENTIFIER.
                                                  type: string
                                                secretRef:
                                                  description: The Secret to select
                                                    from
                                                  properties:
                                                    name:
                                                      description: 'Name of the referent.
                                                        More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                                        TODO: Add other useful fields.
                                                        apiVersion, kind, uid?'
                                                      type: string
                                                    optional:
                                                      description: Specify whether
                                                        the Secret must be defined
                                                      type: boolean
                                                  type: object
                                              type: object
                                            type: array
                                          image:
                                            description: 'Docker image name. More
                                              info: https://kubernetes.io/docs/concepts/containers/images
                                              This field is optional to allow higher
                                              level config management to default or
                                              override container images in workload
                                              controllers like Deployments and StatefulSets.'
                                            type: string
                                          imagePullPolicy:
                                            description: 'Image pull policy. One of
                                              Always, Never, IfNotPresent. Defaults
                                              to Always if :latest tag is specified,
                                              or IfNotPresent otherwise. Cannot be
                                              updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                                            type: string
                                          lifecycle:
                                            description: Actions that the management
                                              system should take in response to container
                                              lifecycle events. Cannot be updated.
                                            properties:
                                              postStart:
                                                description: 'PostStart is called
                                                  immediately after a container is
                                                  created. If the handler fails, the
                                                  container is terminated and restarted
                                                  according to its restart policy.
                                                  Other management of the container
                                                  blocks until the hook completes.
                                                  More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                                properties:
                                                  exec:
                                                    description: One and only one
                                                      of the following should be specified.
                                                      Exec specifies the action to
                                                      take.
                                                    properties:
                                                      command:
                                                        description: Command is the
                                                          command line to execute
                                                          inside the container, the
                                                          working directory for the
                                                          command  is root ('/') in
                                                          the container's filesystem.
                                                          The command is simply exec'd,
                                                          it is not run inside a shell,
                                                          so traditional shell instructions
                                                          ('|', etc) won't work. To
                                                          use a shell, you need to
                                                          explicitly call out to that
                                                          shell. Exit status of 0
                                                          is treated as live/healthy
                                                          and non-zero is unhealthy.
                                                        items:
                                                          type: string
                                                        type: array
                                                    type: object
                                                  httpGet:
                                                    description: HTTPGet specifies
                                                      the http request to perform.
                                                    properties:
                                                      host:
                                                        description: Host name to
                                                          connect to, defaults to
                                                          the pod IP. You probably
                                                          want to set "Host" in httpHeaders
                                                          instead.
                                                        type: string
                                                      httpHeaders:
                                                        description: Custom headers
                                                          to set in the request. HTTP
                                                          allows repeated headers.
                                                        items:
                                                          description: HTTPHeader
                                                            describes a custom header
                                                            to be used in HTTP probes
                                                          properties:
                                                            name:
                                                              description: The header
                                                                field name
                                                              type: string
                                                            value:
                                                              description: The header
                                                                field value
                                                              type: string
                                                          required:
                                                          - name
                                                          - value
                                                          type: object
                                                        type: array
                                                      path:
                                                        description: Path to access
                                                          on the HTTP server.
                                                        type: string
                                                      port:
                                                        anyOf:
                                                        - type: integer
                                                        - type: string
                                                        description: Name or number
                                                          of the port to access on
                                                          the container. Number must
                                                          be in the range 1 to 65535.
                                                          Name must be an IANA_SVC_NAME.
                                                        x-kubernetes-int-or-string: true
                                                      scheme:
                                                        description: Scheme to use
                                                          for connecting to the host.
                                                          Defaults to HTTP.
                                                        type: string
                                                    required:
                                                    - port
                                                    type: object
                                                  tcpSocket:
                                                    description: 'TCPSocket specifies
                                                      an action involving a TCP port.
                                                      TCP hooks not yet supported
                                                      TODO: implement a realistic
                                                      TCP lifecycle hook'
                                                    properties:
                                                      host:
                                                        description: 'Optional: Host
                                                          name to connect to, defaults
                                                          to the pod IP.'
                                                        type: string
                                                      port:
                                                        anyOf:
                                                        - type: integer
                                                        - type: string
                                                        description: Number or name
                                                          of the port to access on
                                                          the container. Number must
                                                          be in the range 1 to 65535.
                                                          Name must be an IANA_SVC_NAME.
                                                        x-kubernetes-int-or-string: true
                                                    required:
                                                    - port
                                                    type: object
                                                type: object
                                              preStop:
                                                description: 'PreStop is called immediately
                                                  before a container is terminated
                                                  due to an API request or management
                                                  event such as liveness/startup probe
                                                  failure, preemption, resource contention,
                                                  etc. The handler is not called if
                                                  the container crashes or exits.
                                                  The reason for termination is passed
                                                  to the handler. The Pod''s termination
                                                  grace period countdown begins before
                                                  the PreStop hooked is executed.
                                                  Regardless of the outcome of the
                                                  handler, the container will eventually
                                                  terminate within the Pod''s termination
                                                  grace period. Other management of
                                                  the container blocks until the hook
                                                  completes or until the termination
                                                  grace period is reached. More info:
                                                  https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks'
                                                properties:
                                                  exec:
                                                    description: One and only one
                                                      of the following should be specified.
                                                      Exec specifies the action to
                                                      take.
                                                    properties:
                                                      command:
                                                        description: Command is the
                                                          command line to execute
                                                          inside the container, the
                                                          working directory for the
                                                          command  is root ('/') in
                                                          the container's filesystem.
                                                          The command is simply exec'd,
                                                          it is not run inside a shell,
                                                          so traditional shell instructions
                                                          ('|', etc) won't work. To
                                                          use a shell, you need to
                                                          explicitly call out to that
                                                          shell. Exit status of 0
                                                          is treated as live/healthy
                                                          and non-zero is unhealthy.
                                                        items:
                                                          type: string
                                                        type: array
                                                    type: object
                                                  httpGet:
                                                    description: HTTPGet specifies
                                                      the http request to perform.
                                                    properties:
                                                      host:
                                                        description: Host name to
                                                          connect to, defaults to
                                                          the pod IP. You probably
                                                          want to set "Host" in httpHeaders
                                                          instead.
                                                        type: string
                                                      httpHeaders:
                                                        description: Custom headers
                                                          to set in the request. HTTP
                                                          allows repeated headers.
                                                        items:
                                                          description: HTTPHeader
                                                            describes a custom header
                                                            to be used in HTTP probes
                                                          properties:
                                                            name:
                                                              description: The header
                                                                field name
                                                              type: string
                                                            value:
                                                              description: The header
                                                                field value
                                                              type: string
                                                          required:
                                                          - name
                                                          - value
                                                          type: object
                                                        type: array
                                                      path:
                                                        description: Path to access
                                                          on the HTTP server.
                                                        type: string
                                                      port:
                                                        anyOf:
                                                        - type: integer
                                                        - type: string
                                                        description: Name or number
                                                          of the port to access on
                                                          the container. Number must
                                                          be in the range 1 to 65535.
                                                          Name must be an IANA_SVC_NAME.
                                                        x-kubernetes-int-or-string: true
                                                      scheme:
                                                        description: Scheme to use
                                                          for connecting to the host.
                                                          Defaults to HTTP.
                                                        type: string
                                                    required:
                                                    - port
                                                    type: object
                                                  tcpSocket:
                                                    description: 'TCPSocket specifies
                                                      an action involving a TCP port.
                                                      TCP hooks not yet supported
                                                      TODO: implement a realistic
                                                      TCP lifecycle hook'
                                                    properties:
                                                      host:
                                                        description: 'Optional: Host
                                                          name to connect to, defaults
                                                          to the pod IP.'
                                                        type: string
                                                      port:
                                                        anyOf:
                                                        - type: integer
                                                        - type: string
                                                        description: Number or name
                                                          of the port to access on
                                                          the container. Number must
                                                          be in the range 1 to 65535.
                                                          Name must be an IANA_SVC_NAME.
                                                        x-kubernetes-int-or-string: true
                                                    required:
                                                    - port
                                                    type: object
                                                type: object
                                            type: object
                                          livenessProbe:
                                            description: 'Periodic probe of container
                                              liveness. Container will be restarted
                                              if the probe fails. Cannot be updated.
                                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                            properties:
                                              exec:
                                                description: One and only one of the
                                                  following should be specified. Exec
                                                  specifies the action to take.
                                                properties:
                                                  command:
                                                    description: Command is the command
                                                      line to execute inside the container,
                                                      the working directory for the
                                                      command  is root ('/') in the
                                                      container's filesystem. The
                                                      command is simply exec'd, it
                                                      is not run inside a shell, so
                                                      traditional shell instructions
                                                      ('|', etc) won't work. To use
                                                      a shell, you need to explicitly
                                                      call out to that shell. Exit
                                                      status of 0 is treated as live/healthy
                                                      and non-zero is unhealthy.
                                                    items:
                                                      type: string
                                                    type: array
                                                type: object
                                              failureThreshold:
                                                description: Minimum consecutive failures
                                                  for the probe to be considered failed
                                                  after having succeeded. Defaults
                                                  to 3. Minimum value is 1.
                                                format: int32
                                                type: integer
                                              httpGet:
                                                description: HTTPGet specifies the
                                                  http request to perform.
                                                properties:
                                                  host:
                                                    description: Host name to connect
                                                      to, defaults to the pod IP.
                                                      You probably want to set "Host"
                                                      in httpHeaders instead.
                                                    type: string
                                                  httpHeaders:
                                                    description: Custom headers to
                                                      set in the request. HTTP allows
                                                      repeated headers.
                                                    items:
                                                      description: HTTPHeader describes
                                                        a custom header to be used
                                                        in HTTP probes
                                                      properties:
                                                        name:
                                                          description: The header
                                                            field name
                                                          type: string
                                                        value:
                                                          description: The header
                                                            field value
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  path:
                                                    description: Path to access on
                                                      the HTTP server.
                                                    type: string
                                                  port:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Name or number of
                                                      the port to access on the container.
                                                      Number must be in the range
                                                      1 to 65535. Name must be an
                                                      IANA_SVC_NAME.
                                                    x-kubernetes-int-or-string: true
                                                  scheme:
                                                    description: Scheme to use for
                                                      connecting to the host. Defaults
                                                      to HTTP.
                                                    type: string
                                                required:
                                                - port
                                                type: object
                                              initialDelaySeconds:
                                                description: 'Number of seconds after
                                                  the container has started before
                                                  liveness probes are initiated. More
                                                  info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                                format: int32
                                                type: integer
                                              periodSeconds:
                                                description: How often (in seconds)
                                                  to perform the probe. Default to
                                                  10 seconds. Minimum value is 1.
                                                format: int32
                                                type: integer
                                              successThreshold:
                                                description: Minimum consecutive successes
                                                  for the probe to be considered successful
                                                  after having failed. Defaults to
                                                  1. Must be 1 for liveness and startup.
                                                  Minimum value is 1.
                                                format: int32
                                                type: integer
                                              tcpSocket:
                                                description: 'TCPSocket specifies
                                                  an action involving a TCP port.
                                                  TCP hooks not yet supported TODO:
                                                  implement a realistic TCP lifecycle
                                                  hook'
                                                properties:
                                                  host:
                                                    description: 'Optional: Host name
                                                      to connect to, defaults to the
                                                      pod IP.'
                                                    type: string
                                                  port:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Number or name of
                                                      the port to access on the container.
                                                      Number must be in the range
                                                      1 to 65535. Name must be an
                                                      IANA_SVC_NAME.
                                                    x-kubernetes-int-or-string: true
                                                required:
                                                - port
                                                type: object
                                              timeoutSeconds:
                                                description: 'Number of seconds after
                                                  which the probe times out. Defaults
                                                  to 1 second. Minimum value is 1.
                                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                                format: int32
                                                type: integer
                                            type: object
                                          name:
                                            description: Name of the container specified
                                              as a DNS_LABEL. Each container in a
                                              pod must have a unique name (DNS_LABEL).
                                              Cannot be updated.
                                            type: string
                                          ports:
                                            description: List of ports to expose from
                                              the container. Exposing a port here
                                              gives the system additional information
                                              about the network connections a container
                                              uses, but is primarily informational.
                                              Not specifying a port here DOES NOT
                                              prevent that port from being exposed.
                                              Any port which is listening on the default
                                              "0.0.0.0" address inside a container
                                              will be accessible from the network.
                                              Cannot be updated.
                                            items:
                                              description: ContainerPort represents
                                                a network port in a single container.
                                              properties:
                                                containerPort:
                                                  description: Number of port to expose
                                                    on the pod's IP address. This
                                                    must be a valid port number, 0
                                                    < x < 65536.
                                                  format: int32
                                                  type: integer
                                                hostIP:
                                                  description: What host IP to bind
                                                    the external port to.
                                                  type: string
                                                hostPort:
                                                  description: Number of port to expose
                                                    on the host. If specified, this
                                                    must be a valid port number, 0
                                                    < x < 65536. If HostNetwork is
                                                    specified, this must match ContainerPort.
                                                    Most containers do not need this.
                                                  format: int32
                                                  type: integer
                                                name:
                                                  description: If specified, this
                                                    must be an IANA_SVC_NAME and unique
                                                    within the pod. Each named port
                                                    in a pod must have a unique name.
                                                    Name for the port that can be
                                                    referred to by services.
                                                  type: string
                                                protocol:
                                                  default: TCP
                                                  description: Protocol for port.
                                                    Must be UDP, TCP, or SCTP. Defaults
                                                    to "TCP".
                                                  type: string
                                              required:
                                              - containerPort
                                              type: object
                                            type: array
                                            x-kubernetes-list-map-keys:
                                            - containerPort
                                            - protocol
                                            x-kubernetes-list-type: map
                                          readinessProbe:
                                            description: 'Periodic probe of container
                                              service readiness. Container will be
                                              removed from service endpoints if the
                                              probe fails. Cannot be updated. More
                                              info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                            properties:
                                              exec:
                                                description: One and only one of the
                                                  following should be specified. Exec
                                                  specifies the action to take.
                                                properties:
                                                  command:
                                                    description: Command is the command
                                                      line to execute inside the container,
                                                      the working directory for the
                                                      command  is root ('/') in the
                                                      container's filesystem. The
                                                      command is simply exec'd, it
                                                      is not run inside a shell, so
                                                      traditional shell instructions
                                                      ('|', etc) won't work. To use
                                                      a shell, you need to explicitly
                                                      call out to that shell. Exit
                                                      status of 0 is treated as live/healthy
                                                      and non-zero is unhealthy.
                                                    items:
                                                      type: string
                                                    type: array
                                                type: object
                                              failureThreshold:
                                                description: Minimum consecutive failures
                                                  for the probe to be considered failed
                                                  after having succeeded. Defaults
                                                  to 3. Minimum value is 1.
                                                format: int32
                                                type: integer
                                              httpGet:
                                                description: HTTPGet specifies the
                                                  http request to perform.
                                                properties:
                                                  host:
                                                    description: Host name to connect
                                                      to, defaults to the pod IP.
                                                      You probably want to set "Host"
                                                      in httpHeaders instead.
                                                    type: string
                                                  httpHeaders:
                                                    description: Custom headers to
                                                      set in the request. HTTP allows
                                                      repeated headers.
                                                    items:
                                                      description: HTTPHeader describes
                                                        a custom header to be used
                                                        in HTTP probes
                                                      properties:
                                                        name:
                                                          description: The header
                                                            field name
                                                          type: string
                                                        value:
                                                          description: The header
                                                            field value
                                                          type: string
                                                      required:
                                                      - name
                                                      - value
                                                      type: object
                                                    type: array
                                                  path:
                                                    description: Path to access on
                                                      the HTTP server.
                                                    type: string
                                                  port:
                                                    anyOf:
                                                    - type: integer
                                                    - type: string
                                                    description: Name or number of
                                                      the port to access on the container.
                                                      Number must be in the range
                                                      1 to 65535. Name must be an
                                                      IANA_SVC_NAME.
                                                    x-kubernetes-int-or-string: true
                                                  scheme:
                                                    description: Scheme to use for
                                                      connecting to the host. Defaults
                                                      to HTTP.
                                                    type: string
                                                required:
                                                - port
                                                type: object
                                              initialDelaySeconds:
                                                description: 'Number of seconds after
                                                  the container has started before
                                                  liveness probes are initiated. More
         
Download .txt
gitextract_ddr9m3f9/

├── .bazelrc
├── .gitignore
├── LICENSE
├── README.md
├── WORKSPACE
├── conf/
│   └── BUILD
├── deploy/
│   ├── .dockerignore
│   ├── .gitignore
│   ├── .golangci.yaml
│   ├── Dockerfile
│   ├── Makefile
│   ├── PROJECT
│   ├── README.md
│   ├── api/
│   │   └── v1/
│   │       ├── groupversion_info.go
│   │       ├── mlservice_types.go
│   │       └── zz_generated.deepcopy.go
│   ├── build.sh
│   ├── config/
│   │   ├── crd/
│   │   │   ├── bases/
│   │   │   │   └── mlplatform.volcengine.com_mlservices.yaml
│   │   │   ├── kustomization.yaml
│   │   │   ├── kustomizeconfig.yaml
│   │   │   └── patches/
│   │   │       ├── cainjection_in_mlservices.yaml
│   │   │       └── webhook_in_mlservices.yaml
│   │   ├── default/
│   │   │   ├── kustomization.yaml
│   │   │   ├── manager_auth_proxy_patch.yaml
│   │   │   └── manager_config_patch.yaml
│   │   ├── manager/
│   │   │   ├── controller_manager_config.yaml
│   │   │   ├── kustomization.yaml
│   │   │   └── manager.yaml
│   │   ├── prometheus/
│   │   │   ├── kustomization.yaml
│   │   │   └── monitor.yaml
│   │   ├── rbac/
│   │   │   ├── auth_proxy_client_clusterrole.yaml
│   │   │   ├── auth_proxy_role.yaml
│   │   │   ├── auth_proxy_role_binding.yaml
│   │   │   ├── auth_proxy_service.yaml
│   │   │   ├── kustomization.yaml
│   │   │   ├── leader_election_role.yaml
│   │   │   ├── leader_election_role_binding.yaml
│   │   │   ├── mlservice_editor_role.yaml
│   │   │   ├── mlservice_viewer_role.yaml
│   │   │   ├── role.yaml
│   │   │   ├── role_binding.yaml
│   │   │   └── service_account.yaml
│   │   └── samples/
│   │       └── mlplatform_v1_mlservice.yaml
│   ├── controllers/
│   │   ├── constants.go
│   │   ├── deployment_handler.go
│   │   ├── mlservice_controller.go
│   │   ├── service_handler.go
│   │   └── status.go
│   ├── go.mod
│   ├── go.sum
│   ├── hack/
│   │   └── boilerplate.go.txt
│   ├── main.go
│   └── serving/
│       ├── agent.conf
│       ├── docker/
│       │   ├── Dockerfile
│       │   ├── assets/
│       │   │   ├── Python-3.8.6.tar.xz
│       │   │   ├── bashrc
│       │   │   ├── build.sh
│       │   │   ├── configurator_dumpenv.service
│       │   │   ├── configurator_dumpenv.sh
│       │   │   ├── pip.conf
│       │   │   ├── rdma/
│       │   │   │   ├── ibverbs-providers_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── ibverbs-utils_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── libibumad3_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── libibverbs-dev_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── libibverbs1_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   ├── librdmacm1_50mlnx1-1.50100.0_amd64.deb
│       │   │   │   └── rdmacm-utils_50mlnx1-1.50100.0_amd64.deb
│       │   │   └── requirements.txt
│       │   └── run
│       ├── open_source_serving.sh
│       └── scripts/
│           ├── build_serving.sh
│           └── run_server
├── idl/
│   ├── BUILD
│   └── matrix/
│       ├── compression/
│       │   ├── compression.cc
│       │   ├── compression.h
│       │   ├── compression_qtz8mm.cc
│       │   ├── compression_qtz8mm.h
│       │   └── float16.h
│       └── proto/
│           ├── example.proto
│           ├── feature.proto
│           ├── line_id.proto
│           └── proto_parser.proto
├── markdown/
│   ├── demo/
│   │   ├── AWS-EKS.md
│   │   ├── BUILD
│   │   ├── Batch.md
│   │   ├── README.md
│   │   ├── Stream.md
│   │   ├── demo_local_runner.py
│   │   ├── demo_model.py
│   │   ├── kafka_producer.py
│   │   ├── kafka_receiver.py
│   │   ├── kafka_utils/
│   │   │   ├── add_data_topics.sh
│   │   │   ├── delete_topics.sh
│   │   │   ├── kafka_base.sh
│   │   │   └── start_broker.sh
│   │   └── ml_dataset.py
│   ├── input_and_model_fn.md
│   ├── primus_demo/
│   │   ├── README.md
│   │   ├── main.sh
│   │   ├── monolith.Dockerfile
│   │   └── primus_monolith.json
│   └── serving.md
├── monolith/
│   ├── BUILD
│   ├── __init__.py
│   ├── agent_service/
│   │   ├── BUILD
│   │   ├── __init__.py
│   │   ├── agent.conf
│   │   ├── agent.py
│   │   ├── agent_base.py
│   │   ├── agent_client.py
│   │   ├── agent_controller.py
│   │   ├── agent_controller_test.py
│   │   ├── agent_service.proto
│   │   ├── agent_service.py
│   │   ├── agent_service_test.py
│   │   ├── agent_v1.py
│   │   ├── agent_v3.py
│   │   ├── agent_v3_test.py
│   │   ├── backends.py
│   │   ├── backends_test.py
│   │   ├── client.py
│   │   ├── constants.py
│   │   ├── data_def.py
│   │   ├── data_def_test.py
│   │   ├── example_batch.pbtxt
│   │   ├── mocked_tfserving.py
│   │   ├── mocked_tfserving_test.py
│   │   ├── mocked_zkclient.py
│   │   ├── mocked_zkclient_test.py
│   │   ├── model_manager.py
│   │   ├── model_manager_test.py
│   │   ├── profile.sh
│   │   ├── replica_manager.py
│   │   ├── replica_manager_test.py
│   │   ├── resource_utils.py
│   │   ├── resource_utils_test.py
│   │   ├── run.py
│   │   ├── svr_client.py
│   │   ├── test_data/
│   │   │   ├── BUILD
│   │   │   ├── inst.dump
│   │   │   ├── inst.json
│   │   │   └── inst.pbtext
│   │   ├── tfs_client.py
│   │   ├── tfs_client_test.py
│   │   ├── tfs_monitor.py
│   │   ├── tfs_monitor_test.py
│   │   ├── tfs_wrapper.py
│   │   ├── utils.py
│   │   ├── utils_test.py
│   │   ├── zk_mirror.py
│   │   └── zk_mirror_test.py
│   ├── base_runner.py
│   ├── common/
│   │   └── python/
│   │       ├── BUILD
│   │       └── mem_profiling.py
│   ├── core/
│   │   ├── BUILD
│   │   ├── __init__.py
│   │   ├── auto_checkpoint_feed_hook.py
│   │   ├── base_embedding_host_call.py
│   │   ├── base_embedding_host_call_test.py
│   │   ├── base_embedding_task.py
│   │   ├── base_host_call.py
│   │   ├── base_layer.py
│   │   ├── base_layer_test.py
│   │   ├── base_model_params.py
│   │   ├── base_task.py
│   │   ├── base_tpu_test.py
│   │   ├── core_test_suite.py
│   │   ├── dense.py
│   │   ├── dense_test.py
│   │   ├── feature.py
│   │   ├── feature_test.py
│   │   ├── host_call.py
│   │   ├── hyperparams.py
│   │   ├── hyperparams_test.py
│   │   ├── mixed_emb_op_comb_nws.py
│   │   ├── model.py
│   │   ├── model_imports.py
│   │   ├── model_registry.py
│   │   ├── optimizers.py
│   │   ├── py_utils.py
│   │   ├── testing_utils.py
│   │   ├── tpu_variable.py
│   │   ├── util.py
│   │   ├── util_test.py
│   │   └── variance_scaling.py
│   ├── gpu_runner.py
│   ├── monolith_workspace.bzl
│   ├── native_training/
│   │   ├── BUILD
│   │   ├── alert/
│   │   │   ├── BUILD
│   │   │   ├── alert.proto
│   │   │   ├── alert_manager.py
│   │   │   └── alert_manager_test.py
│   │   ├── barrier_ops.py
│   │   ├── barrier_ops_test.py
│   │   ├── basic_restore_hook.py
│   │   ├── basic_restore_hook_test.py
│   │   ├── clip_ops.py
│   │   ├── clip_ops_test.py
│   │   ├── cluster_manager.py
│   │   ├── cluster_manager_test.py
│   │   ├── consul.py
│   │   ├── consul_test.py
│   │   ├── cpu_sync_training_test.py
│   │   ├── cpu_training.py
│   │   ├── cpu_training_distributed_test_binary.py
│   │   ├── cpu_training_test.py
│   │   ├── data/
│   │   │   ├── BUILD
│   │   │   ├── __init__.py
│   │   │   ├── data_op_config.proto
│   │   │   ├── data_ops_test.py
│   │   │   ├── data_service_parquet_test.py
│   │   │   ├── data_service_test.py
│   │   │   ├── datasets.py
│   │   │   ├── docker-compose.yaml
│   │   │   ├── eager_mode_test.py
│   │   │   ├── extract_fid_test.py
│   │   │   ├── feature_list.py
│   │   │   ├── feature_list_test.py
│   │   │   ├── feature_utils.py
│   │   │   ├── feature_utils_test.py
│   │   │   ├── item_pool_hook.py
│   │   │   ├── item_pool_test.py
│   │   │   ├── kafka_dataset_test.py
│   │   │   ├── kernels/
│   │   │   │   ├── add_action_kernel.cc
│   │   │   │   ├── add_label_kernel.cc
│   │   │   │   ├── cache_one_dataset_kernel.cc
│   │   │   │   ├── cache_one_dataset_kernel.h
│   │   │   │   ├── df_resource_kernel.cc
│   │   │   │   ├── df_resource_kernel.h
│   │   │   │   ├── dynamic_match_file_dataset_kernel.cc
│   │   │   │   ├── extract_fid_kernel.cc
│   │   │   │   ├── feature_hash.cc
│   │   │   │   ├── feature_name_mapper_tf_bridge.cc
│   │   │   │   ├── feature_name_mapper_tf_bridge.h
│   │   │   │   ├── fill_multi_rank_output_kernel.cc
│   │   │   │   ├── filter_by_label_kernel.cc
│   │   │   │   ├── gen_fid_mask.cc
│   │   │   │   ├── instance_reweight_dataset_kernel.cc
│   │   │   │   ├── instance_reweight_dataset_kernel.h
│   │   │   │   ├── internal/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── arrow_random_access_file.h
│   │   │   │   │   ├── cache_mgr.cc
│   │   │   │   │   ├── cache_mgr.h
│   │   │   │   │   ├── cache_mgr_test.cc
│   │   │   │   │   ├── datasource_utils.cc
│   │   │   │   │   ├── datasource_utils.h
│   │   │   │   │   ├── datasource_utils_test.cc
│   │   │   │   │   ├── file_match_split_provider.cc
│   │   │   │   │   ├── file_match_split_provider.h
│   │   │   │   │   ├── file_match_split_provider_test.cc
│   │   │   │   │   ├── label_utils.cc
│   │   │   │   │   ├── label_utils.h
│   │   │   │   │   ├── label_utils_test.cc
│   │   │   │   │   ├── parquet_column_buffer.h
│   │   │   │   │   ├── parquet_example_reader.h
│   │   │   │   │   ├── relational_utils.h
│   │   │   │   │   ├── relational_utils_test.cc
│   │   │   │   │   ├── sized_random_access_file.h
│   │   │   │   │   ├── uniq_hashtable.h
│   │   │   │   │   ├── uniq_hashtable_test.cc
│   │   │   │   │   ├── value_filter_by_feature.cc
│   │   │   │   │   ├── value_filter_by_feature.h
│   │   │   │   │   ├── value_filter_by_line_id.cc
│   │   │   │   │   ├── value_filter_by_line_id.h
│   │   │   │   │   └── value_filter_test.cc
│   │   │   │   ├── item_pool_kernels.cc
│   │   │   │   ├── item_pool_kernels.h
│   │   │   │   ├── kafka_kernels.cc
│   │   │   │   ├── label_normalization_kernel.cc
│   │   │   │   ├── label_upper_bound_kernel.cc
│   │   │   │   ├── map_id_kernels.cc
│   │   │   │   ├── merge_flow_dataset_kernel.cc
│   │   │   │   ├── multi_label_gen_kernel.cc
│   │   │   │   ├── negative_gen_dataset_kernel.cc
│   │   │   │   ├── negative_gen_dataset_kernel.h
│   │   │   │   ├── parquet_dataset_kernel.cc
│   │   │   │   ├── parse_example_lib.cc
│   │   │   │   ├── parse_example_lib.h
│   │   │   │   ├── parse_input_data_kernel.cc
│   │   │   │   ├── parse_sparse_feature.cc
│   │   │   │   ├── parse_sparse_feature.h
│   │   │   │   ├── pb_dataset_kernel.cc
│   │   │   │   ├── ragged_feature_kernel.cc
│   │   │   │   ├── scatter_label_kernel.cc
│   │   │   │   ├── split_flow_dataset_kernel.cc
│   │   │   │   ├── string_to_variant.cc
│   │   │   │   ├── tf_example_to_example_kernel.cc
│   │   │   │   ├── transform_dataset_kernel.cc
│   │   │   │   ├── transform_dataset_kernel.h
│   │   │   │   └── variant_filter_kernel.cc
│   │   │   ├── multi_flow_test.py
│   │   │   ├── negative_gen_test.py
│   │   │   ├── ops/
│   │   │   │   ├── feature_utils_ops.cc
│   │   │   │   ├── parse_input_data_ops.cc
│   │   │   │   └── pb_dataset_ops.cc
│   │   │   ├── parse_sparse_feature_test.py
│   │   │   ├── parsers.py
│   │   │   ├── test_data/
│   │   │   │   ├── BUILD
│   │   │   │   └── mhy.conf
│   │   │   ├── tf_example_to_example_test.py
│   │   │   ├── training_instance/
│   │   │   │   ├── BUILD
│   │   │   │   ├── cc/
│   │   │   │   │   ├── cached_mem_pool.cc
│   │   │   │   │   ├── cached_mem_pool.h
│   │   │   │   │   ├── cached_mem_pool_test.cc
│   │   │   │   │   ├── data_format_options.h
│   │   │   │   │   ├── data_read_write_test.cc
│   │   │   │   │   ├── data_reader.cc
│   │   │   │   │   ├── data_reader.h
│   │   │   │   │   ├── data_writer.cc
│   │   │   │   │   ├── data_writer.h
│   │   │   │   │   ├── fid.h
│   │   │   │   │   ├── fid_test.cc
│   │   │   │   │   ├── instance_dataset_kernel.cc
│   │   │   │   │   ├── instance_dataset_ops.cc
│   │   │   │   │   ├── instance_processor.cc
│   │   │   │   │   ├── instance_reader.cc
│   │   │   │   │   ├── instance_utils.cc
│   │   │   │   │   ├── instance_utils.h
│   │   │   │   │   ├── instance_utils_test.cc
│   │   │   │   │   ├── parse_instance_kernel.cc
│   │   │   │   │   ├── parse_instance_lib.cc
│   │   │   │   │   ├── parse_instance_lib.h
│   │   │   │   │   ├── parse_instance_ops.cc
│   │   │   │   │   ├── pb_variant.cc
│   │   │   │   │   ├── pb_variant.h
│   │   │   │   │   ├── reader_util.cc
│   │   │   │   │   ├── reader_util.h
│   │   │   │   │   ├── reader_util_test.cc
│   │   │   │   │   ├── snappy_inputbuffer.cc
│   │   │   │   │   ├── snappy_inputbuffer.h
│   │   │   │   │   ├── ue_compress.cc
│   │   │   │   │   ├── ue_compress.h
│   │   │   │   │   ├── ue_compress_test.cc
│   │   │   │   │   ├── zstd_inputbuffer.cc
│   │   │   │   │   └── zstd_inputbuffer.h
│   │   │   │   └── python/
│   │   │   │       ├── instance_dataset_op.py
│   │   │   │       ├── instance_dataset_op_test_stdin.py
│   │   │   │       ├── instance_negative_gen_dataset_op_test.py
│   │   │   │       ├── parse_instance_ops.py
│   │   │   │       ├── parse_instance_ops_test.py
│   │   │   │       ├── parser_utils.py
│   │   │   │       ├── pb_datasource_ops.py
│   │   │   │       └── test_data_utils.py
│   │   │   ├── transform/
│   │   │   │   ├── BUILD
│   │   │   │   ├── cc/
│   │   │   │   │   ├── transforms.cc
│   │   │   │   │   └── transforms.h
│   │   │   │   ├── transform_config.proto
│   │   │   │   ├── transforms.py
│   │   │   │   └── transforms_test.py
│   │   │   ├── transform_dataset_test.py
│   │   │   └── utils.py
│   │   ├── debugging/
│   │   │   ├── BUILD
│   │   │   ├── README.md
│   │   │   ├── debugging_client.py
│   │   │   └── debugging_server.py
│   │   ├── demo.py
│   │   ├── dense_reload_utils.py
│   │   ├── dense_reload_utils_test.py
│   │   ├── device_utils.py
│   │   ├── device_utils_test.py
│   │   ├── distribute/
│   │   │   ├── BUILD
│   │   │   ├── distributed_dataset.py
│   │   │   ├── distributed_dataset_test.py
│   │   │   ├── str_queue.py
│   │   │   └── str_queue_test.py
│   │   ├── distributed_ps.py
│   │   ├── distributed_ps_benchmark.py
│   │   ├── distributed_ps_factory.py
│   │   ├── distributed_ps_factory_test.py
│   │   ├── distributed_ps_sync.py
│   │   ├── distributed_ps_sync_test.py
│   │   ├── distributed_ps_test.py
│   │   ├── distributed_serving_ops.py
│   │   ├── distributed_serving_ops_test.py
│   │   ├── distribution_ops.py
│   │   ├── distribution_ops_benchmark.py
│   │   ├── distribution_ops_fused_benchmark.py
│   │   ├── distribution_ops_fused_test.py
│   │   ├── distribution_ops_test.py
│   │   ├── distribution_utils.py
│   │   ├── embedding_combiners.py
│   │   ├── embedding_combiners_test.py
│   │   ├── entry.py
│   │   ├── entry_test.py
│   │   ├── env_utils.py
│   │   ├── env_utils_test.py
│   │   ├── estimator.py
│   │   ├── estimator_dist_test.py
│   │   ├── estimator_mode_test.py
│   │   ├── estimator_test.py
│   │   ├── feature.py
│   │   ├── feature_test.py
│   │   ├── feature_utils.py
│   │   ├── feature_utils_test.py
│   │   ├── file_ops.py
│   │   ├── file_ops_test.py
│   │   ├── fountain/
│   │   │   ├── BUILD
│   │   │   └── README.md
│   │   ├── fused_embedding_to_layout_test.py
│   │   ├── gen_seq_mask.py
│   │   ├── gen_seq_mask_test.py
│   │   ├── gflags_utils.py
│   │   ├── gflags_utils_test.py
│   │   ├── graph_meta.py
│   │   ├── graph_utils.py
│   │   ├── hash_filter_ops.py
│   │   ├── hash_filter_ops_test.py
│   │   ├── hash_table_ops.proto
│   │   ├── hash_table_ops.py
│   │   ├── hash_table_ops_benchmark.py
│   │   ├── hash_table_ops_test.py
│   │   ├── hash_table_utils.py
│   │   ├── hash_table_utils_test.py
│   │   ├── hooks/
│   │   │   ├── BUILD
│   │   │   ├── ckpt_hooks.proto
│   │   │   ├── ckpt_hooks.py
│   │   │   ├── ckpt_hooks_test.py
│   │   │   ├── ckpt_info.py
│   │   │   ├── ckpt_info_test.py
│   │   │   ├── controller_hooks.proto
│   │   │   ├── controller_hooks.py
│   │   │   ├── controller_hooks_test.py
│   │   │   ├── feature_engineering_hooks.py
│   │   │   ├── hook_utils.py
│   │   │   ├── hook_utils_test.py
│   │   │   ├── ps_check_hooks.py
│   │   │   ├── ps_check_hooks_test.py
│   │   │   ├── server/
│   │   │   │   ├── BUILD
│   │   │   │   ├── client_lib.py
│   │   │   │   ├── constants.py
│   │   │   │   ├── server_lib.py
│   │   │   │   ├── server_lib_test.py
│   │   │   │   └── service.proto
│   │   │   ├── session_hooks.py
│   │   │   └── session_hooks_test.py
│   │   ├── hvd_lib.py
│   │   ├── input.py
│   │   ├── layers/
│   │   │   ├── BUILD
│   │   │   ├── README.md
│   │   │   ├── __init__.py
│   │   │   ├── add_bias.py
│   │   │   ├── add_bias_test.py
│   │   │   ├── advanced_activations.py
│   │   │   ├── advanced_activations_test.py
│   │   │   ├── agru.py
│   │   │   ├── agru_test.py
│   │   │   ├── dense.py
│   │   │   ├── dense_test.py
│   │   │   ├── feature_cross.py
│   │   │   ├── feature_cross_test.py
│   │   │   ├── feature_seq.py
│   │   │   ├── feature_seq_test.py
│   │   │   ├── feature_trans.py
│   │   │   ├── feature_trans_test.py
│   │   │   ├── kernels/
│   │   │   │   ├── feature_insight_kernels.cc
│   │   │   │   ├── ffm_kernels.cc
│   │   │   │   ├── ffm_kernels.cu.cc
│   │   │   │   ├── ffm_kernels.h
│   │   │   │   └── fid_counter_kernel.cc
│   │   │   ├── layer_ops.py
│   │   │   ├── layer_ops_test.py
│   │   │   ├── lhuc.py
│   │   │   ├── lhuc_test.py
│   │   │   ├── logit_correction.py
│   │   │   ├── logit_correction_test.py
│   │   │   ├── mlp.py
│   │   │   ├── mlp_test.py
│   │   │   ├── multi_task.py
│   │   │   ├── multi_task_test.py
│   │   │   ├── norms.py
│   │   │   ├── norms_test.py
│   │   │   ├── ops/
│   │   │   │   ├── feature_insight_ops.cc
│   │   │   │   ├── ffm_ops.cc
│   │   │   │   ├── fid_counter_op.cc
│   │   │   │   └── nas_ops.cc
│   │   │   ├── pooling.py
│   │   │   ├── pooling_test.py
│   │   │   ├── sparse_nas.py
│   │   │   ├── sparse_nas_test.py
│   │   │   └── utils.py
│   │   ├── learning_rate_functions.py
│   │   ├── learning_rate_functions_test.py
│   │   ├── logging_ops.py
│   │   ├── logging_ops_test.py
│   │   ├── losses/
│   │   │   ├── BUILD
│   │   │   ├── batch_softmax_loss.py
│   │   │   ├── batch_softmax_loss_test.py
│   │   │   ├── inbatch_auc_loss.py
│   │   │   ├── inbatch_auc_loss_test.py
│   │   │   └── ltr_losses.py
│   │   ├── metric/
│   │   │   ├── BUILD
│   │   │   ├── cli.py
│   │   │   ├── deep_insight_ops.py
│   │   │   ├── deep_insight_ops_test.py
│   │   │   ├── exit_hook.py
│   │   │   ├── kafka_utils.py
│   │   │   ├── metric_hook.py
│   │   │   ├── metric_hook_test.py
│   │   │   ├── utils.py
│   │   │   └── utils_test.py
│   │   ├── mlp_utils.py
│   │   ├── model.py
│   │   ├── model_comp_test.py
│   │   ├── model_dump/
│   │   │   ├── BUILD
│   │   │   ├── dump_utils.py
│   │   │   ├── graph_utils.py
│   │   │   ├── graph_utils_test.py
│   │   │   └── monolith_model.proto
│   │   ├── model_export/
│   │   │   ├── BUILD
│   │   │   ├── __init__.py
│   │   │   ├── data_gen_utils.py
│   │   │   ├── data_gen_utils_test.py
│   │   │   ├── demo_export.py
│   │   │   ├── demo_export_test.py
│   │   │   ├── demo_predictor.py
│   │   │   ├── demo_predictor_client.py
│   │   │   ├── export.proto
│   │   │   ├── export_context.py
│   │   │   ├── export_hooks.py
│   │   │   ├── export_hooks_test.py
│   │   │   ├── export_state_utils.py
│   │   │   ├── export_state_utils_test.py
│   │   │   ├── export_utils.py
│   │   │   ├── export_utils_test.py
│   │   │   ├── saved_model_exporters.py
│   │   │   ├── saved_model_exporters_test.py
│   │   │   ├── saved_model_visulizer.py
│   │   │   ├── testdata/
│   │   │   │   ├── BUILD
│   │   │   │   └── saved_model/
│   │   │   │       ├── entry/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       ├── ps_0/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       ├── assets/
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │       │       │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       ├── ps_1/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       ├── assets/
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │       │       │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       ├── ps_2/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       ├── assets/
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │       │       │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       ├── ps_3/
│   │   │   │       │   └── 1622716114/
│   │   │   │       │       ├── assets/
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │       │       │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │       │       │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │       │       └── variables/
│   │   │   │       │           ├── variables.data-00000-of-00001
│   │   │   │       │           └── variables.index
│   │   │   │       └── ps_4/
│   │   │   │           └── 1622716114/
│   │   │   │               ├── assets/
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_0-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_1-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_2-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_3-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_0b9721ec6fc5396c38499b5be394b722_4-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_0-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_1-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_2-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_3-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_3fc25c64637605aa3983374cc61db982_4-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_0-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_1-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_2-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_3-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_e3997af6324e55640d4611001fa3a15b_4-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_0-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_1-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_2-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00002-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_3-00003-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00000-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00001-of-00004
│   │   │   │               │   ├── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00002-of-00004
│   │   │   │               │   └── MonolithHashTable_f6962510869b682fd764009be0e4e9c3_4-00003-of-00004
│   │   │   │               └── variables/
│   │   │   │                   ├── variables.data-00000-of-00001
│   │   │   │                   └── variables.index
│   │   │   ├── warmup_data_decoder.py
│   │   │   ├── warmup_data_gen.py
│   │   │   └── warmup_example_batch.py
│   │   ├── monolith_checkpoint_state.proto
│   │   ├── monolith_export.py
│   │   ├── multi_hash_table_ops.proto
│   │   ├── multi_hash_table_ops.py
│   │   ├── multi_hash_table_ops_test.py
│   │   ├── multi_type_hash_table.py
│   │   ├── multi_type_hash_table_test.py
│   │   ├── native_model.py
│   │   ├── native_task.py
│   │   ├── native_task_context.py
│   │   ├── nested_tensors.py
│   │   ├── nested_tensors_test.py
│   │   ├── net_utils.py
│   │   ├── net_utils_test.py
│   │   ├── optimizers/
│   │   │   ├── BUILD
│   │   │   ├── adamom.py
│   │   │   ├── adamom_test.py
│   │   │   ├── cc/
│   │   │   │   ├── kernels/
│   │   │   │   │   ├── training_op_helpers.h
│   │   │   │   │   ├── training_ops.cc
│   │   │   │   │   ├── training_ops.h
│   │   │   │   │   └── training_ops_gpu.cu.cc
│   │   │   │   └── training_ops.cc
│   │   │   ├── rmsprop.py
│   │   │   ├── rmsprop_test.py
│   │   │   ├── rmspropv2_test.py
│   │   │   └── shampoo.py
│   │   ├── prefetch_queue.py
│   │   ├── prefetch_queue_test.py
│   │   ├── proto/
│   │   │   ├── BUILD
│   │   │   ├── ckpt_info.proto
│   │   │   ├── debugging_info.proto
│   │   │   └── primus_am_service.proto
│   │   ├── ps_benchmark.py
│   │   ├── ps_benchmark_test.py
│   │   ├── ragged_utils.py
│   │   ├── ragged_utils_test.py
│   │   ├── remote_predict_ops.py
│   │   ├── restore_test.py
│   │   ├── runner_utils.py
│   │   ├── runner_utils_test.py
│   │   ├── runtime/
│   │   │   ├── allocator/
│   │   │   │   ├── BUILD
│   │   │   │   ├── block_allocator.cc
│   │   │   │   ├── block_allocator.h
│   │   │   │   └── block_allocator_test.cc
│   │   │   ├── common/
│   │   │   │   ├── BUILD
│   │   │   │   ├── cpu_info.cc
│   │   │   │   ├── cpu_info.h
│   │   │   │   ├── linalg_utils.h
│   │   │   │   ├── linalg_utils_test.cc
│   │   │   │   ├── metrics.cc
│   │   │   │   ├── metrics.h
│   │   │   │   └── metrics_test.cc
│   │   │   ├── concurrency/
│   │   │   │   ├── BUILD
│   │   │   │   ├── micro_one_bit_spin_lock.h
│   │   │   │   ├── queue.h
│   │   │   │   ├── queue_test.cc
│   │   │   │   ├── random_number_generator_benchmark.cc
│   │   │   │   ├── sleeper.h
│   │   │   │   ├── thread_pool.cc
│   │   │   │   ├── thread_pool.h
│   │   │   │   ├── xorshift.cc
│   │   │   │   ├── xorshift.h
│   │   │   │   └── xorshift_test.cc
│   │   │   ├── deep_insight/
│   │   │   │   ├── BUILD
│   │   │   │   ├── deep_insight.cc
│   │   │   │   ├── deep_insight.h
│   │   │   │   └── deep_insight_test.cc
│   │   │   ├── hash_filter/
│   │   │   │   ├── BUILD
│   │   │   │   ├── dummy_hash_filter.h
│   │   │   │   ├── filter.h
│   │   │   │   ├── hash_filter.cc
│   │   │   │   ├── hash_filter.h
│   │   │   │   ├── hash_filter_test.cc
│   │   │   │   ├── probabilistic_filter.cc
│   │   │   │   ├── probabilistic_filter.h
│   │   │   │   ├── probabilistic_filter_test.cc
│   │   │   │   ├── sliding_hash_filter.cc
│   │   │   │   ├── sliding_hash_filter.h
│   │   │   │   ├── sliding_hash_filter_test.cc
│   │   │   │   └── types.h
│   │   │   ├── hash_table/
│   │   │   │   ├── BUILD
│   │   │   │   ├── compressor/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── fake_quantizer.h
│   │   │   │   │   ├── fake_quantizer_test.cc
│   │   │   │   │   ├── float_compressor.cc
│   │   │   │   │   ├── float_compressor.h
│   │   │   │   │   ├── float_compressor.proto
│   │   │   │   │   ├── float_compressor_test.cc
│   │   │   │   │   ├── hash_net_quantizer.h
│   │   │   │   │   └── hash_net_quantizer_test.cc
│   │   │   │   ├── cuckoohash/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── CUCKOO_ORIGINAL_LICENSE
│   │   │   │   │   ├── bucket_container.hpp
│   │   │   │   │   ├── cuckoo_embedding_hash_table.cc
│   │   │   │   │   ├── cuckoo_embedding_hash_table.h
│   │   │   │   │   ├── cuckoo_embedding_hash_table_benchmark.cc
│   │   │   │   │   ├── cuckoo_embedding_hash_table_test.cc
│   │   │   │   │   ├── cuckoohash_config.hpp
│   │   │   │   │   ├── cuckoohash_map.hpp
│   │   │   │   │   └── cuckoohash_util.hpp
│   │   │   │   ├── embedding_hash_table.proto
│   │   │   │   ├── embedding_hash_table_factory.cc
│   │   │   │   ├── embedding_hash_table_factory.h
│   │   │   │   ├── embedding_hash_table_interface.h
│   │   │   │   ├── embedding_hash_table_test.h
│   │   │   │   ├── entry_accessor.cc
│   │   │   │   ├── entry_accessor.h
│   │   │   │   ├── entry_accessor_decorator.h
│   │   │   │   ├── entry_accessor_test.cc
│   │   │   │   ├── entry_defs.h
│   │   │   │   ├── entry_defs_test.cc
│   │   │   │   ├── hash_table_benchmark.cc
│   │   │   │   ├── initializer/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── constants_initializer.cc
│   │   │   │   │   ├── constants_initializer.h
│   │   │   │   │   ├── initializer_combination.cc
│   │   │   │   │   ├── initializer_combination.h
│   │   │   │   │   ├── initializer_combination_test.cc
│   │   │   │   │   ├── initializer_config.proto
│   │   │   │   │   ├── initializer_factory.cc
│   │   │   │   │   ├── initializer_factory.h
│   │   │   │   │   ├── initializer_interface.h
│   │   │   │   │   ├── random_uniform_initializer.cc
│   │   │   │   │   ├── random_uniform_initializer.h
│   │   │   │   │   └── random_uniform_initializer_test.cc
│   │   │   │   ├── optimizer/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── adadelta_optimizer.cc
│   │   │   │   │   ├── adadelta_optimizer.h
│   │   │   │   │   ├── adadelta_optimizer_test.cc
│   │   │   │   │   ├── adagrad_optimizer.cc
│   │   │   │   │   ├── adagrad_optimizer.h
│   │   │   │   │   ├── adagrad_optimizer_test.cc
│   │   │   │   │   ├── adam_optimizer.cc
│   │   │   │   │   ├── adam_optimizer.h
│   │   │   │   │   ├── adam_optimizer_test.cc
│   │   │   │   │   ├── amsgrad_optimizer.cc
│   │   │   │   │   ├── amsgrad_optimizer.h
│   │   │   │   │   ├── amsgrad_optimizer_test.cc
│   │   │   │   │   ├── avx_benchmark.cc
│   │   │   │   │   ├── avx_test.cc
│   │   │   │   │   ├── avx_utils.h
│   │   │   │   │   ├── batch_softmax_optimizer.cc
│   │   │   │   │   ├── batch_softmax_optimizer.h
│   │   │   │   │   ├── batch_softmax_optimizer_test.cc
│   │   │   │   │   ├── dc_optimizer.cc
│   │   │   │   │   ├── dc_optimizer.h
│   │   │   │   │   ├── dc_optimizer_test.cc
│   │   │   │   │   ├── dynamic_wd_adagrad_optimizer.cc
│   │   │   │   │   ├── dynamic_wd_adagrad_optimizer.h
│   │   │   │   │   ├── dynamic_wd_adagrad_optimizer_test.cc
│   │   │   │   │   ├── dynamic_wd_avx_test.cc
│   │   │   │   │   ├── dynamic_wd_avx_utils.h
│   │   │   │   │   ├── ftrl_optimizer.cc
│   │   │   │   │   ├── ftrl_optimizer.h
│   │   │   │   │   ├── ftrl_optimizer_test.cc
│   │   │   │   │   ├── group_adagrad_optimizer.cc
│   │   │   │   │   ├── group_adagrad_optimizer.h
│   │   │   │   │   ├── group_adagrad_optimizer_test.cc
│   │   │   │   │   ├── group_ftrl_optimizer.cc
│   │   │   │   │   ├── group_ftrl_optimizer.h
│   │   │   │   │   ├── group_ftrl_optimizer_test.cc
│   │   │   │   │   ├── momentum_optimizer.cc
│   │   │   │   │   ├── momentum_optimizer.h
│   │   │   │   │   ├── momentum_optimizer_test.cc
│   │   │   │   │   ├── moving_average_optimizer.cc
│   │   │   │   │   ├── moving_average_optimizer.h
│   │   │   │   │   ├── moving_average_optimizer_test.cc
│   │   │   │   │   ├── optimizer.proto
│   │   │   │   │   ├── optimizer_combination.cc
│   │   │   │   │   ├── optimizer_combination.h
│   │   │   │   │   ├── optimizer_combination_test.cc
│   │   │   │   │   ├── optimizer_decorator.h
│   │   │   │   │   ├── optimizer_factory.cc
│   │   │   │   │   ├── optimizer_factory.h
│   │   │   │   │   ├── optimizer_interface.h
│   │   │   │   │   ├── rmsprop_optimizer.cc
│   │   │   │   │   ├── rmsprop_optimizer.h
│   │   │   │   │   ├── rmsprop_optimizer_test.cc
│   │   │   │   │   ├── sgd_optimizer.cc
│   │   │   │   │   ├── sgd_optimizer.h
│   │   │   │   │   ├── sgd_optimizer_test.cc
│   │   │   │   │   ├── stochastic_rounding.cc
│   │   │   │   │   ├── stochastic_rounding.h
│   │   │   │   │   ├── stochastic_rounding_test.cc
│   │   │   │   │   └── test_utils.h
│   │   │   │   ├── quantized_entry_accessor.h
│   │   │   │   ├── quantized_entry_accessor_test.cc
│   │   │   │   ├── retriever/
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── fake_quant_retriever.cc
│   │   │   │   │   ├── fake_quant_retriever.h
│   │   │   │   │   ├── fake_quant_retriever_test.cc
│   │   │   │   │   ├── hash_net_retriever.cc
│   │   │   │   │   ├── hash_net_retriever.h
│   │   │   │   │   ├── hash_net_retriever_test.cc
│   │   │   │   │   ├── raw_retriever.cc
│   │   │   │   │   ├── raw_retriever.h
│   │   │   │   │   ├── raw_retriever_test.cc
│   │   │   │   │   ├── retriever_base.h
│   │   │   │   │   ├── retriever_combination.cc
│   │   │   │   │   ├── retriever_combination.h
│   │   │   │   │   ├── retriever_combination_test.cc
│   │   │   │   │   └── retriever_interface.h
│   │   │   │   ├── utils.h
│   │   │   │   └── workspace.bzl
│   │   │   ├── hopscotch/
│   │   │   │   ├── BUILD
│   │   │   │   ├── hopscotch_hash_set.cc
│   │   │   │   ├── hopscotch_hash_set.h
│   │   │   │   └── hopscotch_hash_set_test.cc
│   │   │   ├── ops/
│   │   │   │   ├── BUILD
│   │   │   │   ├── agent_heartbeat.cc
│   │   │   │   ├── agent_heartbeat.h
│   │   │   │   ├── agent_heartbeat_test.cc
│   │   │   │   ├── aligned_concat_split.cu.cc
│   │   │   │   ├── alloc_utils.h
│   │   │   │   ├── clip_by_global_norm.cu.cc
│   │   │   │   ├── clip_by_global_norm.h
│   │   │   │   ├── clip_by_global_norm_fused.cu.cc
│   │   │   │   ├── clip_by_global_norm_op.cc
│   │   │   │   ├── deep_insight_client_tf_bridge.h
│   │   │   │   ├── deep_insight_ops.cc
│   │   │   │   ├── embedding_hash_table_tf_bridge.cc
│   │   │   │   ├── embedding_hash_table_tf_bridge.h
│   │   │   │   ├── file_metric_writer.cc
│   │   │   │   ├── file_metric_writer.h
│   │   │   │   ├── file_metric_writer_test.cc
│   │   │   │   ├── file_ops.cc
│   │   │   │   ├── file_utils.cc
│   │   │   │   ├── file_utils.h
│   │   │   │   ├── file_utils_test.cc
│   │   │   │   ├── fused_embedding_to_layout.cc
│   │   │   │   ├── fused_embedding_to_layout.cu.cc
│   │   │   │   ├── fused_embedding_to_layout.h
│   │   │   │   ├── fused_reorder_by_indices.cc
│   │   │   │   ├── gen_monolith_ops.py
│   │   │   │   ├── gen_seq_mask.cc
│   │   │   │   ├── global_norm.cu.cc
│   │   │   │   ├── gpu_multi_hash_table.h
│   │   │   │   ├── hash_filter_intercept_gradient_op.cc
│   │   │   │   ├── hash_filter_op.cc
│   │   │   │   ├── hash_filter_restore_op.cc
│   │   │   │   ├── hash_filter_save_op.cc
│   │   │   │   ├── hash_filter_tf_bridge.cc
│   │   │   │   ├── hash_filter_tf_bridge.h
│   │   │   │   ├── hash_table/
│   │   │   │   │   └── misc_ops.cc
│   │   │   │   ├── hash_table_lookup_op.cc
│   │   │   │   ├── hash_table_op.cc
│   │   │   │   ├── hash_table_restore_op.cc
│   │   │   │   ├── hash_table_save_op.cc
│   │   │   │   ├── hash_table_update_op.cc
│   │   │   │   ├── inbatch_auc_loss.cc
│   │   │   │   ├── logging_ops.cc
│   │   │   │   ├── logging_ops.proto
│   │   │   │   ├── map_id_to_embedding.cu.cc
│   │   │   │   ├── map_id_to_embedding_op.cc
│   │   │   │   ├── multi_hash_table.h
│   │   │   │   ├── multi_hash_table_lookup_op.cc
│   │   │   │   ├── multi_hash_table_op.cc
│   │   │   │   ├── multi_hash_table_save_restore_ops.cc
│   │   │   │   ├── multi_hash_table_update_op.cc
│   │   │   │   ├── net_utils.cc
│   │   │   │   ├── net_utils.h
│   │   │   │   ├── net_utils_test.cc
│   │   │   │   ├── normalize_merged_split_op.cc
│   │   │   │   ├── parameter_sync_ops.cc
│   │   │   │   ├── parameter_sync_tf_bridge.cc
│   │   │   │   ├── parameter_sync_tf_bridge.h
│   │   │   │   ├── prediction_service_grpc.cc
│   │   │   │   ├── prediction_service_grpc.h
│   │   │   │   ├── reduce_op.cc
│   │   │   │   ├── reduce_op.cu.cc
│   │   │   │   ├── remote_predict_op.h
│   │   │   │   ├── remote_predict_op_grpc.cc
│   │   │   │   ├── split_by_indices_op.cc
│   │   │   │   ├── static_reshape_op.cc
│   │   │   │   ├── touched_key_set_insert_op.cc
│   │   │   │   ├── touched_key_set_op.cc
│   │   │   │   ├── touched_key_set_steal_op.cc
│   │   │   │   ├── touched_key_set_tf_bridge.h
│   │   │   │   └── unique_mapping_ops.cc
│   │   │   └── parameter_sync/
│   │   │       ├── BUILD
│   │   │       ├── dummy_sync_client.h
│   │   │       ├── dummy_sync_server.cc
│   │   │       ├── dummy_sync_server.h
│   │   │       ├── parameter_sync.proto
│   │   │       ├── parameter_sync_client.cc
│   │   │       ├── parameter_sync_client.h
│   │   │       ├── parameter_sync_client_test.cc
│   │   │       ├── request_splitter.cc
│   │   │       ├── request_splitter.h
│   │   │       ├── request_splitter_test.cc
│   │   │       ├── sync_client_interface.h
│   │   │       ├── sync_client_manager.cc
│   │   │       └── sync_client_manager.h
│   │   ├── save_utils.py
│   │   ├── save_utils_test.py
│   │   ├── service_discovery.py
│   │   ├── service_discovery_test.py
│   │   ├── serving_ps_test.py
│   │   ├── session_run_hooks.py
│   │   ├── session_run_hooks_test.py
│   │   ├── signal_utils.py
│   │   ├── signal_utils_test.py
│   │   ├── static_reshape_op.py
│   │   ├── static_reshape_op_test.py
│   │   ├── summary/
│   │   │   ├── BUILD
│   │   │   ├── summary_ops.py
│   │   │   ├── summary_ops_test.py
│   │   │   ├── utils.py
│   │   │   └── utils_test.py
│   │   ├── sync_hooks.py
│   │   ├── sync_hooks_test.py
│   │   ├── sync_training_hooks.py
│   │   ├── sync_training_hooks_test.py
│   │   ├── tensor_utils.py
│   │   ├── tensor_utils_test.py
│   │   ├── test_utils.py
│   │   ├── touched_key_set_ops.py
│   │   ├── touched_key_set_ops_test.py
│   │   ├── utils.py
│   │   ├── utils_test.py
│   │   ├── variables.py
│   │   ├── variables_test.py
│   │   ├── yarn_runtime.py
│   │   ├── yarn_runtime_test.py
│   │   └── zk_utils.py
│   ├── path_utils.py
│   ├── tf_serving_workspace.bzl
│   ├── tpu_runner.py
│   ├── utils.py
│   └── utils_test.py
└── third_party/
    ├── BUILD
    ├── arrow.BUILD
    ├── brotli.BUILD
    ├── bzip2.BUILD
    ├── cli11/
    │   ├── BUILD
    │   ├── CLI11.hpp
    │   └── current_version
    ├── cuCollections.patch
    ├── cuco.BUILD
    ├── dpssdk.BUILD
    ├── eigen3/
    │   ├── README.txt
    │   └── eigen_gcc6.patch
    ├── gperftools/
    │   ├── gperftools.BUILD
    │   └── gperftools.patch
    ├── half_sourceforge_net/
    │   ├── BUILD
    │   └── half.hpp
    ├── jemalloc/
    │   ├── VERSION
    │   └── jeprof
    ├── kafka.BUILD
    ├── libdata_java_model_training.BUILD
    ├── lz4.BUILD
    ├── msgpack/
    │   └── msgpack.BUILD
    ├── nlohmann/
    │   ├── BUILD
    │   └── json.hpp
    ├── org_apache_zookeeper/
    │   ├── BUILD
    │   ├── Makefile.in
    │   ├── config.guess
    │   ├── config.h.in
    │   ├── config.sub
    │   ├── configure
    │   ├── generated/
    │   │   ├── zookeeper.jute.c
    │   │   └── zookeeper.jute.h
    │   ├── install-sh
    │   ├── ltmain.sh
    │   ├── missing
    │   ├── zookeeper-client-c.BUILD
    │   └── zookeeper.bzl
    ├── org_tensorflow/
    │   ├── README.md
    │   └── tf.patch
    ├── org_tensorflow_serving/
    │   ├── public_tf_serving.patch
    │   └── support_diff_dim_size_inputs.patch
    ├── pip_deps/
    │   ├── BUILD
    │   └── requirements.txt
    ├── rapidjson.BUILD
    ├── repo.bzl
    ├── tcmalloc/
    │   └── libtcmalloc_minimal.so.4.3.0
    ├── thrift.BUILD
    ├── tlearner_arch.BUILD
    ├── upb.patch
    ├── xsimd.BUILD
    └── zstd.BUILD
Copy disabled (too large) Download .txt
Showing preview only (47,686K chars total). Download the full file to get everything.
SYMBOL INDEX (8901 symbols across 684 files)

FILE: deploy/api/v1/mlservice_types.go
  type ServicePortType (line 28) | type ServicePortType
  constant ServicePortTypeHttp (line 31) | ServicePortTypeHttp    ServicePortType = "HTTP"
  constant ServicePortTypeRpc (line 32) | ServicePortTypeRpc     ServicePortType = "RPC"
  constant ServicePortTypeMetrics (line 33) | ServicePortTypeMetrics ServicePortType = "Metrics"
  constant ServicePortTypeOther (line 34) | ServicePortTypeOther   ServicePortType = "Other"
  type DeploymentTemplateSpec (line 38) | type DeploymentTemplateSpec struct
  type ServicePort (line 48) | type ServicePort struct
  type ServiceSpec (line 56) | type ServiceSpec struct
  type RoleSpec (line 66) | type RoleSpec struct
  type MLServiceSpec (line 80) | type MLServiceSpec struct
  type ServicePhase (line 90) | type ServicePhase
  constant ServiceQueuing (line 94) | ServiceQueuing ServicePhase = "Queuing"
  constant ServiceDeploying (line 96) | ServiceDeploying ServicePhase = "Deploying"
  constant ServiceRunning (line 98) | ServiceRunning ServicePhase = "Running"
  constant ServiceAbnormal (line 100) | ServiceAbnormal ServicePhase = "Abnormal"
  constant ServiceDeleting (line 102) | ServiceDeleting ServicePhase = "Deleting"
  constant ServiceStopping (line 104) | ServiceStopping ServicePhase = "Stopping"
  constant ServiceStopped (line 106) | ServiceStopped ServicePhase = "Stopped"
  type MLServiceStatus (line 110) | type MLServiceStatus struct
  type MLService (line 147) | type MLService struct
  type MLServiceList (line 158) | type MLServiceList struct
  function init (line 164) | func init() {

FILE: deploy/api/v1/zz_generated.deepcopy.go
  method DeepCopyInto (line 32) | func (in *DeploymentTemplateSpec) DeepCopyInto(out *DeploymentTemplateSp...
  method DeepCopy (line 39) | func (in *DeploymentTemplateSpec) DeepCopy() *DeploymentTemplateSpec {
  method DeepCopyInto (line 49) | func (in *MLService) DeepCopyInto(out *MLService) {
  method DeepCopy (line 58) | func (in *MLService) DeepCopy() *MLService {
  method DeepCopyObject (line 68) | func (in *MLService) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 76) | func (in *MLServiceList) DeepCopyInto(out *MLServiceList) {
  method DeepCopy (line 90) | func (in *MLServiceList) DeepCopy() *MLServiceList {
  method DeepCopyObject (line 100) | func (in *MLServiceList) DeepCopyObject() runtime.Object {
  method DeepCopyInto (line 108) | func (in *MLServiceSpec) DeepCopyInto(out *MLServiceSpec) {
  method DeepCopy (line 125) | func (in *MLServiceSpec) DeepCopy() *MLServiceSpec {
  method DeepCopyInto (line 135) | func (in *MLServiceStatus) DeepCopyInto(out *MLServiceStatus) {
  method DeepCopy (line 162) | func (in *MLServiceStatus) DeepCopy() *MLServiceStatus {
  method DeepCopyInto (line 172) | func (in *RoleSpec) DeepCopyInto(out *RoleSpec) {
  method DeepCopy (line 183) | func (in *RoleSpec) DeepCopy() *RoleSpec {
  method DeepCopyInto (line 193) | func (in *ServicePort) DeepCopyInto(out *ServicePort) {
  method DeepCopy (line 198) | func (in *ServicePort) DeepCopy() *ServicePort {
  method DeepCopyInto (line 208) | func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) {
  method DeepCopy (line 218) | func (in *ServiceSpec) DeepCopy() *ServiceSpec {

FILE: deploy/controllers/constants.go
  constant ModuleInference (line 4) | ModuleInference      = "inference"
  constant MLPlatformVolcPrefix (line 5) | MLPlatformVolcPrefix = "mlplatform.volcengine.com"
  constant ImmutableLabelServiceId (line 9) | ImmutableLabelServiceId = ModuleInference + "." + MLPlatformVolcPrefix +...
  constant ImmutableLabelRoleName (line 10) | ImmutableLabelRoleName  = ModuleInference + "." + MLPlatformVolcPrefix +...
  constant ImmutableLabelShardId (line 11) | ImmutableLabelShardId   = ModuleInference + "." + MLPlatformVolcPrefix +...
  constant ImmutableLabelShardNum (line 12) | ImmutableLabelShardNum  = ModuleInference + "." + MLPlatformVolcPrefix +...
  constant EnvShardId (line 16) | EnvShardId     = "MLP_SHARD_ID"
  constant EnvPodName (line 17) | EnvPodName     = "MLP_POD_NAME"
  constant EnvHostIp (line 18) | EnvHostIp      = "MLP_HOST_IP"
  constant EnvShardNum (line 19) | EnvShardNum    = "MLP_SHARD_NUM"
  constant EnvIdc (line 20) | EnvIdc         = "MLP_IDC"
  constant EnvServiceName (line 21) | EnvServiceName = "MLP_SERVICE_NAME"
  constant EnvRoleName (line 22) | EnvRoleName    = "MLP_ROLE_NAME"
  constant EnvPort (line 23) | EnvPort        = "MLP_%s_PORT"
  constant PodInitializing (line 28) | PodInitializing   = "PodInitializing"
  constant ContainerCreating (line 29) | ContainerCreating = "ContainerCreating"
  constant DefaultRpcPort (line 33) | DefaultRpcPort  = 8500
  constant DefaultHttpPort (line 34) | DefaultHttpPort = 8501
  constant ContainerEvicted (line 38) | ContainerEvicted = "Evicted"
  constant ReasonInsufficientClusterResources (line 43) | ReasonInsufficientClusterResources = "InsufficientClusterResources"
  constant ReasonInProgress (line 44) | ReasonInProgress                   = ""
  constant ReasonStatusNotFound (line 45) | ReasonStatusNotFound               = "StatusNotFound"
  constant ReasonEvicted (line 46) | ReasonEvicted                      = "Evicted"
  constant ReasonServiceExceptionExited (line 47) | ReasonServiceExceptionExited       = "ExceptionExited"

FILE: deploy/controllers/deployment_handler.go
  function getDeploymentName (line 21) | func getDeploymentName(mlsvcName, role string, shardIdx int) string {
  method DeploymentHandler (line 27) | func (r *MLServiceReconciler) DeploymentHandler(ctx context.Context, mls...
  method createDeployment (line 134) | func (r *MLServiceReconciler) createDeployment(ctx context.Context, dp *...
  method updateDeployment (line 145) | func (r *MLServiceReconciler) updateDeployment(ctx context.Context, desi...
  method deleteDeployment (line 159) | func (r *MLServiceReconciler) deleteDeployment(ctx context.Context, dp *...
  method cleanOwnedDeployments (line 172) | func (r *MLServiceReconciler) cleanOwnedDeployments(ctx context.Context,...
  method getOwnedDeployments (line 201) | func (r *MLServiceReconciler) getOwnedDeployments(ctx context.Context, m...
  function AdditionalEnvs (line 211) | func AdditionalEnvs(mlsvcName, roleName, idc string, shardIdx, shardNum ...
  function SetAdditionalKeyValuePairs (line 260) | func SetAdditionalKeyValuePairs(existing map[string]string, mlsvcName, r...

FILE: deploy/controllers/mlservice_controller.go
  type MLSvcHandler (line 36) | type MLSvcHandler
  type MLServiceReconciler (line 41) | type MLServiceReconciler struct
    method Reconcile (line 64) | func (r *MLServiceReconciler) Reconcile(ctx context.Context, req ctrl....
    method SetupWithManager (line 96) | func (r *MLServiceReconciler) SetupWithManager(mgr ctrl.Manager) error {
    method updateStatus (line 110) | func (r *MLServiceReconciler) updateStatus(ctx context.Context, mlsvc ...

FILE: deploy/controllers/service_handler.go
  function getServiceName (line 19) | func getServiceName(mlsvcName, role string) string {
  method ServiceHandler (line 25) | func (r *MLServiceReconciler) ServiceHandler(ctx context.Context, mlsvc ...
  method cleanOwnedServices (line 98) | func (r *MLServiceReconciler) cleanOwnedServices(ctx context.Context, ml...
  method getOwnedServices (line 127) | func (r *MLServiceReconciler) getOwnedServices(ctx context.Context, mlsv...
  function GetServicePorts (line 137) | func GetServicePorts(ports []monolithv1.ServicePort) []corev1.ServicePort {

FILE: deploy/controllers/status.go
  method getMLServiceStatus (line 23) | func (r *MLServiceReconciler) getMLServiceStatus(ctx context.Context, ml...
  method getDeploymentStatus (line 102) | func (r *MLServiceReconciler) getDeploymentStatus(ctx context.Context, d...
  method getReplicaSetStatus (line 138) | func (r *MLServiceReconciler) getReplicaSetStatus(ctx context.Context, r...
  method getPodStatus (line 215) | func (r *MLServiceReconciler) getPodStatus(ctx context.Context, pod *cor...
  function getContainerAbnormalMessage (line 293) | func getContainerAbnormalMessage(status corev1.ContainerStatus, isInitCo...
  function getPodCondition (line 317) | func getPodCondition(pod *corev1.Pod, conditionType corev1.PodConditionT...

FILE: deploy/main.go
  function init (line 45) | func init() {
  function main (line 52) | func main() {

FILE: idl/matrix/compression/compression.cc
  type matrix (line 21) | namespace matrix {
    type compression (line 22) | namespace compression {
      function compress_float_list_f16 (line 26) | bool compress_float_list_f16(const char* raw_data, const size_t raw_...
      function compress_float_list_f16 (line 47) | bool compress_float_list_f16(const char* raw_data, const size_t raw_...
      function decompress_float_list_f16 (line 65) | bool decompress_float_list_f16(const char* compressed_data,
      function decompress_float_list_f16 (line 87) | bool decompress_float_list_f16(const char* compressed_data,
      function compress_float_list_f16b (line 106) | bool compress_float_list_f16b(const char* raw_data, const size_t raw...
      function decompress_float_list_f16b (line 123) | bool decompress_float_list_f16b(const char* compressed_data,

FILE: idl/matrix/compression/compression.h
  function namespace (line 21) | namespace matrix {

FILE: idl/matrix/compression/compression_qtz8mm.cc
  type matrix (line 22) | namespace matrix {
    type compression (line 23) | namespace compression {
      function compress_float_list_qtz8mm (line 25) | bool compress_float_list_qtz8mm(const char* raw_data, const size_t r...
      function decompress_float_list_qtz8mm (line 51) | bool decompress_float_list_qtz8mm(const char* compressed_data,

FILE: idl/matrix/compression/compression_qtz8mm.h
  function namespace (line 22) | namespace matrix {

FILE: idl/matrix/compression/float16.h
  function namespace (line 25) | namespace matrix {

FILE: markdown/demo/demo_local_runner.py
  function get_rand_port (line 31) | def get_rand_port():
  function launch_workers (line 42) | def launch_workers(num_ps: int, num_workers: int):
  function main (line 77) | def main(_):

FILE: markdown/demo/demo_model.py
  function get_worker_count (line 34) | def get_worker_count(env: dict):
  class MovieRankingModelBase (line 40) | class MovieRankingModelBase(MonolithModel):
    method __init__ (line 41) | def __init__(self, params):
    method model_fn (line 45) | def model_fn(self, features, mode):
    method serving_input_receiver_fn (line 75) | def serving_input_receiver_fn(self):
  class MovieRankingBatchTraining (line 79) | class MovieRankingBatchTraining(MovieRankingModelBase):
    method input_fn (line 80) | def input_fn(self, mode):
  class MovieRankingStreamTraining (line 87) | class MovieRankingStreamTraining(MovieRankingModelBase):
    method input_fn (line 88) | def input_fn(self, mode):
  function read_stdin (line 101) | def read_stdin():
  class MovieRankingBatchTrainingStdin (line 114) | class MovieRankingBatchTrainingStdin(MovieRankingModelBase):
    method input_fn (line 115) | def input_fn(self, mode):
  function main (line 128) | def main(_):

FILE: markdown/demo/kafka_receiver.py
  function to_ragged (line 24) | def to_ragged(x):
  function decode_example (line 32) | def decode_example(v):

FILE: markdown/demo/ml_dataset.py
  function get_preprocessed_dataset (line 20) | def get_preprocessed_dataset(size='1m') -> tf.data.Dataset:
  function serialize_one (line 32) | def serialize_one(data):
  function serialize_hr (line 43) | def serialize_hr(data):
  function save_one_shard (line 46) | def save_one_shard(total_shards, pid, start, end):

FILE: monolith/__init__.py
  function add_module (line 30) | def add_module(module):

FILE: monolith/agent_service/agent.py
  function run_agent (line 41) | def run_agent(agent_config_path: str, tfs_log: str,
  function main (line 74) | def main(_):

FILE: monolith/agent_service/agent_base.py
  function get_cmd_path (line 23) | def get_cmd_path():
  function get_cmd_and_port (line 28) | def get_cmd_and_port(config: AgentConfig,
  class ServingLog (line 57) | class ServingLog(object):
    method __init__ (line 59) | def __init__(self, log_prefix: str, tfs_log: str):
    method __enter__ (line 65) | def __enter__(self):
    method __exit__ (line 73) | def __exit__(self, exc_type, exc_val, exc_tb):
  class AgentBase (line 77) | class AgentBase(metaclass=ABCMeta):
    method __init__ (line 79) | def __init__(self, conf: AgentConfig):
    method start (line 83) | def start(self):
    method wait_for_termination (line 87) | def wait_for_termination(self):

FILE: monolith/agent_service/agent_client.py
  function main (line 45) | def main(_):

FILE: monolith/agent_service/agent_controller.py
  function find_model_name (line 43) | def find_model_name(exported_models_path: str):
  function declare_saved_model (line 63) | def declare_saved_model(bd: CtrlBackend,
  function map_model_to_layout (line 91) | def map_model_to_layout(bd: CtrlBackend, model_pattern: str, layout_path...
  function bzid_info (line 108) | def bzid_info(bd: CtrlBackend):
  function main (line 112) | def main(_):

FILE: monolith/agent_service/agent_controller_test.py
  function saved_model (line 24) | def saved_model(sub_graph):
  class AgentControllerTest (line 28) | class AgentControllerTest(unittest.TestCase):
    method setUpClass (line 31) | def setUpClass(cls) -> None:
    method tearDownClass (line 39) | def tearDownClass(cls) -> None:
    method test_decl_saved_models (line 43) | def test_decl_saved_models(self):
    method test_pub (line 58) | def test_pub(self):

FILE: monolith/agent_service/agent_service.py
  class AgentDataProvider (line 33) | class AgentDataProvider:
    method __init__ (line 35) | def __init__(self, addrs_fn: Callable[[], Dict[str, List[str]]]):
  class AgentServiceImpl (line 39) | class AgentServiceImpl(AgentServiceServicer):
    method __init__ (line 42) | def __init__(self, arg):
    method _ (line 46) | def _(self, watcher: ReplicaWatcher, conf: AgentConfig = None):
    method _ (line 51) | def _(self, zk: ZKMirror, conf: AgentConfig):
    method _ (line 56) | def _(self, data_provider: AgentDataProvider, conf: AgentConfig):
    method GetReplicas (line 60) | def GetReplicas(self, request: GetReplicasRequest,
    method HeartBeat (line 76) | def HeartBeat(self, request: HeartBeatRequest, context) -> HeartBeatRe...
    method GetResource (line 105) | def GetResource(self, request: GetResourceRequest,
  class AgentService (line 120) | class AgentService:
    method __init__ (line 123) | def __init__(self, arg):
    method _ (line 127) | def _(self, watcher: ReplicaWatcher, port: int = None, max_workers: in...
    method _ (line 134) | def _(self, zk: ZKMirror, conf: AgentConfig, max_workers: int = 10):
    method _ (line 141) | def _(self, data_provider: AgentDataProvider, conf: AgentConfig, max_w...
    method start (line 148) | def start(self):
    method wait_for_termination (line 151) | def wait_for_termination(self):
    method stop (line 154) | def stop(self, grace=None):

FILE: monolith/agent_service/agent_service_test.py
  class AgentServiceTest (line 37) | class AgentServiceTest(unittest.TestCase):
    method setUpClass (line 40) | def setUpClass(cls) -> None:
    method tearDownClass (line 59) | def tearDownClass(cls) -> None:
    method register (line 64) | def register(cls, zk):
    method test_heart_beat (line 96) | def test_heart_beat(self):
    method test_get_replicas (line 100) | def test_get_replicas(self):

FILE: monolith/agent_service/agent_v1.py
  class ProcessType (line 34) | class ProcessType(Enum):
  class ProcessNode (line 42) | class ProcessNode(object):
    method __init__ (line 44) | def __init__(self,
    method sub_procs (line 91) | def sub_procs(self):
    method add_subproc (line 94) | def add_subproc(self, pn: 'ProcessNode'):
    method returncode (line 101) | def returncode(self):
    method poll (line 107) | def poll(self):
    method kill (line 113) | def kill(self):
    method run (line 138) | def run(self):
    method failover (line 188) | def failover(self):
    method wait_for_started (line 199) | def wait_for_started(self):
  function get_proc (line 215) | def get_proc(node: ProcessNode, res: List[ProcessNode]):
  class ProcessMgr (line 222) | class ProcessMgr(object):
    method __init__ (line 226) | def __init__(self):
    method add_subproc (line 237) | def add_subproc(self, proc: ProcessNode):
    method signal_handler (line 240) | def signal_handler(self, signum, frame):
    method _poll (line 259) | def _poll(self):
    method start (line 278) | def start(self):
    method kill_all (line 287) | def kill_all(self, include_self=True):
  class AgentV1 (line 299) | class AgentV1(AgentBase):
    method __init__ (line 301) | def __init__(self,
    method start (line 369) | def start(self):
    method wait_for_termination (line 379) | def wait_for_termination(self):
    method stop (line 382) | def stop(self):

FILE: monolith/agent_service/agent_v3.py
  function gen_empty_model_config_file (line 43) | def gen_empty_model_config_file():
  class AgentV3 (line 50) | class AgentV3(AgentBase):
    method __init__ (line 54) | def __init__(self, config: AgentConfig, conf_path: str, tfs_log: str):
    method _gen_addrs_map (line 106) | def _gen_addrs_map(self):
    method sync_available_saved_models (line 118) | def sync_available_saved_models(self):
    method layout_update_callback (line 128) | def layout_update_callback(
    method signal_handler (line 160) | def signal_handler(self, signum, frame):
    method start_bg_thread (line 164) | def start_bg_thread(self, fn, interval=10):
    method start (line 178) | def start(self):
    method stop (line 190) | def stop(self):
    method wait_for_termination (line 201) | def wait_for_termination(self):

FILE: monolith/agent_service/agent_v3_test.py
  class AgentV3Test (line 29) | class AgentV3Test(unittest.TestCase):
    method setUpClass (line 32) | def setUpClass(cls) -> None:
    method tearDownClass (line 71) | def tearDownClass(cls) -> None:
    method test_service_info (line 75) | def test_service_info(self):
    method test_publish_models (line 79) | def test_publish_models(self):

FILE: monolith/agent_service/backends.py
  class SavedModel (line 33) | class SavedModel:
    method __repr__ (line 37) | def __repr__(self):
    method __str__ (line 40) | def __str__(self):
  class SavedModelDeployConfig (line 46) | class SavedModelDeployConfig:
    method serialize (line 50) | def serialize(self) -> bytes:
    method deserialize (line 54) | def deserialize(cls, serialized: bytes) -> 'SavedModelDeployConfig':
  class Container (line 59) | class Container:
    method __repr__ (line 63) | def __repr__(self):
    method __str__ (line 66) | def __str__(self):
  class ContainerServiceInfo (line 72) | class ContainerServiceInfo:
    method serialize (line 80) | def serialize(self) -> bytes:
    method deserialize (line 84) | def deserialize(cls, serialized: bytes) -> 'ContainerServiceInfo':
  class AgentBackend (line 88) | class AgentBackend(abc.ABC):
    method __init__ (line 90) | def __init__(self):
    method register_layout_callback (line 94) | def register_layout_callback(
    method sync_available_saved_models (line 105) | def sync_available_saved_models(self, saved_models: List[SavedModel]) ...
    method report_service_info (line 112) | def report_service_info(self, container: Container,
    method get_service_map (line 117) | def get_service_map(self) -> Dict[str, Dict[str, List[ContainerService...
    method report_service_info (line 137) | def report_service_info(self, container: Container,
    method get_service_info (line 142) | def get_service_info(self, container) -> ContainerServiceInfo:
    method start (line 146) | def start(self):
    method stop (line 150) | def stop(self):
  class CtrlBackend (line 154) | class CtrlBackend(abc.ABC):
    method __init__ (line 156) | def __init__(self):
    method list_saved_models (line 160) | def list_saved_models(self, model_name: str) -> List[SavedModel]:
    method decl_saved_model (line 164) | def decl_saved_model(self, saved_model: SavedModel,
    method add_to_layout (line 169) | def add_to_layout(self, layout: str, saved_model: SavedModel):
    method remove_from_layout (line 173) | def remove_from_layout(self, layout: str, saved_model: SavedModel):
    method bzid_info (line 177) | def bzid_info(self):
    method start (line 181) | def start(self):
    method stop (line 185) | def stop(self):
  class SyncBackend (line 189) | class SyncBackend(abc.ABC):
    method __init__ (line 191) | def __init__(self):
    method subscribe_model (line 195) | def subscribe_model(self, model_name: str):
    method get_sync_targets (line 199) | def get_sync_targets(
    method start (line 204) | def start(self):
    method stop (line 208) | def stop(self):
  class ZKBackend (line 212) | class ZKBackend(AgentBackend, CtrlBackend, SyncBackend):
    method __init__ (line 216) | def __init__(self, bzid: str, zk_servers: str):
    method sync_available_saved_models (line 237) | def sync_available_saved_models(self, container: Container,
    method register_layout_callback (line 263) | def register_layout_callback(
    method get_service_map (line 303) | def get_service_map(self) -> Dict[str, Dict[str, List[ContainerService...
    method _bind_callback (line 322) | def _bind_callback(self, model_name, children):
    method report_service_info (line 339) | def report_service_info(self, container: Container,
    method get_service_info (line 347) | def get_service_info(self, container) -> ContainerServiceInfo:
    method _children_watch (line 355) | def _children_watch(self, path, callback):
    method list_saved_models (line 368) | def list_saved_models(self, model_name: str) -> List[SavedModel]:
    method decl_saved_model (line 376) | def decl_saved_model(self, saved_model: SavedModel,
    method add_to_layout (line 384) | def add_to_layout(self, layout: str, saved_model: SavedModel):
    method remove_from_layout (line 388) | def remove_from_layout(self, layout: str, saved_model: SavedModel):
    method bzid_info (line 395) | def bzid_info(self):
    method subscribe_model (line 465) | def subscribe_model(self, model_name: str):
    method get_sync_targets (line 476) | def get_sync_targets(self, sub_graph: str) -> Tuple[str, List[str]]:
    method create_znode (line 489) | def create_znode(self, path, value, ephemeral=False, makepath=False) -...
    method delete_znode (line 501) | def delete_znode(self, path) -> None:
    method get_znode (line 508) | def get_znode(self, path) -> bytes:
    method start (line 514) | def start(self):
    method stop (line 517) | def stop(self):

FILE: monolith/agent_service/backends_test.py
  class ZKBackendTest (line 24) | class ZKBackendTest(unittest.TestCase):
    method setUpClass (line 27) | def setUpClass(cls) -> None:
    method tearDownClass (line 50) | def tearDownClass(cls) -> None:
    method test_register_service (line 54) | def test_register_service(self):
    method test_layout_callback (line 58) | def test_layout_callback(self):
    method test_sync_available_models (line 92) | def test_sync_available_models(self):
    method test_service_map (line 106) | def test_service_map(self):
    method test_sync_backend (line 120) | def test_sync_backend(self):

FILE: monolith/agent_service/client.py
  class LoadSate (line 45) | class LoadSate:
  class ServingClient (line 51) | class ServingClient(object):
    method __init__ (line 53) | def __init__(self, zk_servers: str, bzid: str):
    method load (line 59) | def load(self,
    method unload (line 73) | def unload(self, model_name: str):
    method get_status (line 81) | def get_status(self, model_name: str) -> LoadSate:
  function main (line 105) | def main(_):

FILE: monolith/agent_service/data_def.py
  class ModelMeta (line 37) | class ModelMeta(object):
    method get_path (line 45) | def get_path(self, base_path: str) -> str:
    method serialize (line 48) | def serialize(self) -> bytes:
    method deserialize (line 52) | def deserialize(cls, serialized: bytes) -> 'ModelMeta':
  class ResourceSpec (line 58) | class ResourceSpec(object):
    method get_path (line 67) | def get_path(self, base_path: str) -> str:
    method serialize (line 70) | def serialize(self) -> bytes:
    method deserialize (line 74) | def deserialize(cls, serialized: bytes) -> 'ResourceSpec':
  class PublishType (line 78) | class PublishType(Enum):
  class PublishMeta (line 85) | class PublishMeta(object):
    method get_path (line 95) | def get_path(self, base_path: str) -> str:
    method serialize (line 99) | def serialize(self) -> bytes:
    method deserialize (line 103) | def deserialize(cls, serialized: bytes) -> 'PublishMeta':
  class ReplicaMeta (line 109) | class ReplicaMeta:
    method serialize (line 120) | def serialize(self) -> bytes:
    method deserialize (line 124) | def deserialize(cls, serialized: bytes) -> 'ReplicaMeta':
    method get_path (line 127) | def get_path(self, bzid: str, sep: str = '/') -> str:
    method get_address (line 134) | def get_address(self,
  class EventType (line 151) | class EventType(Enum):
  class Event (line 161) | class Event(object):
    method serialize (line 166) | def serialize(self) -> bytes:
    method deserialize (line 170) | def deserialize(cls, serialized: bytes) -> 'Event':

FILE: monolith/agent_service/data_def_test.py
  class DataDefTest (line 19) | class DataDefTest(unittest.TestCase):
    method serde (line 21) | def serde(self, item):
    method test_model_info (line 27) | def test_model_info(self):
    method test_resource (line 34) | def test_resource(self):
    method test_replica_meta (line 42) | def test_replica_meta(self):

FILE: monolith/agent_service/mocked_tfserving.py
  class ModelConf (line 47) | class ModelConf:
  class ModelVersion (line 57) | class ModelVersion:
  class ModelMeta (line 63) | class ModelMeta:
    method __init__ (line 65) | def __init__(self, conf: ModelConf, versions: List[ModelVersion] = None):
    method is_unloading (line 70) | def is_unloading(self):
    method set_unloading (line 73) | def set_unloading(self):
  class Event (line 78) | class Event:
  class ModelMgr (line 84) | class ModelMgr:
    method __init__ (line 86) | def __init__(self, model_config_list=None):
    method load (line 96) | def load(self, model_config_list):
    method remove (line 125) | def remove(self, model_name_list):
    method get_status (line 134) | def get_status(self, model_spec):
    method get_metadata (line 168) | def get_metadata(self, model_spec, metadata_field):
    method get_alive_model_names (line 189) | def get_alive_model_names(self):
    method start (line 193) | def start(self):
    method stop (line 197) | def stop(self):
    method _poll (line 203) | def _poll(self):
    method _event_handler (line 228) | def _event_handler(self, event: Event):
  class ModelServiceImpl (line 305) | class ModelServiceImpl(ModelServiceServicer):
    method __init__ (line 307) | def __init__(self, model_mgr: ModelMgr):
    method GetModelStatus (line 310) | def GetModelStatus(self, request: GetModelStatusRequest, context):
    method HandleReloadConfigRequest (line 316) | def HandleReloadConfigRequest(self, request: ReloadConfigRequest, cont...
  class PredictionServiceImpl (line 334) | class PredictionServiceImpl(PredictionServiceServicer):
    method __init__ (line 336) | def __init__(self, model_mgr: ModelMgr):
    method Predict (line 339) | def Predict(self, request, context):
    method GetModelMetadata (line 342) | def GetModelMetadata(self, request: GetModelMetadataRequest, context):
  class FakeTFServing (line 356) | class FakeTFServing:
    method __init__ (line 358) | def __init__(self,
    method start (line 387) | def start(self):
    method stop (line 392) | def stop(self, grace=None):

FILE: monolith/agent_service/mocked_tfserving_test.py
  class MockedTFSTest (line 40) | class MockedTFSTest(unittest.TestCase):
    method setUpClass (line 44) | def setUpClass(cls) -> None:
    method tearDownClass (line 52) | def tearDownClass(cls) -> None:
    method test_get_model_metadata (line 55) | def test_get_model_metadata(self):
    method test_get_model_status (line 66) | def test_get_model_status(self):
    method test_handle_reload_config_request (line 74) | def test_handle_reload_config_request(self):

FILE: monolith/agent_service/mocked_zkclient.py
  class ChildrenWatch (line 25) | class ChildrenWatch:
    method __init__ (line 27) | def __init__(self,
    method __call__ (line 40) | def __call__(self, children: List[str], event: WatchedEvent):
  class DataWatch (line 47) | class DataWatch:
    method __init__ (line 49) | def __init__(self, client, path: str,
    method __call__ (line 57) | def __call__(self, data: bytes, state: ZnodeStat, event: WatchedEvent):
  class Election (line 64) | class Election(object):
    method __init__ (line 66) | def __init__(self, client, path, identifier=None):
    method run (line 69) | def run(self, func, *args, **kwargs):
    method cancel (line 79) | def cancel(self):
  class Node (line 83) | class Node:
    method __init__ (line 85) | def __init__(self,
    method state (line 112) | def state(self):
    method basename (line 126) | def basename(self):
    method set (line 129) | def set(self, value: bytes):
    method get (line 140) | def get(self):
    method set_data_watch (line 143) | def set_data_watch(self, watch: DataWatch):
    method set_children_watch (line 147) | def set_children_watch(self, watch: ChildrenWatch):
    method create_child (line 151) | def create_child(self,
    method get_or_create_child (line 174) | def get_or_create_child(self, path):
    method get_child (line 181) | def get_child(self, path):
    method has_child (line 184) | def has_child(self, path=None):
    method remove_child (line 190) | def remove_child(self, path, recursive: bool = False):
    method __del__ (line 206) | def __del__(self):
  class Catalog (line 225) | class Catalog:
    method __init__ (line 227) | def __init__(self):
    method add_data_watch (line 233) | def add_data_watch(self, watch: DataWatch):
    method add_children_watch (line 241) | def add_children_watch(self, watch: ChildrenWatch):
    method ensure_path (line 249) | def ensure_path(self, path: str) -> Node:
    method create (line 262) | def create(self,
    method delete (line 290) | def delete(self, path: str, recursive: bool = False):
    method set (line 295) | def set(self, path: str, value: bytes):
    method get (line 298) | def get(self, path: str) -> Node:
  class FakeKazooClient (line 310) | class FakeKazooClient:
    method __init__ (line 312) | def __init__(self, zk_server: str = None):
    method ensure_path (line 320) | def ensure_path(self, path: str):
    method start (line 323) | def start(self):
    method create (line 326) | def create(self,
    method delete (line 341) | def delete(self, path: str, recursive: bool = True):
    method set (line 344) | def set(self, path: str, value: bytes):
    method get (line 347) | def get(self, path: str):
    method exists (line 351) | def exists(self, path: str):
    method get_children (line 358) | def get_children(self, path: str, include_data=False):
    method retry (line 366) | def retry(self, func, *args, **kwargs):
    method stop (line 369) | def stop(self):
    method close (line 372) | def close(self):
    method add_listener (line 376) | def add_listener(self, listener):

FILE: monolith/agent_service/mocked_zkclient_test.py
  class MockedZKClientTest (line 23) | class MockedZKClientTest(unittest.TestCase):
    method setUpClass (line 27) | def setUpClass(cls) -> None:
    method tearDownClass (line 32) | def tearDownClass(cls) -> None:
    method test_create (line 35) | def test_create(self):
    method test_set_get (line 45) | def test_set_get(self):
    method test_delete (line 75) | def test_delete(self):
    method test_data_watch (line 88) | def test_data_watch(self):
    method test_children_watch (line 103) | def test_children_watch(self):

FILE: monolith/agent_service/model_manager.py
  class ModelManager (line 27) | class ModelManager(object):
    method __init__ (line 32) | def __init__(self, model_name, source_path, receive_path, use_metrics):
    method init_metrics (line 51) | def init_metrics(self):
    method stop (line 54) | def stop(self):
    method start (line 59) | def start(self):
    method _start (line 68) | def _start(self):
    method touch (line 99) | def touch(self, file):
    method run (line 108) | def run(self):
    method check_model_update_time (line 123) | def check_model_update_time(self):
    method remove_old_file (line 143) | def remove_old_file(self):
    method create_read_lock (line 151) | def create_read_lock(self, name):
    method remove_read_lock (line 159) | def remove_read_lock(self):
    method loop_once (line 177) | def loop_once(self):
    method copy_model (line 208) | def copy_model(self, model_name, version, model_data):
    method wait_for_download (line 256) | def wait_for_download(self):
    method get_source_data (line 288) | def get_source_data(self):
    method get_version_data (line 331) | def get_version_data(self, path, version):
    method get_done_file (line 354) | def get_done_file(self, file):
    method delete (line 357) | def delete(self, file):

FILE: monolith/agent_service/model_manager_test.py
  class ModelManagerTest (line 27) | class ModelManagerTest(unittest.TestCase):
    method create_file (line 29) | def create_file(self, model_name, timestamp, p2p_data_path):
    method test_start (line 45) | def test_start(self):
    method test_ignore_old (line 74) | def test_ignore_old(self):
  function main (line 108) | def main(_):

FILE: monolith/agent_service/replica_manager.py
  class ReplicaWatcher (line 42) | class ReplicaWatcher(object):
    method __init__ (line 44) | def __init__(self,
    method zk (line 71) | def zk(self):
    method watch_data (line 74) | def watch_data(self):
    method stop (line 87) | def stop(self):
    method _get_idc_cluster_children_watch (line 100) | def _get_idc_cluster_children_watch(self, path_prefix: str):
    method _get_task_children_watch (line 115) | def _get_task_children_watch(self, path_prefix: str):
    method _get_replica_children_watch (line 131) | def _get_replica_children_watch(self, task_path: str):
    method _get_data_watch (line 145) | def _get_data_watch(self, path):
    method _poll (line 187) | def _poll(self):
    method get_all_replicas (line 273) | def get_all_replicas(self,
    method get_replicas (line 306) | def get_replicas(self,
    method get_replica (line 327) | def get_replica(self,
    method get_replicas_with_extra_info (line 356) | def get_replicas_with_extra_info(self,
    method to_sync_wrapper (line 380) | def to_sync_wrapper(self) -> SyncBackend:
  class ReplicaUpdater (line 384) | class ReplicaUpdater(object):
    method __init__ (line 386) | def __init__(self, zk_client: MonolithKazooClient, config: AgentConfig):
    method init_metrics (line 419) | def init_metrics(self):
    method zk (line 431) | def zk(self):
    method model_names (line 435) | def model_names(self):
    method entry_path (line 452) | def entry_path(self):
    method ps_path (line 456) | def ps_path(self, task_id: int):
    method dense_path (line 460) | def dense_path(self):
    method _do_register (line 464) | def _do_register(self, replica_path: str, grpc_port: int, archon_port:...
    method register (line 508) | def register(self):
    method _do_update (line 528) | def _do_update(self, name: str):
    method _updater (line 588) | def _updater(self):
    method _get_latest_version_in_fs (line 608) | def _get_latest_version_in_fs(self, name):
    method _check_version (line 617) | def _check_version(self):
    method _watch_update (line 657) | def _watch_update(self):
    method _reregister (line 671) | def _reregister(self):
    method start (line 679) | def start(self):
    method stop (line 694) | def stop(self):
  class ZKListener (line 717) | class ZKListener(object):
    method __init__ (line 719) | def __init__(self, watcher: ReplicaWatcher, updater: ReplicaUpdater):
    method __call__ (line 724) | def __call__(self, state: KazooState) -> bool:
  class ReplicaManager (line 749) | class ReplicaManager:
    method __init__ (line 751) | def __init__(self, zk_client: MonolithKazooClient, config: AgentConfig):
    method watcher (line 760) | def watcher(self):
    method updater (line 764) | def updater(self):
    method start (line 767) | def start(self):
    method stop (line 772) | def stop(self):
    method get_all_replicas (line 776) | def get_all_replicas(self,
    method get_replicas (line 782) | def get_replicas(self,
    method get_replica (line 789) | def get_replica(self,
    method is_ps_set_started (line 797) | def is_ps_set_started(self):
    method is_dense_set_started (line 807) | def is_dense_set_started(self):
  class SyncBackendWrapper (line 815) | class SyncBackendWrapper(SyncBackend):
    method __init__ (line 817) | def __init__(self, watcher: ReplicaWatcher):
    method subscribe_model (line 822) | def subscribe_model(self, model_name: str):
    method get_sync_targets (line 825) | def get_sync_targets(self, sub_graph: str) -> Tuple[str, Dict]:
    method start (line 831) | def start(self):
    method stop (line 834) | def stop(self):

FILE: monolith/agent_service/replica_manager_test.py
  class ReplicaMgrTest (line 37) | class ReplicaMgrTest(unittest.TestCase):
    method setUpClass (line 42) | def setUpClass(cls) -> None:
    method tearDownClass (line 81) | def tearDownClass(cls) -> None:
    method register (line 87) | def register(self, zk):

FILE: monolith/agent_service/resource_utils.py
  function _get_pod_cgroup_path (line 35) | def _get_pod_cgroup_path():
  function exists (line 50) | def exists(dirname: str) -> bool:
  function open_hdfs (line 54) | def open_hdfs(fname: Union[str, List[str]]):
  function cal_model_info_v2 (line 77) | def cal_model_info_v2(
  function total_memory (line 166) | def total_memory() -> int:
  function total_memory_v2 (line 179) | def total_memory_v2() -> int:
  function cal_available_memory (line 184) | def cal_available_memory() -> int:
  function cal_available_memory_v2 (line 198) | def cal_available_memory_v2() -> int:
  class CPU (line 203) | class CPU(object):
    method __init__ (line 205) | def __init__(self, cpuacct_file):
    method wall_clock (line 210) | def wall_clock(self):
    method cpu_clock (line 219) | def cpu_clock(self):
    method cpu_usage (line 224) | def cpu_usage(self):
  function num_cpu (line 238) | def num_cpu():
  function cal_cpu_usage (line 256) | def cal_cpu_usage():
  function cal_cpu_usage_v2 (line 268) | def cal_cpu_usage_v2() -> float:

FILE: monolith/agent_service/resource_utils_test.py
  class UtilTest (line 21) | class UtilTest(unittest.TestCase):
    method test_cal_avaiable_memory_v2 (line 23) | def test_cal_avaiable_memory_v2(self):
    method test_cal_cpu_usage_v2 (line 29) | def test_cal_cpu_usage_v2(self):

FILE: monolith/agent_service/run.py
  function main (line 27) | def main(_):

FILE: monolith/agent_service/svr_client.py
  class SvrClient (line 26) | class SvrClient(object):
    method __init__ (line 28) | def __init__(self, config) -> None:
    method stub (line 36) | def stub(self):
    method get_server_type (line 45) | def get_server_type(self, st):
    method heart_beat (line 58) | def heart_beat(self, server_type):
    method get_replicas (line 65) | def get_replicas(self, server_type, task):

FILE: monolith/agent_service/tfs_client.py
  function read_header (line 69) | def read_header(stream):
  function read_data (line 93) | def read_data(stream):
  function generate_random_instance (line 99) | def generate_random_instance(slots: List[int] = None,
  function generate_random_example_batch (line 114) | def generate_random_example_batch(feature_list: FeatureList,
  function get_instance_proto (line 163) | def get_instance_proto(input_file: str = None, batch_size: int = 256):
  function get_example_batch_proto (line 177) | def get_example_batch_proto(input_file: str = None,
  function gen_random_file (line 199) | def gen_random_file(input_file, variant_type="example_batch"):
  function get_example_batch_proto_v2 (line 225) | def get_example_batch_proto_v2(input_file: str):
  function get_example_batch_to_instance (line 247) | def get_example_batch_to_instance(input_file: str, file_type: str):
  class ProfileThread (line 308) | class ProfileThread(threading.Thread):
    method __init__ (line 310) | def __init__(self, job_id, model_name, stub_list, repeat_time, data_ca...
    method run (line 322) | def run(self):
    method get_result (line 352) | def get_result(self):
  function main (line 357) | def main(_):

FILE: monolith/agent_service/tfs_client_test.py
  class TFSClientTest (line 27) | class TFSClientTest(unittest.TestCase):
    method test_get_instance_proto (line 29) | def test_get_instance_proto(self):
    method test_get_example_batch_to_instance_from_pb (line 34) | def test_get_example_batch_to_instance_from_pb(self):
    method test_get_example_batch_to_instance_from_pbtxt (line 39) | def test_get_example_batch_to_instance_from_pbtxt(self):
  function main (line 45) | def main(_):

FILE: monolith/agent_service/tfs_monitor.py
  class TFSMonitor (line 38) | class TFSMonitor(object):
    method __init__ (line 40) | def __init__(self, config: AgentConfig):
    method host (line 51) | def host(self):
    method get_addr (line 57) | def get_addr(self, sub_model_name: SubModelName) -> str:
    method get_service_type (line 77) | def get_service_type(self, sub_model_name: SubModelName):
    method is_entry (line 98) | def is_entry(self, sub_model_name: str):
    method is_ps (line 101) | def is_ps(self, sub_model_name: str):
    method is_dense (line 104) | def is_dense(self, sub_model_name: str):
    method connect (line 107) | def connect(self):
    method start (line 137) | def start(self):
    method stop (line 145) | def stop(self):
    method get_model_status (line 158) | def get_model_status(self, arg):
    method _ (line 162) | def _(self, pm: PublishMeta, fix_dense_version: bool = False):
    method _ (line 210) | def _(self,
    method gen_model_config (line 237) | def gen_model_config(
    method handle_reload_config_request (line 277) | def handle_reload_config_request(

FILE: monolith/agent_service/tfs_monitor_test.py
  class TFSMonitorTest (line 39) | class TFSMonitorTest(unittest.TestCase):
    method setUpClass (line 44) | def setUpClass(cls) -> None:
    method tearDownClass (line 69) | def tearDownClass(cls) -> None:
    method setUp (line 74) | def setUp(self):
    method tearDown (line 88) | def tearDown(self):
    method test_reload_config (line 128) | def test_reload_config(self):
    method test_remove_config (line 154) | def test_remove_config(self):

FILE: monolith/agent_service/tfs_wrapper.py
  class TFSWrapper (line 32) | class TFSWrapper(object):
    method __init__ (line 34) | def __init__(self, archon_port: int, grpc_port: int, http_port: int,
    method _prepare_cmd (line 53) | def _prepare_cmd(self):
    method is_grpc_remote_op (line 93) | def is_grpc_remote_op(self):
    method start (line 96) | def start(self):
    method stop (line 112) | def stop(self):
    method poll (line 123) | def poll(self):
    method model_config_text (line 127) | def model_config_text(self):
    method list_saved_models (line 131) | def list_saved_models(self):
    method list_saved_models_status (line 137) | def list_saved_models_status(self):
  class FakeTFSWrapper (line 172) | class FakeTFSWrapper(object):
    method __init__ (line 174) | def __init__(self, model_config_file: str):
    method start (line 177) | def start(self):
    method stop (line 180) | def stop(self):
    method poll (line 183) | def poll(self):
    method model_config_text (line 186) | def model_config_text(self):
    method list_saved_models (line 190) | def list_saved_models(self):
    method list_saved_models_status (line 196) | def list_saved_models_status(self):

FILE: monolith/agent_service/utils.py
  function isabs (line 61) | def isabs(path: str):
  class TFSServerType (line 71) | class TFSServerType:
  class DeployType (line 78) | class DeployType(TFSServerType):
    method __init__ (line 81) | def __init__(self, dtype: str):
    method __str__ (line 87) | def __str__(self):
    method __hash__ (line 90) | def __hash__(self):
    method __eq__ (line 93) | def __eq__(self, o):
    method compat_server_type (line 101) | def compat_server_type(self, server_type: str):
  class RoughSortModelLoadedServer (line 114) | class RoughSortModelLoadedServer:
  class RoughSortModelPrefix (line 121) | class RoughSortModelPrefix:
  function conf_parser (line 127) | def conf_parser(file_name: str, args: dict):
  function find_free_port (line 155) | def find_free_port():
  function check_port_open (line 163) | def check_port_open(port):
  function write_to_tmp_file (line 175) | def write_to_tmp_file(content) -> str:
  function replica_id_from_pod_name (line 182) | def replica_id_from_pod_name() -> int:
  class TfServingConfig (line 196) | class TfServingConfig:
  class AgentConfig (line 286) | class AgentConfig(TfServingConfig):
    method __post_init__ (line 380) | def __post_init__(self):
    method generate_platform_config_file (line 487) | def generate_platform_config_file(self):
    method num_tce_shard (line 529) | def num_tce_shard(self) -> int:
    method shard_id (line 533) | def shard_id(self) -> int:
    method idc (line 537) | def idc(self) -> Optional[str]:
    method cluster (line 545) | def cluster(self) -> Optional[str]:
    method location (line 555) | def location(self) -> Optional[str]:
    method path_prefix (line 563) | def path_prefix(self) -> str:
    method layout_path (line 571) | def layout_path(self) -> str:
    method container_cluster (line 578) | def container_cluster(self) -> str:
    method container_id (line 583) | def container_id(self) -> str:
    method get_cmd_and_port (line 586) | def get_cmd_and_port(self,
    method get_cmd (line 668) | def get_cmd(self, binary, server_type: str = None) -> str:
    method get_server_schedule_iter (line 672) | def get_server_schedule_iter(self, server_type):
    method _gen_model_server_config (line 686) | def _gen_model_server_config(
    method from_file (line 758) | def from_file(cls, fname):
    method _update_zk_servers (line 798) | def _update_zk_servers(cls, zk_servers, use_ipv6: bool = False):
  class ZKPath (line 817) | class ZKPath(object):
    method __init__ (line 822) | def __init__(self, path: str):
    method __getattr__ (line 835) | def __getattr__(self, name: str):
    method task (line 846) | def task(self) -> str:
    method location (line 855) | def location(self) -> Optional[str]:
    method ship_in (line 862) | def ship_in(self, idc: str, cluster: str) -> bool:
  function parse_pattern (line 869) | def parse_pattern(pattern_str, init_val, comb_fn, lp='{', rp='}'):
  function normalize_regex (line 882) | def normalize_regex(pattern_str):
  function expand_pattern (line 892) | def expand_pattern(pattern_str):
  function gen_model_spec (line 910) | def gen_model_spec(name: str,
  function gen_model_config (line 927) | def gen_model_config(
  function gen_status_proto (line 966) | def gen_status_proto(error_code: ErrorCode = ErrorCode.OK,
  function gen_model_version_status (line 971) | def gen_model_version_status(version: int,
  function make_tensor_proto (line 981) | def make_tensor_proto(instances):
  class InstanceFormater (line 990) | class InstanceFormater:
    method __init__ (line 992) | def __init__(self, inst: Instance):
    method __str__ (line 995) | def __str__(self):
    method to_tensor_proto (line 998) | def to_tensor_proto(self, batch_size: int):
    method to_pb (line 1004) | def to_pb(self, fname: str = None) -> str:
    method to_json (line 1016) | def to_json(self, fname: str = None) -> str:
    method to_pb_text (line 1025) | def to_pb_text(self, fname: str = None) -> str:
    method from_json (line 1034) | def from_json(cls, fname: str):
    method from_pb_text (line 1041) | def from_pb_text(cls, fname: str):
    method from_dump (line 1050) | def from_dump(cls, fname: str):
  function pasre_sub_model_name (line 1133) | def pasre_sub_model_name(sub_model_name: str):
  function get_local_ip (line 1145) | def get_local_ip() -> str:

FILE: monolith/agent_service/utils_test.py
  class ServingUtilsTest (line 21) | class ServingUtilsTest(unittest.TestCase):
    method setUpClass (line 23) | def setUpClass(cls) -> None:
    method test_gen_model_spec (line 26) | def test_gen_model_spec(self):
    method test_gen_model_config (line 33) | def test_gen_model_config(self):
    method test_gen_status_proto (line 45) | def test_gen_status_proto(self):
    method test_gen_model_version_status (line 51) | def test_gen_model_version_status(self):
    method test_gen_from_file (line 59) | def test_gen_from_file(self):
    method test_list_field (line 64) | def test_list_field(self):
    method test_instance_wrapper_from_json (line 69) | def test_instance_wrapper_from_json(self):
    method test_instance_wrapper_from_pbtext (line 76) | def test_instance_wrapper_from_pbtext(self):
    method test_instance_wrapper_from_dump (line 83) | def test_instance_wrapper_from_dump(self):
    method test_get_cmd_and_port (line 90) | def test_get_cmd_and_port(self):
    method test_zk_path_full (line 98) | def test_zk_path_full(self):
    method test_zk_path_partial (line 112) | def test_zk_path_partial(self):
    method test_zk_path_old_full (line 125) | def test_zk_path_old_full(self):
    method test_zk_path_old_partial (line 138) | def test_zk_path_old_partial(self):
    method test_zk_path_old_partial2 (line 151) | def test_zk_path_old_partial2(self):

FILE: monolith/agent_service/zk_mirror.py
  class ZKMirror (line 37) | class ZKMirror(object):
    method __init__ (line 42) | def __init__(
    method is_leader (line 77) | def is_leader(self) -> bool:
    method set_leader (line 80) | def set_leader(self):
    method create (line 83) | def create(self,
    method ensure_path (line 105) | def ensure_path(self, path):
    method set (line 109) | def set(self, path: str, value: bytes = b''):
    method exists (line 118) | def exists(self, path: str) -> bool:
    method delete (line 129) | def delete(self, path: str, recursive: bool = True):
    method get (line 140) | def get(self, path) -> Optional[bytes]:
    method get_children (line 144) | def get_children(self, path: str) -> List[str]:
    method report_resource (line 155) | def report_resource(self, recource: ResourceSpec):
    method resources (line 161) | def resources(self) -> List[ResourceSpec]:
    method num_tce_replica (line 171) | def num_tce_replica(self) -> Optional[int]:
    method tce_replica_id (line 198) | def tce_replica_id(self) -> int:
    method publish_loadding (line 204) | def publish_loadding(self, info: Union[PublishMeta, List[PublishMeta]]):
    method expected_loading (line 219) | def expected_loading(self) -> Dict[ModelName, PublishMeta]:
    method get_published_path (line 287) | def get_published_path(self, model_name: str) -> List[str]:
    method update_service (line 296) | def update_service(self, replicas: List[ReplicaMeta]):
    method local_replica_paths (line 323) | def local_replica_paths(self) -> Set[str]:
    method get_all_replicas (line 334) | def get_all_replicas(self, server_type: str) -> Dict[str, List[Replica...
    method get_model_replicas (line 350) | def get_model_replicas(self, model_name: str,
    method get_task_replicas (line 368) | def get_task_replicas(self, model_name: str, server_type: str,
    method get_replica (line 382) | def get_replica(self, model_name: str, server_type: str, task: int,
    method watch_portal (line 397) | def watch_portal(self):
    method watch_publish (line 467) | def watch_publish(self):
    method watch_resource (line 527) | def watch_resource(self):
    method watch_service (line 559) | def watch_service(self):
    method election (line 632) | def election(self, leader, sched, identifier: str = None):
    method start (line 662) | def start(self, is_client: bool = False):
    method stop (line 668) | def stop(self):

FILE: monolith/agent_service/zk_mirror_test.py
  class ZKMirrorTest (line 40) | class ZKMirrorTest(unittest.TestCase):
    method setUpClass (line 45) | def setUpClass(cls) -> None:
    method tearDownClass (line 71) | def tearDownClass(cls) -> None:
    method test_crud (line 74) | def test_crud(self):
    method test_zk_mirror (line 96) | def test_zk_mirror(self):

FILE: monolith/base_runner.py
  class BaseRunner (line 24) | class BaseRunner(object):
    method __init__ (line 27) | def __init__(self, *args, **kwargs):
    method run (line 35) | def run(self):
    method write_summary (line 38) | def write_summary(self, logs, summary_writer, current_step):

FILE: monolith/common/python/mem_profiling.py
  function enable_tcmalloc (line 21) | def enable_tcmalloc():
  function setup_heap_profile (line 28) | def setup_heap_profile(heap_profile_inuse_interval=104857600,

FILE: monolith/core/auto_checkpoint_feed_hook.py
  class PeriodicLogger (line 49) | class PeriodicLogger(object):
    method __init__ (line 51) | def __init__(self, seconds):
    method log (line 55) | def log(self, msg, *args, **kw):
  class _SIGNAL (line 61) | class _SIGNAL(object):
  class _OpQueueContext (line 71) | class _OpQueueContext(object):
    method __init__ (line 74) | def __init__(self, name, target, args):
    method stop (line 82) | def stop(self):
    method send_next_batch_signal (line 85) | def send_next_batch_signal(self, iterations):
    method read_iteration_counts (line 88) | def read_iteration_counts(self):
    method join (line 99) | def join(self):
  class _OpSignalOnceQueueContext (line 105) | class _OpSignalOnceQueueContext(_OpQueueContext):
    method __init__ (line 111) | def __init__(self, name, target, args):
    method send_next_batch_signal (line 115) | def send_next_batch_signal(self, iterations):
  class TPUInfeedOutfeedSessionWithEndOfStreamHandlingHook (line 121) | class TPUInfeedOutfeedSessionWithEndOfStreamHandlingHook(
    method __init__ (line 131) | def __init__(self,
    method _create_or_get_iterations_per_loop (line 174) | def _create_or_get_iterations_per_loop(self):
    method begin (line 224) | def begin(self):
    method _run_infeed (line 241) | def _run_infeed(self, queue_ctx, session):
    method _run_outfeed (line 261) | def _run_outfeed(self, queue_ctx, session):
    method _create_infeed_controller (line 290) | def _create_infeed_controller(self, name, target, args):
    method _assertCompilationSucceeded (line 293) | def _assertCompilationSucceeded(self, result, coord):
    method after_create_session (line 303) | def after_create_session(self, session, coord):
    method before_run (line 338) | def before_run(self, run_context):
    method end (line 355) | def end(self, session):
    method get_stopping_signals_and_name (line 368) | def get_stopping_signals_and_name(features):

FILE: monolith/core/base_embedding_host_call.py
  class TPUVariableRestoreHook (line 58) | class TPUVariableRestoreHook(tf.estimator.SessionRunHook):
    method __init__ (line 61) | def __init__(self, op):
    method after_create_session (line 64) | def after_create_session(self, session, coord):
  class BaseEmbeddingHostCall (line 69) | class BaseEmbeddingHostCall(BaseHostCall):
    method __init__ (line 71) | def __init__(self, output_dir, enable_host_call, enable_deepinsight,
    method _create_all_tpu_variables (line 108) | def _create_all_tpu_variables(self):
    method _create_tpu_var (line 144) | def _create_tpu_var(self, var_name, var_shape, var_type):
    method _compute_new_value (line 175) | def _compute_new_value(self, base_tpu_var, delta_value, update_offset):
    method _clear_value_at_index_1 (line 203) | def _clear_value_at_index_1(self, tpu_var, var_type, index):
    method update_tpu_variables_ops (line 207) | def update_tpu_variables_ops(self, global_step, labels, preds, uid_buc...
    method record_summary_tpu_variables (line 288) | def record_summary_tpu_variables(self):
    method record_summary_tensor (line 315) | def record_summary_tensor(self, name, tensor):
    method _verify_shape_and_dtype (line 324) | def _verify_shape_and_dtype(self, tensor, shape_list, dtype):
    method _slice_tensor (line 332) | def _slice_tensor(self, tensor, indices, expect_shape, expect_dtype):
    method _serialize_tensor (line 353) | def _serialize_tensor(self, sampled_tensor, gs, message_name):
    method _serialize_messages (line 359) | def _serialize_messages(self, labels, y_preds, sample_rates, req_times,
    method _write_summary_ops (line 379) | def _write_summary_ops(self,
    method generate_host_call_hook (line 457) | def generate_host_call_hook(self):

FILE: monolith/core/base_embedding_host_call_test.py
  class BaseEmbeddingHostCallTest (line 36) | class BaseEmbeddingHostCallTest(unittest.TestCase):
    method test_compute_new_value (line 38) | def test_compute_new_value(self):

FILE: monolith/core/base_embedding_task.py
  class BaseEmbeddingTask (line 42) | class BaseEmbeddingTask(base_task.BaseTask):
    method params (line 46) | def params(cls):
    method __init__ (line 121) | def __init__(self, params):
    method download_vocab_size_file_from_hdfs (line 143) | def download_vocab_size_file_from_hdfs(self):
    method _create_vocab_dict (line 168) | def _create_vocab_dict(self):
    method _parse_inputs (line 204) | def _parse_inputs(return_values):
    method create_input_fn (line 211) | def create_input_fn(self, mode=tf.estimator.ModeKeys.TRAIN):
    method logits_fn (line 348) | def logits_fn(self):
    method init_slot_to_env (line 353) | def init_slot_to_env(self):
    method create_model_fn (line 360) | def create_model_fn(self,):
    method _get_feature_map (line 364) | def _get_feature_map(self):
    method _post_process_example (line 369) | def _post_process_example(self, example):
    method create_feature_and_table_config_dict (line 472) | def create_feature_and_table_config_dict(self):
    method cross_shard_optimizer (line 556) | def cross_shard_optimizer(self, optimizer, params):
    method process_features_for_cpu_test (line 562) | def process_features_for_cpu_test(self, features):

FILE: monolith/core/base_host_call.py
  class BaseHostCall (line 21) | class BaseHostCall(object):
    method __init__ (line 23) | def __init__(self, output_dir, enable_host_call):
    method record_summary_tensor (line 38) | def record_summary_tensor(self, name, tensor):
    method compress_tensors (line 55) | def compress_tensors(self):
    method decompress_tensors (line 103) | def decompress_tensors(self, tensors):
    method generate_host_call_hook (line 143) | def generate_host_call_hook(self):

FILE: monolith/core/base_layer.py
  class BaseLayer (line 44) | class BaseLayer(object):
    method params (line 47) | def params(cls):
    method __init__ (line 53) | def __init__(self, params):
    method children (line 65) | def children(self):
    method __getattr__ (line 69) | def __getattr__(self, name):
    method __call__ (line 85) | def __call__(self, *args, **kwargs):
    method fprop (line 89) | def fprop(self, *args, **kwargs):
    method create_child (line 101) | def create_child(self, name, params):
    method create_children (line 121) | def create_children(self, name, params):
  function get_uname (line 144) | def get_uname(name):
  function add_layer_loss (line 152) | def add_layer_loss(name, loss):
  function get_layer_loss (line 160) | def get_layer_loss():

FILE: monolith/core/base_layer_test.py
  class BaseLayerTest (line 20) | class BaseLayerTest(unittest.TestCase):
    method test_create_child (line 22) | def test_create_child(self):
    method test_create_children (line 30) | def test_create_children(self):

FILE: monolith/core/base_model_params.py
  class SingleTaskModelParams (line 20) | class SingleTaskModelParams(object):
    method task (line 23) | def task(self):

FILE: monolith/core/base_task.py
  class BaseTask (line 25) | class BaseTask(base_layer.BaseLayer):
    method params (line 29) | def params(cls):
    method __init__ (line 79) | def __init__(self, params):
    method create_input_fn (line 83) | def create_input_fn(self, mode):
    method create_model_fn (line 93) | def create_model_fn(self,):

FILE: monolith/core/base_tpu_test.py
  class BaseTPUTest (line 21) | class BaseTPUTest(tf.test.TestCase):
    method runWithCPU (line 24) | def runWithCPU(self, task_name):
    method runMergeVectorTestOnCPU (line 31) | def runMergeVectorTestOnCPU(self, task_name):

FILE: monolith/core/core_test_suite.py
  function suite (line 24) | def suite():

FILE: monolith/core/dense.py
  class Dense (line 37) | class Dense(tf.keras.layers.Dense, BaseLayer):
    method params (line 40) | def params(cls):
    method __init__ (line 61) | def __init__(self, params, **kwargs):
    method build (line 97) | def build(self, input_shape):
    method get_config (line 164) | def get_config(self):
    method fprop (line 178) | def fprop(self, inputs, **kwargs):

FILE: monolith/core/dense_test.py
  class DenseTest (line 32) | class DenseTest(tf.test.TestCase):
    method test_dense_instantiate (line 34) | def test_dense_instantiate(self):
    method test_dense_dtype (line 65) | def test_dense_dtype(self):
    method test_dense (line 77) | def test_dense(self):
    method test_dense_with_partitioner (line 92) | def test_dense_with_partitioner(self):

FILE: monolith/core/feature.py
  class FeatureSlice (line 26) | class FeatureSlice(object):
    method __init__ (line 29) | def __init__(
    method __repr__ (line 59) | def __repr__(self):
    method __hash__ (line 64) | def __hash__(self):
    method dim (line 69) | def dim(self):
    method slice_index (line 73) | def slice_index(self):
    method optimizer (line 77) | def optimizer(self):
    method initializer (line 81) | def initializer(self):
    method learning_rate_fn (line 85) | def learning_rate_fn(self):
  class FeatureSlot (line 89) | class FeatureSlot(object):
    method __init__ (line 92) | def __init__(
    method get_env (line 160) | def get_env(self):
    method slot_id (line 163) | def slot_id(self):
    method has_bias (line 166) | def has_bias(self):
    method add_feature_slice (line 169) | def add_feature_slice(
    method add_merged_feature_slice (line 192) | def add_merged_feature_slice(
    method _add_feature_column (line 215) | def _add_feature_column(self, feature_column):
    method bias_optimizer (line 226) | def bias_optimizer(self):
    method bias_initializer (line 230) | def bias_initializer(self):
    method bias_learning_rate_fn (line 234) | def bias_learning_rate_fn(self):
    method default_vec_optimizer (line 238) | def default_vec_optimizer(self):
    method default_vec_initializer (line 242) | def default_vec_initializer(self):
    method default_vec_learning_rate_fn (line 246) | def default_vec_learning_rate_fn(self):
    method feature_slices (line 250) | def feature_slices(self):
    method merged_feature_slices (line 254) | def merged_feature_slices(self):
    method feature_columns (line 258) | def feature_columns(self):
  class FeatureColumnV1 (line 262) | class FeatureColumnV1(object):
    method __init__ (line 265) | def __init__(self, feature_slot, fc_name):
    method get_env (line 279) | def get_env(self):
    method embedding_lookup (line 282) | def embedding_lookup(
    method get_bias (line 292) | def get_bias(self):
    method feature_slot (line 297) | def feature_slot(self):
    method fc_name (line 301) | def fc_name(self):
    method feature_slice_to_tf_placeholder (line 305) | def feature_slice_to_tf_placeholder(self):
  class FeatureColumn3D (line 317) | class FeatureColumn3D(object):
    method __init__ (line 320) | def __init__(self, feature_slot, max_seq_length, fc_name):
    method get_env (line 329) | def get_env(self):
    method embedding_lookup (line 332) | def embedding_lookup(
    method get_bias (line 344) | def get_bias(self):
    method feature_slot (line 349) | def feature_slot(self):
    method fc_name (line 353) | def fc_name(self):
    method feature_slice_to_tf_placeholder (line 357) | def feature_slice_to_tf_placeholder(self):
    method max_seq_length (line 361) | def max_seq_length(self):
    method size_tensor_lookup (line 364) | def size_tensor_lookup(self):
  class Env (line 369) | class Env(object):
    method __init__ (line 372) | def __init__(self, vocab_size_dict, params):
    method set_tpu_features (line 380) | def set_tpu_features(self, tpu_features):
    method set_feature_slot (line 388) | def set_feature_slot(self, slot_id, feature_slot):
    method set_params (line 396) | def set_params(self, params):
    method is_finalized (line 403) | def is_finalized(self):
    method _embedding_lookup (line 406) | def _embedding_lookup(self,
    method _seq_embedding_lookup (line 453) | def _seq_embedding_lookup(self,
    method _size_tensor_lookup (line 484) | def _size_tensor_lookup(self, feature_column):
    method finalize (line 505) | def finalize(self):
    method _split_merged_embedding (line 513) | def _split_merged_embedding(self, feature_slot):
    method _merge_vector_in_same_slot (line 560) | def _merge_vector_in_same_slot(self):
    method vocab_size_dict (line 599) | def vocab_size_dict(self):
    method slot_id_to_feature_slot (line 603) | def slot_id_to_feature_slot(self):
    method features (line 610) | def features(self):

FILE: monolith/core/feature_test.py
  class FeatureSlotTest (line 21) | class FeatureSlotTest(tf.test.TestCase):
    method test_has_bias (line 23) | def test_has_bias(self):
    method test_add_feature_slice (line 37) | def test_add_feature_slice(self):
  class FeatureColumnV1Test (line 56) | class FeatureColumnV1Test(tf.test.TestCase):
    method test_add_feature_column (line 58) | def test_add_feature_column(self):
    method test_merge_split_vector_in_same_slot (line 73) | def test_merge_split_vector_in_same_slot(self):

FILE: monolith/core/host_call.py
  class HostCall (line 33) | class HostCall():
    method __init__ (line 35) | def __init__(self, output_dir, enable_host_call, enable_deepinsight):
    method record_summary_tensor (line 51) | def record_summary_tensor(self, name, tensor):
    method compress_tensors (line 63) | def compress_tensors(self):
    method decompress_tensors (line 111) | def decompress_tensors(self, tensors):
    method _verify_shape_and_dtype (line 151) | def _verify_shape_and_dtype(self, tensor, shape_list, dtype):
    method _serialize_messages (line 159) | def _serialize_messages(self, labels, y_preds, sample_rates, req_times...
    method generate_host_call_hook (line 192) | def generate_host_call_hook(self):

FILE: monolith/core/hyperparams.py
  function _is_named_tuple (line 42) | def _is_named_tuple(x):
  class _SortedDict (line 54) | class _SortedDict(dict):
    method __repr__ (line 57) | def __repr__(self):
  class _Param (line 62) | class _Param(object):
    method __init__ (line 65) | def __init__(self, name, default_value, description):
    method __eq__ (line 70) | def __eq__(self, other):
    method __deepcopy__ (line 75) | def __deepcopy__(self, memo):
    method to_string (line 86) | def to_string(self, nested_depth):
    method set (line 114) | def set(self, value):
    method get (line 120) | def get(self):
  function copy_params_to (line 124) | def copy_params_to(from_p, to_p, skip=None):
  class Params (line 145) | class Params(object):
    method __init__ (line 151) | def __init__(self):
    method __setattr__ (line 155) | def __setattr__(self, name, value):
    method __getattr__ (line 166) | def __getattr__(self, name):
    method __setitem__ (line 175) | def __setitem__(self, name, value):
    method __getitem__ (line 178) | def __getitem__(self, key):
    method __dir__ (line 181) | def __dir__(self):
    method __contains__ (line 184) | def __contains__(self, name):
    method __len__ (line 187) | def __len__(self):
    method __eq__ (line 191) | def __eq__(self, other):
    method __ne__ (line 194) | def __ne__(self, other):
    method __str__ (line 197) | def __str__(self):
    method _to_string (line 200) | def _to_string(self, nested_depth):
    method __deepcopy__ (line 212) | def __deepcopy__(self, unused_memo):
    method _similar_keys (line 215) | def _similar_keys(self, name):
    method _key_error_string (line 234) | def _key_error_string(self, name):
    method copy (line 240) | def copy(self):
    method _copy_to (line 243) | def _copy_to(self, res):
    method define (line 255) | def define(self, name, default_value, description):
    method contain (line 274) | def contain(self, name):
    method freeze (line 277) | def freeze(self):
    method is_immutable (line 281) | def is_immutable(self):
    method _get_nested (line 285) | def _get_nested(self, name):
    method set (line 306) | def set(self, **kwargs):
    method get (line 329) | def get(self, name):
    method delete (line 349) | def delete(self, *args):
    method iter_params (line 372) | def iter_params(self):
  function _inverted_index (line 384) | def _inverted_index(ips: 'InstantiableParams', idx):
  class InstantiableParams (line 392) | class InstantiableParams(Params):
    method __init__ (line 400) | def __init__(self, cls=None):
    method instantiate (line 404) | def instantiate(self):
    method copy (line 429) | def copy(self):
  function update_params (line 433) | def update_params(ips: Params, args):

FILE: monolith/core/hyperparams_test.py
  class TestEnum (line 34) | class TestEnum(enum.Enum):
  class ParamsTest (line 40) | class ParamsTest(unittest.TestCase):
    method test_equals (line 42) | def test_equals(self):
    method test_deep_copy (line 69) | def test_deep_copy(self):
    method test_copy_params_to (line 84) | def test_copy_params_to(self):
    method test_define_existing (line 96) | def test_define_existing(self):
    method test_legal_param_names (line 102) | def test_legal_param_names(self):
    method test_set_and_get (line 113) | def test_set_and_get(self):
    method test_set_and_get_nested_param (line 135) | def test_set_and_get_nested_param(self):
    method test_freeze (line 193) | def test_freeze(self):
    method test_to_string (line 225) | def test_to_string(self):
    method test_iter_params (line 246) | def test_iter_params(self):
    method test_similar_keys (line 260) | def test_similar_keys(self):

FILE: monolith/core/mixed_emb_op_comb_nws.py
  class TeacherEmbeddingTransform (line 41) | class TeacherEmbeddingTransform(Layer):
    method __init__ (line 76) | def __init__(self, max_choice_per_embedding, teacher_embedding_sizes_l...
    method build (line 85) | def build(self, input_shape):
    method call (line 106) | def call(self, inputs):
    method compute_output_shape (line 134) | def compute_output_shape(self, input_shape):
    method get_config (line 137) | def get_config(self):
  class MixedEmbedOpComb (line 146) | class MixedEmbedOpComb(Layer):
    method __init__ (line 181) | def __init__(self,
    method build (line 220) | def build(self, input_shape):
    method call (line 357) | def call(self, inputs):
    method compute_output_shape (line 397) | def compute_output_shape(self, input_shape):
    method get_config (line 400) | def get_config(self):
    method get_arch_embedding_weights (line 410) | def get_arch_embedding_weights(self):
    method get_summaries (line 413) | def get_summaries(self):

FILE: monolith/core/model.py
  class Model (line 34) | class Model(object):
    method __init__ (line 37) | def __init__(self, params):
    method _create_vocab_dict (line 49) | def _create_vocab_dict(self, file_path, vocab_size_per_slot=None):
    method _get_feature_map (line 79) | def _get_feature_map(self):
    method _post_process_example (line 84) | def _post_process_example(self, example):
    method create_input_fn (line 104) | def create_input_fn(self, file_pattern, repeat=True):
    method _padding_8 (line 164) | def _padding_8(self, dim):
    method _get_slot_number (line 167) | def _get_slot_number(self, optimizer, use_gradient_accumulation):
    method _get_max_slot_number (line 188) | def _get_max_slot_number(self):
    method create_feature_and_table_config_dict (line 206) | def create_feature_and_table_config_dict(self):
    method sum_pooling (line 272) | def sum_pooling(self,
    method logits_fn (line 305) | def logits_fn(self):
    method init_slot_to_dims (line 310) | def init_slot_to_dims(self):
    method create_model_fn (line 317) | def create_model_fn(self):

FILE: monolith/core/model_imports.py
  function _Import (line 40) | def _Import(name):
  function ImportAllParams (line 58) | def ImportAllParams(task_root=_ROOT, task_dirs=_DIRS, require_success=Fa...
  function ImportParams (line 74) | def ImportParams(model_name,

FILE: monolith/core/model_registry.py
  class _ModelRegistryHelper (line 45) | class _ModelRegistryHelper(object):
    method _ClassPathPrefix (line 52) | def _ClassPathPrefix(cls):
    method _ModelParamsClassKey (line 56) | def _ModelParamsClassKey(cls, src_cls, shortcut=False):
    method _GetSourceInfo (line 73) | def _GetSourceInfo(cls, src_cls):
    method _RegisterModel (line 80) | def _RegisterModel(cls, src_cls):
    method RegisterSingleTaskModel (line 102) | def RegisterSingleTaskModel(cls, src_cls):
    method GetAllRegisteredClasses (line 115) | def GetAllRegisteredClasses():
    method GetClass (line 123) | def GetClass(cls, class_key):
    method GetParams (line 144) | def GetParams(cls, class_key):
  function GetAllRegisteredClasses (line 162) | def GetAllRegisteredClasses():
  function GetClass (line 167) | def GetClass(class_key):
  function GetParams (line 172) | def GetParams(class_key):

FILE: monolith/core/py_utils.py
  class NestedMap (line 41) | class NestedMap(dict):
    method __init__ (line 60) | def __init__(self, *args, **kwargs):
    method __setitem__ (line 69) | def __setitem__(self, key, value):
    method __setattr__ (line 79) | def __setattr__(self, name, value):
    method __getattr__ (line 82) | def __getattr__(self, name):
    method __delattr__ (line 89) | def __delattr__(self, name):
    method copy (line 96) | def copy(self):  # Don't delegate w/ super: dict.copy() -> dict.
    method __deepcopy__ (line 99) | def __deepcopy__(self, unused_memo):
    method DeepCopy (line 103) | def DeepCopy(self):
    method FromNestedDict (line 108) | def FromNestedDict(x):
    method CheckKey (line 121) | def CheckKey(key):
    method GetItem (line 126) | def GetItem(self, key):
    method Get (line 147) | def Get(self, key, default=None):
    method Set (line 165) | def Set(self, key, value):
    method _RecursiveMap (line 192) | def _RecursiveMap(self, fn, flatten=False):
    method Flatten (line 245) | def Flatten(self):
    method FlattenItems (line 252) | def FlattenItems(self):
    method Pack (line 260) | def Pack(self, lst):
    method Transform (line 266) | def Transform(self, fn):
    method IsCompatible (line 270) | def IsCompatible(self, other):
    method Filter (line 281) | def Filter(self, fn):
    method FilterKeyVal (line 285) | def FilterKeyVal(self, fn):
    method _ToStrings (line 296) | def _ToStrings(self):
    method DebugString (line 302) | def DebugString(self):
    method VLog (line 306) | def VLog(self, level=None, prefix=None):

FILE: monolith/core/testing_utils.py
  function layer_test (line 64) | def layer_test(layer_cls,

FILE: monolith/core/tpu_variable.py
  function _handle_graph (line 40) | def _handle_graph(handle):
  function _enclosing_tpu_context (line 45) | def _enclosing_tpu_context():
  class ReplicatedVariable (line 55) | class ReplicatedVariable(VariableBase):
    method __init__ (line 65) | def __init__(self, name, variables):
    method handle (line 73) | def handle(self):
    method _assign_dependencies (line 81) | def _assign_dependencies(self):
    method initializer (line 94) | def initializer(self):
    method graph (line 98) | def graph(self):
    method _shared_name (line 102) | def _shared_name(self):
    method _unique_id (line 106) | def _unique_id(self):
    method name (line 110) | def name(self):
    method dtype (line 114) | def dtype(self):
    method shape (line 118) | def shape(self):
    method get_shape (line 121) | def get_shape(self):
    method to_proto (line 124) | def to_proto(self, export_scope=None):
    method constraint (line 128) | def constraint(self):
    method op (line 132) | def op(self):
    method _read_variable_op (line 135) | def _read_variable_op(self):
    method read_value (line 141) | def read_value(self):
    method assign (line 144) | def assign(self, value, use_locking=None, name=None, read_value=False):
    method assign_add (line 155) | def assign_add(self, delta, use_locking=None, name=None, read_value=Tr...
    method assign_sub (line 166) | def assign_sub(self, delta, use_locking=None, name=None, read_value=Tr...
    method get (line 177) | def get(self):
    method _in_graph_mode (line 181) | def _in_graph_mode(self):
    method _should_act_as_resource_variable (line 184) | def _should_act_as_resource_variable(self):
    method _dense_var_to_tensor (line 188) | def _dense_var_to_tensor(self, dtype=None, name=None, as_ref=False):
  function _tensor_conversion (line 207) | def _tensor_conversion(var, dtype=None, name=None, as_ref=False):

FILE: monolith/core/util.py
  function get_bucket_name_and_relavite_path (line 31) | def get_bucket_name_and_relavite_path(gs_file_path):
  function download_gcs_file (line 44) | def download_gcs_file(gs_file_path, local_file_name):
  function download_gcs_file_with_relative_path (line 55) | def download_gcs_file_with_relative_path(bucket_name, gs_file_relative_p...
  function list_gcs_files_with_prefix (line 65) | def list_gcs_files_with_prefix(gs_path_prefix):
  function parse_example_number_meta_file (line 77) | def parse_example_number_meta_file(meta_file, seperator):
  function calculate_shard_skip_file_number (line 98) | def calculate_shard_skip_file_number(file_example_number, shard_num,
  function get_checkpoint_completed_step_number (line 120) | def get_checkpoint_completed_step_number(checkpoint_path):
  function update_params (line 142) | def update_params(params, tpu_cluster_resolver):
  function get_per_file_example_numbers_for_checkpoint_reload (line 183) | def get_per_file_example_numbers_for_checkpoint_reload(
  function range_dateset (line 243) | def range_dateset(dataset: tf.data.Dataset,

FILE: monolith/core/util_test.py
  class UtilTest (line 20) | class UtilTest(tf.test.TestCase):
    method test_range_dataset_single (line 25) | def test_range_dataset_single(self):
    method test_range_dataset_multiple (line 48) | def test_range_dataset_multiple(self):
    method test_range_dataset_out_of_boundary (line 75) | def test_range_dataset_out_of_boundary(self):
    method test_range_dataset_no_start_date (line 98) | def test_range_dataset_no_start_date(self):
    method test_range_dataset_no_end_date (line 123) | def test_range_dataset_no_end_date(self):

FILE: monolith/core/variance_scaling.py
  function _compute_fans (line 39) | def _compute_fans(shape, data_format='channels_last'):
  class VarianceScaling (line 79) | class VarianceScaling():
    method __init__ (line 112) | def __init__(self,
    method __call__ (line 138) | def __call__(self, shape, dtype=np.float32):
    method get_config (line 182) | def get_config(self):

FILE: monolith/gpu_runner.py
  class GPURunner (line 55) | class GPURunner(BaseRunner):
    method __init__ (line 57) | def __init__(self, task_param, *args, **kwargs):
    method create_estimator (line 66) | def create_estimator(self, model_fn):
    method run (line 107) | def run(self):
  function main (line 214) | def main(unused_argv):

FILE: monolith/native_training/alert/alert_manager.py
  function get_default_alert_manager (line 30) | def get_default_alert_manager():

FILE: monolith/native_training/barrier_ops.py
  class BarrierAlreadyPlacedError (line 26) | class BarrierAlreadyPlacedError(Exception):
  class BarrierOp (line 30) | class BarrierOp:
    method __init__ (line 36) | def __init__(self,
    method place_barrier (line 71) | def place_barrier(self, session, action: str = ""):
    method remove_barrier (line 82) | def remove_barrier(self, session):
    method is_barrier_placed (line 88) | def is_barrier_placed(self, session):
    method barrier_placed_tensor (line 92) | def barrier_placed_tensor(self):
    method capacity (line 96) | def capacity(self):
    method is_barrier_removed (line 99) | def is_barrier_removed(self, session):
    method wait_until_barrier_removed (line 102) | def wait_until_barrier_removed(self, session, index):
    method is_all_blocked (line 120) | def is_all_blocked(self, session):
    method is_none_blocked (line 125) | def is_none_blocked(self, session):
    method get_unblocked_indices (line 130) | def get_unblocked_indices(self, session):
    method get_blocked_indices (line 134) | def get_blocked_indices(self, session):
    method _run_barrier_callbacks (line 138) | def _run_barrier_callbacks(self, action: str, session: tf.compat.v1.Se...
  class BarrierHook (line 143) | class BarrierHook(tf.estimator.SessionRunHook):
    method __init__ (line 146) | def __init__(self, index, barrier_op: BarrierOp):
    method before_run (line 150) | def before_run(self, run_context):
    method after_run (line 153) | def after_run(self, run_context, run_values):

FILE: monolith/native_training/barrier_ops_test.py
  class BarrierOpsTest (line 25) | class BarrierOpsTest(tf.test.TestCase):
    method test_basic (line 27) | def test_basic(self):
    method _run (line 39) | def _run(self, train_op, sess, step=1):
    method test_barrier_hook_not_blocked (line 43) | def test_barrier_hook_not_blocked(self):
    method test_barrier_hook_blocked (line 62) | def test_barrier_hook_blocked(self):

FILE: monolith/native_training/basic_restore_hook.py
  class CheckpointRestorerListener (line 21) | class CheckpointRestorerListener():
    method begin (line 24) | def begin(self):
    method before_restore (line 27) | def before_restore(self, session):
    method after_restore (line 30) | def after_restore(self, session):
    method end (line 33) | def end(self, session):
  class CheckpointRestorerHook (line 37) | class CheckpointRestorerHook(session_run_hook.SessionRunHook):
    method __init__ (line 44) | def __init__(self, listeners=None):
    method begin (line 56) | def begin(self):
    method after_create_session (line 60) | def after_create_session(self, session, coord):
    method _restore (line 63) | def _restore(self, session):

FILE: monolith/native_training/basic_restore_hook_test.py
  class CountCheckpointRestorerListener (line 21) | class CountCheckpointRestorerListener(
    method __init__ (line 24) | def __init__(self):
    method begin (line 29) | def begin(self):
    method before_restore (line 32) | def before_restore(self, session):
    method after_restore (line 35) | def after_restore(self, session):
    method get_counts (line 38) | def get_counts(self):
  class CountHook (line 46) | class CountHook(session_run_hook.SessionRunHook):
    method __init__ (line 48) | def __init__(self):
    method after_create_session (line 54) | def after_create_session(self, session, coord):
    method before_run (line 57) | def before_run(self, run_context):
    method after_run (line 60) | def after_run(self, run_context, run_values):
    method end (line 63) | def end(self, session):
    method get_counts (line 66) | def get_counts(self):
  class CheckpointRestorerHookTest (line 75) | class CheckpointRestorerHookTest(tf.test.TestCase):
    method test_restore_only_in_after_create_session (line 77) | def test_restore_only_in_after_create_session(self):
    method test_two_listeners_with_restorer (line 117) | def test_two_listeners_with_restorer(self):

FILE: monolith/native_training/clip_ops.py
  function _global_norm (line 25) | def _global_norm(t_list: List[tf.Tensor]) -> tf.Tensor:
  function clip_by_global_norm (line 33) | def clip_by_global_norm(t_list: List[tf.Tensor],

FILE: monolith/native_training/clip_ops_test.py
  class ClipOpsTest (line 24) | class ClipOpsTest(tf.test.TestCase):
    method _test_clip_by_global_norm (line 26) | def _test_clip_by_global_norm(self, inputs, clip_norm, expected=None):
    method test_clip_by_global_norm (line 39) | def test_clip_by_global_norm(self):
  class NormOpsTest (line 73) | class NormOpsTest(tf.test.TestCase):
    method _test_global_norm (line 75) | def _test_global_norm(self, inputs, expected):
    method test_it (line 82) | def test_it(self):

FILE: monolith/native_training/cluster_manager.py
  function emit_store (line 28) | def emit_store(name, value, tagkv=None):
  function generate_session_config (line 32) | def generate_session_config(cluster_and_task=None):
  function get_training_cluster (line 52) | def get_training_cluster(
  function _cluster_query_failure_handler (line 114) | def _cluster_query_failure_handler():
  function _query_chief_addr (line 118) | def _query_chief_addr(discovery: ServiceDiscovery):
  function _query_ps_cluster (line 129) | def _query_ps_cluster(discovery: ServiceDiscovery,
  function _save_ps_cluster_to_file (line 155) | def _save_ps_cluster_to_file(file_name: str, ps_addrs: List[str]):
  function _fetch_ps_cluster_from_file (line 164) | def _fetch_ps_cluster_from_file(file_name: str, timeout=1800):
  function _get_ps_cluster_file_name (line 183) | def _get_ps_cluster_file_name(model_dir: str, uuid: str):

FILE: monolith/native_training/cluster_manager_test.py
  class ClusterManagerTest (line 21) | class ClusterManagerTest(unittest.TestCase):
    method testBasic (line 23) | def testBasic(self):

FILE: monolith/native_training/consul.py
  class ConsulException (line 30) | class ConsulException(Exception):
  class UnixHTTPConnection (line 34) | class UnixHTTPConnection(HTTPConnection):
    method __init__ (line 36) | def __init__(self, path, **kwargs):
    method connect (line 41) | def connect(self):
  class Client (line 47) | class Client:
    method __init__ (line 49) | def __init__(self):
    method lookup (line 62) | def lookup(self, name, timeout=3, cachetime=0):
    method _lookup (line 80) | def _lookup(self, name, timeout):
    method register (line 98) | def register(self, name, port, tags=None, check_script=None, host=None):
    method deregister (line 140) | def deregister(self, name, port, host=None):

FILE: monolith/native_training/consul_test.py
  class ConsulTest (line 28) | class ConsulTest(unittest.TestCase):
    method test_lookup (line 30) | def test_lookup(self):
    method test_register (line 41) | def test_register(self):
    method test_deregister (line 49) | def test_deregister(self):

FILE: monolith/native_training/cpu_sync_training_test.py
  class FeatureTask (line 35) | class FeatureTask(NativeTask):
    method create_input_fn (line 38) | def create_input_fn(self, _):
    method create_model_fn (line 47) | def create_model_fn(self):
  class EmbeddingUpdateTask (line 74) | class EmbeddingUpdateTask(NativeTask):
    method create_input_fn (line 77) | def create_input_fn(self, _):
    method create_model_fn (line 87) | def create_model_fn(self):
  class FloatFeatureTask (line 130) | class FloatFeatureTask(NativeTask):
    method create_input_fn (line 133) | def create_input_fn(self, _):
    method create_model_fn (line 143) | def create_model_fn(self):
  class NonFeatureTask (line 168) | class NonFeatureTask(NativeTask):
    method create_input_fn (line 170) | def create_input_fn(self, _):
    method create_model_fn (line 177) | def create_model_fn(self):
  class SequenceFeatureTask (line 188) | class SequenceFeatureTask(NativeTask):
    method create_input_fn (line 191) | def create_input_fn(self, mode):
    method create_model_fn (line 202) | def create_model_fn(self):
  class CpuSyncTrainTest (line 229) | class CpuSyncTrainTest(tf.test.TestCase):
    method test_cpu_training_feature (line 231) | def test_cpu_training_feature(self):
    method test_embedding_update (line 248) | def test_embedding_update(self):
    method test_cpu_training_float_feature (line 265) | def test_cpu_training_float_feature(self):
    method test_cpu_training_sequence_feature (line 283) | def test_cpu_training_sequence_feature(self):
    method test_cpu_training_non_feature (line 303) | def test_cpu_training_non_feature(self):
  class DistributedSyncTrainTest (line 322) | class DistributedSyncTrainTest(tf.test.TestCase):
    method test_basic (line 324) | def test_basic(self):
    method test_sparse_pipelining (line 340) | def test_sparse_pipelining(self):

FILE: monolith/native_training/cpu_training.py
  function _combine_slices_as_table (line 132) | def _combine_slices_as_table(
  function _lookup_embedding_ids (line 148) | def _lookup_embedding_ids(
  function _convert_parquets_to_instance (line 155) | def _convert_parquets_to_instance(parquets_path, instance_path):
  function create_exporter (line 208) | def create_exporter(task,
  class _CpuFeatureFactory (line 245) | class _CpuFeatureFactory(feature.FeatureFactoryFromEmbeddings):
    method __init__ (line 247) | def __init__(self,
    method _push (line 263) | def _push(self, slot_to_emb_ids, slot_to_emb_grads, global_step, req_t...
    method apply_gradients (line 275) | def apply_gradients(
  class _FusedCpuFeatureFactory (line 294) | class _FusedCpuFeatureFactory(feature.FeatureFactoryFromEmbeddings):
    method __init__ (line 296) | def __init__(
    method apply_gradients (line 316) | def apply_gradients(self,
  class _MetricsHeartBeatThread (line 344) | class _MetricsHeartBeatThread():
    method __init__ (line 346) | def __init__(self, interval=30):
    method _heart_beat (line 352) | def _heart_beat(self):
    method start (line 364) | def start(self):
    method stop (line 370) | def stop(self):
  function get_req_time (line 377) | def get_req_time(features):
  class CpuTrainingConfig (line 385) | class CpuTrainingConfig:
    method enable_full_sync_training (line 535) | def enable_full_sync_training(self):
  function _make_serving_config_from_training_config (line 539) | def _make_serving_config_from_training_config(
  function _make_serving_feature_configs_from_training_configs (line 557) | def _make_serving_feature_configs_from_training_configs(
  function make_native_task_context (line 568) | def make_native_task_context(config: CpuTrainingConfig,
  function is_chief (line 580) | def is_chief(config: CpuTrainingConfig):
  class CpuTraining (line 587) | class CpuTraining:
    method __init__ (line 590) | def __init__(self,
    method config (line 695) | def config(self) -> CpuTrainingConfig:
    method feature_configs (line 701) | def feature_configs(
    method _init_fused_layout_params (line 709) | def _init_fused_layout_params(self) -> None:
    method create_input_fn (line 736) | def create_input_fn(self, mode):
    method create_model_fn (line 832) | def create_model_fn(self):
    method _generate_valid_features (line 949) | def _generate_valid_features(self) -> Dict[str, tf.Tensor]:
    method _collect_feature_name_to_table_config (line 955) | def _collect_feature_name_to_table_config(
    method _get_pipelined_model_fn (line 1006) | def _get_pipelined_model_fn(self, create_hash_table_and_filters_fn: Ca...
    method create_serving_input_receiver_fn (line 1644) | def create_serving_input_receiver_fn(self):
  class DistributedCpuTrainingConfig (line 1649) | class DistributedCpuTrainingConfig(CpuTrainingConfig):
  function _prepare_server (line 1690) | def _prepare_server(target: str, config: DistributedCpuTrainingConfig):
  function _shutdown_ps (line 1702) | def _shutdown_ps(target, cluster, task, num_ps):
  function _join_ps (line 1719) | def _join_ps(target, ps_index, sync_backend: SyncBackend = None):
  function _get_blocked_addrs (line 1777) | def _get_blocked_addrs(cluster: Dict, ignored_jobs: Set = {}):
  class NodeAliveCheckerError (line 1787) | class NodeAliveCheckerError(Exception):
    method __init__ (line 1789) | def __init__(self, msg):
    method __str__ (line 1793) | def __str__(self):
  function _do_worker_train (line 1797) | def _do_worker_train(config: DistributedCpuTrainingConfig,
  function _run_ps_benchmark (line 1877) | def _run_ps_benchmark(config: DistributedCpuTrainingConfig,
  function _save_debugging_info (line 1899) | def _save_debugging_info(config: DistributedCpuTrainingConfig, cluster: ...
  function _get_replica_device_setter (line 1918) | def _get_replica_device_setter(config):
  function _do_worker_feature_engineering (line 1936) | def _do_worker_feature_engineering(target, config: DistributedCpuTrainin...
  function make_config_backward_compatible (line 1985) | def make_config_backward_compatible(model_dir: str, config: CpuTrainingC...
  function distributed_train (line 1995) | def distributed_train(config: DistributedCpuTrainingConfig,
  function distributed_sync_train (line 2160) | def distributed_sync_train(config: DistributedCpuTrainingConfig,
  function local_train_internal (line 2252) | def local_train_internal(params: InstantiableParams,
  function local_feature_engineering_internal (line 2338) | def local_feature_engineering_internal(
  function local_train (line 2420) | def local_train(params: InstantiableParams,

FILE: monolith/native_training/cpu_training_distributed_test_binary.py
  function _sleep_short (line 49) | def _sleep_short():
  class SyncHook (line 58) | class SyncHook(tf.estimator.SessionRunHook):
    method __init__ (line 60) | def __init__(self, num_workers, index):
    method begin (line 66) | def begin(self):
    method after_create_session (line 78) | def after_create_session(self, session, coord):
  class FeatureTask (line 88) | class FeatureTask(native_task.NativeTask):
    method params (line 92) | def params(cls):
    method create_input_fn (line 97) | def create_input_fn(self, mode):
    method create_model_fn (line 106) | def create_model_fn(self):
  class HostServiceDiscovery (line 133) | class HostServiceDiscovery(service_discovery.ServiceDiscovery):
    method __init__ (line 135) | def __init__(self, base_path: str):
    method register (line 138) | def register(self, name: str, index: int, addr: str):
    method deregister (line 144) | def deregister(self, name: str, index: int, addr: str):
    method query (line 147) | def query(self, name: str):
    method _named_path (line 160) | def _named_path(self, name: str):
  function test_run (line 164) | def test_run(params):
  function test0 (line 184) | def test0():
  function test1 (line 190) | def test1():
  class RaiseErrorHook (line 200) | class RaiseErrorHook(tf.estimator.SessionRunHook):
    method __init__ (line 202) | def __init__(self, first):
    method before_run (line 205) | def before_run(self, run_context):
  function test2 (line 212) | def test2():
  function main (line 220) | def main(_):

FILE: monolith/native_training/cpu_training_test.py
  function inc_global_step_op (line 50) | def inc_global_step_op() -> tf.Operation:
  class FeatureTask (line 56) | class FeatureTask(NativeTask):
    method create_input_fn (line 59) | def create_input_fn(self, mode):
    method create_model_fn (line 68) | def create_model_fn(self):
    method create_serving_input_receiver_fn (line 92) | def create_serving_input_receiver_fn(self):
  class FloatFeatureTask (line 102) | class FloatFeatureTask(NativeTask):
    method create_input_fn (line 105) | def create_input_fn(self, mode):
    method create_model_fn (line 116) | def create_model_fn(self):
  class SequenceFeatureTask (line 139) | class SequenceFeatureTask(NativeTask):
    method create_input_fn (line 142) | def create_input_fn(self, mode):
    method create_model_fn (line 153) | def create_model_fn(self):
  class FeatureWithSlotOccurrenceThresholdTask (line 178) | class FeatureWithSlotOccurrenceThresholdTask(NativeTask):
    method create_input_fn (line 181) | def create_input_fn(self, mode):
    method create_model_fn (line 190) | def create_model_fn(self):
  class FeatureWithExpireTimeTask (line 214) | class FeatureWithExpireTimeTask(NativeTask):
    method create_input_fn (line 217) | def create_input_fn(self, mode):
    method create_model_fn (line 232) | def create_model_fn(self):
  class NonFeatureTask (line 273) | class NonFeatureTask(NativeTask):
    method create_input_fn (line 275) | def create_input_fn(self, mode):
    method create_model_fn (line 283) | def create_model_fn(self):
  class CpuTrainTest (line 295) | class CpuTrainTest(tf.test.TestCase):
    method test_cpu_training_feature (line 297) | def test_cpu_training_feature(self):
    method test_with_misc_features (line 307) | def test_with_misc_features(self):
    method test_with_export_when_saving (line 318) | def test_with_export_when_saving(self):
    method test_dense_only_export (line 328) | def test_dense_only_export(self):
    method test_with_prefetch_postpush (line 341) | def test_with_prefetch_postpush(self):
    method test_cpu_training_float_feature (line 355) | def test_cpu_training_float_feature(self):
    method test_cpu_training_sequence_feature (line 366) | def test_cpu_training_sequence_feature(self):
    method test_cpu_training_with_slot_occurrence_threshold (line 377) | def test_cpu_training_with_slot_occurrence_threshold(self):
    method test_cpu_training_with_expire_time (line 392) | def test_cpu_training_with_expire_time(self):
    method test_cpu_training_non_feature (line 418) | def test_cpu_training_non_feature(self):
    method test_gpu_export (line 429) | def test_gpu_export(self):
  class DistributedTrainTest (line 449) | class DistributedTrainTest(tf.test.TestCase):
    method _run_process (line 451) | def _run_process(self, args_tmpl: List, num_ps: int, num_workers: int):
    method _run_test (line 474) | def _run_test(self, args_tmpl: List, num_ps: int, num_workers: int):
    method _test_dir (line 481) | def _test_dir(self):
    method _test_args (line 485) | def _test_args(self, num_ps, num_workers, case=0):
    method test0_basic (line 498) | def test0_basic(self):
    method test0_with_extra_ps (line 505) | def test0_with_extra_ps(self):
    method test0_with_redundant_ps (line 513) | def test0_with_redundant_ps(self):
    method test1_with_debugging_server (line 521) | def test1_with_debugging_server(self):
    method test2_temporary_error (line 564) | def test2_temporary_error(self):
  class LocalTrainTest (line 571) | class LocalTrainTest(tf.test.TestCase):
    method testBasic (line 573) | def testBasic(self):
    method testWithPs (line 583) | def testWithPs(self):

FILE: monolith/native_training/data/data_ops_test.py
  function parse_inst_exam (line 67) | def parse_inst_exam(tensor: tf.Tensor, out_type):
  function parse_eb (line 91) | def parse_eb(tensor: tf.Tensor, out_type):
  class DataOpsTest (line 116) | class DataOpsTest(tf.test.TestCase):
    method setUpClass (line 119) | def setUpClass(cls):
    method tearDownClass (line 142) | def tearDownClass(cls):
    method pb_dataset_target (line 146) | def pb_dataset_target(self, input_pb_type, output_pb_type, filter_fn=N...
    method testInstance2Instance (line 202) | def testInstance2Instance(self):
    method testInstance2Example (line 206) | def testInstance2Example(self):
    method testExample2Example (line 210) | def testExample2Example(self):
    method testExample2Instance (line 214) | def testExample2Instance(self):
    method testExampleBatch2Example (line 218) | def testExampleBatch2Example(self):
    method testExampleBatch2Instance (line 222) | def testExampleBatch2Instance(self):
    method testInstanceWithPBInstanceDataset (line 226) | def testInstanceWithPBInstanceDataset(self):
    method testExampleWithPBInstanceDataset (line 230) | def testExampleWithPBInstanceDataset(self):
    method testSetFilterInstance (line 234) | def testSetFilterInstance(self):
    method testSetFilterExample (line 240) | def testSetFilterExample(self):
    method testValueFilterInstance (line 247) | def testValueFilterInstance(self):
    method testValueFilterInInstance (line 253) | def testValueFilterInInstance(self):
    method testValueFilterEqInstance (line 259) | def testValueFilterEqInstance(self):
    method testValueFilterBewteenInstance (line 265) | def testValueFilterBewteenInstance(self):
    method testValueFilterStrInstance (line 271) | def testValueFilterStrInstance(self):
    method testValueFilterAnyInstance (line 277) | def testValueFilterAnyInstance(self):
    method testValueFilterAllInstance (line 283) | def testValueFilterAllInstance(self):
    method testValueFilterDiffInstance (line 289) | def testValueFilterDiffInstance(self):
    method testSpecialStrategyInstance (line 295) | def testSpecialStrategyInstance(self):
    method testValueFilterExample (line 302) | def testValueFilterExample(self):
    method testExampleBatchPredScalar (line 309) | def testExampleBatchPredScalar(self):
    method testExampleBatchPredBatch (line 335) | def testExampleBatchPredBatch(self):
    method testPBDataset (line 360) | def testPBDataset(self):
    method _init_session (line 373) | def _init_session(self):
    method testCreateInstanceDatasetHdfs (line 379) | def testCreateInstanceDatasetHdfs(self):
    method testGenPatterns (line 401) | def testGenPatterns(self):
  class CahceOneDatasetTest (line 409) | class CahceOneDatasetTest(tf.test.TestCase):
    method test_basic (line 411) | def test_basic(self):
  class DecompressTest (line 420) | class DecompressTest(tf.test.TestCase):
    method setUpClass (line 425) | def setUpClass(cls):
    method prase_base (line 429) | def prase_base(self, compress_file_name, compression_type):
    method testDecompressZstd (line 466) | def testDecompressZstd(self):
    method testDecompressZlib (line 475) | def testDecompressZlib(self):
    method testDecompressGzip (line 487) | def testDecompressGzip(self):

FILE: monolith/native_training/data/data_service_parquet_test.py
  class DataServiceTest2 (line 32) | class DataServiceTest2(tf.test.TestCase):
    method setUpClass (line 35) | def setUpClass(cls):
    method tearDownClass (line 50) | def tearDownClass(cls):
    method testDataServiceWithParquetDataset (line 63) | def testDataServiceWithParquetDataset(self):

FILE: monolith/native_training/data/data_service_test.py
  class DataServiceTest (line 28) | class DataServiceTest(tf.test.TestCase):
    method setUpClass (line 31) | def setUpClass(cls):
    method tearDownClass (line 46) | def tearDownClass(cls):
    method testSplitProvider (line 59) | def testSplitProvider(self):

FILE: monolith/native_training/data/datasets.py
  class FeaturePruningType (line 91) | class FeaturePruningType(object):
  class PbType (line 98) | class PbType(Enum):
    method to_name (line 104) | def to_name(self):
  function _get_params (line 108) | def _get_params(name, default=None):
  class DatasetMetaclass (line 126) | class DatasetMetaclass(type):
    method __call__ (line 128) | def __call__(cls, *args, **kwargs):
  class PBDataset (line 311) | class PBDataset(metaclass=DatasetMetaclass):
    method __init__ (line 313) | def __init__(
    method gen_patterns (line 339) | def gen_patterns(cls,
  class DynamicMatchingFilesDataset (line 384) | class DynamicMatchingFilesDataset(dataset_ops.DatasetSource):
    method __init__ (line 387) | def __init__(self, patterns: List[str]):
    method element_spec (line 397) | def element_spec(self):
  class TFRecordDatasetWrapper (line 401) | class TFRecordDatasetWrapper(tf.data.TFRecordDataset):
    method __init__ (line 403) | def __init__(self,
  class ParquetDataset (line 415) | class ParquetDataset(dataset_ops.DatasetSource):
    method __init__ (line 417) | def __init__(self,
    method element_spec (line 457) | def element_spec(self):
  class CompressType (line 462) | class CompressType(Enum):
  class FilePBDataset (line 472) | class FilePBDataset(dataset_ops.DatasetSource):
    method __init__ (line 490) | def __init__(
    method element_spec (line 582) | def element_spec(self):
  class DistributedFilePBDataset (line 586) | class DistributedFilePBDataset(dataset_ops.DatasetSource):
    method __init__ (line 588) | def __init__(
    method element_spec (line 680) | def element_spec(self):
  class InstanceReweightDataset (line 685) | class InstanceReweightDataset(dataset_ops.UnaryUnchangedStructureDataset):
    method __init__ (line 706) | def __init__(self,
    method element_spec (line 735) | def element_spec(self):
  class NegativeGenDataset (line 740) | class NegativeGenDataset(dataset_ops.UnaryUnchangedStructureDataset):
    method __init__ (line 766) | def __init__(self,
    method element_spec (line 836) | def element_spec(self):
  function instance_reweight (line 840) | def instance_reweight(self, action_priority: str, reweight: str, **kwargs):
  class CacheOneDataset (line 852) | class CacheOneDataset(dataset_ops.UnaryDataset):
    method __init__ (line 854) | def __init__(self, input_dataset):
    method element_spec (line 862) | def element_spec(self):
  class SplitFlowDataset (line 868) | class SplitFlowDataset(dataset_ops.UnaryUnchangedStructureDataset):
    method __init__ (line 870) | def __init__(self,
    method element_spec (line 885) | def element_spec(self):
  class MergeFlowDataset (line 890) | class MergeFlowDataset(dataset_ops.DatasetV2):
    method __init__ (line 892) | def __init__(self,
    method _inputs (line 950) | def _inputs(self):
    method element_spec (line 954) | def element_spec(self):
  function negative_gen (line 958) | def negative_gen(self,
  function split_flow (line 1015) | def split_flow(self,
  function merge_flow (line 1031) | def merge_flow(self, dataset_to_merge, max_queue_size: int = 1024, **kwa...
  class KafkaGen (line 1042) | class KafkaGen(object):
    method __init__ (line 1044) | def __init__(self,
    method consumer (line 1072) | def consumer(self):
    method __iter__ (line 1082) | def __iter__(self):
    method __next__ (line 1085) | def __next__(self):
    method __call__ (line 1095) | def __call__(self):
    method _poll (line 1098) | def _poll(self):
  class PyKafkaDataset (line 1127) | class PyKafkaDataset(dataset_ops.DatasetSource):
    method __init__ (line 1129) | def __init__(self,
    method element_spec (line 1178) | def element_spec(self):
  function create_plain_kafka_dataset (line 1182) | def create_plain_kafka_dataset(topics: List[str],
  class KafkaDataset (line 1223) | class KafkaDataset(dataset_ops.DatasetSource):
    method __init__ (line 1225) | def __init__(self,
    method element_spec (line 1360) | def element_spec(self):
  function register_dataset (line 1364) | def register_dataset(service, dataset, buffer_size=32):
  function from_dataset_id (line 1387) | def from_dataset_id(processing_mode,
  function merged_window (line 1418) | def merged_window(self: tf.data.Dataset,
  function distribute (line 1456) | def distribute(self,
  function transform (line 1597) | def transform(self, t: Transform, **kwargs):
  class TransformDataset (line 1606) | class TransformDataset(dataset_ops.UnaryUnchangedStructureDataset):
    method __init__ (line 1620) | def __init__(self, input_dataset, transform: Transform, variant_type: ...
    method element_spec (line 1632) | def element_spec(self):

FILE: monolith/native_training/data/eager_mode_test.py
  function parse_inst_exam (line 52) | def parse_inst_exam(tensor: tf.Tensor, out_type):
  function parse_eb (line 76) | def parse_eb(tensor: tf.Tensor, out_type):
  class DataOpsTest (line 100) | class DataOpsTest(tf.test.TestCase):
    method target (line 102) | def target(self, input_pb_type, output_pb_type):
    method testExampleBatch2Instance (line 147) | def testExampleBatch2Instance(self):
    method testExample2Instance (line 150) | def testExample2Instance(self):
    method testInstance2Instance (line 153) | def testInstance2Instance(self):
    method testExampleBatch (line 156) | def testExampleBatch(self):

FILE: monolith/native_training/data/extract_fid_test.py
  class ExtraFidTest (line 22) | class ExtraFidTest(tf.test.TestCase):
    method test_parse_search (line 24) | def test_parse_search(self):

FILE: monolith/native_training/data/feature_list.py
  function new_instance (line 32) | def new_instance(cls, args):
  class Feed (line 44) | class Feed:
    method __post_init__ (line 49) | def __post_init__(self):
    method name (line 58) | def name(self):
  class Cache (line 63) | class Cache:
    method __post_init__ (line 71) | def __post_init__(self):
    method name (line 78) | def name(self):
  class Feature (line 90) | class Feature:
    method __post_init__ (line 104) | def __post_init__(self):
    method __str__ (line 150) | def __str__(self):
    method name (line 173) | def name(self):
    method depend_strip_prefix (line 185) | def depend_strip_prefix(self):
  class FeatureList (line 200) | class FeatureList(object):
    method __init__ (line 203) | def __init__(self, column_name: Optional[Set[str]], feeds: Dict[str, F...
    method __getitem__ (line 215) | def __getitem__(self, item) -> Feature:
    method get (line 242) | def get(self, item, default=None):
    method get_with_slot (line 248) | def get_with_slot(self, slot):
    method __len__ (line 254) | def __len__(self):
    method __contains__ (line 257) | def __contains__(self, item):
    method __iter__ (line 260) | def __iter__(self):
    method parse (line 264) | def parse(cls, fname: str = None, use_old_name: bool = True) -> 'Featu...
  function get_feature_name_and_slot (line 328) | def get_feature_name_and_slot(item) -> Tuple[str, Optional[int]]:
  function is_example_batch (line 351) | def is_example_batch():
  function add_feature (line 360) | def add_feature(feature: Union[str, int, List[str], List[int]]):
  function add_feature_by_fids (line 373) | def add_feature_by_fids(fids: Union[int, List[int]], feature_list: Featu...
  function get_valid_features (line 407) | def get_valid_features() -> List[str]:

FILE: monolith/native_training/data/feature_utils.py
  function filter_by_fids (line 34) | def filter_by_fids(variant: tf.Tensor,
  function filter_by_feature_value (line 81) | def filter_by_feature_value(variant: tf.Tensor,
  function filter_by_value (line 167) | def filter_by_value(variant: tf.Tensor,
  function add_action (line 261) | def add_action(
  function add_label (line 331) | def add_label(
  function scatter_label (line 396) | def scatter_label(
  function filter_by_label (line 433) | def filter_by_label(
  function special_strategy (line 468) | def special_strategy(variant: tf.Tensor,
  function negative_sample (line 518) | def negative_sample(variant: tf.Tensor,
  function feature_combine (line 566) | def feature_combine(src1: tf.RaggedTensor, src2: tf.RaggedTensor,
  function switch_slot (line 602) | def switch_slot(ragged: tf.RaggedTensor, slot: int) -> tf.RaggedTensor:
  function switch_slot_batch (line 632) | def switch_slot_batch(variant: tf.Tensor,
  function label_upper_bound (line 664) | def label_upper_bound(variant: tf.Tensor,
  function label_normalization (line 686) | def label_normalization(variant: tf.Tensor,
  function use_field_as_label (line 711) | def use_field_as_label(variant: tf.Tensor,
  function create_item_pool (line 736) | def create_item_pool(start_num: int,
  function item_pool_random_fill (line 749) | def item_pool_random_fill(pool: tf.Tensor) -> tf.Tensor:
  function item_pool_check (line 754) | def item_pool_check(pool: tf.Tensor,
  function save_item_pool (line 767) | def save_item_pool(pool: tf.Tensor,
  function restore_item_pool (line 778) | def restore_item_pool(pool: tf.Tensor,
  function fill_multi_rank_output (line 791) | def fill_multi_rank_output(
  function use_f100_multi_head (line 814) | def use_f100_multi_head(
  function map_id (line 826) | def map_id(tensor: tf.Tensor, map_dict: Dict[int, int], default: int = -1):
  function multi_label_gen (line 836) | def multi_label_gen(variant: tf.Tensor,
  function string_to_variant (line 887) | def string_to_variant(tensor: tf.Tensor,
  function string_to_variant_with_transform (line 931) | def string_to_variant_with_transform(tensor: tf.Tensor,
  function variant_to_zeros (line 958) | def variant_to_zeros(tensor: tf.Tensor):
  function kafka_resource_init (line 962) | def kafka_resource_init(topics: List[str],
  function kafka_read_next (line 985) | def kafka_read_next(input, index: int, message_poll_timeout: int,
  function kafka_read_next_v2 (line 994) | def kafka_read_next_v2(input, index: int, message_poll_timeout: int,
  function has_variant (line 1003) | def has_variant(input, variant_type: str = 'example'):
  function gen_fid_mask (line 1007) | def gen_fid_mask(tenosr: tf.RaggedTensor, fid: int) -> tf.Tensor:
  function tf_example_to_example (line 1015) | def tf_example_to_example(serialized: tf.Tensor,

FILE: monolith/native_training/data/feature_utils_test.py
  function get_fid_v1 (line 40) | def get_fid_v1(slot: int, signautre: int):
  function get_fid_v2 (line 44) | def get_fid_v2(slot: int, signature: int):
  function parse_instance_or_example (line 80) | def parse_instance_or_example(tensor: tf.Tensor, out_type,
  function parse_example_batch (line 111) | def parse_example_batch(tensor: tf.Tensor, out_type,
  function line_id_to_feature (line 142) | def line_id_to_feature(name, value):
  function generate_instance (line 164) | def generate_instance(labels: List[int],
  function write_instance_into_file (line 209) | def write_instance_into_file(file: BinaryIO, instance):
  function parse_instance_from_file (line 222) | def parse_instance_from_file(stream, has_kafka_dump, has_kafka_dump_pref...
  class DataOpsTest (line 248) | class DataOpsTest(tf.test.TestCase):
    method pb_dataset_target (line 249) | def pb_dataset_target(self,
    method test_input_instance_output_instance (line 315) | def test_input_instance_output_instance(self):
    method test_input_instance_output_instance_add_action (line 321) | def test_input_instance_output_instance_add_action(self):
    method test_input_instance_output_example (line 330) | def test_input_instance_output_example(self):
    method test_input_instance_output_example_add_action (line 338) | def test_input_instance_output_example_add_action(self):
    method test_input_example_output_instance (line 352) | def test_input_example_output_instance(self):
    method test_input_example_output_instance_add_action (line 358) | def test_input_example_output_instance_add_action(self):
    method test_input_example_output_example (line 370) | def test_input_example_output_example(self):
    method test_input_example_output_example_add_action (line 378) | def test_input_example_output_example_add_action(self):
    method test_input_example_batch_output_instance (line 389) | def test_input_example_batch_output_instance(self):
    method test_input_example_batch_output_instance_add_action (line 397) | def test_input_example_batch_output_instance_add_action(self):
    method test_input_example_batch_output_example (line 412) | def test_input_example_batch_output_example(self):
    method test_input_example_batch_output_example_add_action (line 420) | def test_input_example_batch_output_example_add_action(self):
    method test_input_instance_output_instance_add_label (line 432) | def test_input_instance_output_instance_add_label(self):
    method test_input_instance_output_instance_label_upper_bound (line 506) | def test_input_instance_output_instance_label_upper_bound(self):
    method test_input_instance_output_instance_label_normalization (line 516) | def test_input_instance_output_instance_label_normalization(self):
    method test_input_examplebatch_output_instance_use_field_as_label (line 529) | def test_input_examplebatch_output_instance_use_field_as_label(self):
    method test_input_instance_output_instance_filter_by_label_equals (line 569) | def test_input_instance_output_instance_filter_by_label_equals(self):
    method test_input_instance_output_instance_scatter_label (line 596) | def test_input_instance_output_instance_scatter_label(self):
    method test_filter_by_bytes_value (line 667) | def test_filter_by_bytes_value(self):
    method test_filter_by_float_value (line 758) | def test_filter_by_float_value(self):
    method test_filter_by_value_not_in (line 823) | def test_filter_by_value_not_in(self):
    method test_filter_by_value_all (line 984) | def test_filter_by_value_all(self):
    method test_map_id (line 1047) | def test_map_id(self):
    method test_filter_by_fids (line 1057) | def test_filter_by_fids(self):
    method test_multi_label_gen (line 1107) | def test_multi_label_gen(self):
    method test_string_to_variant (line 1191) | def test_string_to_variant(self):
    method test_has_variant (line 1231) | def test_has_variant(self):
    method test_switch_slot_batch (line 1253) | def test_switch_slot_batch(self):
    method test_gen_fid_mask_int64 (line 1324) | def test_gen_fid_mask_int64(self):
    method test_gen_fid_mask_int32 (line 1334) | def test_gen_fid_mask_int32(self):
    method test_negative_sample_with_positive_actions (line 1346) | def test_negative_sample_with_positive_actions(self):

FILE: monolith/native_training/data/item_pool_hook.py
  class ItemPoolSaveRestoreHook (line 27) | class ItemPoolSaveRestoreHook(SessionRunHook):
    method __init__ (line 29) | def __init__(self, model_dir: str, save_steps: int, mode: str = 'train'):
    method begin (line 40) | def begin(self):
    method after_create_session (line 62) | def after_create_session(self, session, coord):  # pylint: disable=unu...
    method after_run (line 82) | def after_run(
    method end (line 98) | def end(self, session):  # pylint: disable=unused-argument

FILE: monolith/native_training/data/item_pool_test.py
  class ItemPoolTest (line 26) | class ItemPoolTest(tf.test.TestCase):
    method setUpClass (line 29) | def setUpClass(cls):
    method test_create_item_pool (line 41) | def test_create_item_pool(self):

FILE: monolith/native_training/data/kafka_dataset_test.py
  function start_producer (line 79) | def start_producer(input_type):
  class KafkaDatasetTest (line 136) | class KafkaDatasetTest(tf.test.TestCase, parameterized.TestCase):
    method setUpClass (line 139) | def setUpClass(cls):
    method test_kafka_dataset (line 147) | def test_kafka_dataset(self, input_type, output_type):

FILE: monolith/native_training/data/kernels/add_action_kernel.cc
  type tensorflow (line 31) | namespace tensorflow {
    type monolith_tf (line 32) | namespace monolith_tf {
      class AddActionOp (line 38) | class AddActionOp : public OpKernel {
        method AddActionOp (line 40) | explicit AddActionOp(OpKernelConstruction *context) : OpKernel(con...
        method Compute (line 77) | void Compute(OpKernelContext *context) override {
        method LineId (line 173) | static LineId *GetLineId(Tensor *output_tensor, bool is_instance) {

FILE: monolith/native_training/data/kernels/add_label_kernel.cc
  type tensorflow (line 31) | namespace tensorflow {
    type monolith_tf (line 32) | namespace monolith_tf {
      class AddLabelOp (line 40) | class AddLabelOp : public OpKernel {
        method AddLabelOp (line 42) | explicit AddLabelOp(OpKernelConstruction *context) : OpKernel(cont...
        method Compute (line 66) | void Compute(OpKernelContext *context) override {
        method SelectedByNegativeSampling (line 129) | bool SelectedByNegativeSampling(const internal::TaskConfig &t) {
        method LineId (line 134) | static LineId *GetLineId(Tensor *output_tensor, bool is_instance) {

FILE: monolith/native_training/data/kernels/cache_one_dataset_kernel.cc
  type tensorflow (line 28) | namespace tensorflow {
    type data (line 29) | namespace data {
      type monolith_tf (line 30) | namespace monolith_tf {
        class CacheOneDatasetOp::Dataset (line 32) | class CacheOneDatasetOp::Dataset : public DatasetBase {
          method Dataset (line 34) | Dataset(OpKernelContext* ctx, const DatasetBase* input)
          method MakeIteratorInternal (line 45) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
          method DataTypeVector (line 51) | const DataTypeVector& output_dtypes() const override {
          method string (line 59) | string DebugString() const override {
          method int64 (line 63) | int64 Cardinality() const override { return input_->Cardinality(...
          method Status (line 65) | Status InputDatasets(std::vector<const DatasetBase*>* inputs) co...
          method Status (line 70) | Status CheckExternalState() const override {
          method Status (line 75) | Status AsGraphDefInternal(SerializationContext* ctx,
          class Iterator (line 84) | class Iterator : public DatasetIterator<Dataset> {
            method Iterator (line 86) | explicit Iterator(const Params& params)
            method Status (line 89) | Status Initialize(IteratorContext* ctx) override {
            method Status (line 94) | Status GetNextInternal(IteratorContext* ctx,
            method CreateNode (line 125) | std::shared_ptr<model::Node> CreateNode(
            method Status (line 130) | Status SaveInternal(SerializationContext* ctx,
            method Status (line 135) | Status RestoreInternal(IteratorContext* ctx,

FILE: monolith/native_training/data/kernels/cache_one_dataset_kernel.h
  function namespace (line 20) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/df_resource_kernel.cc
  type tensorflow (line 17) | namespace tensorflow {
    type monolith_tf (line 18) | namespace monolith_tf {
      function Status (line 22) | Status RegisterCancellationCallback(CancellationManager* cancellatio...
      class CreateQueueOp (line 41) | class CreateQueueOp : public ResourceOpKernel<QueueResource> {
        method CreateQueueOp (line 43) | explicit CreateQueueOp(OpKernelConstruction* c) : ResourceOpKernel...
        method TF_EXCLUSIVE_LOCKS_REQUIRED (line 51) | TF_EXCLUSIVE_LOCKS_REQUIRED(mu_) override {

FILE: monolith/native_training/data/kernels/df_resource_kernel.h
  function namespace (line 26) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/dynamic_match_file_dataset_kernel.cc
  type tensorflow (line 35) | namespace tensorflow {
    type data (line 36) | namespace data {
      type monolith_tf (line 37) | namespace monolith_tf {
        class DynamicMatchingFilesDatasetOp (line 39) | class DynamicMatchingFilesDatasetOp : public DatasetOpKernel {
          method MakeDataset (line 43) | void MakeDataset(OpKernelContext* ctx, DatasetBase** output) ove...
          class Dataset (line 61) | class Dataset : public DatasetBase {
            method Dataset (line 63) | Dataset(OpKernelContext* ctx, std::vector<std::string> patterns)
            method MakeIteratorInternal (line 66) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
            method DataTypeVector (line 72) | const DataTypeVector& output_dtypes() const override {
            method string (line 83) | string DebugString() const override {
            method Status (line 87) | Status InputDatasets(
            method Status (line 92) | Status CheckExternalState() const override { return Status::OK...
            method Status (line 94) | Status MakeSplitProvider(
            method Status (line 101) | Status AsGraphDefInternal(SerializationContext* ctx,
            class Iterator (line 111) | class Iterator : public DatasetIterator<Dataset> {
              method Iterator (line 113) | explicit Iterator(const Params& params)
              method Status (line 116) | Status GetNextInternal(IteratorContext* ctx,
              method CreateNode (line 158) | std::shared_ptr<model::Node> CreateNode(
              method Status (line 163) | Status SaveInternal(SerializationContext* ctx,
              method Status (line 174) | Status RestoreInternal(IteratorContext* ctx,

FILE: monolith/native_training/data/kernels/extract_fid_kernel.cc
  type tensorflow (line 21) | namespace tensorflow {
    type monolith_tf (line 22) | namespace monolith_tf {
      class ExtractFidOp (line 24) | class ExtractFidOp : public OpKernel {
        method ExtractFidOp (line 29) | explicit ExtractFidOp(OpKernelConstruction* ctx) : OpKernel(ctx) {
        method Compute (line 34) | void Compute(OpKernelContext* context) override {

FILE: monolith/native_training/data/kernels/feature_hash.cc
  type tensorflow (line 26) | namespace tensorflow {
    type monolith_tf (line 27) | namespace monolith_tf {
      class FeatureHashOp (line 34) | class FeatureHashOp : public OpKernel {
        method FeatureHashOp (line 39) | explicit FeatureHashOp(OpKernelConstruction *ctx) : OpKernel(ctx) {
        method Compute (line 45) | void Compute(OpKernelContext *context) override {
        method raw_feature_to_feature (line 82) | void raw_feature_to_feature(const std::string &name,

FILE: monolith/native_training/data/kernels/feature_name_mapper_tf_bridge.cc
  type tensorflow (line 17) | namespace tensorflow {
    type monolith_tf (line 18) | namespace monolith_tf {
      function Status (line 20) | Status FeatureNameMapperTfBridge::New(FeatureNameMapperTfBridge** ne...
      function Status (line 28) | Status FeatureNameMapperTfBridge::RegisterValidIds(

FILE: monolith/native_training/data/kernels/feature_name_mapper_tf_bridge.h
  function namespace (line 29) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/fill_multi_rank_output_kernel.cc
  type tensorflow (line 31) | namespace tensorflow {
    type monolith_tf (line 32) | namespace monolith_tf {
      class FillMultiRankOutputOp (line 39) | class FillMultiRankOutputOp : public OpKernel {
        method FillMultiRankOutputOp (line 41) | explicit FillMultiRankOutputOp(OpKernelConstruction *context)
        method Compute (line 65) | void Compute(OpKernelContext *context) override {
        method LineId (line 115) | static LineId *GetLineId(Tensor *output_tensor, bool is_instance) {
        method GetFids (line 138) | static std::vector<uint64_t> GetFids(Tensor *output_tensor,

FILE: monolith/native_training/data/kernels/filter_by_label_kernel.cc
  type tensorflow (line 31) | namespace tensorflow {
    type monolith_tf (line 32) | namespace monolith_tf {
      class FilterByLabelOp (line 40) | class FilterByLabelOp : public OpKernel {
        method FilterByLabelOp (line 42) | explicit FilterByLabelOp(OpKernelConstruction *context) : OpKernel...
        method Compute (line 58) | void Compute(OpKernelContext *context) override {

FILE: monolith/native_training/data/kernels/gen_fid_mask.cc
  type tensorflow (line 24) | namespace tensorflow {
    type monolith_tf (line 25) | namespace monolith_tf {
      class MonolithGenFidMaskOp (line 28) | class MonolithGenFidMaskOp : public OpKernel {
        method MonolithGenFidMaskOp (line 32) | explicit MonolithGenFidMaskOp(OpKernelConstruction *ctx) : OpKerne...
        method Compute (line 36) | void Compute(OpKernelContext *context) override {

FILE: monolith/native_training/data/kernels/instance_reweight_dataset_kernel.cc
  type tensorflow (line 40) | namespace tensorflow {
    type data (line 41) | namespace data {
      type monolith_tf (line 42) | namespace monolith_tf {
        class InnerIterator (line 65) | class InnerIterator {
          method InnerIterator (line 67) | InnerIterator(IteratorBase *input_impl, int instance_reweight_me...
          method Status (line 90) | Status GetNext(IteratorContext *ctx, std::vector<Tensor> *out_te...
          method Status (line 103) | Status NextInternal(IteratorContext *ctx) {
          method Instance (line 143) | inline Instance *GetCurrentInstance() {
          method Example (line 148) | inline Example *GetCurrentExample() {
          method CalReplicas (line 152) | int CalReplicas(const LineId &lineid, float *ins_label) {
        class InstanceReweightDatasetOp::Dataset (line 278) | class InstanceReweightDatasetOp::Dataset : public DatasetBase {
          method Dataset (line 280) | Dataset(OpKernelContext *ctx, const DatasetBase *input,
          method MakeIteratorInternal (line 297) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
          method DataTypeVector (line 303) | const DataTypeVector &output_dtypes() const override {
          method string (line 311) | string DebugString() const override {
          method Status (line 315) | Status InputDatasets(
          method Status (line 321) | Status CheckExternalState() const override {
          method Status (line 326) | Status AsGraphDefInternal(SerializationContext *ctx,
          class Iterator (line 360) | class Iterator : public DatasetIterator<Dataset> {
            method Iterator (line 362) | explicit Iterator(const Params &params)
            method Status (line 365) | Status Initialize(IteratorContext *ctx) override {
            method Status (line 377) | Status GetNextInternal(IteratorContext *ctx,
            method CreateNode (line 386) | std::shared_ptr<model::Node> CreateNode(
            method Status (line 391) | Status SaveInternal(SerializationContext *ctx,
            method Status (line 396) | Status RestoreInternal(IteratorContext *ctx,

FILE: monolith/native_training/data/kernels/instance_reweight_dataset_kernel.h
  function namespace (line 20) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/arrow_random_access_file.h
  function namespace (line 40) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/cache_mgr.cc
  type tensorflow (line 31) | namespace tensorflow {
    type monolith_tf (line 32) | namespace monolith_tf {
      type internal (line 33) | namespace internal {
        function MakeItemFeaturesFromProto (line 35) | std::shared_ptr<ItemFeatures> MakeItemFeaturesFromProto(

FILE: monolith/native_training/data/kernels/internal/cache_mgr.h
  function namespace (line 29) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/cache_mgr_test.cc
  type tensorflow (line 24) | namespace tensorflow {
    type monolith_tf (line 25) | namespace monolith_tf {
      type internal (line 26) | namespace internal {
        function gen_named_feature (line 31) | void gen_named_feature(NamedFeature *nf) {
        function gen_item_features (line 42) | void gen_item_features(ItemFeatures *item) {
        function fill_cache_with_gid (line 53) | void fill_cache_with_gid(CacheWithGid *cwg) {
        function TEST (line 63) | TEST(CACHE_MGR, CacheWithGid) {
        function TEST (line 74) | TEST(CACHE_MGR, CacheManager) {

FILE: monolith/native_training/data/kernels/internal/datasource_utils.cc
  type tensorflow (line 17) | namespace tensorflow {
    type monolith_tf (line 18) | namespace monolith_tf {
      type internal (line 19) | namespace internal {
        function java_hash_code (line 21) | int32_t java_hash_code(const std::string &data_flow_name) {

FILE: monolith/native_training/data/kernels/internal/datasource_utils.h
  function namespace (line 20) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/datasource_utils_test.cc
  type tensorflow (line 20) | namespace tensorflow {
    type monolith_tf (line 21) | namespace monolith_tf {
      type internal (line 22) | namespace internal {
        function TEST (line 25) | TEST(DatasourceUtils, JavaHashCode) {

FILE: monolith/native_training/data/kernels/internal/file_match_split_provider.cc
  type tensorflow (line 34) | namespace tensorflow {
    type data (line 35) | namespace data {
      type monolith_tf (line 36) | namespace monolith_tf {
        function Status (line 38) | Status FileMatchSplitProvider::GetNext(Tensor *split, bool *end_of...
        function Status (line 69) | Status FileMatchSplitProvider::Reset() {
        function Status (line 90) | Status FileMatchSplitProvider::Save(
        function Status (line 110) | Status FileMatchSplitProvider::Restore(
        function Status (line 132) | Status FileMatchSplitProvider::EnsureFeederInitialized() {

FILE: monolith/native_training/data/kernels/internal/file_match_split_provider.h
  function namespace (line 24) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/file_match_split_provider_test.cc
  type tensorflow (line 26) | namespace tensorflow {
    type data (line 27) | namespace data {
      type monolith_tf (line 28) | namespace monolith_tf {
        function TEST (line 31) | TEST(FileMatchSplitProvider, Create) {
        function TEST (line 55) | TEST(FileMatchSplitProvider, Reset) {

FILE: monolith/native_training/data/kernels/internal/label_utils.cc
  type tensorflow (line 26) | namespace tensorflow {
    type monolith_tf (line 27) | namespace monolith_tf {
      type internal (line 28) | namespace internal {
        function HasIntersection (line 31) | bool HasIntersection(const std::set<int32_t> &lhs,
        function ParseTaskConfig (line 39) | bool ParseTaskConfig(const std::string &config,

FILE: monolith/native_training/data/kernels/internal/label_utils.h
  function namespace (line 26) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/label_utils_test.cc
  type tensorflow (line 20) | namespace tensorflow {
    type monolith_tf (line 21) | namespace monolith_tf {
      type internal (line 22) | namespace internal {
        function TEST (line 26) | TEST(LabelUtils, HasIntersection) {
        function TEST (line 32) | TEST(LabelUtils, ParseTaskConfigBasic) {

FILE: monolith/native_training/data/kernels/internal/parquet_column_buffer.h
  function namespace (line 22) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/parquet_example_reader.h
  function namespace (line 31) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/relational_utils.h
  function namespace (line 25) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/relational_utils_test.cc
  type tensorflow (line 24) | namespace tensorflow {
    type monolith_tf (line 25) | namespace monolith_tf {
      type internal (line 26) | namespace internal {
        function TEST (line 29) | TEST(RelationalUtils, GT) {
        function TEST (line 37) | TEST(RelationalUtils, GE) {
        function TEST (line 45) | TEST(RelationalUtils, EQ) {
        function TEST (line 53) | TEST(RelationalUtils, LT) {
        function TEST (line 61) | TEST(RelationalUtils, LE) {
        function TEST (line 69) | TEST(RelationalUtils, NEQ) {
        function TEST (line 77) | TEST(RelationalUtils, BETWEEN) {
        function TEST (line 85) | TEST(RelationalUtils, IN) {
        function TEST (line 93) | TEST(RelationalUtils, NOT_IN) {

FILE: monolith/native_training/data/kernels/internal/sized_random_access_file.h
  function namespace (line 36) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/uniq_hashtable.h
  function namespace (line 34) | namespace tensorflow {
  function class (line 229) | class MultiShardUniqHashTable {

FILE: monolith/native_training/data/kernels/internal/uniq_hashtable_test.cc
  type tensorflow (line 28) | namespace tensorflow {
    type monolith_tf (line 29) | namespace monolith_tf {
      class UniqHashTableTest (line 32) | class UniqHashTableTest {
        method UniqHashTableTest (line 39) | UniqHashTableTest(int fid_num, int fid_range) {
        method Reset (line 44) | void Reset() {
        method Check (line 51) | void Check() {
      function TEST (line 79) | TEST(UniqHashTableTest, Small) {
      function TEST (line 86) | TEST(UniqHashTableTest, Medium) {
      function TEST (line 93) | TEST(UniqHashTableTest, Reset) {
      function TEST (line 102) | TEST(UniqHashTableTest, ReqId) {

FILE: monolith/native_training/data/kernels/internal/value_filter_by_feature.cc
  type tensorflow (line 23) | namespace tensorflow {
    type monolith_tf (line 24) | namespace monolith_tf {
      type internal (line 25) | namespace internal {
        function Status (line 100) | Status FeatureValueFilter::EnsureLoadFilterValues(tensorflow::Env*...

FILE: monolith/native_training/data/kernels/internal/value_filter_by_feature.h
  function namespace (line 24) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/value_filter_by_line_id.cc
  type tensorflow (line 23) | namespace tensorflow {
    type monolith_tf (line 24) | namespace monolith_tf {
      type internal (line 25) | namespace internal {
        function Status (line 99) | Status LineIdValueFilter::EnsureLoadFilterValues(tensorflow::Env *...

FILE: monolith/native_training/data/kernels/internal/value_filter_by_line_id.h
  function namespace (line 23) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/internal/value_filter_test.cc
  type tensorflow (line 25) | namespace tensorflow {
    type monolith_tf (line 26) | namespace monolith_tf {
      type internal (line 27) | namespace internal {
        function TEST (line 32) | TEST(LineIdValueFilter, Int) {
        function TEST (line 59) | TEST(LineIdValueFilter, IntArray) {
        function TEST (line 85) | TEST(LineIdValueFilter, Float) {
        function TEST (line 115) | TEST(LineIdValueFilter, String) {

FILE: monolith/native_training/data/kernels/item_pool_kernels.cc
  type tensorflow (line 40) | namespace tensorflow {
    type monolith_tf (line 41) | namespace monolith_tf {
      type AsyncPack (line 45) | struct AsyncPack {
        method AsyncPack (line 46) | AsyncPack(OpKernelContext* p_ctx, ItemPoolResource* p_pool,
      function Status (line 73) | Status ItemPoolResource::Add(
      function Status (line 87) | Status ItemPoolResource::Save(WritableFile* ostream, int shard_index,
      function Status (line 115) | Status ItemPoolResource::Restore(RandomAccessFile* istream, int64 bu...
      function get_index_and_worker_num (line 191) | void get_index_and_worker_num(int* index, int* worker_num) {
      class ItemPoolCreateOp (line 216) | class ItemPoolCreateOp : public ResourceOpKernel<ItemPoolResource> {
        method ItemPoolCreateOp (line 218) | explicit ItemPoolCreateOp(OpKernelConstruction* ctx) : ResourceOpK...
        method TF_EXCLUSIVE_LOCKS_REQUIRED (line 226) | TF_EXCLUSIVE_LOCKS_REQUIRED(mu_) override {
      class ItemPoolRandomFillOp (line 235) | class ItemPoolRandomFillOp : public OpKernel {
        method ItemPoolRandomFillOp (line 237) | explicit ItemPoolRandomFillOp(OpKernelConstruction* ctx) : OpKerne...
        method Compute (line 239) | void Compute(OpKernelContext* ctx) override {
        method GenNamedFeature (line 256) | void GenNamedFeature(NamedFeature* nf) {
        method GenItemFeatures (line 267) | void GenItemFeatures(internal::ItemFeatures* item) {
      class ItemPoolCheckOp (line 280) | class ItemPoolCheckOp : public OpKernel {
        method ItemPoolCheckOp (line 282) | explicit ItemPoolCheckOp(OpKernelConstruction* ctx) : OpKernel(ctx) {
        method Compute (line 288) | void Compute(OpKernelContext* ctx) override {
        method GetRestoreFileName (line 320) | std::string GetRestoreFileName(OpKernelContext* ctx, int shard_ind...
      class ItemPoolSaveOp (line 357) | class ItemPoolSaveOp : public AsyncOpKernel {
        method ItemPoolSaveOp (line 359) | explicit ItemPoolSaveOp(OpKernelConstruction* ctx) : AsyncOpKernel...
        method ComputeAsync (line 365) | void ComputeAsync(OpKernelContext* ctx, DoneCallback done) override {
        method GetSaveFileName (line 391) | std::string GetSaveFileName(int shard_index) {
        method WorkerThread (line 399) | void WorkerThread(int shard_index, AsyncPack* p) {
        method Status (line 407) | Status SaveOneShard(int shard_index, AsyncPack* p) {
        method Cleanup (line 429) | void Cleanup(AsyncPack* p) {
      class ItemPoolRestoreOp (line 443) | class ItemPoolRestoreOp : public AsyncOpKernel {
        method ItemPoolRestoreOp (line 445) | explicit ItemPoolRestoreOp(OpKernelConstruction* ctx) : AsyncOpKer...
        method ComputeAsync (line 452) | void ComputeAsync(OpKernelContext* ctx, DoneCallback done) override {
        method WorkerThread (line 474) | void WorkerThread(int shard_index, AsyncPack* p) {
        method Status (line 482) | Status RestoreOneShard(int shard_index, AsyncPack* p) {
        method Cleanup (line 500) | void Cleanup(AsyncPack* p) {
        method FindLastNumber (line 513) | int FindLastNumber(std::vector<std::string> const &files, OpKernel...
        method FindFuzzyCkptNumber (line 529) | int FindFuzzyCkptNumber(const std::vector<std::string>& files) {
        method GetRestoreFileName (line 551) | std::string GetRestoreFileName(OpKernelContext* ctx, int shard_ind...

FILE: monolith/native_training/data/kernels/item_pool_kernels.h
  function namespace (line 24) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/kafka_kernels.cc
  type tensorflow (line 34) | namespace tensorflow {
    type monolith_tf (line 35) | namespace monolith_tf {
      class KafkaEventCb (line 54) | class KafkaEventCb : public RdKafka::EventCb {
        method KafkaEventCb (line 56) | KafkaEventCb() : run_(true) {}
        method run (line 58) | bool run() { return run_; }
        method event_cb (line 60) | void event_cb(RdKafka::Event& event) {
      class KafkaRebalanceCb (line 94) | class KafkaRebalanceCb : public RdKafka::RebalanceCb {
        method KafkaRebalanceCb (line 96) | KafkaRebalanceCb() : run_(true) {}
        method run (line 98) | bool run() { return run_; }
        method rebalance_cb (line 100) | void rebalance_cb(RdKafka::KafkaConsumer* consumer, RdKafka::Error...
      class KafkaGroupReadableResource (line 146) | class KafkaGroupReadableResource : public ResourceBase {
        method KafkaGroupReadableResource (line 148) | explicit KafkaGroupReadableResource(Env* env) : env_(env) {}
        method Status (line 157) | virtual Status Init(const std::vector<std::string>& topics,
        class CurPBIteratorHandler (line 301) | class CurPBIteratorHandler {
          type CurOutput (line 303) | struct CurOutput : public PBIteratorWithDataFormatTransBaseOutput {
          method Status (line 310) | Status HandleReaderNextStauts(const Status& s, const tstring& re...
          method Status (line 325) | Status HandleReaderNextStauts(const Status& s, const TResult& re...
          method Status (line 342) | Status HandleResult(TResult&& result, CurOutput* output) {
          method Status (line 346) | Status HandleResult(tstring&& serialized, CurOutput* output) {
          method Status (line 351) | virtual Status HandleResult(Example&& exa_pb, CurOutput* output) {
          method Status (line 356) | virtual Status HandleResult(Instance&& ins_pb, CurOutput* output) {
          method Status (line 361) | virtual Status HandleResult(ExampleBatch&& eb_pb, CurOutput* out...
        method Status (line 367) | Status Next(const int64 index, const int64 message_poll_timeout,
        method string (line 499) | string DebugString() const override { return "KafkaBaseResource"; }
      class KafkaGroupReadableInitOp (line 518) | class KafkaGroupReadableInitOp
        method KafkaGroupReadableInitOp (line 521) | explicit KafkaGroupReadableInitOp(OpKernelConstruction* context)
        method Compute (line 540) | void Compute(OpKernelContext* context) override {
        method TF_EXCLUSIVE_LOCKS_REQUIRED (line 562) | TF_EXCLUSIVE_LOCKS_REQUIRED(mu_) override {
      class KafkaGroupReadableNextOp (line 575) | class KafkaGroupReadableNextOp : public OpKernel {
        method KafkaGroupReadableNextOp (line 577) | explicit KafkaGroupReadableNextOp(OpKernelConstruction* context,
        method Compute (line 583) | void Compute(OpKernelContext* context) override {
      class KafkaGroupReadableNextOpV2 (line 629) | class KafkaGroupReadableNextOpV2 : public KafkaGroupReadableNextOp {
        method KafkaGroupReadableNextOpV2 (line 631) | explicit KafkaGroupReadableNextOpV2(OpKernelConstruction* context)

FILE: monolith/native_training/data/kernels/label_normalization_kernel.cc
  type tensorflow (line 30) | namespace tensorflow {
    type monolith_tf (line 31) | namespace monolith_tf {
      class LabelNormalizationOp (line 39) | class LabelNormalizationOp : public OpKernel {
        method LabelNormalizationOp (line 41) | explicit LabelNormalizationOp(OpKernelConstruction *context)
        method Compute (line 58) | void Compute(OpKernelContext *context) override {

FILE: monolith/native_training/data/kernels/label_upper_bound_kernel.cc
  type tensorflow (line 30) | namespace tensorflow {
    type monolith_tf (line 31) | namespace monolith_tf {
      class LabelUpperBoundOp (line 39) | class LabelUpperBoundOp : public OpKernel {
        method LabelUpperBoundOp (line 41) | explicit LabelUpperBoundOp(OpKernelConstruction *context)
        method Compute (line 53) | void Compute(OpKernelContext *context) override {

FILE: monolith/native_training/data/kernels/map_id_kernels.cc
  type tensorflow (line 23) | namespace tensorflow {
    type monolith_tf (line 24) | namespace monolith_tf {
      class MapIdOp (line 28) | class MapIdOp : public OpKernel {
        method MapIdOp (line 30) | explicit MapIdOp(OpKernelConstruction *context) : OpKernel(context) {
        method Compute (line 42) | void Compute(OpKernelContext *context) override {

FILE: monolith/native_training/data/kernels/merge_flow_dataset_kernel.cc
  type tensorflow (line 22) | namespace tensorflow {
    type data (line 23) | namespace data {
      type monolith_tf (line 24) | namespace monolith_tf {
        class MergeFlowDatasetOp (line 31) | class MergeFlowDatasetOp : public DatasetOpKernel {
          class Dataset (line 44) | class Dataset
        class MergeFlowDatasetOp::Dataset (line 50) | class MergeFlowDatasetOp::Dataset : public DatasetBase {
          method Dataset (line 52) | Dataset(OpKernelContext *ctx, const std::vector<const DatasetBas...
          method MakeIteratorInternal (line 71) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
          method DataTypeVector (line 77) | const DataTypeVector &output_dtypes() const override {
          method string (line 85) | string DebugString() const override {
          method Status (line 89) | Status InputDatasets(
          method Status (line 97) | Status CheckExternalState() const override {
          method SetContainer (line 108) | void SetContainer(const std::string &container) { container_ = c...
          method GetContainer (line 110) | std::string GetContainer() const { return container_; }
          method Status (line 113) | Status AsGraphDefInternal(SerializationContext *ctx,
          class Iterator (line 148) | class Iterator : public DatasetIterator<Dataset> {
            method Iterator (line 150) | explicit Iterator(const Params &params)
            method TF_LOCKS_EXCLUDED (line 170) | TF_LOCKS_EXCLUDED(mu_) {
            method Status (line 176) | Status Initialize(IteratorContext *ctx) override {
            method Status (line 205) | Status GetNextInternal(IteratorContext *ctx,
            method CreateNode (line 260) | std::shared_ptr<model::Node> CreateNode(
            method Status (line 265) | Status SaveInternal(SerializationContext *ctx,
            method Status (line 270) | Status RestoreInternal(IteratorContext *ctx,
            method TF_EXCLUSIVE_LOCKS_REQUIRED (line 290) | TF_EXCLUSIVE_LOCKS_REQUIRED(*mu_) {
            method PrefetchThread (line 306) | void PrefetchThread(const std::shared_ptr<IteratorContext> &ct...

FILE: monolith/native_training/data/kernels/multi_label_gen_kernel.cc
  type tensorflow (line 29) | namespace tensorflow {
    type monolith_tf (line 30) | namespace monolith_tf {
      class MultiLabelGenOp (line 38) | class MultiLabelGenOp : public OpKernel {
        method MultiLabelGenOp (line 40) | explicit MultiLabelGenOp(OpKernelConstruction *context) : OpKernel...
        method Compute (line 84) | void Compute(OpKernelContext *context) override {
        method LineId (line 135) | static LineId *GetLineId(Tensor *output_tensor, bool is_instance) {
        method FindMostPriorAction (line 158) | bool FindMostPriorAction(const Action &actions, int64_t *action) {
        method GetHeadFlag (line 181) | std::string GetHeadFlag(const LineId &line_id) {

FILE: monolith/native_training/data/kernels/negative_gen_dataset_kernel.cc
  type tensorflow (line 39) | namespace tensorflow {
    type data (line 40) | namespace data {
      type monolith_tf (line 41) | namespace monolith_tf {
        class InnerIterator (line 86) | class InnerIterator {
          method InnerIterator (line 88) | InnerIterator(IteratorBase *input_impl, ItemPoolResource *resource,
          method Status (line 177) | Status GetNext(IteratorContext *ctx, std::vector<Tensor> *out_te...
          method Status (line 246) | Status MaybeGetNextRealInstance(IteratorContext *ctx) {
          method T (line 264) | inline T *GetCurrent() {
          method LineId (line 269) | inline const LineId *GetLineId() {
          method Label (line 281) | inline const Label *GetLabel() {
          method IsPositive (line 293) | bool IsPositive() {
          method Cacheable (line 318) | inline bool Cacheable(bool is_positive) {
          method Emitable (line 334) | inline bool Emitable(bool is_positive) {
          method GetGidAndChannelId (line 338) | std::pair<uint64_t, uint64_t> GetGidAndChannelId() {
          method SetInstanceWeight (line 394) | void SetInstanceWeight(Tensor *tensor, float instance_weight) {
          method SaveToCache (line 404) | void SaveToCache(bool is_positive) {
          method SetLabelAndLineId (line 455) | void SetLabelAndLineId(T *neg, uint64_t item_id) {
          method BuildNegativeTensor (line 471) | bool BuildNegativeTensor(IteratorContext *ctx, Tensor *res) {
          method FindMostPriorAction (line 544) | bool FindMostPriorAction(const Action &actions, int64_t *action) {
          method NeedEasyNeg (line 567) | bool NeedEasyNeg(float easy_hard_ratio) {
        class InstanceNegativeGenDatasetOp::Dataset (line 619) | class InstanceNegativeGenDatasetOp::Dataset : public DatasetBase {
          method Dataset (line 621) | Dataset(OpKernelContext *ctx, const DatasetBase *input, int32 ne...
          method MakeIteratorInternal (line 683) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
          method DataTypeVector (line 689) | const DataTypeVector &output_dtypes() const override {
          method string (line 697) | string DebugString() const override {
          method Status (line 701) | Status InputDatasets(
          method Status (line 707) | Status CheckExternalState() const override {
          method Status (line 712) | Status AsGraphDefInternal(SerializationContext *ctx,
          class Iterator (line 824) | class Iterator : public DatasetIterator<Dataset> {
            method Iterator (line 826) | explicit Iterator(const Params &params)
            method Status (line 836) | Status Initialize(IteratorContext *ctx) override {
            method Status (line 856) | Status GetNextInternal(IteratorContext *ctx,
            method CreateNode (line 869) | std::shared_ptr<model::Node> CreateNode(
            method Status (line 874) | Status SaveInternal(SerializationContext *ctx,
            method Status (line 885) | Status RestoreInternal(IteratorContext *ctx,

FILE: monolith/native_training/data/kernels/negative_gen_dataset_kernel.h
  function namespace (line 22) | namespace data {

FILE: monolith/native_training/data/kernels/parquet_dataset_kernel.cc
  type tensorflow (line 24) | namespace tensorflow {
    type data (line 25) | namespace data {
      type monolith_tf (line 26) | namespace monolith_tf {
        class ParquetDatasetOp (line 32) | class ParquetDatasetOp : public DatasetOpKernel {
          method ParquetDatasetOp (line 42) | explicit ParquetDatasetOp(OpKernelConstruction* ctx) : DatasetOp...
          method MakeDataset (line 51) | void MakeDataset(OpKernelContext* ctx, DatasetBase** output) ove...
          class Dataset (line 74) | class Dataset : public DatasetBase {
            method Dataset (line 76) | explicit Dataset(OpKernelContext* ctx, tstring file_name,
            method MakeIteratorInternal (line 88) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
            method DataTypeVector (line 94) | const DataTypeVector& output_dtypes() const override {
            method string (line 112) | string DebugString() const override { return "ParquetDatasetOp...
            method Status (line 114) | Status CheckExternalState() const override { return Status::OK...
            method Status (line 117) | Status AsGraphDefInternal(SerializationContext* ctx,
            class Iterator (line 144) | class Iterator : public DatasetIterator<Dataset> {
              method Iterator (line 146) | explicit Iterator(const Params& params)
              method Status (line 149) | Status GetNextInternal(IteratorContext* ctx,
              method Status (line 223) | Status GetNextExample(Example& example, bool* end_of_sequenc...
              method Status (line 235) | Status GetNextExampleBatch(ExampleBatch& example_batch,
              method NamedFeatureList (line 250) | NamedFeatureList* AddNamedFeatureList(ExampleBatch& example_...
              method Status (line 261) | Status SaveInternal(SerializationContext* ctx,
              method Status (line 269) | Status RestoreInternal(IteratorContext* ctx,

FILE: monolith/native_training/data/kernels/parse_example_lib.cc
  type tensorflow (line 26) | namespace tensorflow {
    type monolith_tf (line 27) | namespace monolith_tf {
      function Status (line 219) | Status BaseParser::FillFromLineIdByreflection(const LineId &line_id,

FILE: monolith/native_training/data/kernels/parse_example_lib.h
  function namespace (line 30) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/parse_input_data_kernel.cc
  type tensorflow (line 42) | namespace tensorflow {
    type monolith_tf (line 43) | namespace monolith_tf {
      class DataCounter (line 59) | class DataCounter {
        method DataCounter (line 61) | explicit DataCounter(std::string op, bool emit_mini_batch,
        method EmitDataConsumeNumCounter (line 88) | void EmitDataConsumeNumCounter(int batch_size) {
      function Status (line 115) | Status GetParserConfig(OpKernelConstruction *ctx, InstanceParserConf...
      class ParseStringInstancesOp (line 217) | class ParseStringInstancesOp : public OpKernel {
        method ParseStringInstancesOp (line 219) | explicit ParseStringInstancesOp(OpKernelConstruction *ctx) : OpKer...
        method Compute (line 229) | void Compute(OpKernelContext *ctx) override {
        method InstanceParser (line 281) | InstanceParser *GetParse() const { return parser_.get(); }
        method DataCounter (line 282) | DataCounter *GetCounter() const { return counter_.get(); }
      class ParseStringInstancesV2Op (line 290) | class ParseStringInstancesV2Op : public ParseStringInstancesOp {
        method ParseStringInstancesV2Op (line 292) | explicit ParseStringInstancesV2Op(OpKernelConstruction *ctx)
        method Compute (line 295) | void Compute(OpKernelContext *ctx) override {
      class ParseVariantInstancesOp (line 337) | class ParseVariantInstancesOp : public OpKernel {
        method ParseVariantInstancesOp (line 339) | explicit ParseVariantInstancesOp(OpKernelConstruction *ctx) : OpKe...
        method Compute (line 349) | void Compute(OpKernelContext *ctx) override {
      class ParseVariantInstancesV2Op (line 380) | class ParseVariantInstancesV2Op : public ParseVariantInstancesOp {
        method ParseVariantInstancesV2Op (line 382) | explicit ParseVariantInstancesV2Op(OpKernelConstruction *ctx)
        method Compute (line 385) | void Compute(OpKernelContext *ctx) override {
      class ParseStringExamplesOp (line 391) | class ParseStringExamplesOp : public OpKernel {
        method ParseStringExamplesOp (line 393) | explicit ParseStringExamplesOp(OpKernelConstruction *ctx) : OpKern...
        method Compute (line 420) | void Compute(OpKernelContext *ctx) override {
        method ExampleParser (line 451) | ExampleParser *GetParse() const { return parser_.get(); }
        method DataCounter (line 452) | DataCounter *GetCounter() const { return counter_.get(); }
        method FeatureNameMapper (line 453) | FeatureNameMapper *GetFeatureNameMapper() const {
      class ParseStringExamplesV2Op (line 462) | class ParseStringExamplesV2Op : public ParseStringExamplesOp {
        method ParseStringExamplesV2Op (line 464) | explicit ParseStringExamplesV2Op(OpKernelConstruction *ctx)
        method Compute (line 467) | void Compute(OpKernelContext *ctx) override {
      class ParseVariantExamplesOp (line 504) | class ParseVariantExamplesOp : public OpKernel {
        method ParseVariantExamplesOp (line 506) | explicit ParseVariantExamplesOp(OpKernelConstruction *ctx) : OpKer...
        method Compute (line 533) | void Compute(OpKernelContext *ctx) override {
      class ParseVariantExamplesV2Op (line 564) | class ParseVariantExamplesV2Op : public ParseVariantExamplesOp {
        method ParseVariantExamplesV2Op (line 566) | explicit ParseVariantExamplesV2Op(OpKernelConstruction *ctx)
        method Compute (line 569) | void Compute(OpKernelContext *ctx) override {
      class ParseStringExampleBatchOp (line 575) | class ParseStringExampleBatchOp : public OpKernel {
        method ParseStringExampleBatchOp (line 577) | explicit ParseStringExampleBatchOp(OpKernelConstruction *ctx)
        method Compute (line 594) | void Compute(OpKernelContext *ctx) override {
        method ExampleBatchParser (line 615) | ExampleBatchParser *GetParse() const { return parser_.get(); }
        method DataCounter (line 616) | DataCounter *GetCounter() const { return counter_.get(); }
      class ParseStringExampleBatchV2Op (line 623) | class ParseStringExampleBatchV2Op : public ParseStringExampleBatchOp {
        method ParseStringExampleBatchV2Op (line 625) | explicit ParseStringExampleBatchV2Op(OpKernelConstruction *ctx)
        method Compute (line 628) | void Compute(OpKernelContext *ctx) override {
      class ParseVariantExampleBatchOp (line 660) | class ParseVariantExampleBatchOp : public OpKernel {
        method ParseVariantExampleBatchOp (line 662) | explicit ParseVariantExampleBatchOp(OpKernelConstruction *ctx)
        method Compute (line 679) | void Compute(OpKernelContext *ctx) override {
      class ParseVariantExampleBatchV2Op (line 698) | class ParseVariantExampleBatchV2Op : public ParseVariantExampleBatch...
        method ParseVariantExampleBatchV2Op (line 700) | explicit ParseVariantExampleBatchV2Op(OpKernelConstruction *ctx)
        method Compute (line 703) | void Compute(OpKernelContext *ctx) override {
      class ParseVariantExampleBatchListOp (line 709) | class ParseVariantExampleBatchListOp : public OpKernel {
        method ParseVariantExampleBatchListOp (line 711) | explicit ParseVariantExampleBatchListOp(OpKernelConstruction *ctx)
        method Compute (line 735) | void Compute(OpKernelContext *ctx) override {

FILE: monolith/native_training/data/kernels/parse_sparse_feature.cc
  type tensorflow (line 24) | namespace tensorflow {
    type monolith_tf (line 25) | namespace monolith_tf {
      function Status (line 259) | Status ShardingSparseFidsOp::CreateOffsetTensor(
      class ShardingSparseFidsOpV2 (line 553) | class ShardingSparseFidsOpV2 : public ShardingSparseFidsOp {
        method ShardingSparseFidsOpV2 (line 555) | explicit ShardingSparseFidsOpV2(OpKernelConstruction *ctx)
      class ShardingSparseFidsOpV3 (line 562) | class ShardingSparseFidsOpV3 : public ShardingSparseFidsOp {
        method ShardingSparseFidsOpV3 (line 564) | explicit ShardingSparseFidsOpV3(OpKernelConstruction *ctx)
      class ShardingSparseFidsOpV4 (line 571) | class ShardingSparseFidsOpV4 : public ShardingSparseFidsOp {
        method ShardingSparseFidsOpV4 (line 573) | explicit ShardingSparseFidsOpV4(OpKernelConstruction *ctx)
      class ShardingSparseFidsOpV5 (line 580) | class ShardingSparseFidsOpV5 : public ShardingSparseFidsOp {
        method ShardingSparseFidsOpV5 (line 582) | explicit ShardingSparseFidsOpV5(OpKernelConstruction *ctx)

FILE: monolith/native_training/data/kernels/parse_sparse_feature.h
  function namespace (line 39) | namespace tensorflow {
  function else (line 530) | else if (feature.has_fid_v2_list()) {
  type TaskContext2 (line 735) | struct TaskContext2 {
  function else (line 984) | else if (unique_) {

FILE: monolith/native_training/data/kernels/pb_dataset_kernel.cc
  type tensorflow (line 36) | namespace tensorflow {
    type data (line 37) | namespace data {
      type monolith_tf (line 38) | namespace monolith_tf {
        type DsOptions (line 58) | struct DsOptions : DataFormatOptions {
        class PBDatasetOp (line 67) | class PBDatasetOp : public DatasetOpKernel {
          method PBDatasetOp (line 86) | explicit PBDatasetOp(OpKernelConstruction *ctx) : DatasetOpKerne...
          method MakeDataset (line 104) | void MakeDataset(OpKernelContext *ctx, DatasetBase **output) ove...
          class Dataset (line 180) | class Dataset : public DatasetBase {
            method Dataset (line 182) | explicit Dataset(OpKernelContext *ctx, tstring file_name,
            method MakeIteratorInternal (line 212) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
            method DataTypeVector (line 219) | const DataTypeVector &output_dtypes() const override {
            method string (line 230) | string DebugString() const override {
            method Status (line 234) | Status CheckExternalState() const override { return Status::OK...
            method Status (line 237) | Status AsGraphDefInternal(SerializationContext *ctx,
            class Iterator (line 282) | class Iterator : public DatasetIterator<Dataset> {
              method Iterator (line 284) | explicit Iterator(const Params &params, FeatureNameMapper *m...
              class CurPBIteratorHandler (line 303) | class CurPBIteratorHandler {
                type CurOutput (line 305) | struct CurOutput : public PBIteratorWithDataFormatTransBas...
                method Status (line 311) | Status HandleReaderNextStauts(const Status &s, const TResu...
                method Status (line 316) | Status HandleResult(TResult &&result, CurOutput *output) {
                method Status (line 321) | Status HandleResult(tstring &&serialized, CurOutput *outpu...
              method Status (line 328) | Status GetNextInternal(IteratorContext *ctx,
              method CreateNode (line 383) | std::shared_ptr<model::Node> CreateNode(
              method Status (line 388) | Status SaveInternal(SerializationContext *ctx,
              method Status (line 398) | Status RestoreInternal(IteratorContext *ctx,
              method TF_EXCLUSIVE_LOCKS_REQUIRED (line 415) | TF_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
              method TF_EXCLUSIVE_LOCKS_REQUIRED (line 447) | TF_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
              method TF_GUARDED_BY (line 455) | TF_GUARDED_BY(mu_) = 0;

FILE: monolith/native_training/data/kernels/ragged_feature_kernel.cc
  type tensorflow (line 26) | namespace tensorflow {
    type monolith_tf (line 27) | namespace monolith_tf {
      class SwitchSlotOp (line 33) | class SwitchSlotOp : public OpKernel {
        method SwitchSlotOp (line 38) | explicit SwitchSlotOp(OpKernelConstruction *ctx) : OpKernel(ctx) {
        method Compute (line 44) | void Compute(OpKernelContext *context) override {
        method int64 (line 82) | inline int64 convert_v1(int64 fid) {
        method int64 (line 87) | inline int64 convert_v2(int64 fid) {
      type VariantType (line 96) | enum class VariantType { PBExampleBatch, PBExample }
      class SwitchSlotBatchOp (line 99) | class SwitchSlotBatchOp : public OpKernel {
        method SwitchSlotBatchOp (line 102) | explicit SwitchSlotBatchOp(OpKernelConstruction *ctx) : OpKernel(c...
        method Compute (line 135) | void Compute(OpKernelContext *ctx) override {
        method switch_example (line 151) | void switch_example(const Tensor *pb_input, Tensor *pb_output, goo...
        method switch_example_batch (line 161) | void switch_example_batch(const Tensor *pb_input, Tensor *pb_outpu...
        method Example (line 169) | Example *switch_slot(const Example &example, google::protobuf::Are...
        method ExampleBatch (line 221) | ExampleBatch *switch_slot(const ExampleBatch &example_batch, googl...
      class FeatureCombineOp (line 283) | class FeatureCombineOp : public OpKernel {
        method FeatureCombineOp (line 288) | explicit FeatureCombineOp(OpKernelConstruction *ctx) : OpKernel(ct...
        method Compute (line 294) | void Compute(OpKernelContext *context) override {
        method int64 (line 377) | inline int64 convert_v1(int64 fid) {
        method int64 (line 382) | inline int64 convert_v2(int64 fid) {
        method int64 (line 387) | int64 combine(int64 fid1, int64 fid2) {

FILE: monolith/native_training/data/kernels/scatter_label_kernel.cc
  type tensorflow (line 28) | namespace tensorflow {
    type monolith_tf (line 29) | namespace monolith_tf {
      class ScatterLabelOp (line 36) | class ScatterLabelOp : public OpKernel {
        method ScatterLabelOp (line 38) | explicit ScatterLabelOp(OpKernelConstruction *context) : OpKernel(...
        method Compute (line 71) | void Compute(OpKernelContext *context) override {
        method LineId (line 108) | static LineId *GetLineId(Tensor *output_tensor, bool is_instance) {

FILE: monolith/native_training/data/kernels/split_flow_dataset_kernel.cc
  type tensorflow (line 23) | namespace tensorflow {
    type data (line 24) | namespace data {
      type monolith_tf (line 25) | namespace monolith_tf {
        class SplitFlowDatasetOp (line 34) | class SplitFlowDatasetOp : public UnaryDatasetOpKernel {
          class Dataset (line 49) | class Dataset
        class SplitFlowDatasetOp::Dataset (line 56) | class SplitFlowDatasetOp::Dataset : public DatasetBase {
          method Dataset (line 58) | Dataset(OpKernelContext *ctx, const DatasetBase *input,
          method MakeIteratorInternal (line 72) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
          method DataTypeVector (line 78) | const DataTypeVector &output_dtypes() const override {
          method string (line 86) | string DebugString() const override {
          method Status (line 90) | Status InputDatasets(
          method Status (line 96) | Status CheckExternalState() const override {
          method SetContainer (line 100) | void SetContainer(const std::string container) { container_ = co...
          method GetContainer (line 102) | std::string GetContainer() const { return container_; }
          method Status (line 105) | Status AsGraphDefInternal(SerializationContext *ctx,
          class Iterator (line 138) | class Iterator : public DatasetIterator<Dataset> {
            method Iterator (line 140) | explicit Iterator(const Params &params)
            method TF_LOCKS_EXCLUDED (line 150) | TF_LOCKS_EXCLUDED(mu_) {
            method Status (line 156) | Status Initialize(IteratorContext *ctx) override {
            method Status (line 199) | Status GetNextInternal(IteratorContext *ctx,
            method CreateNode (line 241) | std::shared_ptr<model::Node> CreateNode(
            method Status (line 246) | Status SaveInternal(SerializationContext *ctx,
            method Status (line 251) | Status RestoreInternal(IteratorContext *ctx,
            method TF_EXCLUSIVE_LOCKS_REQUIRED (line 273) | TF_EXCLUSIVE_LOCKS_REQUIRED(*mu_) {
            method PrefetchThread (line 286) | void PrefetchThread(const std::shared_ptr<IteratorContext> &ctx,

FILE: monolith/native_training/data/kernels/string_to_variant.cc
  type tensorflow (line 25) | namespace tensorflow {
    type monolith_tf (line 26) | namespace monolith_tf {
      class ReadHelper (line 33) | class ReadHelper {
        method ReadHelper (line 35) | explicit ReadHelper(DataFormatOptions options, bool has_header)
        method Status (line 38) | Status GetData(absl::string_view in, uint8_t* pb_type,
      class StringToVariantOp (line 56) | class StringToVariantOp : public OpKernel {
        method StringToVariantOp (line 61) | explicit StringToVariantOp(OpKernelConstruction* ctx) : OpKernel(c...
        method Compute (line 105) | void Compute(OpKernelContext* context) override {
        method UpdateDatasourceKey (line 159) | void UpdateDatasourceKey(const int64& chnid, uint32_t* data_source...
      class StringToVariantWithTransform (line 174) | class StringToVariantWithTransform : public OpKernel {
        method StringToVariantWithTransform (line 176) | explicit StringToVariantWithTransform(OpKernelConstruction* ctx)
        method Compute (line 238) | void Compute(OpKernelContext* context) override {
        method UpdateDatasourceKey (line 367) | void UpdateDatasourceKey(const int64& chnid, uint32_t* data_source...
      class VariantToZerosOp (line 382) | class VariantToZerosOp : public OpKernel {
        method VariantToZerosOp (line 384) | explicit VariantToZerosOp(OpKernelConstruction* ctx) : OpKernel(ct...
        method Compute (line 386) | void Compute(OpKernelContext* context) override {
      class HasVariantOp (line 399) | class HasVariantOp : public OpKernel {
        method HasVariantOp (line 401) | explicit HasVariantOp(OpKernelConstruction* ctx) : OpKernel(ctx) {
        method Compute (line 412) | void Compute(OpKernelContext* context) override {

FILE: monolith/native_training/data/kernels/tf_example_to_example_kernel.cc
  type tensorflow (line 31) | namespace tensorflow {
    type monolith_tf (line 32) | namespace monolith_tf {
      class TFExampleToExampleOp (line 39) | class TFExampleToExampleOp : public OpKernel {
        method TFExampleToExampleOp (line 41) | explicit TFExampleToExampleOp(OpKernelConstruction* context)
        method Compute (line 105) | void Compute(OpKernelContext* context) override {
        method CalcHashValue (line 203) | int64_t CalcHashValue(float value) const {

FILE: monolith/native_training/data/kernels/transform_dataset_kernel.cc
  type tensorflow (line 39) | namespace tensorflow {
    type data (line 40) | namespace data {
      type monolith_tf (line 41) | namespace monolith_tf {
        class TransformDatasetOp::Dataset (line 61) | class TransformDatasetOp::Dataset : public DatasetBase {
          method Dataset (line 63) | Dataset(OpKernelContext *ctx, const DatasetBase *input,
          method MakeIteratorInternal (line 79) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
          method DataTypeVector (line 85) | const DataTypeVector &output_dtypes() const override {
          method string (line 93) | string DebugString() const override {
          method Status (line 97) | Status InputDatasets(
          method Status (line 103) | Status CheckExternalState() const override {
          method Status (line 108) | Status AsGraphDefInternal(SerializationContext *ctx,
          class Iterator (line 127) | class Iterator : public DatasetIterator<Dataset> {
            method Iterator (line 129) | explicit Iterator(const Params &params)
            method Status (line 132) | Status Initialize(IteratorContext *ctx) override {
            method Status (line 136) | Status GetNextInternal(IteratorContext *ctx,
            method Status (line 154) | Status NextInternalImpl(IteratorContext *ctx,
            method CreateNode (line 181) | std::shared_ptr<model::Node> CreateNode(
            method Status (line 186) | Status SaveInternal(SerializationContext *ctx,
            method Status (line 191) | Status RestoreInternal(IteratorContext *ctx,
            method T (line 198) | inline T *GetCurrent(Tensor *t) {

FILE: monolith/native_training/data/kernels/transform_dataset_kernel.h
  function namespace (line 21) | namespace tensorflow {

FILE: monolith/native_training/data/kernels/variant_filter_kernel.cc
  type tensorflow (line 37) | namespace tensorflow {
    type monolith_tf (line 38) | namespace monolith_tf {
      class SetFilterOp (line 47) | class SetFilterOp : public OpKernel {
        method SetFilterOp (line 49) | explicit SetFilterOp(OpKernelConstruction *context) : OpKernel(con...
        method Compute (line 107) | void Compute(OpKernelContext *context) override {
        method IsInstanceOfInterest (line 118) | bool IsInstanceOfInterest(const Tensor &input_tensor) {
      class FeatureValueFilterOp (line 143) | class FeatureValueFilterOp : public OpKernel {
        method FeatureValueFilterOp (line 145) | explicit FeatureValueFilterOp(OpKernelConstruction *context)
        method Compute (line 167) | void Compute(OpKernelContext *context) override {
      class ValueFilterOp (line 196) | class ValueFilterOp : public OpKernel {
        method ValueFilterOp (line 198) | explicit ValueFilterOp(OpKernelConstruction *context) : OpKernel(c...
        method Compute (line 214) | void Compute(OpKernelContext *context) override {
        method LineId (line 227) | const LineId &GetLineId(const Tensor &input_tensor) {
      class SpecialStrategyOp (line 249) | class SpecialStrategyOp : public OpKernel {
        method SpecialStrategyOp (line 251) | explicit SpecialStrategyOp(OpKernelConstruction *context)
        method Compute (line 290) | void Compute(OpKernelContext *context) override {
        method LineId (line 301) | const LineId &GetLineId(Tensor *input_tensor) {
        method DoCompute (line 323) | bool DoCompute(Tensor *input_tensor) {
      class NegativeSampleOp (line 384) | class NegativeSampleOp : public OpKernel {
        method NegativeSampleOp (line 386) | explicit NegativeSampleOp(OpKernelConstruction *context) : OpKerne...
        method Compute (line 413) | void Compute(OpKernelContext *context) override {
        method GetLabel (line 444) | float GetLabel(const Tensor &input_tensor) {
        method LineId (line 457) | const LineId *GetLineId(const Tensor &input_tensor) {
        method FindMostPriorAction (line 468) | int FindMostPriorAction(const Tensor &input_tensor) {
        method GetNegDropRate (line 483) | float GetNegDropRate(const Tensor &input_tensor) {

FILE: monolith/native_training/data/multi_flow_test.py
  class MultiFlowTest (line 37) | class MultiFlowTest(tf.test.TestCase):
    method setUpClass (line 40) | def setUpClass(cls):
    method tearDownClass (line 72) | def tearDownClass(cls):
    method mk_kgx_header (line 77) | def mk_kgx_header(cls, dataflow: str):
    method test_data_flow (line 86) | def test_data_flow(self):

FILE: monolith/native_training/data/negative_gen_test.py
  function parser (line 73) | def parser(tensor: tf.Tensor):
  class NegativeGenTest (line 95) | class NegativeGenTest(tf.test.TestCase):
    method setUpClass (line 98) | def setUpClass(cls):
    method tearDownClass (line 175) | def tearDownClass(cls):
    method test_dataset_target (line 179) | def test_dataset_target(self):

FILE: monolith/native_training/data/ops/feature_utils_ops.cc
  type tensorflow (line 19) | namespace tensorflow {

FILE: monolith/native_training/data/ops/parse_input_data_ops.cc
  type tensorflow (line 19) | namespace tensorflow {
    type monolith_tf (line 20) | namespace monolith_tf {
      function Status (line 23) | Status ShapeFn(shape_inference::InferenceContext *ctx) {

FILE: monolith/native_training/data/ops/pb_dataset_ops.cc
  type tensorflow (line 20) | namespace tensorflow {

FILE: monolith/native_training/data/parse_sparse_feature_test.py
  class DataOpsV2Test (line 61) | class DataOpsV2Test(tf.test.TestCase):
    method __init__ (line 63) | def __init__(self, *args, **kwargs):
    method fid_v1_to_v2 (line 68) | def fid_v1_to_v2(self, fid_v1):
    method fill_row_split (line 73) | def fill_row_split(self, ps_num, t_cfg, fid_list, row_split):
    method get_pre_output_offset (line 82) | def get_pre_output_offset(self, shard, f_cfg):
    method get_feature_cfg (line 89) | def get_feature_cfg(self, raw_feature_cfgs, ps_num):
    method handle_feature (line 141) | def handle_feature(self, fid_v1_list, fid_v2_list, f_cfg, t_cfg, ps_num,
    method get_offset_result (line 161) | def get_offset_result(self,
    method diff_test (line 242) | def diff_test(self, input_type, parse_func, input_str_list, feature_na...
    method testExampleBatchSharding (line 470) | def testExampleBatchSharding(self):
    method testExampleSharding (line 629) | def testExampleSharding(self):
    method testInstanceSharding (line 792) | def testInstanceSharding(self):
  class DataOpsV2TestFitPreV2 (line 955) | class DataOpsV2TestFitPreV2(DataOpsV2Test):
    method __init__ (line 957) | def __init__(self, *args, **kwargs):
  class DataOpsV2Testv4 (line 962) | class DataOpsV2Testv4(DataOpsV2Test):
    method __init__ (line 964) | def __init__(self, *args, **kwargs):
  class DataOpsV2TestFitPre (line 969) | class DataOpsV2TestFitPre(tf.test.TestCase):  #DataOpsV2Test
    method __init__ (line 971) | def __init__(self, *args, **kwargs):
    method testExampleBatchSharding (line 974) | def testExampleBatchSharding(self):
    method testExampleSharding (line 1262) | def testExampleSharding(self):
    method testInstanceSharding (line 1534) | def testInstanceSharding(self):

FILE: monolith/native_training/data/parsers.py
  class ShardingSparseFidsOpParams (line 52) | class ShardingSparseFidsOpParams:
  class ParserCtx (line 63) | class ParserCtx(object):
    method __init__ (line 68) | def __init__(self, enable_fused_layout: bool = False):
    method __enter__ (line 75) | def __enter__(self):
    method __exit__ (line 80) | def __exit__(self, exc_type, exc_val, exc_tb):
    method sharding_sparse_fids_features_insert_to_features (line 86) | def sharding_sparse_fids_features_insert_to_features(cls, inputs, feat...
    method sharding_sparse_fids_features_parse_from_features (line 101) | def sharding_sparse_fids_features_parse_from_features(cls, features):
    method set (line 119) | def set(self, key, value):
    method get (line 122) | def get(self, key, default_value=None):
  function get_default_parser_ctx (line 127) | def get_default_parser_ctx() -> ParserCtx:
  class ProtoType (line 134) | class ProtoType:
    method get_tf_type (line 163) | def get_tf_type(cls, proto_type: int):
  function _add_dense_features (line 174) | def _add_dense_features(names: List[str], shapes: List[int],
  function _add_extra_features (line 194) | def _add_extra_features(names: List[str], shapes: List[int],
  function _assemble (line 216) | def _assemble(sparse_features,
  function parse_instances (line 242) | def parse_instances(tensor: tf.Tensor,
  function parse_examples (line 357) | def parse_examples(tensor: tf.Tensor,
  function parse_example_batch (line 449) | def parse_example_batch(
  function sharding_sparse_fids (line 549) | def sharding_sparse_fids(tensor: tf.Tensor,
  function sharding_sparse_fids_with_context (line 662) | def sharding_sparse_fids_with_context(sparse_features: tf.Tensor,
  function parse_example_batch_list (line 736) | def parse_example_batch_list(

FILE: monolith/native_training/data/tf_example_to_example_test.py
  function _bytes_feature (line 28) | def _bytes_feature(value):
  function _float_feature (line 36) | def _float_feature(value):
  function _int64_feature (line 41) | def _int64_feature(value):
  function serialize_example (line 47) | def serialize_example(feature0, feature1, feature2, feature3, feature4):
  function get_fid_v2 (line 67) | def get_fid_v2(slot: int, signature: int):
  function calc_hash_value (line 72) | def calc_hash_value(val: float):
  class TFExampleToExampleTest (line 76) | class TFExampleToExampleTest(tf.test.TestCase):
    method test_tf_example_to_example (line 78) | def test_tf_example_to_example(self):

FILE: monolith/native_training/data/training_instance/cc/cached_mem_pool.cc
  type tensorflow (line 19) | namespace tensorflow {
    type monolith_tf (line 20) | namespace monolith_tf {
      function CachedMemPool (line 25) | CachedMemPool* CachedMemPool::init(size_t buffer_size) {

FILE: monolith/native_training/data/training_instance/cc/cached_mem_pool.h
  function namespace (line 22) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/cached_mem_pool_test.cc
  type tensorflow (line 22) | namespace tensorflow {
    type monolith_tf (line 23) | namespace monolith_tf {
      function TEST (line 25) | TEST(CachedMemPoolTest, Basic) {
      function TEST (line 33) | TEST(CachedMemPoolTest, RecursiveAllocation) {

FILE: monolith/native_training/data/training_instance/cc/data_format_options.h
  function namespace (line 20) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/data_read_write_test.cc
  type tensorflow (line 22) | namespace tensorflow {
    type monolith_tf (line 23) | namespace monolith_tf {
      class ReadWriteTest (line 26) | class ReadWriteTest : public ::testing::TestWithParam<DataFormatOpti...
      function Status (line 28) | Status ReadBytes(BaseStreamReaderTmpl<absl::string_view>* reader,
      function TEST_P (line 35) | TEST_P(ReadWriteTest, Basic) {
      function GenerateOptions (line 51) | std::vector<DataFormatOptions> GenerateOptions() {

FILE: monolith/native_training/data/training_instance/cc/data_reader.cc
  type tensorflow (line 31) | namespace tensorflow {
    type monolith_tf (line 32) | namespace monolith_tf {
      function Status (line 66) | Status AddFeature(const std::string &name, const EFeature &efeat,
      function ExtendExample (line 161) | void ExtendExample(Example *pb, FeatureNameMapper *mapper /* = nullp...
      function Status (line 197) | Status ExampleToInstance(Example *example, Instance *instance) {
      function Status (line 208) | Status InstanceToExample(Instance *instance, Example *example) {
      function Status (line 323) | Status ExampleBatchToInstance(ExampleBatch *example_batch, int index,
      function Status (line 339) | Status ExampleBatchToExample(ExampleBatch *example_batch, int index,
      function CreateInputFileStream (line 448) | std::unique_ptr<io::InputStreamInterface> CreateInputFileStream(
      function Status (line 486) | Status InputStreamReader::ReadNBytes(size_t n, tstring *result) {
      function uint64 (line 504) | uint64 InputStreamReader::GetOffset() { return input_stream_->Tell(); }
      function Status (line 506) | Status InputStreamReader::SetOffset(uint64 *offset) {
      function Status (line 532) | Status StdinStreamReader::ReadNBytes(size_t n, tstring *result) {
      function uint64 (line 555) | uint64 StdinStreamReader::GetOffset() { return offset_; }
      function Status (line 557) | Status StdinStreamReader::SetOffset(uint64 *offset) {
      function Status (line 584) | Status PBIterator::next(uint64 *offset, uint32_t *data_source_key,
      function Status (line 593) | Status PBIterator::next(uint64 *offset, Instance *pb) {
      function Status (line 606) | Status PBIterator::next(uint64 *offset, Example *pb) {
      function Status (line 633) | Status PBIterator::next(uint64 *offset, ExampleBatch *pb) {
      function uint64 (line 669) | uint64 PBIterator::GetOffset() { return reader_->GetOffset(); }
      function Status (line 671) | Status PBIterator::SetOffset(uint64 *offset) {
      function Status (line 683) | Status ExampleBatchIterator::next_internal(uint64 *offset) {
      function Status (line 711) | Status ExampleBatchIterator::next(uint64 *offset, uint32_t *data_sou...
      function Status (line 720) | Status ExampleBatchIterator::next(uint64 *offset, ExampleBatch *pb) {
      function Status (line 758) | Status ExampleBatchIterator::next(uint64 *offset, Instance *pb) {
      function Status (line 763) | Status ExampleBatchIterator::next(uint64 *offset, Example *pb) {

FILE: monolith/native_training/data/training_instance/cc/data_reader.h
  function namespace (line 33) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/data_writer.cc
  type tensorflow (line 20) | namespace tensorflow {
    type monolith_tf (line 21) | namespace monolith_tf {
      function Status (line 23) | Status BaseStreamWriter::PrepareHeader() {
      function Status (line 43) | Status BaseStreamWriter::WriteRecord(absl::string_view record) {
      function Status (line 52) | Status StringStreamWriter::Write(absl::string_view s) {

FILE: monolith/native_training/data/training_instance/cc/data_writer.h
  function namespace (line 23) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/fid.h
  function value (line 41) | FIDV1(uint64_t fid_v1_value) : value(fid_v1_value) {}
  function FIDV2 (line 58) | [[nodiscard]] FIDV2 ConvertAsV2() const;
  function namespace (line 108) | namespace std {

FILE: monolith/native_training/data/training_instance/cc/fid_test.cc
  function TEST (line 26) | TEST(FIDTest, FIDV1) {
  function TEST (line 63) | TEST(FIDTest, FIDV2) {
  function TEST (line 108) | TEST(FIDTest, FIDV1ConvertV2) {

FILE: monolith/native_training/data/training_instance/cc/instance_dataset_kernel.cc
  type tensorflow (line 27) | namespace tensorflow {
    type data (line 28) | namespace data {
      type monolith_tf (line 29) | namespace monolith_tf {
        type DsOptions (line 39) | struct DsOptions : DataFormatOptions {
        class InstanceDatasetOp (line 45) | class InstanceDatasetOp : public DatasetOpKernel {
          method InstanceDatasetOp (line 55) | explicit InstanceDatasetOp(OpKernelConstruction* ctx) : DatasetO...
          method MakeDataset (line 61) | void MakeDataset(OpKernelContext* ctx, DatasetBase** output) ove...
          class Dataset (line 79) | class Dataset : public DatasetBase {
            method Dataset (line 81) | explicit Dataset(OpKernelContext* ctx, const tstring& file_name,
            method MakeIteratorInternal (line 87) | std::unique_ptr<IteratorBase> MakeIteratorInternal(
            method DataTypeVector (line 93) | const DataTypeVector& output_dtypes() const override {
            method string (line 104) | string DebugString() const override {
            method Status (line 108) | Status CheckExternalState() const override { return Status::OK...
            method Status (line 111) | Status AsGraphDefInternal(SerializationContext* ctx,
            class Iterator (line 134) | class Iterator : public DatasetIterator<Dataset> {
              method Iterator (line 136) | explicit Iterator(const Params& params)
              method Status (line 139) | Status GetNextInternal(IteratorContext* ctx,
              method CreateNode (line 172) | std::shared_ptr<model::Node> CreateNode(
              method Status (line 177) | Status SaveInternal(SerializationContext* ctx,
              method Status (line 187) | Status RestoreInternal(IteratorContext* ctx,
              method TF_EXCLUSIVE_LOCKS_REQUIRED (line 204) | TF_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
              method TF_EXCLUSIVE_LOCKS_REQUIRED (line 226) | TF_EXCLUSIVE_LOCKS_REQUIRED(mu_) {
              method TF_GUARDED_BY (line 232) | TF_GUARDED_BY(mu_) = 0;

FILE: monolith/native_training/data/training_instance/cc/instance_dataset_ops.cc
  type tensorflow (line 20) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/instance_processor.cc
  function main (line 55) | int main(int argc, char* argv[]) {

FILE: monolith/native_training/data/training_instance/cc/instance_reader.cc
  type Options (line 43) | struct Options {
  function AddOptions (line 58) | void AddOptions(CLI::App& app, Options* options) {
  class InputReader (line 107) | class InputReader {
    method InputReader (line 109) | explicit InputReader(const Options& options, TransformConfig config)
    method ReadOne (line 145) | bool ReadOne(T* output) {
    method ReadOneSerialized (line 193) | bool ReadOneSerialized(std::string* serialized) {
    method Transform (line 204) | typename std::enable_if<std::is_same<T, Instance>::value, void>::type
    method Transform (line 210) | typename std::enable_if<std::is_same<T, Example>::value, void>::type
    method Transform (line 216) | typename std::enable_if<std::is_same<T, ExampleBatch>::value, void>::type
    method IsBufferEmpty (line 222) | typename std::enable_if<std::is_same<T, Instance>::value, bool>::type
    method IsBufferEmpty (line 228) | typename std::enable_if<std::is_same<T, Example>::value, bool>::type
    method IsBufferEmpty (line 234) | typename std::enable_if<std::is_same<T, ExampleBatch>::value, bool>::type
    method PushIntoBuffer (line 240) | typename std::enable_if<std::is_same<T, Instance>::value, void>::type
    method PushIntoBuffer (line 246) | typename std::enable_if<std::is_same<T, Example>::value, void>::type
    method PushIntoBuffer (line 252) | typename std::enable_if<std::is_same<T, ExampleBatch>::value, void>::type
    method PopFromBuffer (line 258) | typename std::enable_if<std::is_same<T, Instance>::value, void>::type
    method PopFromBuffer (line 265) | typename std::enable_if<std::is_same<T, Example>::value, void>::type
    method PopFromBuffer (line 272) | typename std::enable_if<std::is_same<T, ExampleBatch>::value, void>::type
  function ReadAndSerialize (line 293) | void ReadAndSerialize(
  function to_json (line 321) | void to_json(nlohmann::json& j, const FIDV1& fid) { j = fid.DebugString(...
  function to_json (line 323) | void to_json(nlohmann::json& j, const FIDV2& fid) { j = fid.DebugString(...
  function JsonCallbackFn (line 325) | std::string JsonCallbackFn(const std::string& serialized) {
  function main (line 428) | int main(int argc, char* argv[]) {

FILE: monolith/native_training/data/training_instance/cc/instance_utils.cc
  type tensorflow (line 17) | namespace tensorflow {
    type monolith_tf (line 18) | namespace monolith_tf {}

FILE: monolith/native_training/data/training_instance/cc/instance_utils_test.cc
  type tensorflow (line 22) | namespace tensorflow {
    type monolith_tf (line 23) | namespace monolith_tf {
      function TEST (line 28) | TEST(StrToIntegerSet, StrToFIDs) {
      function TEST (line 55) | TEST(StrToIntegerSet, StrToActions) {
      function TEST (line 81) | TEST(IsInstanceOfInterest, Basic) {
      function TEST (line 118) | TEST(CollectFidIntoSet, Instance) {
      function TEST (line 142) | TEST(CollectFidIntoSet, Example) {

FILE: monolith/native_training/data/training_instance/cc/parse_instance_kernel.cc
  type tensorflow (line 26) | namespace tensorflow {
    type monolith_tf (line 27) | namespace monolith_tf {
      function Status (line 32) | Status GetParserConfig(OpKernelConstruction *ctx, InstanceParserConf...
      function ParseInstance (line 101) | bool ParseInstance(const tstring &serialized, Instance *instance) {
      class ParseInstancesOp (line 105) | class ParseInstancesOp : public OpKernel {
        method ParseInstancesOp (line 107) | explicit ParseInstancesOp(OpKernelConstruction *ctx) : OpKernel(ct...
        method Compute (line 116) | void Compute(OpKernelContext *ctx) override {
      class RawParseInstanceOp (line 142) | class RawParseInstanceOp : public OpKernel {
        method RawParseInstanceOp (line 144) | explicit RawParseInstanceOp(OpKernelConstruction *ctx) : OpKernel(...
        method Compute (line 161) | void Compute(OpKernelContext *ctx) override {

FILE: monolith/native_training/data/training_instance/cc/parse_instance_lib.cc
  type tensorflow (line 27) | namespace tensorflow {
    type monolith_tf (line 28) | namespace monolith_tf {
      type InstanceParserSpec (line 38) | struct InstanceParserSpec : InstanceParserConfig {
        method InstanceParserSpec (line 39) | explicit InstanceParserSpec(const InstanceParserConfig &config)
        method Status (line 42) | Status Init() {
      class RaggedTensorProcessor (line 98) | class RaggedTensorProcessor {
        method RaggedTensorProcessor (line 100) | explicit RaggedTensorProcessor(const InstanceParserSpec *spec)
        method InstanceParserSpec (line 112) | const InstanceParserSpec &spec() const { return spec_; }
        method IterateFidFeatures (line 116) | void IterateFidFeatures(const Instance &instance, Func func) {
      class RegularRaggedTensorProcessor (line 146) | class RegularRaggedTensorProcessor : public RaggedTensorProcessor {
        method RegularRaggedTensorProcessor (line 148) | explicit RegularRaggedTensorProcessor(const InstanceParserSpec *spec)
        method Status (line 151) | Status ParseRaggedTensors(OpKernelContext *ctx,
      class ConcatRaggedTensorProcessor (line 197) | class ConcatRaggedTensorProcessor : public RaggedTensorProcessor {
        method ConcatRaggedTensorProcessor (line 199) | explicit ConcatRaggedTensorProcessor(const InstanceParserSpec *spec)
        method Status (line 202) | Status ParseRaggedTensors(OpKernelContext *ctx,
      class InstanceParser::Impl (line 239) | class InstanceParser::Impl {
        method Impl (line 241) | explicit Impl(const InstanceParserConfig &config) : spec_(config) {
        method Status (line 256) | Status Init() { return spec_.Init(); }
        method Status (line 258) | Status Parse(OpKernelContext *ctx, absl::Span<const Instance> inst...
        method Status (line 273) | Status FillFloatFeatures(OpKernelContext *ctx,
        method Status (line 327) | Status FillInt64Features(OpKernelContext *ctx,
        method Status (line 366) | Status FillStringFeatures(OpKernelContext *ctx,
        method Status (line 401) | Status ParseFloatTensors(OpKernelContext *ctx,
        method Status (line 474) | Status ParseInt64Tensors(OpKernelContext *ctx,
        method Status (line 565) | Status ParseStringTensors(OpKernelContext *ctx,
        method TensorShape (line 606) | TensorShape GetBatched1DShape(int batch_size, int64 dim) {
      function Status (line 624) | Status InstanceParser::Init() { return impl_->Init(); }
      function Status (line 626) | Status InstanceParser::Parse(OpKernelContext *ctx,

FILE: monolith/native_training/data/training_instance/cc/parse_instance_lib.h
  function namespace (line 23) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/parse_instance_ops.cc
  type tensorflow (line 18) | namespace tensorflow {
    type monolith_tf (line 19) | namespace monolith_tf {
      function IsUnsetHandle (line 22) | bool IsUnsetHandle(shape_inference::DimensionHandle handle) {
      function GetBatched1D (line 26) | shape_inference::ShapeHandle GetBatched1D(
      function Status (line 36) | Status SetParseInstanceShape(shape_inference::InferenceContext *ctx,

FILE: monolith/native_training/data/training_instance/cc/pb_variant.cc
  type tensorflow (line 20) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/pb_variant.h
  function namespace (line 22) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/reader_util.cc
  type tensorflow (line 19) | namespace tensorflow {
    type monolith_tf (line 20) | namespace monolith_tf {
      function to_json (line 22) | void to_json(nlohmann::json& j, const FeatureNameMapperIdInfo& info) {

FILE: monolith/native_training/data/training_instance/cc/reader_util.h
  function slot_id_v1 (line 34) | inline int slot_id_v1(uint64_t fid) { return fid >> 54; }
  function slot_id_v2 (line 36) | inline int slot_id_v2(uint64_t fid) {
  function convert_fid_v1_to_v2 (line 40) | inline uint64_t convert_fid_v1_to_v2(int slot, uint64_t fid) {
  function convert_fid_v1_to_v2 (line 45) | inline uint64_t convert_fid_v1_to_v2(uint64_t fid) {
  function switch_slot_v1 (line 50) | inline uint64_t switch_slot_v1(uint64_t fid, uint64_t slot) {
  function switch_slot_v2 (line 54) | inline uint64_t switch_slot_v2(uint64_t fid, uint64_t slot) {
  function get_max_slot_number (line 58) | inline int get_max_slot_number() { return 1 << 15; }
  function namespace (line 60) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/reader_util_test.cc
  type tensorflow (line 19) | namespace tensorflow {
    type monolith_tf (line 20) | namespace monolith_tf {
      function TEST (line 25) | TEST(ReaderUtilTest, GetSlotID) {
      function TEST (line 38) | TEST(ReaderUtilTest, FeatureNameMapperNormalCase1) {
      function TEST (line 73) | TEST(ReaderUtilTest, FeatureNameMapperNormalCase2) {
      function TEST (line 113) | TEST(ReaderUtilTest, FeatureNameMapperCornerCase1) {
      function TEST (line 148) | TEST(ReaderUtilTest, FeatureNameMapperCornerCase2) {
      function TEST (line 183) | TEST(ReaderUtilTest, FeatureNameMapperCornerCase3) {
      function TEST (line 201) | TEST(ReaderUtilTest, FeatureNameMapperCornerCase4) {

FILE: monolith/native_training/data/training_instance/cc/snappy_inputbuffer.cc
  type tensorflow (line 34) | namespace tensorflow {
    type io (line 35) | namespace io {
      function Status (line 58) | Status ByteSnappyInputBuffer::ReadNBytes(int64 bytes_to_read, tstrin...
      function int64 (line 81) | int64 ByteSnappyInputBuffer::Tell() const { return bytes_read_; }
      function Status (line 83) | Status ByteSnappyInputBuffer::Reset() {
      function Status (line 104) | Status ByteSnappyInputBuffer::Inflate() {
      function Status (line 159) | Status ByteSnappyInputBuffer::ReadBlockLength(uint32* length) {
      function Status (line 182) | Status ByteSnappyInputBuffer::ReadFromFile() {

FILE: monolith/native_training/data/training_instance/cc/snappy_inputbuffer.h
  function namespace (line 46) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/ue_compress.cc
  type tensorflow (line 19) | namespace tensorflow {
    type monolith_tf (line 20) | namespace monolith_tf {

FILE: monolith/native_training/data/training_instance/cc/ue_compress.h
  function namespace (line 23) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/cc/ue_compress_test.cc
  type tensorflow (line 19) | namespace tensorflow {
    type monolith_tf (line 20) | namespace monolith_tf {
      function TEST (line 25) | TEST(UECompressTest, Basic) {

FILE: monolith/native_training/data/training_instance/cc/zstd_inputbuffer.cc
  type tensorflow (line 33) | namespace tensorflow {
    type io (line 34) | namespace io {
      function Status (line 74) | Status MonolithZstdInputStream::Reset() {
      function Status (line 96) | Status MonolithZstdInputStream::ReadNBytes(int64 bytes_to_read,
      function Status (line 126) | Status MonolithZstdInputStream::ReadNBytes(int64 bytes_to_read,
      function Status (line 137) | Status MonolithZstdInputStream::Inflate() {
      function Status (line 154) | Status MonolithZstdInputStream::ReadFromStream() {
      function int64 (line 192) | int64 MonolithZstdInputStream::Tell() const { return bytes_read_; }

FILE: monolith/native_training/data/training_instance/cc/zstd_inputbuffer.h
  function namespace (line 40) | namespace tensorflow {

FILE: monolith/native_training/data/training_instance/python/instance_dataset_op.py
  class _PBInstanceDataset (line 40) | class _PBInstanceDataset(dataset_ops.DatasetSource):
    method __init__ (line 42) | def __init__(self, file_name, use_snappy=False, **kwargs):
    method element_spec (line 61) | def element_spec(self):
  class PBInstanceDatasetV2 (line 65) | class PBInstanceDatasetV2(dataset_ops.DatasetV2):
    method __init__ (line 81) | def __init__(self, file_name, use_snappy=False, **kwargs):
    method _clone (line 100) | def _clone(self, file_name, use_snappy=False, **kwargs):
    method element_spec (line 107) | def element_spec(self):
    method _inputs (line 110) | 
Copy disabled (too large) Download .json
Condensed preview — 1324 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (10,403K chars).
[
  {
    "path": ".bazelrc",
    "chars": 2681,
    "preview": "# Copied from https://github.com/tensorflow/serving/blob/master/.bazelrc\n# Some entries are commented to fit to ByteDanc"
  },
  {
    "path": ".gitignore",
    "chars": 991,
    "preview": "# Ignore .DS_Store\n.DS_Store\nfid_mapping/.DS_Store\nfid_analysis/.DS_Store\n\n# Ignore some test data files\nfid_mapping/tes"
  },
  {
    "path": "LICENSE",
    "chars": 12619,
    "preview": "Copyright 2022 ByteDance and/or its affiliates \n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may"
  },
  {
    "path": "README.md",
    "chars": 1490,
    "preview": " Monolith\n\n## What is it?\n\n[Monolith](https://arxiv.org/abs/2209.07663) is a deep learning framework for large scale rec"
  },
  {
    "path": "WORKSPACE",
    "chars": 10883,
    "preview": "load(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\n\nhttp_archive(\n    name = \"rules_python\",\n    sha25"
  },
  {
    "path": "conf/BUILD",
    "chars": 180,
    "preview": "package(\n    default_visibility = [\"//visibility:public\"],\n)\nfilegroup(\n    name = \"serving\",\n    srcs = glob([\n        "
  },
  {
    "path": "deploy/.dockerignore",
    "chars": 151,
    "preview": "# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file\n# Ignore all files which are not go typ"
  },
  {
    "path": "deploy/.gitignore",
    "chars": 367,
    "preview": "\n# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\nbin\ntestbin/*\n\n# Test binary, build with `go test -"
  },
  {
    "path": "deploy/.golangci.yaml",
    "chars": 4556,
    "preview": "# This file contains all available configuration options\n# with their default values.\n\n# options for analysis running\nru"
  },
  {
    "path": "deploy/Dockerfile",
    "chars": 791,
    "preview": "# Build the manager binary\nFROM golang:1.15 as builder\n\nWORKDIR /workspace\n# Copy the Go Modules manifests\nCOPY go.mod g"
  },
  {
    "path": "deploy/Makefile",
    "chars": 4706,
    "preview": "\n# Image URL to use all building/pushing image targets\nREGISTRY ?= ml-platform-cn-guilin-boe.cr.volces.com/ml-platform\nN"
  },
  {
    "path": "deploy/PROJECT",
    "chars": 334,
    "preview": "domain: volcengine.com\nlayout:\n- go.kubebuilder.io/v3\nprojectName: deploy\nrepo: code.byted.org/data/monolith/deploy\nreso"
  },
  {
    "path": "deploy/README.md",
    "chars": 475,
    "preview": "# 项目介绍\n\n项目初始结构通过kubebuilder(https://github.com/kubernetes-sigs/kubebuilder) 生成\n\nkubebuilder使用文档:https://book.kubebuilder"
  },
  {
    "path": "deploy/api/v1/groupversion_info.go",
    "chars": 1223,
    "preview": "/*\nCopyright 2023.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in "
  },
  {
    "path": "deploy/api/v1/mlservice_types.go",
    "chars": 5864,
    "preview": "/*\nCopyright 2023.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in "
  },
  {
    "path": "deploy/api/v1/zz_generated.deepcopy.go",
    "chars": 6575,
    "preview": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright 2023.\n\nLicensed under the Apache License,"
  },
  {
    "path": "deploy/build.sh",
    "chars": 75,
    "preview": "#!/bin/bash\n\nmkdir output\ncd deploy && make build\ncp bin/manager ../output\n"
  },
  {
    "path": "deploy/config/crd/bases/mlplatform.volcengine.com_mlservices.yaml",
    "chars": 612337,
    "preview": "\n---\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n  annotations:\n    controller-gen.kube"
  },
  {
    "path": "deploy/config/crd/kustomization.yaml",
    "chars": 922,
    "preview": "# This kustomization.yaml is not intended to be run by itself,\n# since it depends on service name and namespace that are"
  },
  {
    "path": "deploy/config/crd/kustomizeconfig.yaml",
    "chars": 506,
    "preview": "# This file is for teaching kustomize how to substitute name and namespace reference in CRD\nnameReference:\n- kind: Servi"
  },
  {
    "path": "deploy/config/crd/patches/cainjection_in_mlservices.yaml",
    "chars": 299,
    "preview": "# The following patch adds a directive for certmanager to inject CA into the CRD\napiVersion: apiextensions.k8s.io/v1\nkin"
  },
  {
    "path": "deploy/config/crd/patches/webhook_in_mlservices.yaml",
    "chars": 362,
    "preview": "# The following patch enables a conversion webhook for the CRD\napiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceD"
  },
  {
    "path": "deploy/config/default/kustomization.yaml",
    "chars": 2538,
    "preview": "# Adds namespace to all resources.\nnamespace: monolith-system\n\n# Value of this field is prepended to the\n# names of all "
  },
  {
    "path": "deploy/config/default/manager_auth_proxy_patch.yaml",
    "chars": 823,
    "preview": "# This patch inject a sidecar container which is a HTTP proxy for the\n# controller manager, it performs RBAC authorizati"
  },
  {
    "path": "deploy/config/default/manager_config_patch.yaml",
    "chars": 478,
    "preview": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: controller-manager\n  namespace: system\nspec:\n  template:\n    spec"
  },
  {
    "path": "deploy/config/manager/controller_manager_config.yaml",
    "chars": 259,
    "preview": "apiVersion: controller-runtime.sigs.k8s.io/v1alpha1\nkind: ControllerManagerConfig\nhealth:\n  healthProbeBindAddress: :808"
  },
  {
    "path": "deploy/config/manager/kustomization.yaml",
    "chars": 393,
    "preview": "resources:\n- manager.yaml\n\ngeneratorOptions:\n  disableNameSuffixHash: true\n\nconfigMapGenerator:\n- files:\n  - controller_"
  },
  {
    "path": "deploy/config/manager/manager.yaml",
    "chars": 1190,
    "preview": "apiVersion: v1\nkind: Namespace\nmetadata:\n  labels:\n    control-plane: controller-manager\n  name: system\n---\napiVersion: "
  },
  {
    "path": "deploy/config/prometheus/kustomization.yaml",
    "chars": 26,
    "preview": "resources:\n- monitor.yaml\n"
  },
  {
    "path": "deploy/config/prometheus/monitor.yaml",
    "chars": 491,
    "preview": "\n# Prometheus Monitor Service (Metrics)\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  labels:\n  "
  },
  {
    "path": "deploy/config/rbac/auth_proxy_client_clusterrole.yaml",
    "chars": 150,
    "preview": "apiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: metrics-reader\nrules:\n- nonResourceURLs:\n  "
  },
  {
    "path": "deploy/config/rbac/auth_proxy_role.yaml",
    "chars": 280,
    "preview": "apiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: proxy-role\nrules:\n- apiGroups:\n  - authenti"
  },
  {
    "path": "deploy/config/rbac/auth_proxy_role_binding.yaml",
    "chars": 268,
    "preview": "apiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: proxy-rolebinding\nroleRef:\n  apiGrou"
  },
  {
    "path": "deploy/config/rbac/auth_proxy_service.yaml",
    "chars": 268,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  labels:\n    control-plane: controller-manager\n  name: controller-manager-metric"
  },
  {
    "path": "deploy/config/rbac/kustomization.yaml",
    "chars": 693,
    "preview": "resources:\n# All RBAC will be applied under this service account in\n# the deployment namespace. You may comment out this"
  },
  {
    "path": "deploy/config/rbac/leader_election_role.yaml",
    "chars": 476,
    "preview": "# permissions to do leader election.\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmetadata:\n  name: leader-electi"
  },
  {
    "path": "deploy/config/rbac/leader_election_role_binding.yaml",
    "chars": 274,
    "preview": "apiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBinding\nmetadata:\n  name: leader-election-rolebinding\nroleRef:\n  apiG"
  },
  {
    "path": "deploy/config/rbac/mlservice_editor_role.yaml",
    "chars": 399,
    "preview": "# permissions for end users to edit mlservices.\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  n"
  },
  {
    "path": "deploy/config/rbac/mlservice_viewer_role.yaml",
    "chars": 356,
    "preview": "# permissions for end users to view mlservices.\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  n"
  },
  {
    "path": "deploy/config/rbac/role.yaml",
    "chars": 896,
    "preview": "\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  creationTimestamp: null\n  name: manager-role"
  },
  {
    "path": "deploy/config/rbac/role_binding.yaml",
    "chars": 272,
    "preview": "apiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: manager-rolebinding\nroleRef:\n  apiGr"
  },
  {
    "path": "deploy/config/rbac/service_account.yaml",
    "chars": 93,
    "preview": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: controller-manager\n  namespace: system\n"
  },
  {
    "path": "deploy/config/samples/mlplatform_v1_mlservice.yaml",
    "chars": 3168,
    "preview": "apiVersion: mlplatform.volcengine.com/v1\nkind: MLService\nmetadata:\n  name: mlservice-demo\n  namespace: mlplatform-servic"
  },
  {
    "path": "deploy/controllers/constants.go",
    "chars": 1252,
    "preview": "package controllers\n\nconst (\n\tModuleInference      = \"inference\"\n\tMLPlatformVolcPrefix = \"mlplatform.volcengine.com\"\n)\n\n"
  },
  {
    "path": "deploy/controllers/deployment_handler.go",
    "chars": 8635,
    "preview": "package controllers\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\tmonolithv1 \"code.byted.org/data/monolith/deploy/"
  },
  {
    "path": "deploy/controllers/mlservice_controller.go",
    "chars": 6383,
    "preview": "/*\nCopyright 2023.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in "
  },
  {
    "path": "deploy/controllers/service_handler.go",
    "chars": 5001,
    "preview": "package controllers\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\tmonolithv1 \"code.byted.org/data/monolith/deploy/a"
  },
  {
    "path": "deploy/controllers/status.go",
    "chars": 11373,
    "preview": "package controllers\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\tmonolithv1 \"code.byted.org/data/monolith/deploy/api/v1\"\n\tappsv1 \"k8s.i"
  },
  {
    "path": "deploy/go.mod",
    "chars": 510,
    "preview": "module code.byted.org/data/monolith/deploy\n\ngo 1.15\n\nrequire (\n\tgithub.com/onsi/ginkgo v1.16.5 // indirect\n\tgithub.com/o"
  },
  {
    "path": "deploy/go.sum",
    "chars": 132668,
    "preview": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1"
  },
  {
    "path": "deploy/hack/boilerplate.go.txt",
    "chars": 546,
    "preview": "/*\nCopyright 2023.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in "
  },
  {
    "path": "deploy/main.go",
    "chars": 3424,
    "preview": "/*\nCopyright 2023.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in "
  },
  {
    "path": "deploy/serving/agent.conf",
    "chars": 790,
    "preview": "bzid {{bzid}}\nbase_name {{base_name}}\nbase_path {{base_path}}\nnum_ps {{num_ps}}\nserver_type {{server_type}}\nzk_servers {"
  },
  {
    "path": "deploy/serving/docker/Dockerfile",
    "chars": 11155,
    "preview": "FROM debian:buster-20221219\n\nLABEL maintainer=\"Monolith\"\n\nARG PYPI_SOURCE=https://pypi.tuna.tsinghua.edu.cn/simple\n\n# pr"
  },
  {
    "path": "deploy/serving/docker/assets/bashrc",
    "chars": 3456,
    "preview": "# ~/.bashrc: executed by bash(1) for non-login shells.\n# see /usr/share/doc/bash/examples/startup-files (in the package "
  },
  {
    "path": "deploy/serving/docker/assets/build.sh",
    "chars": 1840,
    "preview": "#!/usr/bin/env bash\nset -ex\n\n# still make python2 as default, but python 3.8 is installed\n\nexport PYTHON_PIP_VERSION=20."
  },
  {
    "path": "deploy/serving/docker/assets/configurator_dumpenv.service",
    "chars": 142,
    "preview": "[Unit]\nDescription=Dump the Docker environment variables\n\n[Service]\nType=oneshot\nExecStart=/root/.system/configurator_du"
  },
  {
    "path": "deploy/serving/docker/assets/configurator_dumpenv.sh",
    "chars": 181,
    "preview": "#!/bin/bash - \n\nxargs -0 bash -c 'printf \"%q\\n\" \"$@\" ; systemctl set-environment \"$@\"' -- \\\n    < /proc/1/environ \\\n    "
  },
  {
    "path": "deploy/serving/docker/assets/pip.conf",
    "chars": 176,
    "preview": "[global]\nindex-url=http://mirrors.aliyun.com/pypi/simple\ntrusted-host=mirrors.aliyun.com\ntimeout = 600\ndisable_pip_versi"
  },
  {
    "path": "deploy/serving/docker/assets/requirements.txt",
    "chars": 1785,
    "preview": "absl-py==0.7.1\nansible==2.2.1.0\nansicolors==1.0.2\nAPScheduler==3.5.1\nasn1crypto==0.24.0\nastor==0.8.0\nbackports.ssl-match"
  },
  {
    "path": "deploy/serving/docker/run",
    "chars": 82,
    "preview": "#! /bin/bash\n\ndocker build --force-rm -t bytedance.monolith_pro.release:v1.0.0 ./\n"
  },
  {
    "path": "deploy/serving/open_source_serving.sh",
    "chars": 2180,
    "preview": "#!/bin/bash\nset -eux\n\nexport SHARD_ID=`expr $MLP_SHARD_ID - 1`\necho \"The SHARD_ID {$SHARD_ID}\"\n\nexport MY_POD_NAME=$MLP_"
  },
  {
    "path": "deploy/serving/scripts/build_serving.sh",
    "chars": 2051,
    "preview": "#!/bin/bash\nset -eux\n\nscript_dir=`dirname $0`\nabs_script_dir=`realpath $script_dir`\n\nuse_gpu=\"${1:-false}\"\n\nrm -rf outpu"
  },
  {
    "path": "deploy/serving/scripts/run_server",
    "chars": 121,
    "preview": "#!/bin/bash\n\n# need env: TCE_PSM, TCE_INTERNAL_IDC, TCE_CLUSTER, SHARD_ID\n# need arg: --conf agent.conf\npython3 agent $@"
  },
  {
    "path": "idl/BUILD",
    "chars": 2526,
    "preview": "load(\"@com_google_protobuf//:protobuf.bzl\", \"cc_proto_library\")\nload(\"@com_google_protobuf//:protobuf.bzl\", \"py_proto_li"
  },
  {
    "path": "idl/matrix/compression/compression.cc",
    "chars": 4942,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "idl/matrix/compression/compression.h",
    "chars": 2169,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "idl/matrix/compression/compression_qtz8mm.cc",
    "chars": 2612,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "idl/matrix/compression/compression_qtz8mm.h",
    "chars": 2115,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "idl/matrix/compression/float16.h",
    "chars": 5749,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "idl/matrix/proto/example.proto",
    "chars": 4546,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "idl/matrix/proto/feature.proto",
    "chars": 1640,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "idl/matrix/proto/line_id.proto",
    "chars": 1342,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "idl/matrix/proto/proto_parser.proto",
    "chars": 1761,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "markdown/demo/AWS-EKS.md",
    "chars": 2472,
    "preview": "# Distributed async training on EKS\n\nTo scale to multiple machines and handle failure recovery, we can utilize container"
  },
  {
    "path": "markdown/demo/BUILD",
    "chars": 905,
    "preview": "load(\"@rules_python//python:defs.bzl\", \"py_binary\", \"py_library\")\n\npackage(default_visibility = [\"//visibility:public\"])"
  },
  {
    "path": "markdown/demo/Batch.md",
    "chars": 5903,
    "preview": "# Movie Ranking Batch Training\n\nThis tutorial demonstrates how to use Monolith to perform a movie ranking task. This tut"
  },
  {
    "path": "markdown/demo/README.md",
    "chars": 343,
    "preview": "# Monolith demo model and tutorials\n\nThis is a 3-part tutorial for building monolith models and launch training. \n\n### ["
  },
  {
    "path": "markdown/demo/Stream.md",
    "chars": 2584,
    "preview": "# Stream training tutorial\n> This tutorial depends on the batching training tutorial. Please read it first if you haven'"
  },
  {
    "path": "markdown/demo/demo_local_runner.py",
    "chars": 2453,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "markdown/demo/demo_model.py",
    "chars": 5112,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "markdown/demo/kafka_producer.py",
    "chars": 1082,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "markdown/demo/kafka_receiver.py",
    "chars": 1638,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "markdown/demo/kafka_utils/add_data_topics.sh",
    "chars": 265,
    "preview": "#!/bin/bash\nsource ./kafka_base.sh\n$KAFKA_PATH/bin/kafka-topics.sh --create --bootstrap-server 127.0.0.1:9092 --replicat"
  },
  {
    "path": "markdown/demo/kafka_utils/delete_topics.sh",
    "chars": 129,
    "preview": "#!/bin/bash\nsource ./kafka_base.sh\n$KAFKA_PATH/bin/kafka-topics.sh --delete --bootstrap-server 127.0.0.1:9092 --topic mo"
  },
  {
    "path": "markdown/demo/kafka_utils/kafka_base.sh",
    "chars": 53,
    "preview": "#!/bin/bash\nexport KAFKA_PATH=$HOME/kafka_2.13-2.8.1\n"
  },
  {
    "path": "markdown/demo/kafka_utils/start_broker.sh",
    "chars": 227,
    "preview": "#!/bin/bash\nsource ./kafka_base.sh\nbash $KAFKA_PATH/bin/zookeeper-server-start.sh -daemon $KAFKA_PATH/config/zookeeper.p"
  },
  {
    "path": "markdown/demo/ml_dataset.py",
    "chars": 2943,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "markdown/input_and_model_fn.md",
    "chars": 3690,
    "preview": "# Monolith `input_fn` and `model_fn`\n\nThis is guide on how to setup `input_fn` and using Monolith's embedding hash table"
  },
  {
    "path": "markdown/primus_demo/README.md",
    "chars": 1426,
    "preview": "# Monolith x Primus Demo\n\n## Setup Primus\n\nFollow the primus quickstart guide to setup the primus baseline virtual machi"
  },
  {
    "path": "markdown/primus_demo/main.sh",
    "chars": 417,
    "preview": "#!/bin/bash\n\nset -ex\n\n# setup env\nexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\nexport LD_LIBRARY_PATH=$LD_LIBRARY_"
  },
  {
    "path": "markdown/primus_demo/monolith.Dockerfile",
    "chars": 308,
    "preview": "FROM hanzhi713/monolith:ubuntu22.04\n\n# Java will be mounted\nENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64\nENV PATH=$JA"
  },
  {
    "path": "markdown/primus_demo/primus_monolith.json",
    "chars": 1853,
    "preview": "{\n    \"name\": \"primus-monolith\",\n    \"files\": [\n      \"/home/ubuntu/monolith/markdown/demo\",\n      \"/home/ubuntu/monolit"
  },
  {
    "path": "markdown/serving.md",
    "chars": 6988,
    "preview": "# Serving\n\n## Understanding Hashtable Ckpt Format\n\n### Export Hashtable Ckpt\n\n```python\nimport tensorflow as tf\n\nfrom mo"
  },
  {
    "path": "monolith/BUILD",
    "chars": 817,
    "preview": "load(\"@rules_python//python:defs.bzl\", \"py_binary\", \"py_library\")\n\npackage(default_visibility = [\"//visibility:public\"])"
  },
  {
    "path": "monolith/__init__.py",
    "chars": 1606,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/BUILD",
    "chars": 9821,
    "preview": "load(\"@com_github_grpc_grpc//bazel:cc_grpc_library.bzl\", \"cc_grpc_library\")\nload(\"@com_github_grpc_grpc//bazel:python_ru"
  },
  {
    "path": "monolith/agent_service/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "monolith/agent_service/agent.conf",
    "chars": 830,
    "preview": "bzid predict_ctr\nbase_name predict_ctr\nbase_path hdfs:///test/data\nnum_ps 10\nserver_type entry\nzk_servers 127.0.0.1:1234"
  },
  {
    "path": "monolith/agent_service/agent.py",
    "chars": 3581,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_base.py",
    "chars": 3113,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_client.py",
    "chars": 7625,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_controller.py",
    "chars": 5415,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_controller_test.py",
    "chars": 3688,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_service.proto",
    "chars": 1576,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "monolith/agent_service/agent_service.py",
    "chars": 6160,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_service_test.py",
    "chars": 4072,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_v1.py",
    "chars": 13246,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_v3.py",
    "chars": 7658,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/agent_v3_test.py",
    "chars": 4129,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/backends.py",
    "chars": 16622,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/backends_test.py",
    "chars": 5371,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/client.py",
    "chars": 4243,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/constants.py",
    "chars": 638,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/data_def.py",
    "chars": 5335,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/data_def_test.py",
    "chars": 1637,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/example_batch.pbtxt",
    "chars": 192011,
    "preview": "named_feature_list {\n  name: \"f_goods_test30_bool\"\n  feature {\n  }\n  feature {\n  }\n  feature {\n    fid_v1_list {\n      v"
  },
  {
    "path": "monolith/agent_service/mocked_tfserving.py",
    "chars": 13922,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/mocked_tfserving_test.py",
    "chars": 3350,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/mocked_zkclient.py",
    "chars": 11291,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/mocked_zkclient_test.py",
    "chars": 3676,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/model_manager.py",
    "chars": 10982,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/model_manager_test.py",
    "chars": 3709,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/profile.sh",
    "chars": 2654,
    "preview": "#! /bin/bash\n\n# set -x\n\n# grpc port: PORT3\ngpu_server_target=\"10.209.87.151:9469\"  # multi \"10.210.92.156:9361,10.198.98"
  },
  {
    "path": "monolith/agent_service/replica_manager.py",
    "chars": 31499,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/replica_manager_test.py",
    "chars": 4713,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/resource_utils.py",
    "chars": 8145,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/resource_utils_test.py",
    "chars": 1264,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/run.py",
    "chars": 1318,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/svr_client.py",
    "chars": 2303,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/test_data/BUILD",
    "chars": 257,
    "preview": "package(default_visibility = [\n    \"//monolith/integration_test:__subpackages__\",\n    \"//monolith/agent_service:__subpac"
  },
  {
    "path": "monolith/agent_service/test_data/inst.dump",
    "chars": 152,
    "preview": "\"root\":\n\"feature\":\n0:\n\"fid\":\n0: \"1\"\n\"name\": \"fc_a\"\n1:\n\"fid\":\n0: \"2\"\n\"name\": \"fc_b\"\n2:\n\"fid\":\n0: \"3\"\n1: \"4\"\nlabel\":\n0: 0\n"
  },
  {
    "path": "monolith/agent_service/test_data/inst.json",
    "chars": 148,
    "preview": "{\n    \"fid\": [\n        12345\n    ],\n    \"label\": [\n        0,\n        1\n    ],\n    \"line_id\": {\n        \"actions\": [\n   "
  },
  {
    "path": "monolith/agent_service/test_data/inst.pbtext",
    "chars": 93,
    "preview": "fid: 1\nfid: 2\nlabel: 0.0\nlabel: 1.0\nline_id {\n  actions: 1\n}\nfeature {\n  name: \"a\"\n  fid: 3\n}"
  },
  {
    "path": "monolith/agent_service/tfs_client.py",
    "chars": 18319,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/tfs_client_test.py",
    "chars": 1593,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/tfs_monitor.py",
    "chars": 11894,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/tfs_monitor_test.py",
    "chars": 6599,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/tfs_wrapper.py",
    "chars": 7322,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/utils.py",
    "chars": 44088,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/utils_test.py",
    "chars": 7201,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/zk_mirror.py",
    "chars": 24146,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/agent_service/zk_mirror_test.py",
    "chars": 7922,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/base_runner.py",
    "chars": 1534,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/common/python/BUILD",
    "chars": 489,
    "preview": "load(\"@rules_python//python:defs.bzl\", \"py_library\")\n\nfilegroup(\n    name = \"libtcmalloc\",\n    srcs = [\"@gperftools//:li"
  },
  {
    "path": "monolith/common/python/mem_profiling.py",
    "chars": 2111,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/BUILD",
    "chars": 4425,
    "preview": "load(\"@pip_deps//:requirements.bzl\", \"requirement\")\nload(\"@rules_python//python:defs.bzl\", \"py_binary\", \"py_library\", \"p"
  },
  {
    "path": "monolith/core/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "monolith/core/auto_checkpoint_feed_hook.py",
    "chars": 15153,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_embedding_host_call.py",
    "chars": 28637,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_embedding_host_call_test.py",
    "chars": 2611,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_embedding_task.py",
    "chars": 27724,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_host_call.py",
    "chars": 6331,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_layer.py",
    "chars": 5531,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_layer_test.py",
    "chars": 1440,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_model_params.py",
    "chars": 891,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_task.py",
    "chars": 3579,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/base_tpu_test.py",
    "chars": 2755,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/core_test_suite.py",
    "chars": 1230,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/dense.py",
    "chars": 7558,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/dense_test.py",
    "chars": 3574,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/feature.py",
    "chars": 22713,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/feature_test.py",
    "chars": 7696,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/host_call.py",
    "chars": 10397,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/hyperparams.py",
    "chars": 14519,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/hyperparams_test.py",
    "chars": 9693,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/mixed_emb_op_comb_nws.py",
    "chars": 18207,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/model.py",
    "chars": 12412,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/model_imports.py",
    "chars": 3913,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/model_registry.py",
    "chars": 5961,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/optimizers.py",
    "chars": 965,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/py_utils.py",
    "chars": 11054,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/testing_utils.py",
    "chars": 8257,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/tpu_variable.py",
    "chars": 6590,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/util.py",
    "chars": 11396,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/util_test.py",
    "chars": 6396,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/core/variance_scaling.py",
    "chars": 6691,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/gpu_runner.py",
    "chars": 8928,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/monolith_workspace.bzl",
    "chars": 1249,
    "preview": "load(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\","
  },
  {
    "path": "monolith/native_training/BUILD",
    "chars": 27576,
    "preview": "load(\"@com_google_protobuf//:protobuf.bzl\", \"py_proto_library\")\nload(\"@pip_deps//:requirements.bzl\", \"requirement\")\nload"
  },
  {
    "path": "monolith/native_training/alert/BUILD",
    "chars": 824,
    "preview": "load(\"@rules_python//python:defs.bzl\", \"py_library\", \"py_test\")\nload(\"@com_google_protobuf//:protobuf.bzl\", \"py_proto_li"
  },
  {
    "path": "monolith/native_training/alert/alert.proto",
    "chars": 1169,
    "preview": "// Copyright 2022 ByteDance and/or its affiliates.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");"
  },
  {
    "path": "monolith/native_training/alert/alert_manager.py",
    "chars": 953,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/alert/alert_manager_test.py",
    "chars": 989,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/barrier_ops.py",
    "chars": 5717,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/barrier_ops_test.py",
    "chars": 3864,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/basic_restore_hook.py",
    "chars": 2016,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/basic_restore_hook_test.py",
    "chars": 4129,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/clip_ops.py",
    "chars": 3290,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/clip_ops_test.py",
    "chars": 4046,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/cluster_manager.py",
    "chars": 6205,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/cluster_manager_test.py",
    "chars": 1266,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/consul.py",
    "chars": 4586,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/consul_test.py",
    "chars": 2014,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/cpu_sync_training_test.py",
    "chars": 14555,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/cpu_training.py",
    "chars": 108372,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/cpu_training_distributed_test_binary.py",
    "chars": 6886,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/cpu_training_test.py",
    "chars": 22533,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  },
  {
    "path": "monolith/native_training/data/BUILD",
    "chars": 9820,
    "preview": "load(\"@rules_python//python:defs.bzl\", \"py_binary\", \"py_library\", \"py_test\")\nload(\"@org_tensorflow//tensorflow:tensorflo"
  },
  {
    "path": "monolith/native_training/data/__init__.py",
    "chars": 1057,
    "preview": "# Copyright 2022 ByteDance and/or its affiliates.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# "
  }
]

// ... and 1124 more files (download for full content)

About this extraction

This page contains the full source code of the bytedance/monolith GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1324 files (26.8 MB), approximately 2.6M tokens, and a symbol index with 8901 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!