Private Vision AI:在您的机器上完整运行 Reka Edge
Source: Dev.to
Reka 刚刚发布了 Reka Edge,这是一款紧凑却强大的视觉‑语言模型,能够 完全在你的机器上运行。无需 API 密钥、无需云端、数据不会离开你的电脑。我在 Reka 工作,编写这篇教程真的很有趣;希望你和我一样享受运行它的过程。
只需三步,你就能从零开始,让 AI 识别任何图像或视频中的内容。
您需要的
- 一台拥有足够内存以运行 7 B 参数模型的机器(推荐约 16 GB)
- Git
- uv,一个快速的 Python 包管理器
安装方法:
curl -LsSf https://astral.sh/uv/install.sh | sh
此方法适用于 macOS、Linux 和 Windows(WSL)。如果您在没有 WSL 的 Windows 上,请改为获取Windows 安装程序。
第 1 步:获取模型和推理代码
从 Hugging Face 克隆 Reka Edge 仓库。该仓库包含模型权重和推理代码:
git clone https://huggingface.co/RekaAI/reka-edge-2603
cd reka-edge-2603
下载时可以喝杯咖啡——模型权重有好几 GB。
第 2 步:获取大文件
Hugging Face 使用 Git LFS 来存储大文件(模型权重和图像)。克隆后,这些文件会出现在磁盘上,但仅包含小的指针文件,而不是真正的内容。
-
安装 Git LFS(不同平台的命令不同):
# macOS brew install git-lfs # Linux / WSL (Ubuntu/Debian) sudo apt install git-lfs -
初始化 Git LFS:
git lfs install -
拉取大文件(模型权重和媒体示例):
git lfs pull
第 3 步:询问模型关于图像或视频的信息
图像
uv run example.py \
--image ./media/hamburger.jpg \
--prompt "What is in this image?"
视频
uv run example.py \
--video ./media/many_penguins.mp4 \
--prompt "What is in this?"
模型将加载、处理你的输入,并打印描述——全部本地运行,全部私密。
尝试不同的提示以解锁更多功能
"详细描述此场景。""此图像中可见的文字是什么?""这里有什么不寻常或意外的地方吗?"
实际发生了什么? (可选阅读)
您并不需要了解这些内容即可使用模型,但如果您对 example.py 的内部工作原理感到好奇,这里有一个简要的 walkthrough。
1. 硬件选择
if torch.cuda.is_available():
device = torch.device("cuda")
elif mps_ok:
device = torch.device("mps")
else:
device = torch.device("cpu")
脚本会自动挑选最佳可用设备(CUDA、Metal 或 CPU)。
2. 模型加载
processor = AutoProcessor.from_pretrained(args.model, trust_remote_code=True)
model = AutoModelForImageTextToText.from_pretrained(
args.model, ...).eval()
7 B 参数的模型会从克隆的文件夹中读取。加载大约需要 30 秒,具体取决于硬件。
3. 输入包装
messages = [{
"role": "user",
"content": [
{"type": "image", "image": args.image},
{"type": "text", "text": args.prompt},
],
}]
您的图像(或视频)和提示会被封装成聊天式的消息。
4. 分词
inputs = processor.apply_chat_template(
messages,
tokenize=True,
return_tensors="pt",
return_dict=True,
)
处理器会把图像转换为数值化的 patch,并把文本转换为 token。
5. 生成
output_ids = model.generate(
**inputs,
max_new_tokens=256,
do_sample=False,
)
模型会一次次预测下一个 token,直至满足停止条件。
6. 解码
output_text = processor.tokenizer.decode(
new_tokens,
skip_special_tokens=True,
)
print(output_text)
Token ID 被转回可读的文本并打印。整个过程不涉及任何网络请求。
这里是视频
如果你更喜欢观看和阅读,这里是视频版本:
(embed or link to the video here)
那真是相当酷,对吧?
一个脚本。无需 API 密钥。无需云服务。你只需在自己的机器上运行一个 7 B 参数的视觉‑语言模型,无论是 Mac、Linux,还是带有 WSL 的 Windows(我写这篇时就是在这种环境下使用的),都能正常工作。
这作为一次性脚本运行得非常好:放入一个文件,提出一个问题,得到答案。
但是如果你想在此基础上构建一些东西呢?比如一个网页应用、一个监视文件夹的工具,或任何需要反复与模型交互的东西?
这正是下一篇文章要讨论的内容。我会展示如何将 Edge 包装成本地 API,这样就不必每次运行脚本,而是让你的机器上运行一个服务,任何应用都可以接入。模型相同,隐私相同,但现在它成为了一个正式的构建块。