<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Openai on Wilson Wu</title><link>https://wilsonwu.me/zh/tags/openai/</link><description>Recent content in Openai on Wilson Wu</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 17 Dec 2025 00:00:00 -0500</lastBuildDate><atom:link href="https://wilsonwu.me/zh/tags/openai/index.xml" rel="self" type="application/rss+xml"/><item><title>图像生成进入平台时代：GPT-Image-1.5 在 Microsoft Foundry 中的应用</title><link>https://wilsonwu.me/zh/blog/2025/azure-openai-gpt-image/</link><pubDate>Wed, 17 Dec 2025 00:00:00 -0500</pubDate><guid>https://wilsonwu.me/zh/blog/2025/azure-openai-gpt-image/</guid><description>&lt;p&gt;&lt;img alt="GPT-Image-1.5" loading="lazy" src="https://wilsonwu.me/zh/blog/2025/azure-openai-gpt-image/0-gpt-image-1.5.png"&gt;&lt;/p&gt;
&lt;p&gt;近年来，生成式 AI 技术迅速演进。在自然语言处理之外，&lt;strong&gt;图像生成与编辑能力成为 AI 创新的重要前沿&lt;/strong&gt;。在这一趋势下，OpenAI 推出了 GPT Image 系列模型，在 Azure OpenAI 服务内同样可用。而其中最新发布的 &lt;strong&gt;GPT-Image-1.5&lt;/strong&gt; 可视为图像生成领域的新旗舰，在性能、效率和可控性方面均有显著提升。&lt;/p&gt;</description><content:encoded><![CDATA[<p><img alt="GPT-Image-1.5" loading="lazy" src="/zh/blog/2025/azure-openai-gpt-image/0-gpt-image-1.5.png"></p>
<p>近年来，生成式 AI 技术迅速演进。在自然语言处理之外，<strong>图像生成与编辑能力成为 AI 创新的重要前沿</strong>。在这一趋势下，OpenAI 推出了 GPT Image 系列模型，在 Azure OpenAI 服务内同样可用。而其中最新发布的 <strong>GPT-Image-1.5</strong> 可视为图像生成领域的新旗舰，在性能、效率和可控性方面均有显著提升。</p>
<h2 id="什么是-gpt-image-15">什么是 GPT-Image-1.5</h2>
<p>GPT-Image-1.5 是 OpenAI 最新发布的<strong>多模态图像生成模型</strong>，属于 GPT Image 系列，目前是效果最佳的版本。与前代（如 GPT-Image-1）相比，它在指令遵循能力、图像质量、生成速度和成本效率方面都有明显提升。</p>
<p>官方定义上，GPT Image 模型是<strong>原生多模态语言模型（natively multimodal），能接收文本和图像输入，并生成图像输出</strong>。在功能上，它不仅支持从纯文本生成图像，还可以对已有图像进行编辑、修改、风格化转换等操作。</p>
<p>简而言之：</p>
<ul>
<li><strong>多模态</strong>：同时理解文本和图像输入。</li>
<li><strong>图像生成与编辑</strong>：支持从文本生成全新图像，也支持对已有图像进行局部修改和增强。</li>
<li><strong>高质量与高效</strong>：相比前代生成更精细、更快速，同时成本更低。</li>
</ul>
<h2 id="核心能力与特点">核心能力与特点</h2>
<h3 id="1-指令遵循及表达精准">1. 指令遵循及表达精准</h3>
<p>GPT-Image-1.5 在理解自然语言提示方面得到显著提升，尤其擅长：</p>
<ul>
<li><strong>对复杂描述的视觉表达</strong>，细节理解更准确</li>
<li><strong>在图像中生成清晰可读的文本内容</strong></li>
<li><strong>遵循用户指令进行定制化修改和组合</strong></li>
</ul>
<p>相比最初的图像生成模型（例如 DALL·E 系列），这类 GPT Image 系列模型对于提示语的响应更直观、可控性更高。</p>
<h3 id="2-图像质量与生成速度提升">2. 图像质量与生成速度提升</h3>
<p>GPT-Image-1.5 的生成速度比上一代快得多（据报道最高可达大约 4 倍提升），这对于需要快速迭代视觉内容的场景（如设计、产品原型等）尤为重要。</p>
<p>此外，图像生成结果在细节、现实感和一致性方面表现更好，尤其是在脸部、纹理、光影等关键元素上有显著进步。</p>
<h3 id="3-编辑与增强功能">3. 编辑与增强功能</h3>
<p>GPT-Image-1.5 同时支持图像编辑，包括：</p>
<ul>
<li><strong>局部修改</strong>：对选中区域进行变更</li>
<li><strong>添加或移除元素</strong></li>
<li><strong>风格化调整与概念转换</strong></li>
</ul>
<p>无需完全重新生成整幅图像，大幅提升工作流效率。</p>
<h3 id="4-成本与效率优化">4. 成本与效率优化</h3>
<p>GPT-Image-1.5 在 API 调用成本上较前代降低约 20%，使得高质量图像生成在更大范围内可持续使用，特别适合企业级批量生成需求。</p>
<h3 id="5-安全性与合规性">5. 安全性与合规性</h3>
<p>作为 Azure OpenAI 服务的一部分，GPT-Image-1.5 的使用受 Azure 的<strong>安全性、合规性和内容过滤体系</strong>保障，支持多种定制化审核与责任使用防护。</p>
<h2 id="在-microsoft-foundry-中部署与使用-gpt-image-15">在 Microsoft Foundry 中部署与使用 GPT-Image-1.5</h2>
<p>随着 <strong>Microsoft Foundry</strong> 的推出（当前为预览版），微软正在将 Azure OpenAI、模型目录、推理端点、Playground 与企业治理能力整合为<strong>统一的 AI 应用构建平台</strong>。在该预览版中，<strong>GPT-Image-1.5 已作为一等模型（first-class model）被直接纳入 Foundry 的模型体系</strong>，无需再通过传统的 “Azure AI Foundry / Azure AI Studio” 路径进行管理。</p>
<h3 id="1-在-microsoft-foundry-中部署-gpt-image-15">1. 在 Microsoft Foundry 中部署 GPT-Image-1.5</h3>
<p>在 Preview 版 Foundry 中，模型部署流程更接近“产品级模型托管”而非传统 Azure 资源配置：</p>
<p>首先进入 <strong>Microsoft Foundry（Preview）控制台</strong>。在左侧选择 <strong>Models</strong>（模型库）。在模型列表中找到 <strong>GPT-Image-1.5</strong>（Image / Multimodal 分类）。</p>
<p><img alt="GPT-Image-1.5" loading="lazy" src="/zh/blog/2025/azure-openai-gpt-image/1-gpt-image-1.5.png"></p>
<p>打开模型详情页后，点击 <strong>Deploy</strong>，创建一个新的推理部署。</p>
<p><img alt="GPT-Image-1.5 详情" loading="lazy" src="/zh/blog/2025/azure-openai-gpt-image/2-gpt-image-1.5-detail.png"></p>
<p>选择默认部署，简单选择 <strong>Region</strong> 后即可完成部署，整个过程非常简单：</p>
<p><img alt="选择区域" loading="lazy" src="/zh/blog/2025/azure-openai-gpt-image/3-choose-region.png"></p>
<p>部署完成后会自动进入 GPT-Image-1.5 的 Playground：</p>
<p><img alt="进入 Playground" loading="lazy" src="/zh/blog/2025/azure-openai-gpt-image/4-playground.png"></p>
<p>完成后，Foundry 会自动生成：</p>
<ul>
<li>一个可调用的 <strong>Inference Endpoint</strong></li>
<li>与之绑定的身份、配额与监控策略</li>
</ul>
<p>这一流程强调的是<strong>模型即服务（Model as a Service）</strong>，开发者不再需要直接关心底层 Azure OpenAI 资源的复杂配置。</p>
<h3 id="2-使用-foundry-playground-进行图像生成与-prompt-验证">2. 使用 Foundry Playground 进行图像生成与 Prompt 验证</h3>
<p>Microsoft Foundry（Preview）内置了统一的 <strong>Playground</strong>，用于对 GPT-Image-1.5 进行交互式试验。</p>
<p>在 Playground 中，你可以：</p>
<ul>
<li>直接输入文本 Prompt 生成图像</li>
<li>调整图像尺寸、质量等级等参数</li>
<li>快速验证复杂描述、风格化指令的效果</li>
<li>对比不同 Prompt 的生成结果</li>
</ul>
<p>这一能力特别适合以下角色协作使用：</p>
<ul>
<li>产品经理：验证视觉创意可行性</li>
<li>设计师：探索生成风格与构图</li>
<li>工程师：在写代码前固化 Prompt 模板</li>
</ul>
<p>Playground 在 Preview 版 Foundry 中的定位是 <strong>Prompt 即资产</strong>，验证通过的 Prompt 可以直接迁移到生产代码中使用。</p>
<p>生成图片后效果如下：</p>
<p><img alt="生成图片" loading="lazy" src="/zh/blog/2025/azure-openai-gpt-image/5-gen.png"></p>
<h3 id="3-从-foundry-到应用代码的集成方式">3. 从 Foundry 到应用代码的集成方式</h3>
<p>在应用层面，<strong>Microsoft Foundry（Preview）部署的 GPT-Image-1.5 本质上仍然以标准推理 Endpoint 的形式对外提供服务</strong>：</p>
<ul>
<li>
<p>代码侧只需要关心：</p>
<ul>
<li>Endpoint URL</li>
<li>Deployment Name</li>
<li>身份认证方式</li>
</ul>
</li>
<li>
<p>不再直接依赖模型原始名称或版本号</p>
</li>
</ul>
<p>在企业实践中，常见模式是：</p>
<ul>
<li>开发 / 测试 / 生产环境使用不同 Deployment</li>
<li>模型版本升级（例如 GPT-Image-1.5 → 后续版本）在 Foundry 层完成</li>
<li>应用代码保持不变，仅消费稳定的 Endpoint</li>
</ul>
<p>这种模式显著降低了 <strong>模型演进对业务系统的侵入性</strong>。</p>
<h2 id="在-azure-openai-中如何使用-gpt-image-15">在 Azure OpenAI 中如何使用 GPT-Image-1.5</h2>
<p>你可以通过 Azure OpenAI 提供的 API、SDK 或 Azure AI Foundry 平台来调用 GPT-Image-1.5。基本流程如下：</p>
<h3 id="1-获取访问权限与部署模型">1. 获取访问权限与部署模型</h3>
<p>在模型的详情页可以查看通过代码嗲用 GPT-Image-1.5 的所有信息：</p>
<p><img alt="模型详情" loading="lazy" src="/zh/blog/2025/azure-openai-gpt-image/6-model-detail.png"></p>
<h3 id="2-使用-rest-api-生成图像">2. 使用 REST API 生成图像</h3>
<p>使用 <code>POST</code> 请求调用图像生成端点：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>POST https://&lt;your_resource&gt;.openai.azure.com/openai/deployments/&lt;your_deployment&gt;/images/generations?api-version<span style="color:#f92672">=</span>&lt;api_version&gt;
</span></span><span style="display:flex;"><span>Content-Type: application/json
</span></span><span style="display:flex;"><span>api-key: &lt;your_api_key&gt;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>  <span style="color:#e6db74">&#34;prompt&#34;</span>: <span style="color:#e6db74">&#34;一位穿宇航服的猫在火星表面散步&#34;</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#e6db74">&#34;size&#34;</span>: <span style="color:#e6db74">&#34;1024x1024&#34;</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#e6db74">&#34;n&#34;</span>: 1,
</span></span><span style="display:flex;"><span>  <span style="color:#e6db74">&#34;quality&#34;</span>: <span style="color:#e6db74">&#34;high&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><p>常见参数说明：</p>
<ul>
<li><code>prompt</code>: 文本描述</li>
<li><code>size</code>: 图像尺寸（如 1024x1024）</li>
<li><code>n</code>: 生成图像数量</li>
<li><code>quality</code>: 生成质量（low/medium/high）</li>
</ul>
<h3 id="3-图像编辑若支持">3. 图像编辑（若支持）</h3>
<p>上传已有图片并通过 prompt 指令结合修改：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>POST /images/edits
</span></span></code></pre></div><p>此类调用可以指定 mask、输入图片等字段来控制局部变化。</p>
<h3 id="4-sdk-与开发环境">4. SDK 与开发环境</h3>
<p>Azure 支持多种语言 SDK（例如 Python、C#），可借助 Azure Identity 认证库、安全地调用 API 并处理生成结果。</p>
<h2 id="总结">总结</h2>
<p>GPT-Image-1.5 在图像生成领域代表了下一阶段 AI 创意工具的能力边界。它在指令理解、生成速度、图像质量、成本效率与多模态处理方面均显著提升，为开发者和企业提供了一套强大且可扩展的视觉 AI 解决方案。</p>
<p>对于希望构建中长期 AI 能力平台的团队而言，Foundry + GPT-Image-1.5 是比直接裸用 API 更具工程化和可持续性的选择。</p>
<p>Azure OpenAI 服务结合了模型能力与企业级安全合规，让 GPT-Image-1.5 不仅适用于实验探索，也能支撑生产级应用。</p>
<p>如果你正在构建需要视觉理解或自动创意生成的应用，无论是批量生成还是交互式体验，GPT-Image-1.5 都值得深入实践。</p>
]]></content:encoded></item><item><title>玩转大语言模型：为初学者扫清大语言模型（LLM）架构盲区</title><link>https://wilsonwu.me/zh/blog/2025/llm-architecture/</link><pubDate>Wed, 10 Dec 2025 00:00:00 -0500</pubDate><guid>https://wilsonwu.me/zh/blog/2025/llm-architecture/</guid><description>&lt;p&gt;过去五年，大语言模型（Large Language Models, LLMs）的发展几乎完全重塑了人工智能的技术版图。从 GPT 到 LLaMA，从 Transformer 到 Mixture-of-Experts（MoE），从单体模型到大规模分布式参数服务器体系，架构演进直接推动了能力跃迁。&lt;/p&gt;</description><content:encoded><![CDATA[<p>过去五年，大语言模型（Large Language Models, LLMs）的发展几乎完全重塑了人工智能的技术版图。从 GPT 到 LLaMA，从 Transformer 到 Mixture-of-Experts（MoE），从单体模型到大规模分布式参数服务器体系，架构演进直接推动了能力跃迁。</p>
<p>本文将从架构层面系统梳理 LLM 的主流技术路径，并从应用视角分析其优劣及适配场景，为研发与业务团队提供技术选型参考。同时也希望可以为初学者们打开迈入大模型世界的一条门缝！</p>
<h2 id="大语言模型的主流架构体系">大语言模型的主流架构体系</h2>
<p><img alt="LLM" loading="lazy" src="/zh/blog/2025/llm-architecture/1-llm.png"></p>
<p>目前的 LLM 架构，大概可以分为这么几类：</p>
<ol>
<li><strong>传统 Transformer（Dense Transformer）</strong></li>
<li><strong>Mixture-of-Experts（MoE）架构</strong></li>
<li><strong>多模态扩展架构（Vision-Language / Audio-Language）</strong></li>
<li><strong>检索增强生成（RAG）与混合推理架构</strong></li>
<li><strong>基于代理（Agentic）架构的系统级 LLM</strong></li>
<li><strong>超大规模分布式训练架构（例如 Parameter Server / Fully Sharded）</strong></li>
</ol>
<p>下面逐一展开。</p>
<h2 id="dense-transformer">传统 Transformer：主流 LLM 的基础架构</h2>
<p>Dense Transformer 是绝大多数 LLM 的基座，包括 GPT 系列、LLaMA、Mistral、Qwen 等。</p>
<h3 id="dense-transformer-architecture">架构</h3>
<p><img alt="Dense Transformer" loading="lazy" src="/zh/blog/2025/llm-architecture/2-dense-transformer.png"></p>
<p>简单来说，就是“大力出奇迹”：</p>
<ul>
<li>所有 token 通过全连接注意力进行计算；</li>
<li>全部参数在每次前向推理中都会被激活；</li>
<li>结构相对规则，训练稳定；</li>
<li>模型规模靠堆叠层数与扩大 hidden size 线性提升。</li>
</ul>
<h3 id="dense-transformer-advantages">优势</h3>
<ul>
<li>推理路径稳定、可预测；</li>
<li>训练过程成熟，生态支持丰富；</li>
<li>对所有任务通用，不需要额外路由机制。</li>
</ul>
<h3 id="dense-transformer-limitations">局限</h3>
<ul>
<li>参数规模大时推理成本高（全部参数激活）；</li>
<li>扩展模型能力的成本几乎与参数规模线性相关。</li>
</ul>
<h3 id="dense-transformer-scenarios">应用场景</h3>
<table>
	<thead>
			<tr>
					<th>场景</th>
					<th>适用性</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>通用对话</td>
					<td>高</td>
			</tr>
			<tr>
					<td>编程、数学推理</td>
					<td>高</td>
			</tr>
			<tr>
					<td>对实时需求强的应用（低延迟）</td>
					<td>较低</td>
			</tr>
			<tr>
					<td>资源受限设备（边缘推理）</td>
					<td>一般，可用量化缓解</td>
			</tr>
	</tbody>
</table>
<p>Dense 模型依然是绝大多数企业首次采用 LLM 时的首选。</p>
<h2 id="moe">Mixture-of-Experts（MoE）：高效扩展能力的关键技术</h2>
<p>MoE 是当前最重要的新架构之一，代表模型包括：</p>
<ul>
<li>Google Switch Transformer</li>
<li>DeepSeek-V2/V3</li>
<li>Mixtral 系列</li>
<li>GPT-4 技术论文暗示其有 MoE 结构成分</li>
</ul>
<h3 id="moe-architecture">架构</h3>
<p>MoE 不再让所有参数参与每次计算，而是通过<strong>路由（Routing）</strong>机制让每个 token 只激活若干专家层（Expert）。</p>
<p><img alt="Token Choice Routing" loading="lazy" src="/zh/blog/2025/llm-architecture/3-moe-token-choice-routing.png"></p>
<p><img alt="Expert Choice Routing" loading="lazy" src="/zh/blog/2025/llm-architecture/4-moe-expert-choice-routing.png"></p>
<p>举个例子，一个 300B 参数的庞然大物，实际每次推理可能只动用了 30B 的参数。</p>
<h3 id="moe-advantages">优势</h3>
<ul>
<li><strong>训练扩展性极强</strong>：参数规模可以以更低成本提升到数千亿甚至上万亿。</li>
<li><strong>推理成本显著降低</strong>：激活专家减少推理 FLOPs。</li>
<li><strong>擅长复杂推理与多任务能力</strong>。</li>
</ul>
<h3 id="moe-limitations">局限</h3>
<ul>
<li>路由训练复杂，稳定性需求更高；</li>
<li>推理并行规模更大，对系统工程要求高；</li>
<li>不适合极端低延迟场景，因为专家调度带来额外开销。</li>
</ul>
<h3 id="moe-scenarios">应用场景</h3>
<table>
	<thead>
			<tr>
					<th>场景</th>
					<th>适用性</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>多领域任务（代码/数学/语言混合）</td>
					<td>极高</td>
			</tr>
			<tr>
					<td>超大规模模型（百亿+）</td>
					<td>极高</td>
			</tr>
			<tr>
					<td>边缘设备、小型模型</td>
					<td>低</td>
			</tr>
			<tr>
					<td>多租户大规模在线推理</td>
					<td>依实现而定</td>
			</tr>
	</tbody>
</table>
<p>MoE 已成为大型商业 LLM 的主流趋势。</p>
<h2 id="multimodal">多模态 LLM 架构：模型能力向感知延伸</h2>
<p>代表模型：GPT-4o、Gemini、Qwen-VL、LLaVA、Yi-VL</p>
<h3 id="multimodal-architecture">架构</h3>
<p>多模态 LLM 通过在 Transformer 基座上引入额外编码器，将视觉、音频、视频等信号映射为 token 表示。</p>
<p><img alt="多模态 LLM 架构" loading="lazy" src="/zh/blog/2025/llm-architecture/5-multimodal.png"></p>
<p>典型结构通常包含：</p>
<ul>
<li>视觉编码器（Vision Encoder，比如 ViT）</li>
<li>投影层（Projection Layer）</li>
<li>统一的 Transformer</li>
<li>多模态注意力机制</li>
</ul>
<h3 id="multimodal-advantages">优势</h3>
<ul>
<li>输入能力扩展显著：图像、音频、视频、文档统合处理；</li>
<li>极适合作为通用 AI Agent 的感知模块。</li>
</ul>
<h3 id="multimodal-limitations">局限</h3>
<ul>
<li>成本比纯文本 LLM 更高；</li>
<li>多模态数据构建成本大；</li>
<li>输出的稳定性与高保真图像/视频理解仍有上限。</li>
</ul>
<h3 id="multimodal-scenarios">应用场景</h3>
<table>
	<thead>
			<tr>
					<th>场景</th>
					<th>适用性</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>OCR / 文档理解</td>
					<td>极高</td>
			</tr>
			<tr>
					<td>多模态搜索</td>
					<td>高</td>
			</tr>
			<tr>
					<td>视频理解</td>
					<td>中（依赖模型）</td>
			</tr>
			<tr>
					<td>紧凑型设备部署</td>
					<td>低</td>
			</tr>
	</tbody>
</table>
<p>随着 GPT-4o 全模态输入的普及，多模态 LLM 已成为企业 AI 转型的必备能力层。</p>
<h2 id="hybridrag">RAG + LLM 混合架构：以知识增强为核心的系统形态</h2>
<p>RAG（Retrieval-Augmented Generation）通过将外部知识库融合到推理中解决 LLM 本身无法持久更新和存储大量事实的问题。</p>
<h3 id="hybridrag-architecture">架构</h3>
<p>由三个核心组件构成：</p>
<ul>
<li>向量数据库（Retriever）</li>
<li>文档预处理管线（Chunking, Indexing）</li>
<li>核心 LLM（Generator）</li>
</ul>
<p><img alt="混合架构" loading="lazy" src="/zh/blog/2025/llm-architecture/6-hybridrag.png"></p>
<h3 id="hybridrag-advantages">优势</h3>
<ul>
<li>模型无需重新训练即可持续更新知识；</li>
<li>显著增强长尾知识与事实性能力；</li>
<li>数据可控，便于企业级治理。</li>
</ul>
<h3 id="hybridrag-limitations">局限</h3>
<ul>
<li>依赖检索质量；</li>
<li>对 prompt 工程与 pipeline 工程化要求高；</li>
<li>多跳检索在 latency 上存在开销。</li>
</ul>
<h3 id="hybridrag-scenarios">应用场景</h3>
<table>
	<thead>
			<tr>
					<th>场景</th>
					<th>适用性</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>企业知识库问答</td>
					<td>极高</td>
			</tr>
			<tr>
					<td>法律、医疗等高准确性应用</td>
					<td>高</td>
			</tr>
			<tr>
					<td>实时 LLM 应用（对时延敏感）</td>
					<td>较低</td>
			</tr>
	</tbody>
</table>
<p>RAG 是企业级 LLM 落地中最常见的架构。</p>
<h2 id="agentic">基于代理的架构：基于智能体的系统级 LLM 架构</h2>
<p>代表：AutoGPT、GPT-o1、GPT-o3、DeepSeek-R1、自主推理 Agent Framework</p>
<p>随着模型具备规划（Planning）、执行（Acting）和反思（Reflection）能力，Agent 架构正在成为应用层主流。</p>
<h3 id="agentic-architecture">架构</h3>
<ul>
<li>多工具整合（Tool Use）</li>
<li>工作流管理</li>
<li>多轮子任务规划</li>
<li>Memory 与外部状态管理</li>
</ul>
<p><img alt="智能体架构" loading="lazy" src="/zh/blog/2025/llm-architecture/7-agentic.png"></p>
<h3 id="agentic-advantages">优势</h3>
<ul>
<li>可执行复杂任务链；</li>
<li>强化模型可控性；</li>
<li>工具能力扩展模型本身的局限。</li>
</ul>
<h3 id="agentic-limitations">局限</h3>
<ul>
<li>系统复杂度显著增加；</li>
<li>可靠性、可追踪性和可验证性要求高；</li>
<li>调度能力直接影响实际效果。</li>
</ul>
<h3 id="agentic-scenarios">应用场景</h3>
<table>
	<thead>
			<tr>
					<th>场景</th>
					<th>适用性</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>自动化运营</td>
					<td>极高</td>
			</tr>
			<tr>
					<td>数据分析助手</td>
					<td>高</td>
			</tr>
			<tr>
					<td>多步骤计算任务</td>
					<td>高</td>
			</tr>
			<tr>
					<td>回答型问答</td>
					<td>一般</td>
			</tr>
			<tr>
					<td>超低延迟场景</td>
					<td>不适合</td>
			</tr>
	</tbody>
</table>
<p>Agent 架构代表了 LLM 应用的未来方向。</p>
<h2 id="distributed-training">分布式训练架构：支撑万亿参数模型的底层工程</h2>
<p><img alt="分布式训练" loading="lazy" src="/zh/blog/2025/llm-architecture/8-distributed-training.png"></p>
<p>这类方案通常没有特定的架构模型，依照不同的需求，技术厂商会演进出各类方案，比如：</p>
<ul>
<li>ZeRO / FSDP（Fully Sharded Data Parallel）</li>
<li>Megatron-LM（Tensor / Pipeline 并行）</li>
<li>DeepSpeed</li>
<li>Colossal-AI</li>
<li>Parameter Server（SageMaker、Ray、DeepSeek 自研）</li>
</ul>
<h3 id="distributed-training">优势</h3>
<ul>
<li>高效训练超大模型；</li>
<li>利用 GPU 集群最大化吞吐；</li>
<li>优化显存占用。</li>
</ul>
<h3 id="distributed-training">局限</h3>
<ul>
<li>工程复杂度极高；</li>
<li>部署成本昂贵；</li>
<li>对 GPU 集群架构高度依赖。</li>
</ul>
<h3 id="distributed-training">应用场景</h3>
<p>主要适用于自研大模型或千卡级 GPU 训练任务的企业或科研团队。</p>
<h2 id="各架构侧重点及优势对比">各架构侧重点及优势对比</h2>
<p>以下为一张综合对比表：</p>
<table>
	<thead>
			<tr>
					<th>架构类型</th>
					<th>优势</th>
					<th>劣势</th>
					<th>应用重点</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>Dense Transformer</td>
					<td>稳定、成熟、推理链简单</td>
					<td>成本随规模线性提升</td>
					<td>通用模型、边缘部署</td>
			</tr>
			<tr>
					<td>MoE</td>
					<td>高效扩展、高性价比</td>
					<td>路由复杂、工程门槛高</td>
					<td>大规模模型、混合任务</td>
			</tr>
			<tr>
					<td>多模态 LLM</td>
					<td>输入能力强</td>
					<td>成本高、训练复杂</td>
					<td>文档/图像/视频/音频场景</td>
			</tr>
			<tr>
					<td>RAG</td>
					<td>强事实性、可更新</td>
					<td>检索依赖高</td>
					<td>企业知识库、法律/医疗</td>
			</tr>
			<tr>
					<td>Agent</td>
					<td>工具能力强、任务链执行</td>
					<td>系统复杂</td>
					<td>自动化任务、数据分析</td>
			</tr>
			<tr>
					<td>分布式架构</td>
					<td>支撑万亿模型</td>
					<td>成本与复杂度高</td>
					<td>训练基建</td>
			</tr>
	</tbody>
</table>
<h2 id="如何选择适合的-llm-架构">如何选择适合的 LLM 架构？</h2>
<p>基于上述介绍的 LLM 架构，我们初步了解了大语言模型本身的架构以及叠加一些应用场景的方案架构，而在 LLM 结合各个行业的真实应用场景中，架构远远不止这些，结合已有的计算机系统架构，LLM 的架构也在不断进化和丰富中，下面简单根据应用需求，推荐如下路径：</p>
<h3 id="目标是开发一个企业级问答系统">目标是开发一个企业级问答系统</h3>
<p>Dense Transformer + 强化 RAG：可靠、易控、低成本、可持续更新。</p>
<p><img alt="问答系统" loading="lazy" src="/zh/blog/2025/llm-architecture/9-qa-system.png"></p>
<h3 id="目标是打造一个全能基础大模型系统">目标是打造一个全能基础大模型系统</h3>
<p>MoE 是优选：性能与性价比兼得。</p>
<p><img alt="全能大模型系统" loading="lazy" src="/zh/blog/2025/llm-architecture/10-all-in-one-llm.png"></p>
<h3 id="目标是构建文档图像视频-ai-系统">目标是构建文档/图像/视频 AI 系统</h3>
<p>多模态 LLM：例如 GPT-4o、Qwen-VL、Gemini。</p>
<p><img alt="多模态架构" loading="lazy" src="/zh/blog/2025/llm-architecture/11-mm-arch.png"></p>
<h3 id="需要自动化任务执行">需要自动化任务执行</h3>
<p>基于代理的架构：模型本身不需要特别大，但需要良好的工具接口和规划能力。</p>
<p><img alt="自动化任务系统" loading="lazy" src="/zh/blog/2025/llm-architecture/12-llm-and-agent.png"></p>
<h3 id="需要训练和运行自研模型">需要训练和运行自研模型</h3>
<p>FSDP / Megatron / PS-based 分布式架构，这类需求其实可选范围非常广，由于是训推整体方案，只要沿用市面成型的一体方案即可，不需要花大量时间在训练和推理框架之间做兼容。</p>
<p><img alt="训推系统" loading="lazy" src="/zh/blog/2025/llm-architecture/13-training-inference.png"></p>
<h2 id="总结">总结</h2>
<p>大语言模型架构的演进已经进入百花齐放阶段。Dense 模型提供稳定基座，MoE 架构带来成本与能力的突破，多模态扩展了 AI 的感知边界，而 RAG 与 Agent 架构将 LLM 推向真正可控、可执行的智能体时代。</p>
<p>对企业而言，选对架构比盲目追求“更大模型”更重要。依据实际需求、工程能力和预算进行架构选择，既能优化效果，也能确保长期可维护性。</p>
]]></content:encoded></item><item><title>玩转大语言模型：深入理解 KV-Cache - 大模型推理的核心加速技术</title><link>https://wilsonwu.me/zh/blog/2025/kv-cache-in-llm/</link><pubDate>Tue, 18 Nov 2025 00:00:00 -0500</pubDate><guid>https://wilsonwu.me/zh/blog/2025/kv-cache-in-llm/</guid><description>&lt;p&gt;随着大语言模型（LLM）规模不断增长，推理成本也随之飙升。为了让模型在响应用户请求时更快、更经济地运行，各类优化技术不断涌现。其中，&lt;strong&gt;KV-Cache（Key-Value Cache）&lt;/strong&gt;是目前最关键、影响最深远的推理加速机制之一，被所有主流的推理框架（如 vLLM、TensorRT-LLM、LLama.cpp、llm-d、OpenAI Triton Transformer Engine 等）广泛使用。&lt;/p&gt;</description><content:encoded><![CDATA[<p>随着大语言模型（LLM）规模不断增长，推理成本也随之飙升。为了让模型在响应用户请求时更快、更经济地运行，各类优化技术不断涌现。其中，<strong>KV-Cache（Key-Value Cache）</strong>是目前最关键、影响最深远的推理加速机制之一，被所有主流的推理框架（如 vLLM、TensorRT-LLM、LLama.cpp、llm-d、OpenAI Triton Transformer Engine 等）广泛使用。</p>
<p>这篇文章将全面介绍什么是 KV-Cache、它如何工作、为什么它能极大提升推理效率、它对行业带来了什么影响，以及在实际使用中的最佳实践。</p>
<h2 id="kv-cache-是什么">KV-Cache 是什么？</h2>
<p>首先，其工作原理架构图如下：</p>
<p><img alt="架构图" loading="lazy" src="/zh/blog/2025/kv-cache-in-llm/1-architecture.png"></p>
<p>理解起来非常简单，单其中细节结合复杂度计算还是略有抽象。</p>
<p>KV-Cache，全称 <strong>Key-Value Cache</strong>，是在 LLM 推理过程中对 Transformer 解码器中<strong>自注意力层（Self-Attention）</strong>的中间结果进行缓存的一种方法。</p>
<p>Transformer 的自回归生成方式决定了：
<strong>每生成一个新 token，就需要重新计算它与全部历史 token 的注意力关系</strong>。</p>
<p>如果每次都把过去所有 token 的 Key 和 Value 重新计算一遍，其计算量是：</p>

<blockquote>
  <p>推理时间复杂度：O(n²)
（n 为上下文长度）</p>

</blockquote>
<p>为了避免重复计算，KV-Cache 会在每步生成 token 时，将计算后的 <strong>Key（K）</strong> 和 <strong>Value（V）</strong> 保存下来，这样之后再生成下一步 token 时就能直接引用过去的 Key/Value，而无需重新计算历史部分。</p>
<p>这让时间复杂度大幅下降为：</p>

<blockquote>
  <p>推理时间复杂度：O(n)</p>

</blockquote>
<p>所以简单总结一下，KV-Cache 是在自回归解码中缓存历史 token 的 Key/Value，让后续生成直接复用过去的注意力结果，从而把时间复杂度从 O(n²) 降到 O(n)，节省的成本非常巨大。</p>
<h2 id="kv-cache-是如何工作的">KV-Cache 是如何工作的？</h2>
<p>以当前主流的解码流程为例，我们以是否使用 KV-Cache 来做一个简单的对比。</p>
<h3 id="如果没有-kv-cache">如果没有 KV-Cache</h3>
<p>每次生成新 token 时需要做：</p>
<ol>
<li>重新对全部历史序列做 embedding</li>
<li>通过所有 Transformer 层重新计算 K/V</li>
<li>根据新 token 与整个序列做自注意力</li>
<li>得到新 token 并输出</li>
</ol>
<p>具体流程图示如下：</p>
<p><img alt="不使用 KV-Cache" loading="lazy" src="/zh/blog/2025/kv-cache-in-llm/2-without-kv-cache.png"></p>
<h3 id="使用-kv-cache">使用 KV-Cache</h3>
<p>第一次推理（prefill 阶段）：</p>
<ol>
<li>对所有提示词（prompt tokens）进行计算</li>
<li>计算所有 K/V，并将它们保存在 KV 缓存中</li>
</ol>
<p>之后的每一步（decode 阶段）：</p>
<ol>
<li>只计算当前新 token 的 K/V</li>
<li>与缓存中的 K/V 做注意力，得到结果</li>
<li>写回缓存</li>
</ol>
<p>这样，每生成一个 token 的计算量从<strong>全序列规模 → 近似常数开销</strong>，越长的上下文收益越大。</p>
<p>其流程图示如下：</p>
<p><img alt="使用 KV-Cache" loading="lazy" src="/zh/blog/2025/kv-cache-in-llm/3-with-kv-cache.png"></p>
<h2 id="kv-cache-带来了什么影响">KV-Cache 带来了什么影响？</h2>
<h3 id="推理速度提升数十倍">推理速度提升数十倍</h3>
<p>对长上下文模型（8k / 32k / 128k tokens）尤其明显。</p>
<p>例如对 32k token 的上下文，如果没有 KV-Cache：</p>
<ul>
<li>每生成一个 token 需要遍历 32k 历史序列</li>
<li>整体是 <em>重复 32k 次的巨量工作</em></li>
</ul>
<p>有了 KV-Cache：</p>
<ul>
<li>历史部分只算一次</li>
<li>单步 decode 的开销变成固定量（几百维 KV 与注意力点积）</li>
</ul>
<p>通常加速比可达到：</p>

<blockquote>
  <p>10 倍至 100 倍不等
（取决于提示词长度、模型大小、硬件）</p>

</blockquote>
<h3 id="推理成本大幅降低">推理成本大幅降低</h3>
<p>大模型推理的成本主要由这几个部分构成：</p>
<ul>
<li><strong>算力</strong>（矩阵乘法）</li>
<li><strong>显存占用</strong></li>
<li><strong>带宽</strong></li>
</ul>
<p>KV-Cache 能大幅降低重复算力，因此成本成比例下降。</p>
<p>这就是为什么：</p>
<ul>
<li>OpenAI、Anthropic、Meta、Mistral</li>
<li>各大云推理服务</li>
<li>所有开源推理框架</li>
</ul>
<p>都把 KV-Cache 作为默认推理方式。</p>
<h3 id="但是显存占用会变高">但是显存占用会变高</h3>
<p>KV 是每一层每个 token 的结果，因此缓存本身需要<strong>巨大的显存</strong>。</p>
<p>例如：
Llama-3 70B 模型，64K context，对 1 token 的 KV 占用约 1.5KB。</p>
<p>那么 64K token 就是：<strong>约 96MB × 80 层 ≈ 7.6GB 的 KV-cache</strong></p>
<p>当你看到推理卡 80GB 显存不够时，很大概率是因为 KV 满了，而不是模型权重太大。</p>
<h3 id="影响了模型的架构设计与行业走向">影响了模型的架构设计与行业走向</h3>
<p>KV-Cache 的重要性高到：<strong>模型架构都围绕它做优化。</strong></p>
<p>包括：</p>
<ul>
<li>Mistral 的<strong>滑动窗口注意力（SWA）</strong></li>
<li>Meta 的 <strong>Grouped Query Attention（GQA）</strong></li>
<li>DeepSeek 的 <strong>Multi-head Latent Attention（MLA）</strong></li>
<li>Google 的 <strong>Multi-Query Attention（MQA）</strong></li>
</ul>
<p>这些技术主要目的之一就是：</p>

<blockquote>
  <p>降低 KV-Cache 的显存占用</p>

</blockquote>
<p>因为 Q 数少 → KV 也变少 → 显存压力更低。</p>
<p>所以 <strong>KV-Cache 不只是一个技术点，而是影响模型架构的重要因素</strong>。</p>
<h2 id="kv-cache-的性能关键因素">KV-Cache 的性能关键因素</h2>
<h3 id="不同-attention-架构带来的-kv-大小差异">不同 Attention 架构带来的 KV 大小差异</h3>
<table>
	<thead>
			<tr>
					<th>Attention 类型</th>
					<th>KV 大小</th>
					<th>优点</th>
					<th>缺点</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>MHA（多头注意力）</td>
					<td>最大</td>
					<td>兼容性最好</td>
					<td>显存占用高</td>
			</tr>
			<tr>
					<td>MQA（多查询注意力）</td>
					<td>小很多</td>
					<td>更高效</td>
					<td>灵活性略差</td>
			</tr>
			<tr>
					<td>GQA（分组注意力）</td>
					<td>居中</td>
					<td>性能好</td>
					<td>结构更复杂</td>
			</tr>
			<tr>
					<td>MLA</td>
					<td>更小</td>
					<td>更快</td>
					<td>模型支持有限</td>
			</tr>
	</tbody>
</table>
<h3 id="prefill-和-decode-性能壁垒不同">Prefill 和 Decode 性能壁垒不同</h3>
<ul>
<li><strong>Prefill 阶段</strong>：算 K/V 很耗算力，需要好 GPU。</li>
<li><strong>Decode 阶段</strong>：显存带宽优先，因为每步生成通常 batch 很小。</li>
</ul>
<p>这也影响推理框架的优化策略。</p>
<h3 id="kv-cache-的布局与管理">KV-Cache 的布局与管理</h3>
<p>例如：</p>
<ul>
<li><strong>PagedAttention</strong>（vLLM 的核心技术）</li>
<li><strong>Block-sparse KV 管理</strong>（TensorRT-LLM）</li>
<li><strong>动态缓存分配</strong>（llama.cpp）</li>
<li><strong>连续 vs 分块 KV 内存</strong></li>
</ul>
<p>优秀的分配策略可以极大减少 fragmentation 和显存浪费。</p>
<h2 id="kv-cache-的最佳实践">KV-Cache 的最佳实践</h2>
<h3 id="尽量减少上下文长度">尽量减少上下文长度</h3>
<p>上下文越长 → KV 越大 → 推理越慢、越贵。</p>
<p>如果业务允许：</p>
<ul>
<li>使用 <strong>RAG</strong> 把长文档拆分</li>
<li>使用<strong>压缩模型（compressor）</strong></li>
<li>使用<strong>短指令模板</strong></li>
<li>引导模型减少“废话”输出</li>
</ul>
<h3 id="选择合适的-attention-架构">选择合适的 Attention 架构</h3>
<p>如果你在自定义模型、微调或部署模型：</p>
<ul>
<li>需要高效推理 → 优选 <strong>MQA / GQA / MLA</strong></li>
<li>需要兼容许多任务 → MHA 仍然最稳定</li>
</ul>
<h3 id="使用专业推理框架">使用专业推理框架</h3>
<p>优先使用：</p>
<ul>
<li><strong>vLLM（商业与开源界第一推理框架）</strong></li>
<li><strong>TensorRT-LLM（NVIDIA 官方）</strong></li>
<li><strong>llm-d（中小型企业的极高性价比框架）</strong></li>
<li><strong>OpenAI Triton 引擎（内部使用）</strong></li>
</ul>
<p>它们都在 KV-Cache 管理上有深度优化。</p>
<h3 id="多卡推理时注意-kv-分布问题">多卡推理时注意 KV 分布问题</h3>
<p>KV 会引发：</p>
<ul>
<li><strong>多卡同步开销</strong></li>
<li><strong>all-reduce 带宽瓶颈</strong></li>
</ul>
<p>部分框架提供：</p>
<ul>
<li>KV sharding</li>
<li>pipeline parallelism</li>
<li>block-sparse KV sharing</li>
</ul>
<p>合理设置可显著提升吞吐量。</p>
<h3 id="批处理策略影响巨大">批处理策略影响巨大</h3>
<p>适配 KV-Cache 的批处理策略包括：</p>
<ul>
<li>continuous batching</li>
<li>block scheduling</li>
<li>prompt+decode 混合 batch</li>
</ul>
<p>正确 batching 通常带来 <strong>&gt;10× 吞吐提升</strong>。</p>
<h2 id="kv-cache-的未来展望">KV-Cache 的未来展望</h2>
<p>未来几年，模型推理的发展趋势中，KV-Cache 会继续是核心机制。</p>
<p>我们将看到：</p>
<ul>
<li>更轻量的 KV 结构（更少头、更小维度）</li>
<li>更智能的 KV 重用机制</li>
<li>KV 的跨请求共享（multi-query serving）</li>
<li>部分 KV 的 CPU/NVMe offload</li>
<li>Push-down Attention（降低 GPU 带宽要求）</li>
</ul>
<p>总之，KV-Cache 将继续驱动推理性能提升，是 LLM 推理领域最重要的基础设施之一。</p>
<h2 id="总结">总结</h2>
<p>KV-Cache 并不是一个“可选优化”，而是现代大语言模型推理的 <strong>核心基石</strong>。
它带来巨大的速度提升，但也带来显存压力，影响模型架构、推理框架设计乃至行业整个技术路线。</p>
<p>理解 KV-Cache，你就理解了：</p>
<ul>
<li>为什么推理这么贵</li>
<li>为什么上下文越长模型越慢</li>
<li>为什么新一代模型都在改注意力结构</li>
<li>为什么推理框架竞争如此激烈</li>
</ul>
]]></content:encoded></item><item><title>玩转大语言模型：轻松使用 Azure AI Foundry 提供的 Sora 2 生成视频</title><link>https://wilsonwu.me/zh/blog/2025/azure-ai-foundry-sora-2/</link><pubDate>Mon, 10 Nov 2025 00:00:00 -0500</pubDate><guid>https://wilsonwu.me/zh/blog/2025/azure-ai-foundry-sora-2/</guid><description>&lt;p&gt;随着 Azure AI Foundry 开放对 &lt;strong&gt;Sora 2（OpenAI 生成式视频模型）&lt;/strong&gt;的支持，开发者现在可以在企业级合规、可管控的环境中使用顶尖的视频生成能力。本教程将带你从零开始，通过 &lt;strong&gt;Playground&lt;/strong&gt; 和 &lt;strong&gt;Python SDK&lt;/strong&gt; 两种方式调用 Sora 2，完成「文本生成视频」的流程。&lt;/p&gt;</description><content:encoded><![CDATA[<p>随着 Azure AI Foundry 开放对 <strong>Sora 2（OpenAI 生成式视频模型）</strong>的支持，开发者现在可以在企业级合规、可管控的环境中使用顶尖的视频生成能力。本教程将带你从零开始，通过 <strong>Playground</strong> 和 <strong>Python SDK</strong> 两种方式调用 Sora 2，完成「文本生成视频」的流程。</p>
<h2 id="准备工作">准备工作</h2>
<p>在开始之前，你需要：</p>
<h3 id="获取-azure-订阅">获取 Azure 订阅</h3>
<p>拥有一个 <strong>Azure 订阅</strong>，如果您不清楚如何获取 Azure 订阅，可以参考<a href="/zh/blog/2024/build-own-chatgpt-on-azure/#%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6">之前文章中的注册 Azure 订阅内容</a>进行操作。</p>
<h3 id="创建-azure-ai-foundry">创建 Azure AI Foundry</h3>
<p>首先进入您的 Azure 订阅中的 AI Foundry，展开左侧 All Resources，找到 Azure AI Foundry，点击 Create 创建一个 Azure AI Foundry：</p>
<p><img alt="创建 Azure AI Foundry" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/1-azure-ai-foundry.png"></p>
<p>创建时注意区域选择，由于 Sora 2 模型并未在所有 Azure 区域开放预览，这里建议选择 East US 2 区域：</p>
<p><img alt="选择 AI Foundry 区域" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/2-create-ai-foundry.png"></p>
<h3 id="1-创建-azure-ai-foundry-project">1. 创建 Azure AI Foundry Project</h3>
<p>创建完成后进入您的 Azure AI Foundry 在 All Resources 中找到 Projects，点击 New 创建一个新的 Project：</p>
<p><img alt="创建 Project" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/3-azure-ai-foundry-project.png"></p>
<h3 id="2-打开-azure-ai-foundry-protal">2. 打开 Azure AI Foundry Protal</h3>
<p>创建完成 Project 后，打开您的 Project，点击 Go to Azure AI Foundry protal：</p>
<p><img alt="打开 AI Foundry Portal" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/4-go-to-portal.png"></p>
<p>正常情况下 Azure AI Foundry Protal 如下：</p>
<p><img alt="AI Foundry Portal" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/5-ai-foundry-portal.png"></p>
<h3 id="3-启用和部署-sora-2-模型">3. 启用和部署 Sora 2 模型</h3>
<p>又有 Sora 2 模型在本文发布时仍然处于预览状态，所以我们首先需要申请权限，后续开放使用后可调过本步骤，首先点击左侧的 Model catalog，可以看到 Sora 2 模型的标签，点击 Check out model：</p>
<p><img alt="Sora 2 模型" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/6-check-out-sora-2.png"></p>
<p>也可以在下方的模型列表找到想要的模型进行使用。</p>
<p>如果您没有使用 Sora 2 模型的权限，进入 Sora 2 模型介绍界面后将如下所示：</p>
<p><img alt="获取 Sora 2 模型权限" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/7-request-access-sora-2.png"></p>
<p>请点击 Request access 链接进行权限申请。</p>
<p>如您已经拥有 Sora 2 访问权限，可以点击 Use this model 进行模型部署：</p>
<p><img alt="使用 Sora 2 模型" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/8-use-sora-2.png"></p>
<p>部署过程非常简单，默认保持各类选项即可进行创建部署：</p>
<p><img alt="部署 Sora 2 模型" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/9-deploy-sora-2.png"></p>
<p>部署完成后，切换左侧菜单至 Models + endpoints，查看模型列表：</p>
<p><img alt="查看 Sora 2 模型" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/10-models-sora-2.png"></p>
<p>至此您就拥有了属于自己的 Sora 2 模型，可以开始使用！</p>
<h2 id="通过-azure-ai-foundry-playground-使用-sora-2">通过 Azure AI Foundry Playground 使用 Sora 2</h2>
<p>Azure AI Foundry 提供了强大的可视化界面，你可以无需写代码就生成视频。</p>
<h3 id="1-进入-playground">1. 进入 Playground</h3>
<p>打开 Azure AI Foundry 左侧菜单中的 Playgrounds，选择 Video playground：</p>
<p><img alt="Video Playground" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/11-video-playground.png"></p>
<p>进入 Playground 后选择 Sora 2 模型：</p>
<p><img alt="选择 Sora 2 模型" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/12-choose-sora-2.png"></p>
<h3 id="2-填写提示词-prompt">2. 填写提示词 Prompt</h3>
<p>示例 Prompt：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>A high-energy cyberpunk chase in the rain with neon reflections on wet streets. A futuristic motorcycle speeds through, dynamic motion blur capturing its sleek design and vibrant city lights.
</span></span></code></pre></div><p><img alt="输入提示词" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/13-input-prompt.png"></p>
<h3 id="3-设置选项">3. 设置选项</h3>
<p>可调节选项包括：</p>
<table>
	<thead>
			<tr>
					<th>选项</th>
					<th>说明</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><strong>Attach an image</strong></td>
					<td>可以附加图片进行相视频的生成</td>
			</tr>
			<tr>
					<td><strong>Aspect ratio</strong></td>
					<td>视频长宽比，默认为 16:9</td>
			</tr>
			<tr>
					<td><strong>Resolution</strong></td>
					<td>分辨率，当前只提供 720p</td>
			</tr>
			<tr>
					<td><strong>Duration</strong></td>
					<td>输出视频时长（如 5s、10s），默认 8s</td>
			</tr>
	</tbody>
</table>
<p><img alt="设置生成参数" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/14-settings-sora-2.png"></p>
<h3 id="4-生成视频">4. 生成视频</h3>
<p>设置好后，点击 Generate 进行视频生成，视频生成成功后，你可以在 Generation history 中预览或下载视频：</p>
<p><img alt="生成视频" loading="lazy" src="/zh/blog/2025/azure-ai-foundry-sora-2/15-video.png"></p>
<h2 id="通过-python-调用-sora-2">通过 Python 调用 Sora 2</h2>
<p>Azure 为 OpenAI 模型提供统一的接口，可以直接在你的后端调用。</p>
<h3 id="1-安装-sdk">1. 安装 SDK</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pip install azure-ai-openai
</span></span><span style="display:flex;"><span>pip install python-dotenv
</span></span></code></pre></div><h3 id="2-配置环境变量">2. 配置环境变量</h3>
<p>创建 <code>.env</code> 文件：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>AZURE_OPENAI_ENDPOINT<span style="color:#f92672">=</span>https://&lt;your-resource-name&gt;.openai.azure.com/
</span></span><span style="display:flex;"><span>AZURE_OPENAI_KEY<span style="color:#f92672">=</span>&lt;your-key&gt;
</span></span><span style="display:flex;"><span>AZURE_OPENAI_API_VERSION<span style="color:#f92672">=</span>2024-10-01-preview
</span></span></code></pre></div><h3 id="3-python-调用示例文生视频">3. Python 调用示例：文生视频</h3>
<p>下面是最简可运行示例：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">import</span> os
</span></span><span style="display:flex;"><span><span style="color:#f92672">from</span> dotenv <span style="color:#f92672">import</span> load_dotenv
</span></span><span style="display:flex;"><span><span style="color:#f92672">from</span> azure.ai.openai <span style="color:#f92672">import</span> OpenAIClient
</span></span><span style="display:flex;"><span><span style="color:#f92672">from</span> azure.core.credentials <span style="color:#f92672">import</span> AzureKeyCredential
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>load_dotenv()
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>client <span style="color:#f92672">=</span> OpenAIClient(
</span></span><span style="display:flex;"><span>    endpoint<span style="color:#f92672">=</span>os<span style="color:#f92672">.</span>getenv(<span style="color:#e6db74">&#34;AZURE_OPENAI_ENDPOINT&#34;</span>),
</span></span><span style="display:flex;"><span>    credential<span style="color:#f92672">=</span>AzureKeyCredential(os<span style="color:#f92672">.</span>getenv(<span style="color:#e6db74">&#34;AZURE_OPENAI_KEY&#34;</span>)),
</span></span><span style="display:flex;"><span>    api_version<span style="color:#f92672">=</span>os<span style="color:#f92672">.</span>getenv(<span style="color:#e6db74">&#34;AZURE_OPENAI_API_VERSION&#34;</span>)
</span></span><span style="display:flex;"><span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>prompt <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;&#34;&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">A cinematic shot of a spaceship flying through a nebula filled with colorful cosmic clouds.
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">&#34;&#34;&#34;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>response <span style="color:#f92672">=</span> client<span style="color:#f92672">.</span>get_video(
</span></span><span style="display:flex;"><span>    model<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;sora-2&#34;</span>,
</span></span><span style="display:flex;"><span>    prompt<span style="color:#f92672">=</span>prompt,
</span></span><span style="display:flex;"><span>    duration<span style="color:#f92672">=</span><span style="color:#ae81ff">5</span>,              <span style="color:#75715e"># seconds</span>
</span></span><span style="display:flex;"><span>    resolution<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;1080p&#34;</span>,
</span></span><span style="display:flex;"><span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e"># 保存视频</span>
</span></span><span style="display:flex;"><span>video_bytes <span style="color:#f92672">=</span> response<span style="color:#f92672">.</span>video
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(<span style="color:#e6db74">&#34;output.mp4&#34;</span>, <span style="color:#e6db74">&#34;wb&#34;</span>) <span style="color:#66d9ef">as</span> f:
</span></span><span style="display:flex;"><span>    f<span style="color:#f92672">.</span>write(video_bytes)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;Video generated: output.mp4&#34;</span>)
</span></span></code></pre></div><h3 id="4-使用结构化-payload">4. 使用结构化 payload</h3>
<p>Sora 还支持更多控制，例如镜头、分镜头脚本、环境细节。</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-python" data-lang="python"><span style="display:flex;"><span>payload <span style="color:#f92672">=</span> {
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;prompt&#34;</span>: <span style="color:#e6db74">&#34;A cute corgi running on a beach during sunset.&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;duration&#34;</span>: <span style="color:#ae81ff">8</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;resolution&#34;</span>: <span style="color:#e6db74">&#34;720p&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;motion&#34;</span>: <span style="color:#e6db74">&#34;medium&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#e6db74">&#34;style&#34;</span>: <span style="color:#e6db74">&#34;realistic&#34;</span>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>response <span style="color:#f92672">=</span> client<span style="color:#f92672">.</span>get_video(
</span></span><span style="display:flex;"><span>    model<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;sora-2&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">**</span>payload
</span></span><span style="display:flex;"><span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(<span style="color:#e6db74">&#34;corgi_beach.mp4&#34;</span>, <span style="color:#e6db74">&#34;wb&#34;</span>) <span style="color:#66d9ef">as</span> f:
</span></span><span style="display:flex;"><span>    f<span style="color:#f92672">.</span>write(response<span style="color:#f92672">.</span>video)
</span></span></code></pre></div><h2 id="生成最佳视频的技巧">生成最佳视频的技巧</h2>
<h3 id="1-提示词结构推荐general-prompt-template">1. 提示词结构推荐（General Prompt Template）</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>[主体对象] + [场景环境] + [动作] + [镜头效果] + [光影] + [风格]
</span></span></code></pre></div><p>示例：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>A high-energy cyberpunk chase in the rain with neon reflections on wet streets. A futuristic motorcycle speeds through, dynamic motion blur capturing its sleek design and vibrant city lights.
</span></span></code></pre></div><h3 id="2-控制一致性">2. 控制一致性</h3>
<ul>
<li>使用 <strong>seed</strong> 可重复生成风格一致的视频</li>
<li>合理设置 motion level 获得更自然的动作</li>
<li>提供清晰场景描述可减少模型误解</li>
</ul>
<h2 id="常见问题faq">常见问题（FAQ）</h2>
<h3 id="1-我试了但看不到-sora-2">1. 我试了但看不到 Sora 2？</h3>
<p>目前需要访问权限。你需要：</p>
<ul>
<li>联系 Azure 管理员</li>
<li>到模型页面确认已启用</li>
</ul>
<h3 id="2-视频最大时长是多少">2. 视频最大时长是多少？</h3>
<p>具体限制依区域会有不同，通常为 <strong>≤ 10 秒</strong>。</p>
<h3 id="3-python-生成的视频过小或无内容">3. Python 生成的视频过小或无内容？</h3>
<p>确保保存时使用 <code>response.video</code> 而不是错误字段。</p>
<h2 id="总结">总结</h2>
<p>本文介绍了在 <strong>Azure AI Foundry</strong> 中使用 <strong>Sora 2 文生视频模型</strong>的两种方式：</p>
<ul>
<li>使用可视化 <strong>Playground</strong> 快速体验</li>
<li>使用 <strong>Python SDK</strong> 在生产环境自动生成视频</li>
</ul>
<p>Azure 的企业级安全合规能力让 Sora 2 成为企业落地视频生成的重要选择。</p>
]]></content:encoded></item><item><title>玩转大语言模型：无需任何代码通过 Azure OpenAI 服务构建个人专属 ChatGPT</title><link>https://wilsonwu.me/zh/blog/2024/build-own-chatgpt-on-azure/</link><pubDate>Tue, 25 Jun 2024 00:00:00 -0400</pubDate><guid>https://wilsonwu.me/zh/blog/2024/build-own-chatgpt-on-azure/</guid><description>通过简单的界面操作，无需编写任何代码即可通过 Azure OpenAI 服务构建自己专属的 ChatGPT 应用。</description><content:encoded><![CDATA[<p>日常使用 ChatGPT 来帮助我们解决工作和生活中的问题已经变成习惯，但偶尔重度使用官方 GPT-4o 后发现会出现临时限额问题，今天我们就来手把手教大家如何轻松通过 Azure OpenAI 服务构建一个专属 ChatGPT 应用。</p>
<h2 id="先决条件">先决条件</h2>
<p>在开始之前，请确保您拥有 Azure 国际版订阅服务，如果您还没有 Azure 订阅，可以通过 <a href="https://azure.microsoft.com/en-us/pricing/purchase-options/pay-as-you-go/?wt.mc_id=MVP_373702">Pay-as-you-go</a> 轻松开启一个 Azure 订阅：</p>
<p><img alt="Pay-as-you-go Azure 订阅" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/pay-as-you-go-azure.png"></p>
<p>注意：开启 Pay-as-you-go Azure 订阅必须绑定国际信用卡，对于新用户还有 200 美金的免费额度，我们完全可以使用这些额度充分使用 Azure 的各项服务。</p>
<p>下面介绍的内容除了与 GPT-4o 交互产生的费用外，其他都是免费的，日常不适用的话不会产生任何费用，GPT-4o 的费用也可以完全使用免费额度覆盖，所以大家不用担心信用卡被刷爆。</p>
<p>成功拥有 Azure 订阅后，然我们开始吧！</p>
<p><img alt="Azure 订阅首页" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/azure-home.png"></p>
<h2 id="步骤-1创建-azure-ai-studio-服务">步骤 1：创建 Azure AI Studio 服务</h2>
<p>在 Azure 订阅主页上方搜索栏中输入 azure ai，找到 Azure AI Studio：</p>
<p><img alt="Azure AI Studio" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/1-start.png"></p>
<p>点击进入 Azure AI Studio 资源页面：</p>
<p><img alt="创建 Azure AI Studio" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/1-create-ai.png"></p>
<p>点击 + New Azure AI Hub 进入创建页面：</p>
<p><img alt="创建 Azure AI Hub" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/1-ai-hub.png"></p>
<p>从界面可以看到创建 Azure AI Hub 共分为 7 个步骤，这里按照指引一路 Next 都选择默认即可，其中需要注意的是区域建议选择 East US，由于免费订阅有一些资源使用限制，目前根据经验来看 East US 区域的使用便利性更佳。</p>
<p>另外是费用问题，可以参考 <a href="https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/?wt.mc_id=MVP_373702">Azure OpenAI 费用详情</a>页面来查看各个模型的收费情况：</p>
<p><img alt="价格" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/1-price.png"></p>
<p>创建完成后返回 Azure AI Studio 资源页面：</p>
<p><img alt="Azure AI Studio" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/1-created.png"></p>
<p>可以看到我们创建了一个 Azure AI hub 和一个配套的 Azure AI services 资源。</p>
<h2 id="步骤-2开始使用-azure-ai-studio">步骤 2：开始使用 Azure AI Studio</h2>
<p>点击打开我们在第一步中创建的 Azure AI Hub 资源，我们会看到详情中醒目的 Launch Azure AI Studio 按钮：</p>
<p><img alt="Azure AI Studio 资源" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/2-use-ai.png"></p>
<p>点击后进入一个全新的 Azure AI Studio 界面：</p>
<p><img alt="Azure AI Studio 界面" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/2-ai-studio.png"></p>
<p>这里将是我们主要工作的区域，点击列表中我们刚创建好的 AI Hub，当然在这里我们依然可以创建新的 AI Hub：</p>
<p><img alt="打开 AI Hub" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/2-open-hub.png"></p>
<p>在 AI Hub 中，我们可以看到其相关联的所有资源：</p>
<p><img alt="AI Hub 详情" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/2-hub-detail.png"></p>
<p>首先我们需要创建一个 Project，点击左侧菜单中的 All projects，然后选择列表上方的 + New Project 按钮：</p>
<p><img alt="新建 Project" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/2-new-project.png"></p>
<p>创建 Project 非常简单，只需要输入名称即可：</p>
<p><img alt="项目名称" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/2-project.png"></p>
<p>创建完成后将自动进入 Project 详情页面：</p>
<p><img alt="项目详情" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/2-project-detail.png"></p>
<p>现在可以熟悉一下 AI Studio，Hub，Project 的界面，接下来我们来部署大语言模型！</p>
<h2 id="步骤-3部署-gpt-4o-大语言模型">步骤 3：部署 GPT-4o 大语言模型</h2>
<p>依然在 Project 界面，在左侧菜单栏下放找到 Deployments 菜单，点击进入后选择 + Create Deployment 按钮：</p>
<p><img alt="创建 Deployment" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/3-create-deployment.png"></p>
<p>在创建界面中我们看到 Azure 为我们提供了 1000 多重大语言模型可供使用，当然，它们要求的计算资源也各不相同，有兴趣可以逐个尝试（注意信用卡不要刷爆），这里我们选择 GPT-4o 模型：</p>
<p><img alt="模型" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/3-models.png"></p>
<p>选定后进入部署页面，按需修改相关选项，确认后点击 Deploy 进行部署：</p>
<p><img alt="选择 GPT-4o" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/3-deploy-gpt-4o.png"></p>
<p>部署成功后我们可以看到 GPT-4o 已经出现在我们的部署列表中：</p>
<p><img alt="部署 GPT-4o" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/3-gpt-4o.png"></p>
<h2 id="步骤-4部署专属-chatgpt-web-应用">步骤 4：部署专属 ChatGPT Web 应用</h2>
<p>确认模型部署正常后，我们进入项目左侧菜单中的 Chat，并选择我们刚才创建的 GPT-4o 模型：</p>
<p><img alt="Chat 功能" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/4-chat.png"></p>
<p>在 Chat 界面我们可以选择大语言模型，简单测试问答功能等，确认一些无误后，我们就可以开始创建专属 Web App 了，选择顶部菜单中的 Deploy to a web app：</p>
<p><img alt="部署 Web App" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/4-web-app.png"></p>
<p>在部署配置中输入名称，选择 Web App 想要部署的订阅，区域等信息，如果希望保存 ChatGPT 的聊天历史，可以开启最下方的选项，但会额外创建 CosmosDB 数据库服务，会产生额外费用：</p>
<p><img alt="Web App 配置" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/4-deploy-web.png"></p>
<p>确认部署后等待完成即可，如果部署正确，那么在 Chat 界面中会有一个 Launch 按钮：</p>
<p><img alt="运行" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/4-launch.png"></p>
<p>点击后会打开您的专属 ChatGPT Web 界面：</p>
<p><img alt="专属 ChatGPT" loading="lazy" src="/zh/blog/2024/build-own-chatgpt-on-azure/4-app-page.png"></p>
<p>注意：默认情况下我们部署的 Web App 是基于您订阅中的账户（IAM）来做用户验证的，如果您自己使用可以保持这个默认行为。</p>
<p>如果您有技术能力且希望对这个专属 ChatGPT Web App 做定制开发，可以前往 <a href="https://github.com/microsoft/sample-app-aoai-chatGPT?wt.mc_id=MVP_373702">Git Repo</a> 查看所有实现细节，可以按需修改为适合自己使用的版本。</p>
<h2 id="总结">总结</h2>
<p>通过 Azure AI 相关的服务我们可以实现很多人工智能相关的实用业务场景，让我们对 AI 和 大语言模型的了解不仅只停留在铺天盖地的消息和无尽的想象，也可以亲身接触实践！</p>
]]></content:encoded></item></channel></rss>