AI News HubLIVE
站内改写

为什么以及如何在Zed中运行本地模型

本地模型提供了隐私、成本节约、控制权和始终可用的优势。尽管不如前沿模型强大,但它们正在不断改进。本文解释了如何使用LM Studio、Ollama或llama.cpp在Zed中设置本地模型,并提供有效使用技巧。

文章情报

工程师进阶

要点

  • 本地模型提供隐私保护、更低成本、可控性和始终可用性。
  • 它们的能力和速度不及前沿模型,但足以应对许多任务。
  • Zed支持LM Studio、Ollama和llama.cpp来集成本地模型。

为什么重要

这条新闻值得关注,因为本地模型提供隐私保护、更低成本、可控性和始终可用性。

技术影响

可能影响模型选型、推理成本、产品能力和评测基准。

在很多任务中,我更喜欢使用本地模型。当我需要最好的模型时,我仍然会选择前沿模型,但很多时候我并不需要那么强大。我更喜欢在本地运行、将数据保留在我控制的硬件上,并且不会因为提供商更改定价或限制而消失的模型。

开放权重模型也在不断进步。LM Studio、Ollama和llama.cpp等工具变得越来越易用,在过去10周内,Zed代理中本地模型的使用量增长了3倍。

在Zed,我们构建AI功能不是为了赚钱,我们也不致力于将开发者锁定在单一使用AI的方式上。我们让您可以轻松使用任何您偏好的提供商,无论是通过ACP的Codex、您自己的API密钥,还是直接订阅Zed Pro。

在这篇文章中,我想介绍本地模型的优势、它们不足之处,以及如何在Zed中进行设置。

为什么选择本地模型?

本地模型相比云端模型有许多优势:

  • **完全隐私**:虽然大多数云提供商提供零数据保留政策,但本地模型提供了绝对的确定性。数据永远不会离开您的网络,甚至您可以选择不让它离开机器。
  • **成本更低**:虽然前期有硬件成本,但您的开发笔记本电脑可能足以运行一个不错的模型。您不必担心意外的价格变动。价格一致、透明且低廉。
  • **更多控制**:您可以设置自己的系统提示、启用或禁用功能(例如图像支持)、更改上下文窗口等。您还可以发现针对您的用例微调的流行模型。由于您拥有完整的流程,您可以确保不会在相同名称下被秘密提供低成本的模型。
  • **始终可用**:对于像我这样的开发者,担心过于依赖像SaaS平台一样运作的提供商,一旦定价或设置变更,它们就可能变得不可行。而本地模型始终可用。

本地模型的缺点

如果本地模型完美无缺,云提供商就不会存在(至少不会像现在这样大规模)。

运行前沿模型所需的硬件速度对消费者来说遥不可及。您能在本地运行的模型能力不如顶级AI实验室提供的模型。您也可能获得较少的每秒令牌数。

不过,即使在开发笔记本电脑上也能获得不错的结果。只是不要期望前沿水平的结果。

如何运行本地模型

有许多免费和开源项目可以让您在本地运行模型。LM Studio是我的首选,但Ollama和llama.cpp也很流行。Zed开箱即支持这三者。

有了运行时,您需要选择模型。我一直在用Qwen 3.6 35B A3B。这个名称有点长,但每个部分都有意义:

  • **Qwen 3.6**是模型系列,由阿里巴巴开发,3.6是最新版本。
  • **35B**表示模型有350亿参数。运行时需要将这些参数加载到内存中。
  • **A3B**表示“激活30亿”。这是一个混合专家模型(MoE),总参数350亿,但每次生成令牌时仅激活约30亿参数。稠密模型则所有参数都激活。MoE模型通常以少量智能换取性能的大幅提升。粗略来说,生成令牌的时间与激活参数数量成线性关系。对于像Qwen 3.6 35B A3B这样的模型,激活参数为30亿,因此运行速度比稠密35B模型快约10倍。

某些芯片(如Apple M系列或AMD Strix Halo)支持统一内存。统一内存下GPU可直接访问系统内存,但速度比专用GPU上的内存慢。MoE模型在这些系统上尤其有优势,因为较少的激活参数对较低的内存带宽影响较小。

最后,考虑量化。量化通过用更少的比特存储每个参数来减小模型大小。Qwen 3.6模型我测试的是Q4版本,即每个参数4比特。350亿参数大约需要17.5GB VRAM(加上上下文等的开销)。LM Studio有UI显示模型是否适合您的GPU。

配置Zed

设置好提供商后,将Zed指向它。我使用LM Studio,只需添加LM Studio配置,指向http://localhost:1234/api/v0,并确保LM Studio服务器运行。

如果您使用Ollama、llama.cpp或任何兼容OpenAI的系统,可以使用内置的Ollama提供商。

之后,您应该在Zed代理的模型选择器中看到已下载的模型。

使用非前沿模型的注意事项

使用非前沿模型时,有两个需要特别注意的地方:

  • **它们不如前沿模型“聪明”**。
  • **它们通常有较小的上下文窗口**。

因此,有效使用它们需要更多的注意和纪律。最佳实践变得更加必要。

例如,如果模型走错方向或陷入循环,最好编辑之前的消息以引导它避开错误路径,而不是发送新消息纠正。这可以确保上下文窗口不被无用信息填满。

您也可能希望鼓励它们更多地使用子代理。子代理是限制小规模更改对上下文窗口影响的有力工具。

最后,尽情实验!测试不同提供商的不同模型。调整上下文窗口大小或温度。如果您有带专用GPU的高性能游戏PC,可以尝试稠密模型。找到适合您的组合?在Discord中分享。

祝编码愉快!