

作者意识形态图的照片
多种大型语言模型是否可以有用,无论是比较表单的输出,在一个人失败时保留还是自定义行为(例如使用模型进行编码,而其他模型进行艺术写作)。这就是我们在实践中使用LLM的方式。有诸如 poe.com 这提供了这种类型的准备。这是一个可以运行多个LLM的平台。但是,如果您想在本地完成所有这些操作,节省API成本并尤其保留数据怎么办?
好吧,这是真正的问题出现的地方。通常,这意味着准备不同的出口巫术,运行单独的操作以及手动切换。不完美。
这正是痛苦 骆驼折 这是允许的。它是一个轻巧的开源代理(只有一个二人组),可让您轻松地在多个本地LLM之间切换。 用简单的短语,请在设备上收听OpenAI API调用,并自动启动或根据请求的模型停止适当的模型服务器。 让我们拆除如何做到这一点,然后逐步设置,以使其在本地设备上工作。
# 美洲驼的工作原理
聪明的路由器坐在LLM服务器的前面,有益的Llama-Swap坐在您的LLM服务器前。当API请求到达时(例如, POST /v1/chat/completions
打电话),看 "model"
JSON中的字段。然后,它将为此模型失去适当的服务器进程,并在必要时关闭任何其他模型。例如,如果您是第一次要求模型 "A"
然后请求表格 "B"
,Llama-Swap Server“ A”将自动停止并启动“ B”的服务器,以便每个请求都按正确的表单提交。这种动态切换发生在透明度上,因此客户可以看到预期的响应,而不必担心基本过程。
默认情况下,Llama-SWAP仅允许同时操作(切换时空的其他)。但是,其组的特征使您可以更改此行为。 该组可以包括许多模型并控制掉期行为。 例如,准备 swap: false
在一个小组中,意味着该小组的所有成员都可以共同努力而无需清空。在实践中,您可以使用一组重量级型号(一次仅一个活动),另一组“并行”组,用于您要同时运行的小型型号。对资源使用和一台服务器的同步的完全控制为您提供了控制。
# 基本要求
启动之前,请确保您的系统具有以下内容:
- 贝森 3(> = 3.8): 必要的编程和工具。
- 啤酒 (在McCos上): LLM Runtimes的安装使其变得容易。例如,您可以安装文件 Llama.cp 服务器与:
这提供了 llama-server
局部寄托模型的伸展。
- Llama.cp(
llama-server
): OpenAI -Compatible Server(通过上面的Homebrew或从源构建的)已经运行了LLM型号。 - 拥抱脸: 直接将型号下载到您的本地设备,而无需登录网站或在模型页面中手动导航。使用:
pip install -U "huggingface_hub[cli]"
- 设备: 任何现代的中央治疗单元都将起作用。为了更快的结论,图形处理单元很有用。 (在Macs Silicon Apple上,您可以在CPU上运行或尝试 石et 支持模型的背景代表。在带有NVIDIA GPU的Linux/Windows上,您可以使用Docker/Cuda容器进行加速。)
- 港口 (我的选择): 扮演前制作的码头工人。但是,我选择不使用本指南,因为这些图像主要是为X86系统(Intel/AMD)设计的,并且不能可靠地使用Macs Apple Silicon(M1/M2)。取而代之的是,我使用了裸机安装方法,该方法直接在MACOS上工作,而无需任何上部容器。
简而言之,您将需要本地的伯森环境和本地LLM服务器(例如llama.cp’)。我们将使用它们在一台设备上托管两个示例。
# 步骤 – 步骤说明
// 1。安装Llama-Swap
从您的操作系统下载最新版本的Llama-Swap GAYTAP版本页面。例如,我可以看到 v126
作为最新版本。运行以下订单:
# Step 1: Download the correct file
curl -L -o llama-swap.tar.gz \
https://github.com/mostlygeek/llama-swap/releases/download/v126/llama-swap_126_darwin_arm64.tar.gz
Output:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 3445k 100 3445k 0 0 1283k 0 0:00:02 0:00:02 --:--:-- 5417k
现在,提取文件,使其实现并通过验证版本进行测试:
# Step 2: Extract it
tar -xzf llama-swap.tar.gz
# Step 3: Make it executable
chmod +x llama-swap
# Step 4: Test it
./llama-swap --version
Output:
version: 126 (591a9cdf4d3314fe4b3906e939a17e76402e1655), built at 2025-06-16T23:53:50Z
// 2。下载并准备两个或多个LLM
例如,选择两个示例。我们将使用 qwen2.5-0.5b 和 Smollm2-135m (小型)来自 刺绣。您需要表单文件(在 GGUF 或类似的协调)。例如,使用拥抱面孔:
mkdir -p ~/llm-models
huggingface-cli download bartowski/SmolLM2-135M-Instruct-GGUF \
--include "SmolLM2-135M-Instruct-Q4_K_M.gguf" --local-dir ~/llm-models
huggingface-cli download bartowski/Qwen2.5-0.5B-Instruct-GGUF \
--include "Qwen2.5-0.5B-Instruct-Q4_K_M.gguf" --local-dir ~/llm-models
这将:
- 创建指南
llm-models
在用户的主文件夹中 - 在此文件夹中安全下载GGUF模型文件。下载后,您可以确认是:
导演:
SmolLM2-135M-Instruct-Q4_K_M.gguf
Qwen2.5-0.5B-Instruct-Q4_K_M.gguf
// 3。创建骆驼 – 六塑料
Llama-Swap使用单个YAML文件来确定服务器的模型和订单。建造 config.yaml
用类似内容的文件:
models:
"smollm2":
cmd: |
llama-server
--model /path/to/models/llm-models/SmolLM2-135M-Instruct-Q4_K_M.gguf
--port ${PORT}
"qwen2.5":
cmd: |
llama-server
--model /path/to/models/llm-models/Qwen2.5-0.5B-Instruct-Q4_K_M.gguf
--port ${PORT}
代替 /path/to/models/
使用您的实际本地轨道。下面的每个输入 models:
它给出了标识符(就像 "qwen2.5"
)和壳 cmd:
经营他的仆人。我们使用 llama-server
(来自Llama.cp) --model
它是指gguf文件, --port ${PORT}
。这 ${PORT}
Macro Llame-S-swap自动为每个模型讲述了一个免费的插座。这 groups
可选部分。您已经删除了此示例,因此默认情况下,Llama-Swap一次只能运行一个模型。您可以在此配置中为每个型号(昵称,截止日期等)自定义许多选项。有关可用选项的更多详细信息,请参见文件,例如完整配置。
// 4
与二人组和 config.yaml
准备就绪,启动Llama-Swap表示您的配置:
./llama-swap --config config.yaml --listen 127.0.0.1:8080
这称为代理商的代理商 localhost:8080
。你会读 config.yaml
(最初)下载任何模型,直到一阶到达。 Llama-Swap现在将在端口上处理API请求 8080
, 休息。 llama-server
该过程基于 "model"
老师。
// 5。与您的模型互动
现在,您可以制作OpenAI API来测试每个型号。我固定了 JQ 如果您在下面运行订单之前没有:
// 使用qwen2.5
curl -s http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer no-key" \
-d '{
"model": "qwen2.5",
"prompt": "User: What is Python?\nAssistant:",
"max_tokens": 100
}' | jq '.choices[0].text'
Output:
"Python is a popular general-purpose programming language. It is easy to learn, has a large standard library, and is compatible with many operating systems. Python is used for web development, data analysis, scientific computing, and machine learning.\nPython is a language that is popular for web development due to its simplicity, versatility and its use of modern features. It is used in a wide range of applications including web development, data analysis, scientific computing, machine learning and more. Python is a popular language in the"
// 使用SmollM2
curl -s http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer no-key" \
-d '{
"model": "smollm2",
"prompt": "User: What is Python?\nAssistant:",
"max_tokens": 100
}' | jq '.choices[0].text'
Output:
"Python is a high-level programming language designed for simplicity and efficiency. It's known for its readability, syntax, and versatility, making it a popular choice for beginners and developers alike.\n\nWhat is Python?"
每个模型将根据其培训做出响应。美洲驼的美丽是,您不必手动重新启动任何内容即可改变 "model"
该领域,其余的。如上面的示例所示,您将看到:
qwen2.5
:更漫长的技术响应smollm2
:一个更简单,更简短的答案
这确认Llama-Swap是将请求发送到正确的型号!
# 结论
恭喜!您已经准备了Llama-Swap,可以在一台设备上运行两个LLM,现在可以在通过API呼叫飞行时切换它们。我们安装了一个代理,用两种型号准备了YAML组成,我们看到了如何订购右背接口的Llama-Swap。
以下步骤: 您可以将其扩展为:
- 较大的模型(例如
TinyLlama
和Phi-2
和Mistral
)) - 并发服务组
- 与 Linjshen和 Fastapi或其他方面
享受探索不同的型号和配置!
Kanwal Mehrin 他是一名自动学习工程师,也是一位对数据科学和人工智能与医学相交的热情。她参与了电子书“用chatgpt最大化生产力”的作者。作为Google 2022年APAC的研究人员,她多样性多样性和学术卓越。它也被认为是学者技术,MITACS Globalink研究学者和哈佛Wecode Scholar中的多种Teradata。坎瓦尔(Kanwal)建立了床单图标以使妇女能够在STEM领域中,她是一名热情的变革后卫。