gitextract_mh90caup/ ├── .circleci/ │ ├── README.md │ ├── config.yml │ ├── images/ │ │ ├── Dockerfile.python2.7 │ │ └── Dockerfile.python3.6 │ └── scripts/ │ ├── linux_build.sh │ ├── linux_test_api.sh │ ├── linux_test_benchmark.sh │ ├── linux_test_modelarchiver.sh │ ├── linux_test_perf_regression.sh │ └── linux_test_python.sh ├── .coveragerc ├── .github/ │ └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── LICENSE ├── LICENSE.txt ├── MANIFEST.in ├── PyPiDescription.rst ├── README.md ├── _config.yml ├── benchmarks/ │ ├── README.md │ ├── benchmark.py │ ├── install_dependencies.sh │ ├── jmx/ │ │ ├── concurrentLoadPlan.jmx │ │ ├── concurrentScaleCalls.jmx │ │ ├── graphsGenerator.jmx │ │ ├── imageInputModelPlan.jmx │ │ ├── multipleModelsLoadPlan.jmx │ │ ├── pingPlan.jmx │ │ └── textInputModelPlan.jmx │ ├── lstm_ip.json │ ├── mac_install_dependencies.sh │ ├── noop_ip.txt │ └── upload_results_to_s3.sh ├── ci/ │ ├── Dockerfile.python2.7 │ ├── Dockerfile.python3.6 │ ├── README.md │ ├── buildspec.yml │ ├── dockerd-entrypoint.sh │ └── m2-settings.xml ├── docker/ │ ├── Dockerfile.cpu │ ├── Dockerfile.gpu │ ├── Dockerfile.nightly-cpu │ ├── Dockerfile.nightly-gpu │ ├── README.md │ ├── advanced-dockerfiles/ │ │ ├── Dockerfile.base.nvidia_cu92_ubuntu_16_04.py2_7 │ │ ├── Dockerfile.base.nvidia_cu92_ubuntu_16_04.py2_7.nightly │ │ ├── Dockerfile.base.nvidia_cu92_ubuntu_16_04.py3_6 │ │ ├── Dockerfile.base.nvidia_cu92_ubuntu_16_04.py3_6.nightly │ │ ├── Dockerfile.base.ubuntu_16_04.py2_7 │ │ ├── Dockerfile.base.ubuntu_16_04.py2_7.nightly │ │ ├── Dockerfile.base.ubuntu_16_04.py3_6 │ │ ├── Dockerfile.base.ubuntu_16_04.py3_6.nightly │ │ ├── config.properties │ │ └── dockerd-entrypoint.sh │ ├── advanced_settings.md │ ├── config.properties │ └── dockerd-entrypoint.sh ├── docs/ │ ├── README.md │ ├── batch_inference_with_mms.md │ ├── configuration.md │ ├── custom_service.md │ ├── elastic_inference.md │ ├── images/ │ │ └── helpers/ │ │ └── plugins_sdk_class_uml_diagrams.puml │ ├── inference_api.md │ ├── install.md │ ├── logging.md │ ├── management_api.md │ ├── metrics.md │ ├── migration.md │ ├── mms_endpoint_plugins.md │ ├── mms_on_fargate.md │ ├── model_zoo.md │ ├── rest_api.md │ └── server.md ├── examples/ │ ├── README.md │ ├── densenet_pytorch/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── densenet_service.py │ │ └── index_to_name.json │ ├── gluon_alexnet/ │ │ ├── README.md │ │ ├── gluon_hybrid_alexnet.py │ │ ├── gluon_imperative_alexnet.py │ │ ├── gluon_pretrained_alexnet.py │ │ ├── signature.json │ │ └── synset.txt │ ├── gluon_character_cnn/ │ │ ├── README.md │ │ ├── gluon_crepe.py │ │ ├── signature.json │ │ └── synset.txt │ ├── lstm_ptb/ │ │ ├── README.md │ │ └── lstm_ptb_service.py │ ├── metrics_cloudwatch/ │ │ ├── __init__.py │ │ └── metric_push_example.py │ ├── model_service_template/ │ │ ├── gluon_base_service.py │ │ ├── model_handler.py │ │ ├── mxnet_model_service.py │ │ ├── mxnet_utils/ │ │ │ ├── __init__.py │ │ │ ├── image.py │ │ │ ├── ndarray.py │ │ │ └── nlp.py │ │ ├── mxnet_vision_batching.py │ │ └── mxnet_vision_service.py │ ├── mxnet_vision/ │ │ └── README.md │ ├── sockeye_translate/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── config/ │ │ │ └── config.properties │ │ ├── model_handler.py │ │ ├── preprocessor.py │ │ └── sockeye_service.py │ └── ssd/ │ ├── README.md │ ├── example_outputs.md │ └── ssd_service.py ├── frontend/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle │ ├── cts/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── amazonaws/ │ │ │ └── ml/ │ │ │ └── mms/ │ │ │ └── cts/ │ │ │ ├── Cts.java │ │ │ ├── HttpClient.java │ │ │ └── ModelInfo.java │ │ └── resources/ │ │ └── log4j2.xml │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── modelarchive/ │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── amazonaws/ │ │ │ └── ml/ │ │ │ └── mms/ │ │ │ └── archive/ │ │ │ ├── DownloadModelException.java │ │ │ ├── Hex.java │ │ │ ├── InvalidModelException.java │ │ │ ├── LegacyManifest.java │ │ │ ├── Manifest.java │ │ │ ├── ModelArchive.java │ │ │ ├── ModelException.java │ │ │ ├── ModelNotFoundException.java │ │ │ └── ZipUtils.java │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── amazonaws/ │ │ │ └── ml/ │ │ │ └── mms/ │ │ │ ├── archive/ │ │ │ │ ├── CoverageTest.java │ │ │ │ ├── Exporter.java │ │ │ │ └── ModelArchiveTest.java │ │ │ └── test/ │ │ │ └── TestHelper.java │ │ └── resources/ │ │ └── models/ │ │ ├── custom-return-code/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── service.py │ │ ├── error_batch/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── service.py │ │ ├── init-error/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── invalid_service.py │ │ ├── invalid/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── invalid_service.py │ │ ├── loading-memory-error/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── service.py │ │ ├── logging/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── service.py │ │ ├── noop-no-manifest/ │ │ │ └── service.py │ │ ├── noop-v0.1/ │ │ │ ├── MANIFEST.json │ │ │ ├── noop_service.py │ │ │ └── signature.json │ │ ├── noop-v1.0/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── service.py │ │ ├── noop-v1.0-config-tests/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── service.py │ │ ├── prediction-memory-error/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ └── service.py │ │ └── respheader-test/ │ │ ├── MAR-INF/ │ │ │ └── MANIFEST.json │ │ └── service.py │ ├── server/ │ │ ├── build.gradle │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── amazonaws/ │ │ │ │ └── ml/ │ │ │ │ └── mms/ │ │ │ │ ├── ModelServer.java │ │ │ │ ├── ServerInitializer.java │ │ │ │ ├── http/ │ │ │ │ │ ├── ApiDescriptionRequestHandler.java │ │ │ │ │ ├── BadRequestException.java │ │ │ │ │ ├── ConflictStatusException.java │ │ │ │ │ ├── DescribeModelResponse.java │ │ │ │ │ ├── ErrorResponse.java │ │ │ │ │ ├── HttpRequestHandler.java │ │ │ │ │ ├── HttpRequestHandlerChain.java │ │ │ │ │ ├── InferenceRequestHandler.java │ │ │ │ │ ├── InternalServerException.java │ │ │ │ │ ├── InvalidPluginException.java │ │ │ │ │ ├── InvalidRequestHandler.java │ │ │ │ │ ├── ListModelsResponse.java │ │ │ │ │ ├── ManagementRequestHandler.java │ │ │ │ │ ├── MethodNotAllowedException.java │ │ │ │ │ ├── RequestTimeoutException.java │ │ │ │ │ ├── ResourceNotFoundException.java │ │ │ │ │ ├── ServiceUnavailableException.java │ │ │ │ │ ├── Session.java │ │ │ │ │ ├── StatusResponse.java │ │ │ │ │ └── messages/ │ │ │ │ │ └── RegisterModelRequest.java │ │ │ │ ├── metrics/ │ │ │ │ │ ├── Dimension.java │ │ │ │ │ ├── Metric.java │ │ │ │ │ ├── MetricCollector.java │ │ │ │ │ └── MetricManager.java │ │ │ │ ├── openapi/ │ │ │ │ │ ├── Encoding.java │ │ │ │ │ ├── Info.java │ │ │ │ │ ├── MediaType.java │ │ │ │ │ ├── OpenApi.java │ │ │ │ │ ├── OpenApiUtils.java │ │ │ │ │ ├── Operation.java │ │ │ │ │ ├── Parameter.java │ │ │ │ │ ├── Path.java │ │ │ │ │ ├── PathParameter.java │ │ │ │ │ ├── QueryParameter.java │ │ │ │ │ ├── RequestBody.java │ │ │ │ │ ├── Response.java │ │ │ │ │ └── Schema.java │ │ │ │ ├── servingsdk/ │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ModelServerContext.java │ │ │ │ │ ├── ModelServerModel.java │ │ │ │ │ ├── ModelServerRequest.java │ │ │ │ │ ├── ModelServerResponse.java │ │ │ │ │ ├── ModelWorker.java │ │ │ │ │ └── PluginsManager.java │ │ │ │ ├── util/ │ │ │ │ │ ├── ConfigManager.java │ │ │ │ │ ├── Connector.java │ │ │ │ │ ├── ConnectorType.java │ │ │ │ │ ├── JsonUtils.java │ │ │ │ │ ├── NettyUtils.java │ │ │ │ │ ├── OpenSslKey.java │ │ │ │ │ ├── ServerGroups.java │ │ │ │ │ ├── codec/ │ │ │ │ │ │ ├── CodecUtils.java │ │ │ │ │ │ ├── ModelRequestEncoder.java │ │ │ │ │ │ └── ModelResponseDecoder.java │ │ │ │ │ ├── logging/ │ │ │ │ │ │ └── QLogLayout.java │ │ │ │ │ └── messages/ │ │ │ │ │ ├── BaseModelRequest.java │ │ │ │ │ ├── InputParameter.java │ │ │ │ │ ├── ModelInferenceRequest.java │ │ │ │ │ ├── ModelLoadModelRequest.java │ │ │ │ │ ├── ModelWorkerResponse.java │ │ │ │ │ ├── Predictions.java │ │ │ │ │ ├── RequestInput.java │ │ │ │ │ └── WorkerCommands.java │ │ │ │ └── wlm/ │ │ │ │ ├── BatchAggregator.java │ │ │ │ ├── Job.java │ │ │ │ ├── Model.java │ │ │ │ ├── ModelManager.java │ │ │ │ ├── WorkLoadManager.java │ │ │ │ ├── WorkerInitializationException.java │ │ │ │ ├── WorkerLifeCycle.java │ │ │ │ ├── WorkerState.java │ │ │ │ ├── WorkerStateListener.java │ │ │ │ └── WorkerThread.java │ │ │ └── resources/ │ │ │ └── log4j2.xml │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── amazonaws/ │ │ │ └── ml/ │ │ │ └── mms/ │ │ │ ├── CoverageTest.java │ │ │ ├── ModelServerTest.java │ │ │ ├── TestUtils.java │ │ │ ├── test/ │ │ │ │ └── TestHelper.java │ │ │ └── util/ │ │ │ └── ConfigManagerTest.java │ │ └── resources/ │ │ ├── certs.pem │ │ ├── config.properties │ │ ├── config_test_env.properties │ │ ├── describe_api.json │ │ ├── inference_open_api.json │ │ ├── key.pem │ │ ├── keystore.p12 │ │ └── management_open_api.json │ ├── settings.gradle │ └── tools/ │ ├── conf/ │ │ ├── checkstyle.xml │ │ ├── findbugs-exclude.xml │ │ ├── pmd.xml │ │ └── suppressions.xml │ └── gradle/ │ ├── check.gradle │ ├── formatter.gradle │ └── launcher.gradle ├── mms/ │ ├── .gitignore │ ├── __init__.py │ ├── arg_parser.py │ ├── configs/ │ │ └── sagemaker_config.properties │ ├── context.py │ ├── export_model.py │ ├── metrics/ │ │ ├── __init__.py │ │ ├── dimension.py │ │ ├── metric.py │ │ ├── metric_collector.py │ │ ├── metric_encoder.py │ │ ├── metrics_store.py │ │ ├── process_memory_metric.py │ │ ├── system_metrics.py │ │ └── unit.py │ ├── model_loader.py │ ├── model_server.py │ ├── model_service/ │ │ ├── __init__.py │ │ ├── gluon_vision_service.py │ │ ├── model_service.py │ │ ├── mxnet_model_service.py │ │ └── mxnet_vision_service.py │ ├── model_service_worker.py │ ├── protocol/ │ │ ├── __init__.py │ │ └── otf_message_handler.py │ ├── service.py │ ├── tests/ │ │ ├── README.md │ │ ├── pylintrc │ │ └── unit_tests/ │ │ ├── helper/ │ │ │ ├── __init__.py │ │ │ └── pixel2pixel_service.py │ │ ├── model_service/ │ │ │ ├── dummy_model/ │ │ │ │ ├── MANIFEST.json │ │ │ │ └── dummy_model_service.py │ │ │ ├── test_mxnet_image.py │ │ │ ├── test_mxnet_ndarray.py │ │ │ ├── test_mxnet_nlp.py │ │ │ └── test_service.py │ │ ├── test_beckend_metric.py │ │ ├── test_model_loader.py │ │ ├── test_model_service_worker.py │ │ ├── test_otf_codec_protocol.py │ │ ├── test_utils/ │ │ │ ├── MAR-INF/ │ │ │ │ └── MANIFEST.json │ │ │ ├── dummy_class_model_service.py │ │ │ └── dummy_func_model_service.py │ │ ├── test_version.py │ │ └── test_worker_service.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── mxnet/ │ │ │ ├── __init__.py │ │ │ ├── image.py │ │ │ ├── ndarray.py │ │ │ └── nlp.py │ │ └── timeit_decorator.py │ └── version.py ├── model-archiver/ │ ├── .coveragerc │ ├── LICENSE │ ├── MANIFEST.in │ ├── PyPiDescription.rst │ ├── README.md │ ├── docs/ │ │ └── convert_from_onnx.md │ ├── model_archiver/ │ │ ├── __init__.py │ │ ├── arg_parser.py │ │ ├── manifest_components/ │ │ │ ├── __init__.py │ │ │ ├── engine.py │ │ │ ├── manifest.py │ │ │ ├── model.py │ │ │ └── publisher.py │ │ ├── model_archiver_error.py │ │ ├── model_packaging.py │ │ ├── model_packaging_utils.py │ │ ├── tests/ │ │ │ ├── integ_tests/ │ │ │ │ ├── configuration.json │ │ │ │ ├── resources/ │ │ │ │ │ ├── onnx_model/ │ │ │ │ │ │ ├── model.onnx │ │ │ │ │ │ └── service.py │ │ │ │ │ └── regular_model/ │ │ │ │ │ ├── dir/ │ │ │ │ │ │ └── 1.py │ │ │ │ │ ├── dummy-artifacts.txt │ │ │ │ │ └── service.py │ │ │ │ └── test_integration_model_archiver.py │ │ │ ├── pylintrc │ │ │ └── unit_tests/ │ │ │ ├── test_model_packaging.py │ │ │ ├── test_model_packaging_utils.py │ │ │ └── test_version.py │ │ └── version.py │ └── setup.py ├── performance_regression/ │ └── imageInputModelPlan.jmx.yaml ├── plugins/ │ ├── build.gradle │ ├── endpoints/ │ │ ├── build.gradle │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── software/ │ │ │ └── amazon/ │ │ │ └── ai/ │ │ │ └── mms/ │ │ │ └── plugins/ │ │ │ └── endpoint/ │ │ │ ├── ExecutionParameters.java │ │ │ └── Ping.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── software.amazon.ai.mms.servingsdk.ModelServerEndpoint │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── tools/ │ ├── conf/ │ │ ├── checkstyle.xml │ │ ├── findbugs-exclude.xml │ │ ├── pmd.xml │ │ └── suppressions.xml │ └── gradle/ │ ├── check.gradle │ ├── formatter.gradle │ └── launcher.gradle ├── run_ci_tests.sh ├── run_circleci_tests.py ├── serving-sdk/ │ ├── checkstyle.xml │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── software/ │ │ └── amazon/ │ │ └── ai/ │ │ └── mms/ │ │ └── servingsdk/ │ │ ├── Context.java │ │ ├── Model.java │ │ ├── ModelServerEndpoint.java │ │ ├── ModelServerEndpointException.java │ │ ├── Worker.java │ │ ├── annotations/ │ │ │ ├── Endpoint.java │ │ │ └── helpers/ │ │ │ └── EndpointTypes.java │ │ └── http/ │ │ ├── Request.java │ │ └── Response.java │ └── test/ │ └── java/ │ └── software/ │ └── amazon/ │ └── ai/ │ └── mms/ │ └── servingsdk/ │ └── ModelServerEndpointTest.java ├── setup.py ├── test/ │ ├── README.md │ ├── postman/ │ │ ├── environment.json │ │ ├── https_test_collection.json │ │ ├── inference_api_test_collection.json │ │ ├── inference_data.json │ │ └── management_api_test_collection.json │ ├── regression_tests.sh │ └── resources/ │ ├── certs.pem │ ├── config.properties │ └── key.pem └── tests/ └── performance/ ├── README.md ├── TESTS.md ├── agents/ │ ├── __init__.py │ ├── config.ini │ ├── configuration.py │ ├── metrics/ │ │ └── __init__.py │ ├── metrics_collector.py │ ├── metrics_monitoring_inproc.py │ ├── metrics_monitoring_server.py │ └── utils/ │ ├── __init__.py │ └── process.py ├── pylintrc ├── requirements.txt ├── run_performance_suite.py ├── runs/ │ ├── __init__.py │ ├── compare.py │ ├── context.py │ ├── junit.py │ ├── storage.py │ └── taurus/ │ ├── __init__.py │ ├── reader.py │ └── x2junit.py ├── tests/ │ ├── api_description/ │ │ ├── api_description.jmx │ │ ├── api_description.yaml │ │ └── environments/ │ │ └── xlarge.yaml │ ├── batch_and_single_inference/ │ │ ├── batch_and_single_inference.jmx │ │ ├── batch_and_single_inference.yaml │ │ └── environments/ │ │ └── xlarge.yaml │ ├── batch_inference/ │ │ ├── batch_inference.jmx │ │ ├── batch_inference.yaml │ │ └── environments/ │ │ └── xlarge.yaml │ ├── examples_local_criteria/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── examples_local_criteria.jmx │ │ └── examples_local_criteria.yaml │ ├── examples_local_monitoring/ │ │ ├── examples_local_monitoring.jmx │ │ └── examples_local_monitoring.yaml │ ├── examples_remote_criteria/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── examples_remote_criteria.jmx │ │ └── examples_remote_criteria.yaml │ ├── examples_remote_monitoring/ │ │ ├── examples_remote_monitoring.jmx │ │ └── examples_remote_monitoring.yaml │ ├── examples_starter/ │ │ ├── examples_starter.jmx │ │ └── examples_starter.yaml │ ├── global_config.yaml │ ├── health_check/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── health_check.jmx │ │ └── health_check.yaml │ ├── inference_multiple_models/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── inference_multiple_models.jmx │ │ └── inference_multiple_models.yaml │ ├── inference_multiple_worker/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── inference_multiple_worker.jmx │ │ └── inference_multiple_worker.yaml │ ├── inference_single_worker/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── inference_single_worker.jmx │ │ └── inference_single_worker.yaml │ ├── list_models/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── list_models.jmx │ │ └── list_models.yaml │ ├── model_description/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── model_description.jmx │ │ └── model_description.yaml │ ├── multiple_inference_and_scaling/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── multiple_inference_and_scaling.jmx │ │ └── multiple_inference_and_scaling.yaml │ ├── register_unregister/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── register_unregister.jmx │ │ └── register_unregister.yaml │ ├── register_unregister_multiple/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── register_unregister_multiple.jmx │ │ └── register_unregister_multiple.yaml │ ├── scale_down_workers/ │ │ ├── environments/ │ │ │ └── xlarge.yaml │ │ ├── scale_down_workers.jmx │ │ └── scale_down_workers.yaml │ └── scale_up_workers/ │ ├── environments/ │ │ └── xlarge.yaml │ ├── scale_up_workers.jmx │ └── scale_up_workers.yaml └── utils/ ├── __init__.py ├── fs.py ├── pyshell.py └── timer.py