


























紧接上文,这次将以 Fedora 41 为例,搭建另一组基于大语言模型工具,适合仅有核显的办公轻薄本在有隐私顾虑和网络受限的场景下继续学术研究。这里介绍的思路及基本步骤亦适用于 OSX 及 Windows 系统。
Koboldcpp 是基于知名 LLM 推理引擎 llama.cpp 的外围封装,提供了多种灵活的运行方式。相比于其他流行的本地 LLM 部署方式(比如 ollama 以及本站之前介绍过的 Llamafile ),Koboldcpp 的优势有:
更多的详情可以参考项目的 Wiki 说明文件。Koboldcpp 提供了适用于多种平台的预编译版本,适用于无 AVX 的古老 CPU、新旧版本 CUDA、Mac Metal 等各种环境。由于接下来主要在办公轻薄本上运行,所以会以 Vulkan 后端的版本用作说明:
Assets 中的 koboldcpp-linux-x64-nocuda(Linux X86_64) ,这个版本不包含 CUDA 运行时环境,所以仅有 70MB 左右mv -v koboldcpp-linux-x64-nocuda $HOME/bin/koboldcpp
chmod +x $HOME/bin/koboldcpp
学术研究的场景下大致有外语翻译、文本总结和分析的需求。基于本文撰写时,遵循开源协议发表的 LLM 中这两方面做的比较好的便是支持 29 中自然语言的 Qwen2.5 和具备深度推理功能的 DeekSeek-R1了 。当然后者受限于设备性能,仅能选择体积较小的蒸馏版。考虑到大多数办公轻薄本仅有 16G 融合内存,所以后续的描述以下述两款 Q5_k_M 量化的 7B 模型 为例,若内存充裕的话,可以选择相应模型更大参数的版本:
模型文件较大,下载完成需要一定的时间,之后将其挪动到任意一个自己觉得合适的位置,比如 $HOME/gguf。
如果在终端以不带任何参数的方式运行 Koboldcpp 的话,会打开其图形化的启动器:
$HOME/bin/koboldcpp *** Welcome to KoboldCpp - Version 1.86.2 For command line arguments, please refer to --help *** Unable to detect VRAM, please set layers manually. Auto Selected Default Backend...
此时仅需做少许配置:
之后点击 "Launch",便可以启动其内建名为 “Kobold Lite” 的图形界面。从 1.83 版本起它已经可以根据加载 GGUF 模型里包含的信息自动应用匹配的聊天模板了,但对于包含深度推理的 DeepSeek 模型来说,模板里默认的单次 512 的输出量明显不够用,需要调整一下:
笔者分别在搭载 AMD Ryzen 5600U 轻薄本和 AMD Rayzen 6850HS 的办公本做了测试,相比之前受制于显存仅能使用 CPU 的结果来看,来自 Vulkan 的 GPU 加速使得推理时间缩短了 70% 左右,实际体验的改善非常明显。至于为什么没有更快,大概率是内存瓶颈的缘故了。
虽说 Koboldcpp 的 Launcher 和 Kobold Lite 功能全面,但是毕竟是个不支持国际化的全英文界面,并非适用所有学术研究人员。另一方面,上述提及的 Launcher 和 Kobold Lite 配置是独立保存的,每次启动时都手动指定加载配置文件略显麻烦。所以接下来将采取命令行的方式将 Koboldcpp 的模型启动和配置整合成一键运行脚本。
对于需要传给 Launcher 选项来说比较直观:
--model :指定模型文件名--usevulkan : 指定使用基于 Vulkan GPU 加速后端--gpulayers :用 -1 做自动检测或者指定一个具体值--skiplauncher : 略过 Launcher 启动器--quiet : 避免在命令行终端打印输入提示词和生成的结果--contextsize : 指定更大的上下文窗口--defaultgenamt : 单次生成的内容量上限,注意不能超过前一个上下文窗口的配置于是相对应之前 DeepSeek-R1 的图形化界面配置的命令版本为:
$HOME/bin/koboldcpp --model $HOME/gguf/DeepSeek-R1-Distill-Qwen-7B-Q5_K_M.gguf --usevulkan --gpulayers -1 --skiplauncher --quiet --contextsize 12288 --defaultgenamt 2048
类似的,Qwen2.5 的命令行唤起方式则为:
$HOME/bin/koboldcpp --model $HOME/gguf/qwen2.5-7b-instruct-q5_k_m.gguf --usevulkan --gpulayers -1 --skiplauncher --quiet --contextsize 12288 --defaultgenamt 2048
之后将上述命令放置入偏好的终端脚本或批处理文件中保存即可。后续当运行这个脚本或者批处理文件的时候,Koboldcpp 将在后台以进程方式且不在浏览器打开 Kobold Lite,但在 http://localhost:5001 上提供其他应用访问的 KoboldAI、OpenAI 和 Ollama 三种风格 API。如需退出,关闭终端终端窗口即可。
当然可以进一步利用 "systemd" 的方式彻底将其服务化并纳入用户的登录进程管理,并不过这并不影响外围应用的访问,所以不再赘述。
接下来我们看下如何利用上述配置好的 LLM 帮助外文文献的阅读。pot-app 是一款跨平台的翻译工具,使用 Rust 搭配 Web 技术开发的界面十分友好。其官网提供常见桌面操作系统的下载,此外 Linux 用户亦可从 Flathub 下载:
flatpak install flathub com.pot_app.pot
由于 pot-app 启动后默认会在托盘区,所以如果在 Linux 平台使用 GNOME 桌面环境的话,还需要安装下述插件才能看到,在 Fedora 上为:
pkcon install gnome-shell-extension-appindicator
之后启动 pot-app 进行如下配置:
在接着的配置界面中,输入下列信息:
"配置名称" :什么都行,比如 "Koboldcpp"
http://localhost:5001/v1/chat/completionsnokey最后点击配置界面中的“保存”,如果一切无误且以命令行运行的 Koboldcpp 保持开启的的话,pot-app 会自动检测下并关闭配置界面。此时可以根据需求删除或禁用服务列表中的其他服务。
如果是 Win 或者 OS X 系统,那么根据官网教程再安装额外的支持插件后,即可实现划词翻译了,弹出的窗口中名为 "Koboldcpp" 字段内的内容便是基于本地大语言模型的翻译结果了。
但在 Linux,特别是默认使用 Wayland 的 GNOME 桌面环境上来说,划词翻译和文字识别均无法正常工作。经过一番测试,此时使用系统快捷键使用外部调用的方式兼容性更好一些。
这里以 GNOME 47 为例:
根据官网指南,在弹出的配置窗口中填入下述内容:
curl "127.0.0.1:60828/selection_translate"Super + T 之后在 GNOME 桌面环境下,选择需要翻译的文本后,再按下刚才指定的快捷键,就能唤起 "pot-app" 的翻译窗口了。
目前能完美适配 GNOME Wayland 环境的截图工具也就是 GNOME 内置的截图了。根据官网描述的的调用流程,可以将最新的内置截图复制到指定的缓存目录,再调用 curl 发送请求文字识别。对于从 Flathub 安装的版本,可以使用下述脚本实现:
#!/bin/bash mkdir -p "$HOME/.var/app/com.pot_app.pot/cache/com.pot-app.desktop" && \ cp "$(ls -t $HOME/图片/截图/*.png | head -n1)" "$HOME/.var/app/com.pot_app.pot/cache/com.pot-app.desktop/pot_screenshot_cut.png" && \ curl "127.0.0.1:60828/ocr_recognize?screenshot=false" |
其中 $HOME/图片/截图 需要根据当前用户的语言做调整,指定到实际内置截图工具的默认保存目录。由于自定义快捷键不支持连续输入,所以需要之后将上述内容保存至一个当前用户可以访问脚本文件,比如 potocr.sh,之后仿照划词翻译的方式在 GNOME 系统的“自定义快捷键”中配置:
potocr.shSuper + C之后在 GNOME 桌面环境下,使用内置截图完成后,再按下刚才指定的快捷键,就能唤起 "pot-app" 的文字识别窗口,并可关联翻译。
多说一句,其 "pot-app"" 插件系统提供的 RapidOCR 识别插件对于中文的识别率明显好于系统默认,推荐安装。
GPT4All 是一款注重隐私的大语言模型应用程序:
借助它,可以实现离线个人版本的 RAG(检索增强生成),非常适合研究文献的处理。
其官网提供了各个平台的下载,甚至包括 Windows ARM 版本。对于 Linux 用户来说,还可以使用 Flathub 社区维护版本:
flatpak install flathub io.gpt4all.gpt4all
虽说 GPT4All 包含的推理引擎也支持 Vulkan 后端设备,但是其相比 "Koboldcpp" 的 上游 Vulkan 实现来说,在可以使用 GPU 加速的模型选择方面限制很多,不支持精度较佳的 K_M 量化模型。所以接下来我们将配置它使用我们通过 Koboldcpp 在命令行状态提供的 OpenAI 实现聊天:
nokeyhttp://localhost:5001/v1deepseek-r1-distill-qwen之后我们便可以调用 "Koboldcpp" 使用 Vulkan GPU 加速的方式与本地文档进行聊天了。GPT4All 的聊天窗口对于 DeepSeek-R1 的思考模式做了适配,会默认折叠起来,很方便。
当然,也可以类似的配置 qwen2.5,实现一般的知识检索和问答。
注意本地文档索引的生成依然是依赖内建的 Nomic AI 的 Embedding 引擎,是无法利用 Vulkan GPU 加速的。不过 Embedding 本身计算量并不大,哪怕是 CPU 加速中等尺寸的本地文档集合也用不了太久时间。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。