由 Second State 开发的 `run-llm.sh`[1] 脚本是一个命令行工具,用于让你快速在本地设备使用 CLI 和与 OpenAI 兼容的 API 服务器运行开源大型语言模型(LLMs)。这个命令行应用程序会自动下载并安装 WasmEdge runtime、模型文件以及用于推理的可移植 Wasm 应用程序。用户只需按照命令行提示选择所需的选项即可。
bash <(curl -sSfL 'https://code.flows.network/webhook/iwYN1SdN3AmPgR5ao5Gt/run-llm.sh')
按照提示安装 WasmEdge Runtime 并下载你喜欢的开源大模型。然后,你将被询问是否希望通过命令行界面或通过 web 界面与模型进行交流。
命令行界面:只需留在终端。当你看到一个 [USER] 提示符,就可以提问了!
Web UI:在安装本地 web 应用程序和本地 web 服务器(用 Rust 编写,并在 WasmEdge 中运行)后,你将被请求从浏览器打开 http://127.0.0.1:8080[2]。 网页链接
就是这样啦。
run-llm.sh 脚本使用可移植 Wasm 应用程序在 WasmEdge Runtime 中运行大语言模型。这些应用程序是可移植的,所以你只需简单地将 wasm 二进制文件复制到另一台具有不同 CPU 或 GPU 的设备上,它完全可以顺利运行。CLI 和基于 web 的聊天用户界面使用了不同的 wasm 应用程序。
命令行界面
llama-chat.wasm 应用程序为大语言模型提供了一个基于命令行的聊天界面。它是用简单的 Rust 编写的,你可以在这里找到其源代码[3]。无论你使用什么设备,都可以按照以下方式下载 Wasm 应用程序。
curl -LO https://github.com/second-state/llama-utils/raw/main/chat/llama-chat.wasm
脚本使用以下命令来运行 Wasm 应用程序。-p 参数表示模型需要的聊天模板,用于格式化聊天消息。你可以在这里找到模型及其相应聊天模板名称的列表[4]。
wasmedge --dir .:. --nn-preload default:GGML:AUTO:llama-2-7b-chat.Q5_K_M.gguf llama-chat.wasm -p llama-2-chat
Web UI
llama-api-server.wasm 应用程序为大语言模型创建了一个支持基于 API 的或基于 web 的聊天界面的 web 服务器。它是用简单的 Rust 编写的,你可以在这里找到其源代码[5]。无论你使用什么设备,都可以按照以下方式下载 Wasm 应用程序。
curl -LO https://github.com/second-state/llama-utils/raw/main/api-server/llama-api-server.wasm
脚本使用以下命令来运行 Wasm 应用程序。-p 参数表示模型需要的聊天模板,用于将聊天消息变成特定格式。可以在这里找到模型及其相应聊天模板名称的列表[6]。
wasmedge --dir .:. --nn-preload default:GGML:AUTO:llama-2-7b-chat.Q5_K_M.gguf llama-api-server.wasm -p llama-2-chat
可以看到,run-llm.sh 应用程序是用 Rust 编写并编译为 Wasm,从而实现跨平台部署。它提供了一个强大的替代基于 Python 的 AI 推理的方案。这样,我们就不需要安装复杂的 Python 包或 C++ 工具链。
Rust 程序管理用户输入、跟踪对话历史、将文本转换为 LLM 的特定聊天模板,并使用 WASI NN API[7] 运行推理操作。Rust 是 AGI 的语言[8]。Rust + WasmEdge 堆栈提供了一个统一的云计算基础设施,从 IoT 设备到边缘云,再到本地服务器,再到公共云。主要好处如下:
轻量。运行时总共大小仅 30MB,相比 Python 为 4GB 和 Ollama 为 350MB。
快速。在 GPU 上实现全本机速度。
可移植。在不同 CPU、GPU 和操作系统上的单一跨平台二进制文件。
安全。在不受信任的设备上沙箱化和隔离执行。
轻松接入容器。在 Docker、containerd、Podman 和 Kubernetes 中得到支持。
与 OpenAI 兼容。无缝集成到 OpenAI 工具生态中,如 langchain、LlamaIndex 和 flows.network[9]。
无论你是开发者、研究人员还是 AI 爱好者,run-llm.sh 都提供了一种高效且易于访问的方式,让你在自己的设备上利用最先进的语言模型的强大能力。点击阅读原文,在自己的Mac试试看吧!
参考资料
[1]
run-llm.sh: https://github.com/second-state/llama-utils#quick-start
[2]
http://127.0.0.1:8080: http://127.0.0.1:8080/
[3]
这里找到其源代码: https://github.com/second-state/llama-utils/tree/main/chat
[4]
这里找到模型及其相应聊天模板名称的列表: https://github.com/second-state/llama-utils/blob/main/models.md
[5]
这里找到其源代码: https://github.com/second-state/llama-utils/tree/main/api-server
[6]
这里找到模型及其相应聊天模板名称的列表: https://github.com/second-state/llama-utils/blob/main/models.md
[7]
WASI NN API: https://github.com/WebAssembly/wasi-nn
[8]
AGI 的语言: https://medium.com/stackademic/why-did-elon-musk-say-that-rust-is-the-language-of-agi-eb36303ce341
[9]
flows.network: https://flows.network/