AMD AI Workbench deploy models inference advanced performance autoscaling

Advanced Deployment Options#

When deploying AMD Inference Microservices (AIMs) from the model catalog, you have access to advanced configuration options that allow you to optimize your deployment for specific use cases and requirements.

Performance Metric Selection#

The performance metric option allows you to specify the optimization goal for your model deployment. This setting influences how the AIM container configures itself to best serve your workload.

Available Metrics#

Latency: Prioritizes low end-to-end latency for individual requests. Choose this metric when:

  • You need fast responses for real-time applications

  • User experience depends on quick individual predictions

  • You’re building interactive chatbots or live inference services

Throughput: Prioritizes sustained requests per second. Choose this metric when:

  • You need to process high volumes of requests

  • Batch processing is more important than individual response time

  • You’re running background inference tasks or bulk predictions

How to Select a Metric#

  1. Navigate to the Models page and go to the AIM Catalog tab

  2. Click Deploy on your chosen model

  3. In the deployment drawer, locate the Performance metric section

  4. Select your preferred metric from the dropdown:

    • Latency - Optimize for low response times

    • Throughput - Optimize for high request volume

    • Default - Let the AIM automatically select the best metric based on the model and hardware

Deployment options drawer showing performance metric and autoscaling configuration

Note

If you don’t specify a metric, the AIM will automatically select the most appropriate optimization based on the model type and available hardware. For most use cases, the default selection provides excellent performance.

Performance Metric Impact#

The selected metric affects:

  • Memory allocation strategies

  • Batch processing configurations

  • Cache utilization patterns

  • GPU resource scheduling

Different models may respond differently to metric selection based on their architecture and size. Larger language models typically benefit more from throughput optimization when handling multiple concurrent users, while smaller models may show better results with latency optimization.

Profile Types#

AIM deployments use one of three profile types:

Optimized Profiles:

  • Production-ready and fully supported

  • Recommended for all production workloads

  • Thoroughly tested and validated

  • Automatically selected when available for your configuration

Preview Profiles:

  • Suitable for testing and development

  • May be promoted to optimized in future releases

  • Generally stable but may have minor limitations

  • Automatically used when optimized profiles don’t exist

Unoptimized Profiles:

  • Not recommended for production use

  • May result in significantly subpar performance

  • Useful for testing new hardware or experimental features

  • Automatically used only when no optimized or preview profiles exist

Automatic Profile Selection#

The deployment system automatically handles profile selection based on availability:

When only optimized profiles exist: The deployment proceeds normally with optimal performance. No user action is required.

When only unoptimized profiles exist: The system notifies you that the deployment will use unoptimized profiles before proceeding. This typically occurs with newly released hardware or models that haven’t yet been fully optimized for your configuration.

When both optimized and unoptimized profiles exist:

  • With default metric: The system automatically uses optimized profiles. No notification is shown.

  • With custom metric (Latency or Throughput): If your selected metric is only available in unoptimized profiles, the system notifies you before proceeding. This allows you to choose whether to continue with unoptimized profiles or select a different metric.

The system never requires manual profile type selection. AMD AI Workbench handles optimization level selection automatically based on availability and your configuration.

Viewing Optimization Level#

After deployment, you can verify the optimization level used:

  1. Navigate to the Models page and go to the Deployed Models tab.

  2. Click on your deployed AIM to open the workload detail page.

  3. View the AIM Details section.

The optimization level information shows whether your deployment is using optimized, preview, or unoptimized profiles. This helps you understand expected performance characteristics and plan for future optimizations.

Performance Expectations#

When using unoptimized profiles, you may experience:

  • Higher latency per request

  • Lower throughput (requests per second)

  • Increased resource utilization

  • Less stable performance characteristics

  • Reduced GPU efficiency

These limitations are typically temporary as AMD continues to optimize configurations for new hardware and models. Preview profiles that demonstrate stable performance are regularly promoted to optimized status.

Important

The system always prioritizes optimized profiles when available for your hardware and selected performance metric. Unoptimized profiles are only used when optimized options don’t exist for your specific configuration.

Autoscaling#

Autoscaling automatically adjusts the number of running replicas for your AIM deployment based on real-time demand. This ensures efficient resource utilization while maintaining responsiveness during traffic spikes. Autoscaling is useful when:

  • Your inference workload experiences variable traffic patterns

  • You need to handle unpredictable demand without manual intervention

  • You want to optimize GPU resource utilization across multiple deployments

  • Cost efficiency matters and you want to scale down during low-traffic periods

  • You’re serving production workloads with fluctuating user activity

How Autoscaling Works#

The autoscaling system monitors metrics from your running AIM and adjusts replica counts based on configured thresholds. The system evaluates metrics every 30 seconds and applies a 5-minute cooling period before scaling down to prevent flapping.

Scale-up: When demand exceeds your target threshold, the system creates additional replicas (up to your configured maximum) to handle the increased load.

Scale-down: When demand drops below the threshold and remains low through the cooling period, the system gradually removes replicas (down to your configured minimum) to free resources.

Enabling Autoscaling#

Warning

Autoscaling can only be enabled when initially deploying a model. You cannot enable or disable autoscaling on an existing deployment. Once deployed, you can only modify autoscaling configuration parameters (such as replica ranges and target values) if autoscaling was enabled at deployment time.

For new deployments:

  1. Navigate to the Models page and go to the AIM Catalog tab.

  2. Click Deploy on your chosen model.

  3. In the deployment drawer, locate the Autoscaling section.

  4. Toggle Enable autoscaling to reveal the configuration options (see the deployment drawer screenshot in the Performance Metric Selection section above).

  5. Configure your scaling parameters (see Configuration Parameters below).

  6. Click Deploy to deploy the AIM with autoscaling enabled.

To update autoscaling configuration on existing deployments (only if autoscaling was enabled at deployment time):

  1. Navigate to the Models page and go to the Deployed Models tab.

  2. Click on your deployed AIM to open the workload detail page.

  3. Locate the Autoscaling card.

  4. Click Settings to open the deployment settings drawer.

  5. Adjust your autoscaling configuration parameters as needed.

  6. Click Save to apply the new scaling policy.

Changes to autoscaling configuration on running deployments take effect within approximately 30 seconds.

Note

Configuring autoscaling from AMD AI Workbench supports a limited set of common configuration options. More options can be explored by configuring AIM scaling via CLI/kubectl.

Configuration Parameters#

The autoscaling form provides several parameters to control scaling behavior:

Replica Range

Defines the minimum and maximum number of replicas (1-30):

  • Minimum replicas: The baseline number of replicas that always run, ensuring minimum capacity even during zero traffic. Default is 1.

  • Maximum replicas: The upper limit for scaling, preventing runaway resource consumption during extreme traffic spikes. Default is 3.

A higher minimum guarantees capacity and faster response to sudden traffic increases, while a higher maximum accommodates larger traffic bursts.

Scaling Metric

The vLLM signal that drives scaling decisions:

  • Running requests (default): The number of requests currently being processed by the inference engine. Works well for most workloads and provides stable scaling based on active load.

  • Waiting requests: The number of requests queued and waiting for processing. Reacts proactively before latency degrades, as a growing queue indicates saturation before response times increase.

Choose running requests for stable, reactive scaling. Choose waiting requests for proactive scaling that prevents queue buildup.

Aggregation

How metric values across all pods are combined during each evaluation period:

  • Average (default): Calculates the average metric value across all pods. Best for stable, gradual scaling that responds to overall system load.

  • Maximum: Uses the highest value observed across any pod. Reacts aggressively to peak load on any single replica, ensuring no pod becomes overloaded.

  • Minimum: Uses the lowest value across all pods. Only triggers scale-up when every pod is busy, making it the most conservative option.

For most workloads, average aggregation provides the best balance. Use maximum for latency-sensitive workloads where any pod saturation is unacceptable.

Target Type

How the target value is interpreted for scaling decisions:

  • Absolute value (default): Scales when the total metric across all pods exceeds the target. For example, with a target of 10, scale-up occurs when total running requests exceed 10 regardless of pod count.

  • Average per pod: Scales when the average metric per pod exceeds the target. Normalizes the threshold across the current replica count, maintaining consistent per-replica load targets regardless of how many replicas are running.

Absolute value works well for small deployments with few replicas. Average per pod is typically better for larger deployments or when you want to ensure each replica handles a similar load.

Target Value

The numeric threshold that triggers scaling decisions. Default is 10.

  • Higher values allow more requests per replica before scaling up, maximizing resource utilization but potentially increasing latency

  • Lower values trigger scaling at lighter load, improving responsiveness but using more resources

The optimal target depends on your model size, hardware, and latency requirements. Start with the default and adjust based on observed performance.

Example Configuration#

With the following settings:

  • Replica range: 1-5

  • Scaling metric: Running requests

  • Aggregation: Average

  • Target type: Absolute value

  • Target value: 10

The system scales up when the total number of running requests across all pods exceeds 10, adding replicas until demand decreases or the maximum of 5 replicas is reached. When traffic drops and running requests fall below 10 for the cooling period, replicas are removed down to the minimum of 1.

Monitoring Autoscaling Behavior#

After enabling autoscaling, monitor your deployment’s scaling activity:

  1. Navigate to the Models page and go to the Deployed Models tab

  2. Click on your deployed AIM to open the workload detail page

  3. Locate the Autoscaling card, which displays:

    • Current number of running replicas

    • Active scaling metric and target value

    • Real-time scaling status

The card updates in real time as replicas are added or removed. See Inference Metrics for detailed information about monitoring your deployments.

Warning

Autoscaling works optimally in single-project environments or within a guaranteed quota. When resources are borrowed from other projects, autoscaled pods may be preempted, when other projects reclaim their guaranteed quota.

Updating Autoscaling#

You can update autoscaling configuration parameters on deployments that have autoscaling enabled. This allows you to tune scaling behavior without redeploying. However, you cannot enable autoscaling on a deployment that was created without it, nor can you disable autoscaling on a deployment that has it enabled.

Start with default settings and adjust based on observed behavior:

If replicas scale up too aggressively:

  • Increase the target value to allow more load per replica

  • Switch aggregation from maximum to average

  • Switch from waiting requests to running requests for less reactive scaling

  • Widen the replica range to allow more headroom

If replicas don’t scale up fast enough:

  • Decrease the target value to trigger scaling earlier

  • Switch from running requests to waiting requests for proactive scaling

  • Change aggregation to maximum to react to any pod saturation

  • Consider increasing the minimum replica count for better baseline capacity

If replicas flap (scale up and down repeatedly):

  • Increase the target value to provide more stability margin

  • Use average aggregation instead of maximum

  • Consider increasing the minimum replica count if baseline traffic justifies it

The 5-minute cooling period for scale-down helps prevent flapping, but inappropriate target values or aggregation methods can still cause instability.

Monitoring Deployment Performance#

After deploying with custom options, monitor your deployment’s performance:

  1. Navigate to the Models page and go to the Deployed Models tab

  2. Click on your deployed AIM to open the workload detail page

  3. View the Inference metrics section

Key metrics to watch:

  • Time to First Token: Indicates responsiveness (latency-focused)

  • Throughput: Shows requests per second (throughput-focused)

  • Resource Utilization: Helps identify if configuration is appropriate

See Inference Metrics for detailed information about monitoring your deployments.

Best Practices#

  1. Start with defaults: Use default settings unless you have specific requirements

  2. Be aware of optimization levels: When notified about unoptimized profiles, carefully consider whether to proceed based on your use case (testing vs. production)

  3. Enable autoscaling for variable workloads: Use autoscaling for production deployments with fluctuating traffic to optimize resource utilization

  4. Set appropriate replica minimums: For production workloads, consider setting minimum replicas higher than 1 to ensure baseline capacity and faster response to traffic spikes

  5. Monitor before tuning: Observe autoscaling behavior for at least 24 hours before adjusting configuration parameters

  6. Test thoroughly: When using preview or unoptimized deployments, conduct thorough performance testing before production use

  7. Monitor actively: Keep an eye on metrics to ensure your configuration meets expectations

  8. Check optimization level after deployment: Review the AIM Details section to verify which optimization level is being used

  9. Stay updated: Check release notes for when preview profiles are promoted to optimized

  10. Contact support: Work with AMD support when deploying on new hardware or encountering performance issues

Troubleshooting#

Deployment Shows Unoptimized Profile Notification#

If you receive a notification that only unoptimized profiles are available:

  1. Verify your hardware is supported for this model

  2. If testing or development: Proceed with the unoptimized deployment by confirming the notification

  3. If using a custom performance metric: Try switching to the default metric to see if optimized profiles are available

  4. Check the AIM catalog for alternative models that have optimized profiles for your hardware

  5. Contact AMD support for information about optimization timelines for your hardware configuration

Performance Lower Than Expected#

If your deployed model shows poor performance:

  1. Check if you’re using an unoptimized or preview profile (visible in deployment details)

  2. Try different performance metrics (latency vs throughput)

  3. Review the inference metrics to identify bottlenecks

  4. Ensure you’re using the latest AIM version (check for updates in the catalog)

  5. If autoscaling is enabled, verify that replicas are scaling as expected and consider adjusting the target value or minimum replica count

Autoscaling Not Triggering#

If replicas don’t scale up despite increased load:

  1. Verify autoscaling is enabled in the deployment settings

  2. Check that your target value isn’t too high for the current traffic level

  3. Review the active scaling metric and ensure it aligns with your workload characteristics

  4. Confirm you haven’t reached the maximum replica count

  5. Check the Autoscaling card on the workload detail page for real-time metric values

Replicas Scale Down During Active Traffic#

If replicas are removed while serving requests:

  1. Your target value may be too high, making the system think capacity is excessive

  2. The aggregation method (especially minimum) may not reflect actual load distribution

  3. Consider switching from absolute value to average per pod for better per-replica awareness

  4. Increase the minimum replica count if baseline traffic justifies more capacity