Bonsai-27B-GGUF
lmstudio-community · 工具包
面向 LM Studio 的 27B Bonsai 模型 GGUF 转换版,含 3.80 GB 的 Q1_0 语言文件和 0.93 GB 的 BF16 视觉投影器。已测试文本、视觉和并行工具调用。

Google 开源的结构化数据描述方式:在 .proto 文件里描述一次数据的结构,就能用多种语言读写这些数据。安装说明涵盖 protoc 编译器,以及 Python、Java、Kotlin、C#、Ruby、PHP、C++ 等语言的运行时。
Protocol Buffers 数据序列化 是一款 GitHub 上的开源项目,属于开发类,由 Mindket 上架。可免费获取。当前为第 2 版,最近更新于 。按它的 README 从 GitHub 安装。Mindket 的设置说明可在你的 Mindket 账户获取,以 zip 压缩包下载。
apt install -y protobuf-compiler protoc --version pip install protobuf
Protocol Buffers,简称 protobuf,是 Google 做的一种与语言和平台无关、可扩展的结构化数据序列化方式。你只需在一个 .proto 文件里描述一次数据。编译器 protoc 把这个文件变成你所用语言的代码,该语言的运行时库再负责写入和读取数据。这个条目提供 protoc 和主仓库里各语言运行时的安装说明,Go、Dart 和 JavaScript 则指向它们各自的仓库。
在服务之间传递结构化数据,或者把数据存进文件,又想要类型化的模式、紧凑的消息和自动生成的代码的开发者。混用多种语言的团队也合适,比如一个 Java 服务和一个 Python 任务共用同一个 .proto 文件。概览页说,protobuf 最常见的用途是和 gRPC 一起定义通信协议,以及存储数据。如果单条消息超过几兆字节,或者要让人不看 .proto 文件就读懂数据,就不要用它。
| 行业 | 谁在用 | 怎么用 | 例子 |
|---|---|---|---|
| 后端服务 | 服务和任务之间要共享数据的工程师 | 维护一个 .proto 文件,为每种语言生成代码 | 概览页里的情形:一个 Java 程序写出一条消息,另一个平台上的 Python 应用从中读取数值。 |
| 服务接口 | 要定义通信协议的团队 | 在 .proto 文件里描述消息和服务,再搭配 gRPC | 概览页点名 gRPC、Google Cloud 和 Envoy Proxy 是使用 Protobuf 的项目。 |
| 数据存储 | 把记录存到磁盘的开发者 | 把消息写进文件,再用同一个生成的类读回来 | Python 教程里的通讯录用 SerializeToString() 保存一条 AddressBook 消息,再用 ParseFromString() 读回来。 |
| 安卓应用 | 安卓开发者 | 使用 Java Lite 运行时,Java README 推荐它是因为代码体积更小 | 一个项目在安卓上使用 Bazel 规则 java_lite_proto_library,README 里就是这么写的。 |
| 学习 | 刚接触 protobuf 的人 | 跟着自己所用语言的教程,构建通讯录示例 | 学习者在 examples 文件夹里运行 make python,得到 add_person_python 和 list_people_python。 |
protoc 可以装在 Linux、macOS 和 Windows 上,运行时覆盖下面这些语言。安装说明涵盖这些,Go、Dart 和 JavaScript 则指向它们各自的仓库。
点“获取”会把一个装有 Mindket 安装说明的 zip 压缩包存进你的下载文件夹,主仓库文档里的每种运行时各有一页,内容来自制作者的 README 和文档。先装 protoc,再装你所用语言的运行时。
| 需要 | 说明 |
|---|---|
| protoc | GitHub 发布页上的 zip,或者 apt、Homebrew、winget 里的包 |
| 运行时 | 你所用语言的包,比如 pip 上的 protobuf |
| 版本一致 | 运行时和 protoc 保持同一版本。Java README 说一致或更新都行,examples README 说 Python 要用同一版本 |
| curl 和 jq | 只在使用安装页上下载发布版 zip 的那条命令时需要 |
| 账号或密钥 | 不需要。安装步骤里没有要求 |
apt install -y protobuf-compiler protoc --version pip install protobuf
前两行是安装页给出的 Linux 路线,第三行安装 Python 运行时。在 Mac 上安装页给的是 brew install protobuf,在 Windows 上是 winget install protobuf,后面各跟一句 protoc --version。没有包管理器的话,从发布页下载适合你系统的 zip,解压到 $HOME/.local 下,再把放着 protoc 的文件夹加进 PATH。安装说明里写了每一条命令。
把数据的结构写在一个 .proto 文件里,编译它,再使用生成的类。下面是概览页里的示例消息。
edition = "2023";
message Person {
string name = 1;
int32 id = 2;
string email = 3;
}这里的数字是标签。每个字段在二进制编码里都带着自己的标签,Python 教程说 1 到 15 的标签比更大的编号少占一个字节。用教程里的那一行为 Python 编译,它写明了源目录、目标目录和 .proto 路径。
protoc --proto_path=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/addressbook.proto
这会在目标文件夹里写出 addressbook_pb2.py。教程接着用 SerializeToString() 写出一条消息,用 ParseFromString(data) 读入一条消息。其他语言换一个选项就行:--java_out、--kotlin_out、--csharp_out、--ruby_out 和 --php_out 是各个 README 提到的几个。
你想要一个能被两种语言读取的文件。examples README 为每种语言做了一个通讯录程序,并说可以用 add_person_java 创建通讯录,再用 list_people_python 读取。
export CLASSPATH=/path/to/protobuf-java-[version].jar make java make python
先用 add_person_java 加一个文件名来创建通讯录,再用 list_people_python 加同一个文件名来读取。README 给 C++ 的写法是 ./add_person_cpp addressbook.data,并说 Python 脚本的用法一样。最后得到一个数据文件,两种语言的程序共用。
新手:可以把 .proto 文件想成你数据的一张带类型的表格。protoc 读它,写出一些类,每个字段有一个取值方法和一个设置方法,还有把整条消息变成字节、再变回来的方法。概览页说 Protobuf 像 JSON,只是更小更快。教程假定你对它一无所知,只要求你会用自己的语言写代码和处理文件。教程页有 C++、C#、Dart、Go、Java、Kotlin 和 Python 的版本。
专家:概览页说,删掉的字段,它的编号绝不能再用,所以要把它保留下来。只要你遵守 protobuf.dev 上的更新做法,旧代码读新消息时会忽略新增的字段,新代码读旧消息时,缺少的字段取默认值。同样的数据可以序列化成许多不同的字节串,所以不先解析,就没法比较两条消息是否相等。
Python 有三个后端,API 相同。upb 后端是默认的,随 PyPI 包一起发布,cpp 已弃用,不再在 PyPI 发布,python 是纯 Python 后端。设置 PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION 来选一个,运行下面这段代码就能看到你用的是哪个。README 说它不是官方支持的稳定 API,但对临时诊断有用。
from google.protobuf.internal import api_implementation print(api_implementation.Type())
从源码构建要小心。README 说,main 分支头部的构建时不时会坏,就连发布分支在两次发布提交之间也可能不稳定,所以要固定到某个发布提交。C++ README 警告说,C++ 运行时的两个版本不太可能 ABI 兼容,所以升级后要重新编译,或者静态链接。
安装步骤都是普通的装包和构建步骤,其中有几步会连网。
这个工具包里只有安装说明,由 Mindket 编写。Protocol Buffers,也叫 protobuf,是 Google 的开源项目,要从它自己的仓库安装:https://github.com/protocolbuffers/protobuf
这些说明不是 Google 写的,也没有得到它的认可。README 开头写着“Protocol Buffers - Google's data interchange format”,并说“Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.”,意思是:Protocol Buffers,也叫 protobuf,是 Google 的、与语言和平台无关的、可扩展的结构化数据序列化机制。文档在 https://protobuf.dev 。来源见 https://github.com/protocolbuffers/protobuf/blob/main/README.md
许可证:LICENSE 文件(https://github.com/protocolbuffers/protobuf/blob/main/LICENSE)写的是“Copyright 2008 Google Inc. All rights reserved.”,并包含 BSD 风格许可证的三个条件:在源码里保留版权声明,在随二进制文件提供的文档或其他材料里重现这份声明,没有书面许可不得用 Google 或贡献者的名字为用它做出的产品背书。结尾有一段关于生成代码的话:“Code generated by the Protocol Buffer compiler is owned by the owner of the input file used when generating it. This code is not standalone and requires a support library to be linked with it. This support library is itself covered by the above license.”,意思是:Protocol Buffer 编译器生成的代码归生成时所用输入文件的所有者所有。这段代码不能单独使用,需要链接一个支持库,而这个支持库本身适用上面的许可证。GitHub 的仓库页面把许可证列为“Other”,没有给出 SPDX 名称。
一种模式语言、一个编译器和一组运行时库。你把数据的描述写在一个 .proto 文件里。编译器 protoc 把这个文件变成你所用语言的代码。该语言的运行时库负责读写数据。README 说,安装 protobuf 需要两样东西:协议编译器,以及你所选编程语言的 protobuf 运行时。来源见 README.md
README 的运行时表格给每种语言指了一个地方。来源见 README.md
src 文件夹java 文件夹python 文件夹objectivec 文件夹csharp 文件夹ruby 文件夹php 文件夹分两部分,和 README 说的一样:先装编译器,再装你所用语言的运行时。编译器可以来自发布页上的预编译二进制文件、包管理器,或者用源码构建。运行时来自你所用语言的包管理器,或者用源码构建。下面的说明给出了制作者为每一种做法写的命令。
protobuf 包、三个后端和生成的文件--csharp_out 选项--ruby_out 和 --php_out 选项README 说,大多数用户用受支持的发布版最省事。如果你用 main 分支的最新代码,构建会时不时被不兼容源码的改动和测试不足的行为弄坏。如果你用 C++,或者需要把 protobuf 作为项目的一部分从源码构建,README 说要固定到某个发布分支上的发布提交,因为发布分支在两次发布提交之间也可能不稳定。来源见 README.md
更新编译器的办法和安装时一样:下载更新的发布版 zip,或者用包管理器升级(这是 Mindket 的补充,不是制作者写的)。运行时的版本要和编译器的保持同步:Java README 说要一致或更新,examples README 说 Python 运行时必须和 protoc 是同一个版本,否则可能用不了。README 没有给出卸载步骤。移除发布版 zip 的安装,就删掉你解压出来的文件,以及你加进 PATH 的那一行。移除用包管理器装的包,就用包管理器自己的卸载命令(这是 Mindket 的补充,不是制作者写的)。
git clone https://github.com/protocolbuffers/protobuf.git)会从 GitHub 下载,Bazel WORKSPACE 路线里的 http_archive 会从它的 url 下载,go install google.golang.org/protobuf/cmd/protoc-gen-go@latest 会获取 Go 插件。README.md 6 KB setup/cpp-bazel-cmake.md 6 KB setup/csharp.md 2 KB setup/examples-and-tutorials.md 4 KB setup/install-protoc.md 3 KB setup/java-and-kotlin.md 4 KB setup/other-languages.md 3 KB setup/python.md 4 KB setup/ruby-and-php.md 4 KB
Updated by Mindket to the current version of this kit.
Hacker News、Bluesky、X、Reddit、Facebook 和 YouTube 上提到这个项目的帖子和评论,来自每周一次的搜索和 Trendshift。它们不是 Mindket 写的,也未经核实,点开即可在原帖处阅读。
lmstudio-community · 工具包
面向 LM Studio 的 27B Bonsai 模型 GGUF 转换版,含 3.80 GB 的 Q1_0 语言文件和 0.93 GB 的 BF16 视觉投影器。已测试文本、视觉和并行工具调用。
LibertAIDAI · 工具包
以每权重 2.9 位的 EXL3 量化运行 DeepSeek-V4.1-Flash-1017,这是一份 196 GiB 的副本,适合在自己硬件上部署大模型的人。困惑度与原模型相差不大。
facebook · 工具包
根据文字描述或音频提示生成短音乐片段,是 facebook MusicGen 的 small 检查点。适合想在自己电脑上试用文字生成音乐的开发者和音乐爱好者。
alpindale · 工具包
用一个只有约 984 个权重的小型神经网络,为 C 源代码的每个字符打上语法高亮标签,通过一个小小的 C 程序运行。适合对手工设计的网络好奇的开发者和研究者。
prithivMLmods · 工具包
在浏览器或你自己的电脑上,用一个 Gradio 应用试用 FLUX.2 Klein 图像模型的一组 LoRA。适合制作或测试 AI 图片的人。
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。