@aws/ml-container-creator 0.7.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-THIRD-PARTY +50760 -16218
- package/bin/cli.js +1 -1
- package/infra/ci-harness/buildspec.yml +4 -0
- package/package.json +3 -1
- package/servers/lib/catalogs/instances.json +52 -1275
- package/servers/lib/catalogs/model-servers.json +80 -0
- package/servers/lib/catalogs/models.json +0 -132
- package/servers/lib/catalogs/popular-diffusors.json +1 -110
- package/servers/model-picker/index.js +27 -16
- package/src/app.js +113 -23
- package/src/lib/cli-handler.js +1 -1
- package/src/lib/config-manager.js +39 -2
- package/src/lib/cross-cutting-checker.js +146 -33
- package/src/lib/deployment-config-resolver.js +10 -4
- package/src/lib/e2e-bootstrap.js +227 -0
- package/src/lib/e2e-catalog-validator.js +103 -0
- package/src/lib/e2e-quota-validator.js +135 -0
- package/src/lib/mcp-client.js +16 -1
- package/src/lib/mcp-command-handler.js +10 -2
- package/src/lib/prompt-runner.js +306 -24
- package/src/lib/prompts.js +9 -3
- package/src/lib/template-manager.js +10 -4
- package/src/lib/train-config-parser.js +136 -0
- package/src/lib/train-config-persistence.js +143 -0
- package/src/lib/train-config-validator.js +112 -0
- package/src/lib/train-feedback.js +46 -0
- package/src/lib/train-idempotency.js +97 -0
- package/src/lib/train-request-builder.js +120 -0
- package/src/lib/tune-catalog-validator.js +5 -5
- package/templates/code/serve +2 -2
- package/templates/code/serving.properties +2 -2
- package/templates/diffusors/serve +3 -3
- package/templates/do/.train_build_request.py +141 -0
- package/templates/do/.train_poll_parser.py +135 -0
- package/templates/do/.train_status_parser.py +187 -0
- package/templates/do/.tune_helper.py +2 -2
- package/templates/do/lib/feedback.sh +41 -0
- package/templates/do/register +8 -2
- package/templates/do/test +5 -5
- package/templates/do/train +786 -0
- package/templates/do/training/config.yaml +140 -0
- package/templates/do/training/train.py +463 -0
- package/templates/do/tune +2 -2
- package/templates/marketplace/config +118 -0
- package/templates/marketplace/deploy +890 -0
- package/templates/marketplace/test +453 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# do-framework configuration (marketplace)
|
|
3
|
+
# This file is sourced by all do scripts
|
|
4
|
+
|
|
5
|
+
# Project identification
|
|
6
|
+
export PROJECT_NAME="<%= projectName %>"
|
|
7
|
+
export DEPLOYMENT_CONFIG="marketplace"
|
|
8
|
+
|
|
9
|
+
# Marketplace model package
|
|
10
|
+
export MODEL_PACKAGE_ARN="<%= modelPackageArn %>"
|
|
11
|
+
|
|
12
|
+
# AWS configuration
|
|
13
|
+
export AWS_REGION="<%= awsRegion %>"
|
|
14
|
+
|
|
15
|
+
# Deployment configuration
|
|
16
|
+
export DEPLOYMENT_TARGET="<%= deploymentTarget %>"
|
|
17
|
+
export INSTANCE_TYPE="<%= instanceType %>"
|
|
18
|
+
|
|
19
|
+
<% if (roleArn) { %>
|
|
20
|
+
export ROLE_ARN="<%= roleArn %>"
|
|
21
|
+
<% } %>
|
|
22
|
+
|
|
23
|
+
<% if (deploymentTarget === 'async-inference') { %>
|
|
24
|
+
# Async-specific configuration
|
|
25
|
+
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text 2>/dev/null || echo "UNKNOWN")
|
|
26
|
+
|
|
27
|
+
<% if (asyncS3OutputPath) { %>
|
|
28
|
+
export ASYNC_S3_OUTPUT_PATH="<%= asyncS3OutputPath %>"
|
|
29
|
+
<% } else { %>
|
|
30
|
+
export ASYNC_S3_OUTPUT_PATH="s3://mlcc-async-${ACCOUNT_ID}-${AWS_REGION}/${PROJECT_NAME}/output/"
|
|
31
|
+
<% } %>
|
|
32
|
+
|
|
33
|
+
<% if (asyncSnsSuccessTopic) { %>
|
|
34
|
+
export ASYNC_SNS_SUCCESS_TOPIC="<%= asyncSnsSuccessTopic %>"
|
|
35
|
+
<% } else { %>
|
|
36
|
+
export ASYNC_SNS_SUCCESS_TOPIC="arn:aws:sns:${AWS_REGION}:${ACCOUNT_ID}:ml-container-creator-${PROJECT_NAME}-async-success"
|
|
37
|
+
<% } %>
|
|
38
|
+
|
|
39
|
+
<% if (asyncSnsErrorTopic) { %>
|
|
40
|
+
export ASYNC_SNS_ERROR_TOPIC="<%= asyncSnsErrorTopic %>"
|
|
41
|
+
<% } else { %>
|
|
42
|
+
export ASYNC_SNS_ERROR_TOPIC="arn:aws:sns:${AWS_REGION}:${ACCOUNT_ID}:ml-container-creator-${PROJECT_NAME}-async-error"
|
|
43
|
+
<% } %>
|
|
44
|
+
|
|
45
|
+
<% if (asyncMaxConcurrentInvocations) { %>
|
|
46
|
+
export ASYNC_MAX_CONCURRENT_INVOCATIONS="<%= asyncMaxConcurrentInvocations %>"
|
|
47
|
+
<% } %>
|
|
48
|
+
<% } %>
|
|
49
|
+
|
|
50
|
+
<% if (deploymentTarget === 'batch-transform') { %>
|
|
51
|
+
# Batch Transform configuration
|
|
52
|
+
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text 2>/dev/null || echo "UNKNOWN")
|
|
53
|
+
|
|
54
|
+
<% if (batchInputPath) { %>
|
|
55
|
+
export BATCH_INPUT_PATH="<%= batchInputPath %>"
|
|
56
|
+
<% } else { %>
|
|
57
|
+
export BATCH_INPUT_PATH="s3://mlcc-batch-${ACCOUNT_ID}-${AWS_REGION}/${PROJECT_NAME}/input/"
|
|
58
|
+
<% } %>
|
|
59
|
+
<% if (batchOutputPath) { %>
|
|
60
|
+
export BATCH_OUTPUT_PATH="<%= batchOutputPath %>"
|
|
61
|
+
<% } else { %>
|
|
62
|
+
export BATCH_OUTPUT_PATH="s3://mlcc-batch-${ACCOUNT_ID}-${AWS_REGION}/${PROJECT_NAME}/output/"
|
|
63
|
+
<% } %>
|
|
64
|
+
export BATCH_INSTANCE_COUNT="<%= batchInstanceCount %>"
|
|
65
|
+
export BATCH_SPLIT_TYPE="<%= batchSplitType %>"
|
|
66
|
+
export BATCH_STRATEGY="<%= batchStrategy %>"
|
|
67
|
+
export BATCH_JOIN_SOURCE="<%= batchJoinSource || 'None' %>"
|
|
68
|
+
<% if (batchMaxConcurrentTransforms) { %>
|
|
69
|
+
export BATCH_MAX_CONCURRENT_TRANSFORMS="<%= batchMaxConcurrentTransforms %>"
|
|
70
|
+
<% } %>
|
|
71
|
+
<% if (batchMaxPayloadInMB) { %>
|
|
72
|
+
export BATCH_MAX_PAYLOAD_IN_MB="<%= batchMaxPayloadInMB %>"
|
|
73
|
+
<% } %>
|
|
74
|
+
<% } %>
|
|
75
|
+
|
|
76
|
+
<% if (typeof includeBenchmark !== 'undefined' && includeBenchmark) { %>
|
|
77
|
+
# SageMaker AI Benchmarking configuration
|
|
78
|
+
export BENCHMARK_CONCURRENCY="<%= benchmarkConcurrency %>"
|
|
79
|
+
export BENCHMARK_INPUT_TOKENS_MEAN="<%= benchmarkInputTokensMean %>"
|
|
80
|
+
export BENCHMARK_OUTPUT_TOKENS_MEAN="<%= benchmarkOutputTokensMean %>"
|
|
81
|
+
export BENCHMARK_STREAMING="<%= benchmarkStreaming %>"
|
|
82
|
+
<% if (benchmarkRequestCount) { %>
|
|
83
|
+
export BENCHMARK_REQUEST_COUNT="<%= benchmarkRequestCount %>"
|
|
84
|
+
<% } else { %>
|
|
85
|
+
export BENCHMARK_REQUEST_COUNT=""
|
|
86
|
+
<% } %>
|
|
87
|
+
<% if (benchmarkS3OutputPath) { %>
|
|
88
|
+
export BENCHMARK_S3_OUTPUT_PATH="<%= benchmarkS3OutputPath %>"
|
|
89
|
+
<% } else { %>
|
|
90
|
+
export BENCHMARK_S3_OUTPUT_PATH="s3://mlcc-benchmark-$(aws sts get-caller-identity --query Account --output text)-${AWS_REGION}/${PROJECT_NAME}/"
|
|
91
|
+
<% } %>
|
|
92
|
+
export BENCHMARK_JOB_NAME=""
|
|
93
|
+
export BENCHMARK_WORKLOAD_CONFIG_NAME=""
|
|
94
|
+
<% } %>
|
|
95
|
+
|
|
96
|
+
# Allow environment variable overrides
|
|
97
|
+
export AWS_REGION=${AWS_REGION:-<%= awsRegion %>}
|
|
98
|
+
export INSTANCE_TYPE=${INSTANCE_TYPE:-<%= instanceType %>}
|
|
99
|
+
|
|
100
|
+
# Print configuration summary
|
|
101
|
+
echo "⚙️ Configuration loaded"
|
|
102
|
+
echo " Project: ${PROJECT_NAME}"
|
|
103
|
+
echo " Config: ${DEPLOYMENT_CONFIG}"
|
|
104
|
+
echo " Region: ${AWS_REGION}"
|
|
105
|
+
echo " Model package: ${MODEL_PACKAGE_ARN}"
|
|
106
|
+
echo " Deployment target: ${DEPLOYMENT_TARGET}"
|
|
107
|
+
echo " Instance: ${INSTANCE_TYPE}"
|
|
108
|
+
<% if (deploymentTarget === 'async-inference') { %>
|
|
109
|
+
echo " S3 output: ${ASYNC_S3_OUTPUT_PATH}"
|
|
110
|
+
echo " SNS success: ${ASYNC_SNS_SUCCESS_TOPIC}"
|
|
111
|
+
echo " SNS error: ${ASYNC_SNS_ERROR_TOPIC}"
|
|
112
|
+
<% } else if (deploymentTarget === 'batch-transform') { %>
|
|
113
|
+
echo " Instance count: ${BATCH_INSTANCE_COUNT}"
|
|
114
|
+
echo " S3 input: ${BATCH_INPUT_PATH}"
|
|
115
|
+
echo " S3 output: ${BATCH_OUTPUT_PATH}"
|
|
116
|
+
echo " Split type: ${BATCH_SPLIT_TYPE}"
|
|
117
|
+
echo " Strategy: ${BATCH_STRATEGY}"
|
|
118
|
+
<% } %>
|