云计算百科
云计算领域专业知识百科平台

在无图形界面的服务器上运行 LM Studio


在无图形界面的服务器上运行 LM Studio

LM Studio 是一个强大的本地大模型管理和运行工具,但它本身是一个图形化(GUI)应用。本文将详细介绍如何在只有命令行的无头(Headless)服务器上,通过一些技巧成功运行 LM Studio 并使用其命令行工具(CLI)进行模型的下载、加载和交互。

官方网站: https://lmstudio.ai/

第一步:环境准备与依赖安装

首先,需要安装 LM Studio 运行所需的依赖库。这些库主要用于支持其底层的 AppImage 应用以及创建一个虚拟显示环境来“骗过”GUI检测。

# 更新系统的软件包列表
sudo apt update && sudo apt install -y \\
libfuse2 \\
xvfb \\
libatk1.0-0 \\
libatk-bridge2.0-0 \\
libgtk-3-0 \\
libnss3 \\
libcups2 \\
libxss1 \\
libgdk-pixbuf2.0-0 \\
libasound2 \\
libasound2t64 \\
nodejs \\
npm

第二步:下载并运行 LM Studio 主程序

由于服务器没有图形界面,需要启动一个虚拟的 X Server 显示环境(Xvfb),并将 LM Studio 应用指向这个虚拟屏幕。

  • 下载 LM Studio 的 AppImage 文件 注意:请根据需要从官网获取最新的版本链接,此处以 0.3.14-5 为例。
  • wget https://installers.lmstudio.ai/linux/x64/0.3.14-5/LM-Studio-0.3.14-5-x64.AppImage

  • 赋予文件执行权限
  • chmod +x LM-Studio-0.3.14-5-x64.AppImage

  • 启动虚拟屏幕 这条命令会在后台启动一个编号为 :1 的虚拟屏幕,分辨率为 1024×768。
  • Xvfb :1 -screen 0 1024x768x16 &

  • 在虚拟屏幕上运行 LM Studio 为了让后续的命令行工具能够连接,必须先将 LM Studio 的主程序作为后台服务运行起来。
    • 打开一个新的终端会话 或使用 screen/tmux。

    • 导入虚拟屏幕的环境变量,告知后续程序在哪个屏幕上运行。

      export DISPLAY=:1

    • 在后台启动 LM Studio 主程序。–no-sandbox 参数用于解决在某些环境下可能出现的权限问题。

      ./LM-Studio-0.3.14-5-x64.AppImage –no-sandbox &

    至此,LM Studio 的核心服务已经在后台成功运行。

    第三步:安装与配置 lms 命令行工具

    LM Studio 内置了一个名为 lms 的命令行工具,用于控制后台的主程序。

    官方文档: https://lmstudio.ai/docs/cli

    lms:一个控制器

    最重要的一点是:lms 工具本身不直接处理模型,它是一个控制器。必须先确保 LM Studio 主程序已在后台运行,lms 才能连接并控制它。

  • 安装 lms 到系统路径 LM Studio 已经内置了 lms,只需运行一个引导命令,即可将其链接到系统路径下,方便全局调用。
  • ~/.lmstudio/bin/lms bootstrap

  • 验证安装 必须打开一个新的终端窗口/SSH会话,或者运行 source ~/.bashrc (或 source ~/.zshrc) 来刷新环境。然后运行:
  • lms

    如果看到 lms 的帮助信息,说明安装成功。使用 lms status 可以检查 CLI 与后台服务的连接状态。

    lms status

    第四步:核心工作流程:使用 lms 管理模型

    以下是在命令行中从零开始运行一个模型的核心步骤:

  • 搜索并下载模型 使用 lms get 命令可以从 Hugging Face Hub 搜索并下载模型。
  • # 1. 搜索模型,找到它的标识符 (Identifier)
    # 例如,搜索 "Mistral 7B Instruct GGUF"
    lms get "Mistral 7B Instruct GGUF"

    # 2. 使用完整的标识符下载指定模型
    # 例如,下载 TheBloke 的 Mistral-7B-Instruct GGUF 格式模型
    lms get "TheBloke/Mistral-7B-Instruct-v0.2-GGUF"

  • 查看已下载的模型 使用 lms ls (ls = list) 命令,查看本地所有可用的模型,并获取加载模型时需要使用的完整路径。
  • lms ls

  • 加载模型 这是最关键的一步。使用 lms load 命令将指定的模型文件加载到内存或显存中。
  • # 基本加载 (请将路径替换为 `lms ls` 输出的实际路径)
    lms load "TheBloke/Mistral-7B-Instruct-v0.2-GGUF/mistral-7b-instruct-v0.2.Q4_K_M.gguf"

    高级选项(非常有用):

    • GPU 加速:使用 –gpu 参数。max 表示尝试将所有层都卸载到 GPU。
    • 自定义别名:使用 –identifier 为模型设置一个简短、好记的别名,方便后续调用。

    组合示例:

    lms load "TheBloke/Mistral-7B-Instruct-v0.2-GGUF/mistral-7b-instruct-v0.2.Q4_K_M.gguf" –gpu=max –identifier="model"

  • 确认模型已加载 使用 lms ps (ps = processes) 命令,查看当前正在运行的模型。
  • lms ps

    此时应该能看到别名为 my-mistral 的模型正在运行。

    第五步:与模型交互

    模型加载后,有两种主要方式与其互动。

    方法一:直接在终端对话 (CLI Chat)

    使用 lms chat 命令,可以直接在终端里开始对话。

    # –model 参数指定要对话的模型别名
    lms chat –model "my-mistral"

    之后就可以输入文本并看到模型回复了。按 Ctrl+C 退出对话模式。

    方法二:启动 API 服务器

    若要让其他代码或应用来调用模型,可以启动一个兼容 OpenAI 规范的 API 服务器。

  • 启动服务器:
  • lms server start

    服务器默认监听在 1234 端口。

  • 在另一个终端中使用 curl 调用: 注意 model 字段可以直接使用之前设置的别名 my-mistral。
  • curl http://localhost:1234/v1/chat/completions \\
    -H "Content-Type: application/json" \\
    -d '{
    "model": "my-mistral",
    "messages": [
    { "role": "user", "content": "你好,请介绍一下你自己" }
    ],
    "temperature": 0.7
    }'

    第六步:清理与停止

    • 卸载模型:当不再需要某个模型时,可以将其从内存中卸载以释放资源。

      # 卸载指定别名的模型
      lms unload "my-mistral"

      # 卸载所有已加载的模型
      lms unload –all

    • 停止 API 服务器:

      lms server stop

    • 查看状态:可以随时使用 lms status 检查服务器和模型的整体状态。


    注意如果想在指定端口运行api server服务可以增加 –port参数

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 在无图形界面的服务器上运行 LM Studio
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!