Featured image of post LM Studio 本地部署 LLM

LM Studio 本地部署 LLM

使用 LM Studio 部署一些尺寸合适的 LLM 一定程度上代替云端 LLM

LM Studio 本地部署 LLM

最近一段时间使用 AI 的频率越来越高了,大部分时间都在“白嫖”公司额度,但是公司给的额度太低 + DeepSeek 涨价导致大部分时间是不够用的。

又因为公司电脑其实是一台性能相当可以的 MacBook Pro,想着性能空着也是空着,不如充分利用起来——MacBook 虽然没有 NVIDIA 的 GPU,但是统一内存真的蛮香的,完全可以利用起来。

为什么是 LM Studio

其实本地跑 LLM 的工具有不少,Ollamallama.cpp 之类我都有了解过,最后选择 LM Studio 主要是因为:

  1. 图形化界面:虽然不是必须的,但是看到模型下载进度、显存占用、生成速度这些信息都直接在界面上展示,调试起来确实方便很多。
  2. 模型管理方便:直接在应用内搜索、下载 Hugging Face 上的模型(虽然因为网络原因其实大部分时候是从国内魔搭去下载的,下文再说)。
  3. 支持 MLX 框架:Mac 上跑 LLM 当然还是 MLX 优先。

安装

1
2
# macOS
brew install --cask lm-studio

Windows / Linux 也有对应的安装包或者包管理工具,安装过程没什么可说的。

选模型

模型基本上就是挑几个大小适合本地部署的、支持 MLX 的模型。 目前尝试过这么几个(省略参数和量化信息):

  • Qwen3.6/3.8:开源的、小尺寸的 LLM 当然绕不过 Qwen,3.6和新出的3.8都试过了,本地部署智力水平对得起参数大小。输出速度方面基本对话没问题,但是想批量跑脚本或者 Agent 多少有些勉强了,可能需要更小尺寸的版本和更低的量化版本。
  • HY-MT2:这个主要是因为我的 LLM 需求里有一块比较具体的就是“翻译”,使用通用大模型当然也没问题,但是就是速度上面太难受。了解下来腾讯的这个垂类的大模型能在尺寸很小的前提下达到一个比较高的翻译质量,所以就也试了试。
  • Gemma 4:之前比较火热的时间试用了一下,主要用的是一个破甲版本,因为想尝试一些不可描述的内容,但是因为用的是自己的游戏本,是一块笔记本上的 3060,性能一般所以选了尺寸比较小的版本。结果就是写出来的不可描述的东西其实也没啥不可描述的……

下载

下载额外补充一下:正常来说直接在 LM Stuido 自己的界面里选择、下载就好了,但是因为种种原因,不科技下载速度很慢或者下不动、科技了 LLM 这种动辄十几个G、几十个G的东西烧流量太多了。

所以我大多情况下还是去魔搭下载模型,然后放到 LM Studio 默认的位置,这样 LM Stuido 也能正常读取到。

启动本地服务

选好模型之后,在 LM Studio 里点击加载,然后在 Developer(开发者)页面开启本地服务器。

默认地址是 http://localhost:1234/v1,这个和 OpenAI 的 /v1 接口格式是兼容的。开启之后用 curl 简单验证一下:

1
2
3
4
5
6
7
8
curl http://localhost:1234/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen2.5-7b-instruct",
    "messages": [{"role": "user", "content": "你好"}],
    "temperature": 0.7,
    "max_tokens": 512
  }'

实际使用

因为提供了 OpenAI 兼容的 API,所以只需要把 base URL 指向 http://localhost:1234/v1,原来写给 OpenAI 的代码基本上把 api_key 随便填一个就能用。比如 Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:1234/v1",
    api_key="lm-studio",  # 本地服务不校验 key,随便填
)

resp = client.chat.completions.create(
    model="modle-id",
    messages=[{"role": "user", "content": "用一句话介绍 LM Studio"}],
)

print(resp.choices[0].message.content)

那这样的话很多依赖 OpenAI SDK 的脚本都能直接切换过来,只要改动一行 base_url。

如果有安全考量的话修改端口、配置 api-key 也都没问题。

使用体验

目前用的最多的还是翻译:接入浏览器翻译扩展翻译英文网站、本地脚本里翻译英文文本……体验上其实相当可以:速度、准确率上都没有什么问题,完全可以代替云上的 LLM 请求。

至于普通对话,至少我目前还没有什么特别需要使用本地部署 LLM 而不是用各厂商网页端的场景。

版权声明:本文为 CBC 原创,依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上出处链接及本声明。