2. Azure OpenAI服务资源创建与模型部署
在 Azure 上使用 OpenAI 模型,第一步不是写代码,而是把“资源”和“部署”这两层对象建对。很多初学者把 Azure OpenAI 当成一个可以直接调用的 API 地址,实际上它由三层构成:Azure 订阅提供计费与权限边界,Azure OpenAI 资源是承载模型的容器并决定终结点与网络策略,模型部署才是真正暴露给应用调用的推理端点。理解这三层关系,后续的密钥管理、配额分配和容量规划才不会混乱。
订阅准备:先确认“能不能建”
创建资源前,需要确认三件事。第一,订阅类型是否被支持。Azure OpenAI 通常要求企业协议(EA)、即用即付(Pay-As-You-Go)或 Microsoft 客户协议(MCA)等订阅,免费试用或部分学生订阅可能无法申请。第二,是否已在订阅中注册 Microsoft.CognitiveServices 资源提供程序,未注册时创建会直接失败。第三,访问权限。Azure OpenAI 需要显式申请并获批,未获批的订阅即使能创建资源,也无法在模型目录中看到可部署模型。
权限方面,创建资源需要订阅或资源组级别的 Contributor 角色;如果还要分配角色给应用,则需要 Owner 或 User Access Administrator。建议提前规划资源组,例如按环境划分为 rg-aigw-dev、rg-aigw-prod,避免开发和生产共用同一资源导致配额互相挤占。
资源创建:关键参数决定后续能力
在门户中搜索“Azure OpenAI”并创建时,几个参数需要认真选择:
- 区域(Region):不同区域支持的模型和容量不同。例如
eastus、swedencentral通常模型较全,而部分区域只有有限模型。区域一旦选定不可更改,需按业务延迟和合规要求提前决定。 - 定价层:标准层
S0是唯一可选层,按 Token 计费。 - 网络:可选“所有网络”或“所选网络”。生产环境建议先选“所有网络”完成联调,再切换到私有终结点或限制 IP,避免一开始就因网络隔离导致调试困难。
- 自定义域名与标签:自定义子域名便于识别,标签用于成本归集。
创建完成后,在“密钥和终结点”页可以拿到两个密钥和一个终结点,形如 https://<resource-name>.openai.azure.com/。密钥用于 API Key 认证,但生产环境更推荐用 Microsoft Entra ID(原 Azure AD)配合托管标识,避免密钥泄露和轮换成本。
模型选择:按任务而非按“最强”
模型目录中常见系列包括 GPT-4o、GPT-4o mini、GPT-4 Turbo、GPT-3.5 Turbo,以及嵌入模型 text-embedding-3-small/large、图像模型 DALL·E 等。选择逻辑不是“越强越好”,而是匹配任务:
- 复杂推理、长上下文、多模态输入:优先 GPT-4o 或 GPT-4 Turbo。
- 高并发、低成本分类或摘要:GPT-4o mini 或 GPT-3.5 Turbo 更合适。
- 向量检索:必须使用嵌入模型,且一旦选定维度,后续索引结构需保持一致。
还要注意模型的版本与退役时间。Azure 会为每个模型版本标注生命周期,例如 gpt-4 的某个版本可能在某日期后停止新部署。生产系统应避免硬编码单一版本,而是通过配置管理模型名,便于平滑升级。
部署类型:标准、预配与批处理
模型部署不是简单“选个模型”,部署类型直接决定计费方式、延迟表现和配额模型。常见类型如下:
| 部署类型 | 计费方式 | 适用场景 | 配额单位 |
|---|---|---|---|
| 标准(Standard) | 按 Token 用量 | 大多数在线推理、流量波动大 | TPM/RPM 共享池 |
| 预配(Provisioned) | 按预配吞吐量/小时 | 稳定高负载、低延迟要求 | PTU(预配吞吐量单位) |
| 批处理(Batch) | 按 Token,折扣价 | 离线大批量、可容忍延迟 | 独立批处理配额 |
标准部署使用共享配额,多个部署会竞争同一订阅的区域配额;预配部署则购买专属容量,延迟更稳定但成本固定。批处理适合夜间跑数据,价格更低但结果异步返回。选择时先问:请求是否在线、延迟是否敏感、流量是否可预测。
配额管理:TPM、RPM 与容量规划
配额的核心单位是 TPM(Tokens Per Minute) 和 RPM(Requests Per Minute)。每个订阅在每个区域对每种模型有默认配额,例如某区域 GPT-4o 默认可能是 30 万 TPM。部署时可以为该部署分配一个 TPM 值,所有部署之和不能超过区域配额。
一个实用的估算方法是:先估算单次请求平均 Token 数(输入+输出),再乘以峰值每分钟请求数。例如平均每次 1500 Token、峰值 200 请求/分钟,则约需 30 万 TPM。若配额不足,可在 Azure 门户的“配额”页提交增加申请,说明用途和预期流量。
部署操作与结果判断
在 Azure OpenAI Studio 的“部署”页选择模型、输入部署名(如 chat-prod)、选择部署类型并设置 TPM,确认后状态变为“已成功”。此时可在“操场”中直接测试,或通过终结点调用。判断部署是否可用,可以观察三点:操场能否正常返回、调用是否返回 200、以及“指标”中是否有 Token 消耗。若返回 429,通常是 TPM 或 RPM 超限,需要降低并发或申请提额。