機器之心編譯
最近,我們都在關注旗艦級大模型的進步,其實本地運行的 AI 模型也迎來了重要的分水嶺。
在可行性和實用性方面,很多新模型已經實現了性能的跨越,不論智力、智能體(Agent)能力還是工具鏈成熟度,在最近半年里都有巨大的提升。
看起來已經能做到「點兩下就能跑」了。
本文作者 Vicki Boykis 是一家創業公司的創始機器學習工程師,主要從事推薦系統 / 個性化 / 信息檢索方面的工作。
此前,她曾在 Mozilla.ai 從事 LLM 和 LLM 基礎設施方面的工作,也曾在 Duo、Tumblr、Automattic 和 Comcast 從事機器學習和推薦系統方面的工作。
她最近發表的博客文章,在 HackerNews 上成了爆款:
![]()
我從本地模型剛推出時就開始和它們合作,現在它們已經做得出乎意料地好了。
我有一臺 2022 年款 M2 Mac,配備 64 GB 內存和 1TB 存儲空間。基于這樣的硬件,我一直都在使用:
- Mistral 7B
- Gemma 3
- OpenAI OSS-20B
- Qwen 3 MOE,以及其他一些 Qwen 變體,例如 Qwen 2.5 Coder。
在許多不同的系統設置中,例如:
- 使用 Open WebUI 的原始 llama.cpp 文件
- llama-cpp-python
- Ollama
- llamafiles
- LM Studio
現在的本地模型,是個什么水平?
在大模型興起后,本地模型運行緩慢、難以使用是常態,而且對于大多數編程任務來說準確率不高。本地模型嚴重落后的觀點在很大程度上是正確的,直到 2025 年 8 月 OpenAI GPT-OSS 的發布才讓我們改變了這種看法。我沒有確鑿的科學證據 —— 我個人判斷一個模型是否足夠好的標準是「我是否需要將其與 API 模型進行比對」,而 GPT-OSS 是我第一個開始大幅減少這種比對次數的模型。
因此,我主要使用本地模型作為快速、個性化的谷歌,來解答不需要時效性的開發問題。
但是隨著谷歌最新發布的 Gemma 4 系列產品,我終于能夠在本地進行智能體編碼,并且循環的準確率 / 速度達到了前沿模型的 75% 左右,這真是令人難以置信。
目前為止,我一直使用 gemma-4-26b-a4b LM Studio 實現作為我的默認本地模型。到目前為止,我使用本地設置完成了以下工作:將一個 Python 腳本(原本是一個 notebook)重構為一個包含 5-6 個模塊的倉庫,并對該模塊進行代碼檢查,以確保泛型使用正確的類型提示(現在大多數前沿模型都會自動執行此操作,但并非總是如此)。
![]()
我還用它來校對一些博客文章、編寫單元測試,以及搭建一個基于雙塔模型的推薦系統倉庫,看看智能體在空白環境下會如何運作。以下是它生成的內容,雖然非常基礎,但仍然遠遠超出了我去年所能想象的范圍:
![]()
![]()
請注意,由于我將所有智能體工作流運行在具有有限執行權限的 Docker 容器中,因此環境受到限制。
我還在開發一款應用,用于篩選 arXiv 論文中的熱門話題。出于好奇,我讓 Pi 查看了我之前的 LM Studio 會話日志,想弄清楚我使用 LM Studio 的目的是什么:
![]()
![]()
不出所料,自從我開始參與 Rijksearch 項目以來,
![]()
這些任務都不是什么突破性的任務(再次強調,都是大量的個性化 Google / 文檔查找),但處理這些任務確實讓我的 GPU 和 RAM 得到了充分的使用,KV 緩存增長到了 64 GB RAM。
![]()
但對我來說,更重要的一點是,就在 6 個月前,這類任務即使再簡單,對于本地模型來說也是不可能完成的。
Gemma-4-12b-qat 雖然剛發布不久,但其性能與規模相比已經給我留下了深刻的印象。模型架構本身就非常有趣,并提出了一系列引人深思的問題,例如「如果我們受到性能和價格的限制,我們需要在架構上做出哪些權衡?」—— 這個問題在目前瘋狂的 token 淘金熱潮中還沒有真正被提出過。
本地運行 Agent 模型
但別光聽說,自己動手試試吧!如果你想運行本地智能體流程,你需要一個本地模型推理引擎、一個智能體框架以及本地模型工件。你需要配置智能體框架,使其指向你的本地推理端點,也就是通過推理引擎提供的已下載模型工件。
就我的本地設置而言,我目前使用 Pi 作為智能體框架,LM Studio 作為推理服務器,盡管如果我直接使用 llama.cpp 可能會更快 —— 這是未來實驗的一個潛在方向。
這篇文章(https://patloeber.com/gemma-4-pi-agent/)很容易理解,它指導我們如何用 Pi 和 LM Studio 設置智能體編碼,雖然我對文章中的設置做了一些調整。
1、模型:該文章推薦 Gemma 26B A4B,但 gemma-4-12b-qat 更新、更小、更快,而且準確性沒有太大損失。
2、安全性:我將所有 Pi 會話都運行在 Docker 容器中,并只授予其 bash 權限,這樣它就無法運行 Python 代碼或進行網頁瀏覽,盡管我計劃在另一個鏡像中允許 curl 用于我正在進行的一些研究工作。
3、智能體配置:由于我所有程序都在 Docker 中運行,所以我編輯了 Pi 的配置 models.json,以便讓 Pi 與模型通信。
"lmstudio": { "baseUrl": "http://host.docker.internal:1234/v1",
"api": "openai-completions",
"apiKey": "not-needed",
"models": [ { "id": "google/gemma-4-12b-qat",
"input": [ "text",
"image" ] } ] }
這是我的 Docker Compose 配置:
services:
pi:
build:
context: .
dockerfile: Dockerfile
image: pi-agent:0.74.0
init: true
stdin_open: true
tty: true
extra_hosts:
- "host.docker.internal:host-gateway" environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} OPENAI_API_KEY: ${OPENAI_API_KEY:-not-needed} GEMINI_API_KEY: ${GEMINI_API_KEY:-} OPENAI_API_BASE: ${OPENAI_API_BASE:-http://host.docker.internal:1234/v1} # note that you'll need to specify a base if you also use OpenAI to access OpenAI's actual completions endpoint WHATEVER_API_KEY: ${WHATEVER_API_KEY:-} volumes:
- ${HOME}/.pi/agent/models.json:/config/models.json
- ${WORKSPACE:-.}:/workspace
- pi-config:/config
- pi-sessions:/sessions
working_dir: /workspace
volumes:
pi-config:
pi-sessions:
這是運行的 bash 腳本 pi。
#!/usr/bin/env bash
# Pi — Start the containerized Pi agent.
# Directory containing this script and the compose files.SCRIPT_DIR="(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Workspace to mount into the container. WORKSPACE_DIR="${WORKSPACE:-$(pwd)}"case "$WORKSPACE_DIR" in
*) WORKSPACE_DIR="WORKSPACE_DIR" && pwd)" ;;
esacexport WORKSPACE="$WORKSPACE_DIR"
sandbox="${PI_SANDBOX:-0}"pi_args=()
while (($#)); do case "$1" in
--sandbox) sandbox=1 ;;
--no-sandbox) sandbox=0 ;;
*) pi_args+=("$1") ;;
esac shift
done
compose_files=( -f "$SCRIPT_DIR/docker-compose.yml" )if [[ "$sandbox" == "1" ]]; then # an even more secure sandbox compose_files+=( -f "$SCRIPT_DIR/docker-compose.sandbox.yml" )fi
# Derive a container name from the workspace directory's basename.# Sanitize to characters Docker accepts: [a-zA-Z0-9][a-zA-Z0-9_.-]*repo_slug="WORKSPACE_DIR" | tr -c 'a-zA-Z0-9_.-' '-' | sed 's/^-*//')"[[ -z "$repo_slug" ]] && repo_slug="workspace"container_name="pi-${repo_slug}-$$"
api_key_args=( -e OPENAI_API_KEY
-e DEEPSEEK_API_KEY
-e ANTHROPIC_API_KEY
-e GEMINI_API_KEY
cmd=( docker compose
--project-directory "$SCRIPT_DIR" "${compose_files[@]}" run --rm
--name "$container_name" "${api_key_args[@]}" pi
if ((${#pi_args[@]})); then cmd+=("${pi_args[@]}")fi
exec "${cmd[@]}"
我構建了 Docker 容器,并修改了它自身倉庫中的文件。然后,我在我正在編輯的倉庫中運行 Pi,這樣 Pi 就會啟動 Docker,從而避免因直接操作我的物理硬盤而擦除文件或目錄。此外,json 通過將自定義模型配置傳輸到容器中,運行在容器中的 Pi 也能夠訪問這些配置。所有這些在我的實驗中都運行良好。
本地模型仍然存在一些問題:推理速度可能較慢,上下文窗口較小且受限于你自己的硬件和生態系統,盡管像 LM Studio 和 HuggingFace 的「使用此模型」按鈕之類的工具已經大大簡化了相關工作。早期版本存在提示模板不匹配的問題。不過,這些問題通常都能很快得到修復。毋庸置疑,我不確定它是否已經完全準備好用于生產軟件開發。
不過,其優勢眾多,而且該生態系統至關重要,值得投資,尤其是在當下。本地化模式最吸引人的地方之一在于,你可以深入了解幾乎所有方面,例如實時觀察 token 推斷過程。
![]()
并觀察 token 的流入 / 流出。
![]()
你可以進行諸如更改本地上下文窗口、觀察性能提升或下降等操作,并深入了解 GPU 如何處理令牌。你可以更改系統提示符和量化設置。你可以對比不同的模型。你還可以更改和分析測試框架。
可能性無窮無盡,工具也只會越來越好。
參考內容:
https://vickiboykis.com/2026/06/15/running-local-models-is-good-now/
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.