Amazon Bedrock 推理成本优化的工程实践:从定价模型选择到分层架构设计
大模型推理成本是一个工程问题,不是调参问题。核心在于根据任务特征选择合适的计费模式,而不是试图压缩单次推理的 token 数。
Bedrock 定价体系分析
Amazon Bedrock 的定价体系有四个层级,从亚马逊云科技官方定价页面(aws.amazon.com/cn/bedrock/pricing/)可以看到完整细节:
标准套餐:按 token 计费,无承诺。适合请求量不确定的场景。
优先级套餐:额外付费换取优先计算资源,OTPS 延迟缩短最多 25%。适合 SLA 要求严格的生产环境。
弹性套餐:折扣定价换取即时性。非紧急任务的成本优化选项。
批量模式:请求打包提交,响应异步返回 S3。官方数据:比按需推理便宜 50%。适合所有不需要实时响应的任务。
三个具体优化手段
提示缓存
对于有大量重复前缀的请求(系统提示、few-shot 示例、文档上下文),在 Converse API 的 system 参数中标记 cachePoint。
缓存有效期 5 分钟。官方数据:缓存 token 最高 90% 折扣,延迟改善最高 85%。
关键条件:请求频率要足够高(5 分钟内要有匹配请求),否则缓存不断失效,没有收益。
批量推理
把请求打包成 JSONL 文件上传 S3,通过 create_model_invocation_job API 提交。Bedrock 在后台处理完,结果写回 S3。
技术细节:
- 输入格式:每行一个 JSON 对象,包含
recordId和modelInput - 支持的模型包括 Anthropic、Meta、Mistral AI、Amazon 系列
- 任务是异步的,不阻塞其他推理请求
import boto3
bedrock = boto3.client('bedrock', region_name='us-east-1')
response = bedrock.create_model_invocation_job(
jobName='batch-classify-v1',
modelId='amazon.nova-lite-v1:0',
roleArn='arn:aws:iam::123456789012:role/BedrockBatchRole',
inputDataConfig={
's3InputDataConfig': {'s3Uri': 's3://my-bucket/batch/input.jsonl'}
},
outputDataConfig={
's3OutputDataConfig': {'s3Uri': 's3://my-bucket/batch/output/'}
}
)
跨区域推理
不是直接省钱,而是通过分流保证可用性——高峰期不被配额限制卡住。
Amazon Bedrock 提供两种推理配置文件:
- Geographic:请求路由到同地理区域(US/EU/APAC)内负载最低的节点。满足数据驻留合规。
- Global:路由到全球任意支持的商业区域。吞吐量优先。
使用方式:model ID 加地理前缀(如 us.anthropic.claude-sonnet-4-20250514-v1:0),其他代码不变。
分层架构设计
实际生产环境通常是混合工作负载。建议按任务紧急程度分层:
| 层级 | 任务特征 | 定价方案 | 优化手段 |
|---|---|---|---|
| L1 实时 | 用户等待响应 | 标准/优先级 | 提示缓存 + 跨区域 |
| L2 准实时 | 秒级延迟可接受 | 弹性套餐 | 提示缓存 |
| L3 异步 | 分钟/小时级 | 批量模式 | — |
在代码层面,用一个路由层根据请求类型分发到不同通道。不需要复杂的架构改造,本质上就是一个 if-else:实时请求走 Converse API,异步请求攒够一批走 Batch API。
Amazon Bedrock 定价:https://aws.amazon.com/cn/bedrock/pricing/
服务套餐对比:https://aws.amazon.com/cn/bedrock/service-tiers/
跨区域推理:https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html

浙公网安备 33010602011771号