首页 / 文章 / 使用Qwen3.8-27B和Pi构建本地版愤怒的小鸟克隆程序

使用Qwen3.8-27B和Pi构建本地版愤怒的小鸟克隆程序

了解如何使用LM Studio和Pi agent搭建完全本地的AI编程工作流,进而借助Qwen3.8-27B创建可玩的《愤怒的小鸟》关卡。

1952 词

几周前,有一个小型业余项目试图回答一个略显荒谬的问题:仅使用运行在普通消费级硬件上的本地模型,能否打造出《愤怒的小鸟》中一个可玩的关卡——包括物理引擎、弹弓机制、倒塌的塔楼等所有元素?无需云API密钥,无需按量计费,代码也不得离开该设备。

它确实可行。鸟儿在屏幕上飞过,木块会倒下,猪只会在碰撞时被压碎。驱动这一切的模型是Qwen3.8-27B,它在LM Studio中运行,并由开源的终端式编程助手Pi进行协调。以下是完整的设置流程:介绍该模型以及为何它虽仅运行在单台Mac上却能展现出超越其规格的性能,同时还会详细说明安装LM Studio、安装Pi以及将两者连接起来的步骤,这样Pi就能将请求发送到你的本地模型而非托管服务提供商。

为何要选择本地运行?

最直接的动机是成本和控制力。将所有功能在本地运行可以带来:

  • 无论你为业余项目投入多少时间进行迭代,都无需支付任何API费用。
  • 代码永远不会离开你的机器——如果你不想将任何内容上传给第三方,这无疑是个巨大优势。
  • 没有速率限制,也不会出现会话中途“使用量已达上限”的中断情况。
  • 你需要牺牲的是原始生成速度以及传统意义上的输出质量。不过,这一差距的缩小速度比大多数人想象的要快得多,Qwen3.8-27B充分展示了在经过精心训练并针对消费级硬件进行良好量化处理后,约270亿参数的模型能够达到的强大性能。

    认识这款模型:Qwen3.8–27B

    Qwen3.8-27B由阿里巴巴的Qwen团队开发。它是一款具备视觉处理功能的密集型模型,采用Apache 2.0许可证发布,因此即使用于商业项目也可免费使用。在决定下载16GB以上的文件之前,以下是值得了解的参数信息:

    架构

    • 270亿个参数,分布在64层中,隐藏状态维度为5,120
    • 混合注意力机制:通过重复的模块将线性“Gated DeltaNet”注意力与标准门控注意力层相结合,从而在上下文规模增大时仍保持模型的高效率
    • 内置上下文窗口大小为262,144个标记,可扩展至1,000,000个
    • 训练过程中采用多标记预测技术,显著提升局部推理速度

    基准测试结果(数据来自Qwen,必要时会与Anthropic的Opus 4.6 Max进行对比):

    核心结论是,这款270亿参数的模型在编程和智能体测试基准上的表现能够与最先进的封闭权重模型相媲美,甚至更胜一筹,这也解释了为何它能够成为像Pi智能体这类应用中可行的日常选择。这些数据均为厂商自行公布,因此在独立测试结果出来之前还需保持一定的谨慎态度——但后文提到的“愤怒的小鸟”项目实际测试结果与这些宣称是相符的。

    需要提前注意的一点是:Qwen3.8-27B 默认开启了扩展的“思考”(推理)功能,其难度级别设置为 xhigh。这对于真正复杂的任务非常有帮助,但这也意味着该模型在处理那些无需过多思考的简单请求时,仍会消耗数千个推理令牌。对于常规的编程任务,可在 LM Studio 的模型设置中将推理难度降至 mediumlow,这样既能显著提升响应速度,又不会大幅影响质量。只有面对真正需要高强度推理的问题时,才应使用 xhigh 级别。

    在本地运行该模型时,可用的量化格式包括 GGUF 和 MLX,这两种格式均提供 4 位、5 位、6 位和 8 位精度版本。MLX 是专为 Apple Silicon 平台设计的格式。

    对于 Mac 用户而言,内存需求大致如下,这可帮助您判断何种量化级别适合您的硬件:

    作为参考,搭载 M4 芯片且拥有 32 千兆字节共享系统内存的 Mac mini,运行 4 位量化版本时每秒可生成约 5 到 6 个标记。从绝对速度来看不算快,但对于负责编写和编辑代码而非实时流式输出文本的智能体而言已经足够使用。在性能更强的 Apple Silicon 芯片——如 Max 或 Ultra 系列——或功能强大的 Nvidia GPU 上,处理速度会有显著提升;有报告称,在更强的消费级设备上,量化后的性能可达每秒 15 到 30 个标记。

    第一步:安装 LM Studio

    LM Studio 是一款桌面应用程序,负责在本地加载模型,并通过兼容 OpenAI 的 API 服务器将其暴露出来。Pi 实际上就是与那个服务器进行通信的。

    你可以从官方下载页面获取它——提供 macOS、Windows 和 Linux 版本。

    像安装其他桌面程序一样安装它,然后启动即可。

    步骤 2:在 LM Studio 中下载 Qwen3.8–27B

    1. 在 LM Studio 中,打开模型搜索/发现面板。
    2. 查找 qwen/qwen3.8-27b,或者直接访问 LM Studio 网站上的该模型页面
  • 根据前述的内存分配情况,选择适合您硬件的量化级别——对于大多数拥有24至32GB内存的机器而言,MLX 4位量化版本能实现最佳平衡。如果您希望在下载前查看模型权重,可直接在Hugging Face上浏览这些经过社区量化的文件。
  • 下载模型后,可通过“聊天”选项卡或“我的模型”选项卡将其加载。在加载过程中,请设置一个不会超出可用内存范围的上下文长度——16K是一个合理的默认值,如有足够空间可适当提高该数值。
  • 在继续之前,请打开模型的设置面板,出于前述原因,将编码和智能体任务中的“推理强度”从xhigh调低至mediumlow
  • 步骤3:启动LM Studio的本地服务器

    很多人都会在这一步遇到问题——将模型加载到聊天界面中并不代表它就能自动作为API使用。

    1. 在LM Studio中切换到“开发者”标签页。
    2. 开启“启动服务器”选项。
    3. 默认情况下,它会在一个兼容OpenAI的端点上提供服务,地址为http://localhost:1234/v1

    你可以通过终端确认服务器是否正在运行:

    curl http://localhost:1234/v1/models
    

    JSON响应中应列出qwen/qwen3.8-27b(或确切的标识符)——请记下这个完整字符串,因为稍后你会需要它。

    步骤4:安装Pi系统

    Pi 是一款开源的终端式编程工具。它支持用户自行管理密钥,且与具体模型无关,从设计之初就旨在能够同样良好地运行在云服务提供商的平台上,也能在 LM Studio 或 Ollama 等本地兼容 OpenAI 的服务器上运行。

    官方安装程序:

    curl -fsSL https://pi.dev/install.sh | sh
    

    或者,如果您更愿意使用 npm:

    npm install -g @earendil-works/pi-coding-agent
    

    确认安装是否成功:

    pi --version
    

    完整文档可在 pi.dev/docs/latest 查阅。

    第 5 步:将 Pi 指向您的本地 LM Studio 模型

    Pi 会将服务提供商的配置信息保存在 ~/.pi/agent/models.json 文件中。打开该文件(如果尚不存在则创建),然后添加一条指向 LM Studio 本地服务器的记录:

    {
      "providers": {
        "lmstudio": {
          "baseUrl": "http://localhost:1234/v1",
          "api": "openai-completions",
          "apiKey": "lm-studio",
          "models": [
            {
              "id": "qwen/qwen3.8-27b",
              "input": ["text"],
              "contextWindow": 65536,
              "reasoning": true
            }
          ]
        }
      }
    }
    

    这里有一些细节很容易出错:

    • baseUrl 必须与 LM Studio 开发者标签页中显示的地址完全一致,其默认值为 http://localhost:1234/v1
    • apiKey 可以填写任何占位文本——LM Studio 的本地服务器不会对其进行验证,但如果不填入该字段,Pi 就不会显示对应模型。
    • models[].id 需要与执行 curl http://localhost:1234/v1/models 后 LM Studio 返回的内容逐字符匹配。细微差异是导致本地模型无法出现在预期位置的最常见原因。
    • contextWindow 应该设置为加载模型时实际配置的上下文长度,而非模型的绝对最大值。

    你还可以通过编辑 ~/.pi/agent/settings.json 将其设置为默认提供方:

    {
      "defaultProvider": "lmstudio",
      "defaultModel": "qwen/qwen3.8-27b"
    }
    

    重启 Pi 后——或在已打开的会话中运行 /model——选择 lmstudio / qwen/qwen3.8-27b。从那时起,Pi 发出的所有请求都会留在您的机器上,不会有任何数据传送到本地网络之外。

    构建《愤怒的小鸟》风格的关卡

    在所有配置都准备就绪后,接下来的任务是给 Pi 下一个要求较为宽松的指令:用 愤怒的小鸟 的风格制作一个可在浏览器中运行的关卡——包括弹弓机制、抛射物物理效果、可被击碎的积木堆,以及需要推倒的猪角色——所有这些都要整合在一个独立的 HTML/JS/Canvas 页面中。

    有趣的是,它并非在首次尝试时就成功生成了可运行的代码——那是在将推理难度降至medium之后才实现的。在xhigh难度下,模型在写出任何一行代码之前就耗费了大量计算资源去反复质疑基础物理常数。一旦调整妥当,它就能合理地处理以下内容:

    • 弹弓的拖动发射机制与抛体运动
    • 涵盖重力、碰撞以及方块倾倒等要素的基础物理逻辑
    • 将整个程序保存为单个整洁的JavaScript文件,以便在多轮迭代中不断修改而不丢失已编写的代码

    这正是SWE-bench Pro、Terminal-Bench和LiveCodeBench等评测工具旨在衡量的那种智能编码能力,其表现也与这些评分所反映的情况一致。这并非表面上的聊天机器人把戏——而是一个能够在完全离线状态下,利用你桌上已有的硬件,从头到尾完成多文件、多轮次的编码任务的模型。

    如果你打算自行搭建的实用建议

    • 默认选择中等推理强度。xhigh留到真正复杂的架构或算法难题上使用。在常规的编码智能体循环中,它只会增加延迟而无法提升效果。
  • 根据可用内存大小来确定上下文窗口的大小,而非依据模型的理论上限。 262K的上下文窗口或1M的扩展选项在理论上看起来很棒,但由于每个标记大约需要64 KB的KV缓存,过长的上下文会极快地耗尽内存。对于大多数单GPU机器或Apple Silicon系统而言,16K–64K的范围才是更实际的目标。
  • 仔细核对模型标识符。 本地部署失败的最常见原因就是models.json中的条目与LM Studio显示的ID不完全匹配。
  • 调整对处理速度的预期。其实际速度应在每秒数十个token左右,而非云API那样的高速。虽然这是在无需成本且数据不离开机器的条件下运行的合理折衷,但仍然需要提前规划,尤其是在使用低端硬件时。
  • 总结

    不久前,要让完全本地运行的模型构建出可玩的物理引擎游戏还显得相当雄心勃勃。如今,一个经过量化处理、可在单台Mac上流畅运行的270亿参数模型,再结合一个轻量级的开源终端代理,仅需一个下午就能完成这项任务。如果你拥有24GB或更多统一内存,或是性能尚可但目前处于闲置状态的GPU,那么这种方案确实是一种零边际成本且极其有趣的途径,能让你直观感受到本地AI编程工具的发展程度。

    本指南中引用的资源:

    LM Studio的下载页面位于lmstudio.ai/download,该模型对应的条目可在lmstudio.ai/models/qwen/qwen3.8-27b下找到。量化后的MLX权重则存储在Hugging Face的lmstudio-community命名空间中,标识名为Qwen3.8-27B-MLX-4bit。Pi编程智能体拥有自己的网站pi.dev,相关文档可在pi.dev/docs/latest查看。

    相关阅读

  • ReAct详解:AI智能体如何将推理与现实世界行动相结合 — 了解ReAct框架如何通过结合推理与工具使用来为AI智能体提供动力,以及它与思维链模型、强化学习模型及传统推理模型的区别。