@aws/ml-container-creator 0.10.0 → 0.12.1
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 +9304 -0
- package/bin/cli.js +2 -0
- package/config/bootstrap-e2e-stack.json +341 -0
- package/config/bootstrap-stack.json +40 -3
- package/config/parameter-schema-v2.json +33 -22
- package/config/tune-catalog.json +1781 -0
- package/infra/ci-harness/buildspec.yml +1 -0
- package/infra/ci-harness/lambda/path-prover/brain.ts +306 -0
- package/infra/ci-harness/lambda/path-prover/write-results.ts +152 -0
- package/infra/ci-harness/lib/ci-harness-stack.ts +851 -7
- package/infra/ci-harness/state-machines/path-prover.asl.json +496 -0
- package/package.json +53 -67
- package/servers/base-image-picker/index.js +121 -121
- package/servers/e2e-status/index.js +297 -0
- package/servers/e2e-status/manifest.json +14 -0
- package/servers/e2e-status/package.json +15 -0
- package/servers/endpoint-picker/LICENSE +202 -0
- package/servers/endpoint-picker/index.js +536 -0
- package/servers/endpoint-picker/manifest.json +14 -0
- package/servers/endpoint-picker/package.json +18 -0
- package/servers/hyperpod-cluster-picker/index.js +125 -125
- package/servers/instance-sizer/index.js +166 -153
- package/servers/instance-sizer/lib/instance-ranker.js +120 -76
- package/servers/instance-sizer/lib/model-resolver.js +61 -61
- package/servers/instance-sizer/lib/quota-resolver.js +113 -113
- package/servers/instance-sizer/lib/vram-estimator.js +31 -31
- package/servers/lib/bedrock-client.js +38 -38
- package/servers/lib/catalogs/instances.json +27 -0
- package/servers/lib/catalogs/model-servers.json +201 -3
- package/servers/lib/custom-validators.js +13 -13
- package/servers/lib/dynamic-resolver.js +4 -4
- package/servers/marketplace-picker/index.js +342 -0
- package/servers/marketplace-picker/manifest.json +14 -0
- package/servers/marketplace-picker/package.json +18 -0
- package/servers/model-picker/index.js +382 -382
- package/servers/region-picker/index.js +56 -56
- package/servers/workload-picker/LICENSE +202 -0
- package/servers/workload-picker/catalogs/workload-profiles.json +67 -0
- package/servers/workload-picker/index.js +171 -0
- package/servers/workload-picker/manifest.json +16 -0
- package/servers/workload-picker/package.json +16 -0
- package/src/app.js +12 -3
- package/src/lib/bootstrap-command-handler.js +609 -15
- package/src/lib/bootstrap-config.js +36 -0
- package/src/lib/bootstrap-profile-manager.js +48 -41
- package/src/lib/ci-register-helpers.js +74 -0
- package/src/lib/config-loader.js +3 -0
- package/src/lib/config-manager.js +7 -0
- package/src/lib/config-validator.js +1 -1
- package/src/lib/cuda-resolver.js +17 -8
- package/src/lib/generated/cli-options.js +319 -314
- package/src/lib/generated/parameter-matrix.js +672 -661
- package/src/lib/generated/validation-rules.js +76 -72
- package/src/lib/path-prover-brain.js +664 -0
- package/src/lib/prompts/infrastructure-prompts.js +2 -2
- package/src/lib/prompts/model-prompts.js +6 -0
- package/src/lib/prompts/project-prompts.js +12 -0
- package/src/lib/secrets-prompt-runner.js +4 -0
- package/src/lib/template-manager.js +1 -1
- package/src/lib/template-variable-resolver.js +87 -1
- package/src/lib/tune-catalog-validator.js +37 -4
- package/templates/Dockerfile +9 -0
- package/templates/code/adapter_sidecar.py +444 -0
- package/templates/code/serve +6 -0
- package/templates/code/serve.d/vllm.ejs +1 -1
- package/templates/do/.benchmark_writer.py +1476 -0
- package/templates/do/.tune_helper.py +982 -57
- package/templates/do/__pycache__/.benchmark_writer.cpython-312.pyc +0 -0
- package/templates/do/adapter +154 -0
- package/templates/do/benchmark +639 -85
- package/templates/do/build +5 -0
- package/templates/do/clean.d/async-inference.ejs +5 -0
- package/templates/do/clean.d/batch-transform.ejs +5 -0
- package/templates/do/clean.d/hyperpod-eks.ejs +5 -0
- package/templates/do/clean.d/managed-inference.ejs +5 -0
- package/templates/do/config +115 -45
- package/templates/do/deploy.d/async-inference.ejs +30 -3
- package/templates/do/deploy.d/batch-transform.ejs +29 -3
- package/templates/do/deploy.d/hyperpod-eks.ejs +4 -0
- package/templates/do/deploy.d/managed-inference.ejs +216 -14
- package/templates/do/lib/endpoint-config.sh +1 -1
- package/templates/do/lib/profile.sh +44 -0
- package/templates/do/optimize +106 -37
- package/templates/do/push +5 -0
- package/templates/do/register +94 -0
- package/templates/do/stage +567 -0
- package/templates/do/submit +7 -0
- package/templates/do/test +14 -0
- package/templates/do/tune +382 -59
- package/templates/do/validate +44 -4
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@amzn/ml-container-creator-workload-picker",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP server that provides named benchmark workload profiles for do/benchmark.",
|
|
5
|
+
"modes": {
|
|
6
|
+
"static": true,
|
|
7
|
+
"smart": false,
|
|
8
|
+
"discover": false
|
|
9
|
+
},
|
|
10
|
+
"catalogs": {
|
|
11
|
+
"workload-profiles": "./catalogs/workload-profiles.json"
|
|
12
|
+
},
|
|
13
|
+
"tool": {
|
|
14
|
+
"name": "get_workload_profile"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@amzn/ml-container-creator-workload-picker",
|
|
3
|
+
"private": true,
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "MCP server that provides named benchmark workload profiles for ML Container Creator. Defines token distributions, concurrency levels, and streaming modes for standardized benchmarking.",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "index.js",
|
|
8
|
+
"license": "Apache-2.0",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "node test.js"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
14
|
+
"zod": "^3.22.0"
|
|
15
|
+
}
|
|
16
|
+
}
|
package/src/app.js
CHANGED
|
@@ -16,7 +16,7 @@ import CommentGenerator from './lib/comment-generator.js';
|
|
|
16
16
|
import ConfigurationManager from './lib/configuration-manager.js';
|
|
17
17
|
import RegistryLoader from './lib/registry-loader.js';
|
|
18
18
|
import { resolvePrefixedEnvVars } from './lib/engine-prefix-resolver.js';
|
|
19
|
-
import { _ensureTemplateVariables, _validateEnvironmentVariables
|
|
19
|
+
import { _ensureTemplateVariables, _validateEnvironmentVariables } from './lib/template-variable-resolver.js';
|
|
20
20
|
import ejs from 'ejs';
|
|
21
21
|
|
|
22
22
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -344,13 +344,15 @@ export async function writeProject(templateDir, destDir, answers, registryConfig
|
|
|
344
344
|
// Exclude do/benchmark when benchmarking is not selected
|
|
345
345
|
if (!answers.includeBenchmark) {
|
|
346
346
|
ignorePatterns.push('**/do/benchmark');
|
|
347
|
+
ignorePatterns.push('**/do/.benchmark_writer.py');
|
|
347
348
|
ignorePatterns.push('**/do/optimize');
|
|
348
349
|
}
|
|
349
350
|
|
|
350
|
-
// Exclude do/adapter
|
|
351
|
+
// Exclude do/adapter, do/adapters/, and adapter sidecar when LoRA is not enabled
|
|
351
352
|
if (!answers.enableLora) {
|
|
352
353
|
ignorePatterns.push('**/do/adapter');
|
|
353
354
|
ignorePatterns.push('**/do/adapters/**');
|
|
355
|
+
ignorePatterns.push('**/code/adapter_sidecar.py');
|
|
354
356
|
}
|
|
355
357
|
|
|
356
358
|
// Exclude tune files when framework is NOT transformers OR deploymentTarget is batch-transform
|
|
@@ -375,6 +377,12 @@ export async function writeProject(templateDir, destDir, answers, registryConfig
|
|
|
375
377
|
ignorePatterns.push('**/do/lib/feedback.sh');
|
|
376
378
|
}
|
|
377
379
|
|
|
380
|
+
// Exclude do/stage when model is already S3-sourced (nothing to stage)
|
|
381
|
+
const modelName = answers.modelName || answers.customModelName || '';
|
|
382
|
+
if (answers.modelSource === 's3' || modelName.startsWith('s3://')) {
|
|
383
|
+
ignorePatterns.push('**/do/stage');
|
|
384
|
+
}
|
|
385
|
+
|
|
378
386
|
// Exclude do/test when hosted-model-endpoint is not selected
|
|
379
387
|
const testTypes = answers.testTypes || [];
|
|
380
388
|
if (!testTypes.includes('hosted-model-endpoint')) {
|
|
@@ -816,7 +824,8 @@ function _setExecutablePermissions(destDir, answers = {}) {
|
|
|
816
824
|
'do/add-ic',
|
|
817
825
|
'do/adapter',
|
|
818
826
|
'do/tune',
|
|
819
|
-
'do/train'
|
|
827
|
+
'do/train',
|
|
828
|
+
'do/stage'
|
|
820
829
|
];
|
|
821
830
|
|
|
822
831
|
const shellScripts = architecture === 'marketplace' ? marketplaceScripts : defaultScripts;
|