run-llm.sh,一键在本地跨平台运行大语言模型

原创
2023/12/25 16:53
阅读数 74

由 Second State 开发的 run-llm.sh 脚本是一个命令行工具,用于让你快速在本地设备使用 CLI 和与 OpenAI 兼容的 API 服务器运行开源大型语言模型(LLMs)。这个命令行应用程序会自动下载并安装 WasmEdge runtime、模型文件以及用于推理的可移植 Wasm 应用程序。用户只需按照命令行提示选择所需的选项即可。

运行 run-llm.sh

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

点击查看Web UI 视频

就是这样啦。

背后的机制

run-llm.sh 脚本使用可移植 Wasm 应用程序在 WasmEdge Runtime 中运行大语言模型。这些应用程序是可移植的,所以你可以简单地将 wasm 二进制文件复制到另一台具有不同 CPU 或 GPU 的设备上,它完全可以顺利运行。CLI 和基于 web 的聊天用户界面使用了不同的 wasm 应用程序。

命令行界面

llama-chat.wasm 应用程序为大语言模型提供了一个基于命令行的聊天界面。它是用简单的 Rust 编写的,你可以在这里找到其源代码。无论你使用什么设备,都可以按照以下方式下载 Wasm 应用程序。

curl -LO https://github.com/second-state/llama-utils/raw/main/chat/llama-chat.wasm

脚本使用以下命令来运行 Wasm 应用程序。-p 参数表示模型需要的聊天模板,用于格式化聊天消息。你可以在这里找到模型及其相应聊天模板名称的列表

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 编写的,你可以在这里找到其源代码。无论你使用什么设备,都可以按照以下方式下载 Wasm 应用程序。

curl -LO https://github.com/second-state/llama-utils/raw/main/api-server/llama-api-server.wasm

脚本使用以下命令来运行 Wasm 应用程序。-p 参数表示模型需要的聊天模板,用于将聊天消息变成特定格式。可以在这里找到模型及其相应聊天模板名称的列表

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 运行推理操作。Rust 是 AGI 的语言。Rust + WasmEdge 堆栈提供了一个统一的云计算基础设施,从 IoT 设备到边缘云,再到本地服务器,再到公共云。主要好处如下。

  • 轻量。总运行时大小为 30MB,与 Python 的 4GB 和 Ollama 的 350MB 相比。
  • 快速。在 GPU 上实现全本机速度。
  • 可移植。在不同 CPU、GPU 和操作系统上的单一跨平台二进制文件。
  • 安全。在不受信任的设备上沙箱化和隔离执行。
  • 轻松接入容器。在 Docker、containerd、Podman 和 Kubernetes 中得到支持。
  • 与 OpenAI 兼容。无缝集成到 OpenAI 工具生态系统中,如 langchain、Llamaindex 和 flows.network

无论你是开发者、研究人员还是 AI 爱好者,run-llm.sh 都提供了一种高效且易于访问的方式,让你在自己的设备上利用最先进的语言模型的强大能力。快来试试看吧!

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部