<?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>Deepseek on Wilson Wu</title><link>https://wilsonwu.me/zh/tags/deepseek/</link><description>Recent content in Deepseek on Wilson Wu</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Mon, 10 Feb 2025 00:00:00 -0500</lastBuildDate><atom:link href="https://wilsonwu.me/zh/tags/deepseek/index.xml" rel="self" type="application/rss+xml"/><item><title>玩转大语言模型：基于 Azure AI Foundry 轻松部署使用 DeepSeek-R1</title><link>https://wilsonwu.me/zh/blog/2025/deploy-deepseek-r1-on-azure/</link><pubDate>Mon, 10 Feb 2025 00:00:00 -0500</pubDate><guid>https://wilsonwu.me/zh/blog/2025/deploy-deepseek-r1-on-azure/</guid><description>&lt;p&gt;DeepSeek 的爆火让人们再一次看到了 AI 的魅力，而随之而来的不仅不是对算力需求的减少，而是在低成本亲民化人工智能中构建更多 AI 业务场景带来的另一波算力需求。今天我们来通过 Azure AI Foundry（原 Azure AI Studio）快速体验 DeepSeek 的风采。&lt;/p&gt;</description><content:encoded><![CDATA[<p>DeepSeek 的爆火让人们再一次看到了 AI 的魅力，而随之而来的不仅不是对算力需求的减少，而是在低成本亲民化人工智能中构建更多 AI 业务场景带来的另一波算力需求。今天我们来通过 Azure AI Foundry（原 Azure AI Studio）快速体验 DeepSeek 的风采。</p>
<h2 id="先决条件">先决条件</h2>
<p>首先需要拥有 Azure 订阅，新用户参考<a href="https://wilsonwu.me/zh/blog/2024/build-own-chatgpt-on-azure/#%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6">玩转大语言模型：无需任何代码通过 Azure OpenAI 服务构建个人专属 ChatGPT</a>中步骤进行开通。然后在 Azure 订阅中创建 AI Foundry 及相关资源，可以参考<a href="https://wilsonwu.me/zh/blog/2024/build-own-chatgpt-on-azure/#%E6%AD%A5%E9%AA%A4-1%E5%88%9B%E5%BB%BA-azure-ai-studio-%E6%9C%8D%E5%8A%A1">创建 Azure AI Foundry 服务</a>中的步骤，这里不再赘述。</p>
<p>一切完成后进入 Azure AI Foundry 首页，并打开名为 main 的 Project，界面如下：</p>
<p><img alt="Azure AI Foundry" loading="lazy" src="/zh/blog/2025/deploy-deepseek-r1-on-azure/0-ai-foundry.png"></p>
<h2 id="部署-deepseek-r1-大语言模型">部署 DeepSeek-R1 大语言模型</h2>
<p>点击左侧菜单中的 Model catalog 进入模型列表页：</p>
<p><img alt="模型列表" loading="lazy" src="/zh/blog/2025/deploy-deepseek-r1-on-azure/1-models.png"></p>
<p>这里可以看到 Azure 提供了超过 1800 种模型，满足用户全方位的需求。</p>
<p>在搜索框输入 DeepSeek 来查看 Azure 支持的 DeepSeek 模型种类：</p>
<p><img alt="DeepSeek" loading="lazy" src="/zh/blog/2025/deploy-deepseek-r1-on-azure/1-deepseek.png"></p>
<p>其中，第一个是全量版 DeepSeek-R1 671B 模型：</p>
<p><img alt="DeepSeek-R1 671B" loading="lazy" src="/zh/blog/2025/deploy-deepseek-r1-on-azure/1-deepseek-r1-671b.png"></p>
<p>另一个是经过 NPU 优化的基于 Qwen 的 DeepSeek-R1 1.5B 蒸馏版：</p>
<p><img alt="DeepSeek R1 Qwen 1.5B" loading="lazy" src="/zh/blog/2025/deploy-deepseek-r1-on-azure/1-deepseek-r1-qwen-1.5b.png"></p>
<p>我们选择 671B 版本进行部署尝试，进入模型详情后点击 Deploy 进行部署确认：</p>
<p><img alt="部署 DeepSeek-R1" loading="lazy" src="/zh/blog/2025/deploy-deepseek-r1-on-azure/1-deploy-deepseek.png"></p>
<p>再点击 Deploy 完成部署，部署结束后会自动跳转至 My assets 中的 Models + endpoints 详情中：</p>
<p><img alt="模型详情" loading="lazy" src="/zh/blog/2025/deploy-deepseek-r1-on-azure/1-deployed-model-detail.png"></p>
<p>至此 DeepSeek-R1 671B 部署完成，整个过程非常简单。</p>
<h2 id="调用-deepseek-r1-进行推理">调用 DeepSeek-R1 进行推理</h2>
<p>接下来我们尝试调用一下刚才部署的模型进行对话，进入刚才部署的模型详情中，点击 Consume Tab：</p>
<p><img alt="使用 DeepSeek" loading="lazy" src="/zh/blog/2025/deploy-deepseek-r1-on-azure/2-model-consume.png"></p>
<p>这里我们选择 Python 代码来进行尝试，代码如下：</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:#75715e"># pip install azure-ai-inference</span>
</span></span><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> azure.ai.inference <span style="color:#f92672">import</span> ChatCompletionsClient
</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>api_key <span style="color:#f92672">=</span> os<span style="color:#f92672">.</span>getenv(<span style="color:#e6db74">&#34;AZURE_INFERENCE_CREDENTIAL&#34;</span>, <span style="color:#e6db74">&#39;这里填写该部署在详情页面看到的 Key 值&#39;</span>)
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">if</span> <span style="color:#f92672">not</span> api_key:
</span></span><span style="display:flex;"><span>  <span style="color:#66d9ef">raise</span> <span style="color:#a6e22e">Exception</span>(<span style="color:#e6db74">&#34;A key should be provided to invoke the endpoint&#34;</span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>client <span style="color:#f92672">=</span> ChatCompletionsClient(
</span></span><span style="display:flex;"><span>    endpoint<span style="color:#f92672">=</span><span style="color:#e6db74">&#39;https://DeepSeek-R1-gxmog.eastus.models.ai.azure.com&#39;</span>,
</span></span><span style="display:flex;"><span>    credential<span style="color:#f92672">=</span>AzureKeyCredential(api_key)
</span></span><span style="display:flex;"><span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>model_info <span style="color:#f92672">=</span> client<span style="color:#f92672">.</span>get_model_info()
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;Model name:&#34;</span>, model_info<span style="color:#f92672">.</span>model_name)
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;Model type:&#34;</span>, model_info<span style="color:#f92672">.</span>model_type)
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;Model provider name:&#34;</span>, model_info<span style="color:#f92672">.</span>model_provider_name)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>payload <span style="color:#f92672">=</span> {
</span></span><span style="display:flex;"><span>  <span style="color:#e6db74">&#34;messages&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#e6db74">&#34;role&#34;</span>: <span style="color:#e6db74">&#34;user&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#e6db74">&#34;content&#34;</span>: <span style="color:#e6db74">&#34;我即将前往北京，我能在那里看到什么景色？&#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:#e6db74">&#34;role&#34;</span>: <span style="color:#e6db74">&#34;assistant&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#e6db74">&#34;content&#34;</span>: <span style="color:#e6db74">&#34;北京，中国的首都&#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:#e6db74">&#34;role&#34;</span>: <span style="color:#e6db74">&#34;user&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#e6db74">&#34;content&#34;</span>: <span style="color:#e6db74">&#34;关于 #1 有哪些令人惊叹的内容？&#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:#e6db74">&#34;max_tokens&#34;</span>: <span style="color:#ae81ff">2048</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>complete(payload)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;Response:&#34;</span>, response<span style="color:#f92672">.</span>choices[<span style="color:#ae81ff">0</span>]<span style="color:#f92672">.</span>message<span style="color:#f92672">.</span>content)
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;Model:&#34;</span>, response<span style="color:#f92672">.</span>model)
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;Usage:&#34;</span>)
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;	Prompt tokens:&#34;</span>, response<span style="color:#f92672">.</span>usage<span style="color:#f92672">.</span>prompt_tokens)
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;	Total tokens:&#34;</span>, response<span style="color:#f92672">.</span>usage<span style="color:#f92672">.</span>total_tokens)
</span></span><span style="display:flex;"><span>print(<span style="color:#e6db74">&#34;	Completion tokens:&#34;</span>, response<span style="color:#f92672">.</span>usage<span style="color:#f92672">.</span>completion_tokens)
</span></span></code></pre></div><p>创建一个 .py 文件（如：ds-demo.py），将上面的代码粘贴到其中，替换部署自身的 Key 到 api_key 变量中，然后执行如下命令安装依赖包：</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>pip install azure-ai-inference
</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-bash" data-lang="bash"><span style="display:flex;"><span>python ds-demo.py
</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>Model name: deepseek-r1
</span></span><span style="display:flex;"><span>Model type: chat-completion
</span></span><span style="display:flex;"><span>Model provider name: DeepSeek
</span></span><span style="display:flex;"><span>Response: &lt;think&gt;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>&lt;/think&gt;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>北京作为中国的首都，拥有悠久的历史和丰富的文化遗产，同时也是现代化大都市的典范。以下是一些您在北京可以体验到的精彩内容：
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>1. **历史文化景点**：
</span></span><span style="display:flex;"><span>   - **故宫（紫禁城）**：明清两代的皇家宫殿，世界文化遗产，展示了中国古代建筑和宫廷文化的精华。
</span></span><span style="display:flex;"><span>   - **天坛**：明清皇帝祭天的场所，以其独特的建筑风格和象征意义闻名。
</span></span><span style="display:flex;"><span>   - **长城（如八达岭、慕田峪段）**：世界奇迹之一，是中华民族的象征，登临可感受壮丽的山川与历史厚重感。
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>2. **现代都市风貌**：
</span></span><span style="display:flex;"><span>   - **北京CBD**：国贸大厦、中央电视台总部大楼（“大裤衩”）等现代建筑群，体现了北京的经济发展活力。
</span></span><span style="display:flex;"><span>   - **奥林匹克公园**：2008年奥运会主会场，鸟巢、水立方等标志性建筑夜晚灯光璀璨。
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>3. **文化体验**：
</span></span><span style="display:flex;"><span>   - **胡同与四合院**：南锣鼓巷、什刹海周边保留了老北京的传统居住形态，可体验胡同骑行或品尝京味小吃。
</span></span><span style="display:flex;"><span>   - **京剧与杂技表演**：老舍茶馆、梨园剧场等地可欣赏中国传统艺术。
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>4. **自然景观**：
</span></span><span style="display:flex;"><span>   - **颐和园**：皇家园林典范，融合江南园林设计与北方山水，适合泛舟昆明湖或漫步长廊。
</span></span><span style="display:flex;"><span>   - **香山公园**：秋季红叶漫山，是赏秋热门目的地。
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>5. **美食推荐**：
</span></span><span style="display:flex;"><span>   - **北京烤鸭**：全聚德、大董等名店提供地道的烤鸭体验。
</span></span><span style="display:flex;"><span>   - **涮羊肉**：东来顺等老字号以铜锅涮肉为特色。
</span></span><span style="display:flex;"><span>   - **小吃街**：牛街、簋街汇聚各类京味及全国风味小吃。
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>6. **其他亮点**：
</span></span><span style="display:flex;"><span>   - **798艺术区**：旧工厂改造的当代艺术聚集地，适合摄影和艺术爱好者。
</span></span><span style="display:flex;"><span>   - **国家博物馆**：馆藏丰富，可系统了解中华文明五千年历史。
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>北京融合了古老与现代，传统与创新，无论是对历史感兴趣，还是想感受都市繁华，都能在这里找到独特的体验。建议根据季节选择合适的游览时间（如秋季气候宜人），并提前规划行程以避开高峰人流。
</span></span><span style="display:flex;"><span>Model: deepseek-r1
</span></span><span style="display:flex;"><span>Usage:
</span></span><span style="display:flex;"><span>        Prompt tokens: 31
</span></span><span style="display:flex;"><span>        Total tokens: 522
</span></span><span style="display:flex;"><span>        Completion tokens: 491
</span></span></code></pre></div><h2 id="总结">总结</h2>
<p>DeepSeek 的优势在于其强大的自然语言处理能力和高效的推理性能。通过 Azure AI Foundry 部署，用户可以快速上手并体验其强大的功能。DeepSeek-R1 提供了多种模型版本，满足不同需求，从全量版到经过优化的蒸馏版，用户可以根据实际应用场景选择合适的模型。</p>
]]></content:encoded></item></channel></rss>