主题
AI应用测试了许多,苦于囊中羞涩,机器又差,经常看到部署就望而却步,本来最开始的初衷是寻找一个小型化的运行时,结果事与愿违,发现了新型大陆,让我的破烂机器,也能简单跑起来lama的对话服务,以下就安装过程做个分享,以作备忘~
WasmEdge
WasmEdge 是一款轻量级、高性能、可扩展的 WebAssembly 运行时,适用于云原生、边缘和去中心化应用。它支持无服务器应用、嵌入式函数、微服务、UDF、智能合约和物联网设备。WasmEdge 目前是 CNCF(Cloud Native Computing Foundation)的沙盒项目。
WasmEdge 运行时为其包含的 WebAssembly 字节码程序提供了良好定义的执行沙盒环境。该运行时提供了对操作系统资源(例如文件系统、套接字、环境变量、进程)和内存空间的隔离和保护。WasmEdge 最重要的使用场景是将用户定义的或社区贡献的代码作为软件产品中的插件(例如 SaaS、数据库、边缘节点,甚至区块链节点)安全地执行。它使第三方开发者、供应商、提供者和社区成员能够扩展和定制软件产品。
编译后的 Wasm 文件是交叉平台的。可以使用同一个 Wasm 文件跨操作系统(例如 MacOS、Linux、Windows SL)、CPU(例如 x86、ARM、Apple、RISC-V)和 GPU(例如 NVIDIA、Apple)运行应用,
LlamaEdge
LlamaEdge可以轻松地在本地运行 LLM 推理应用程序并为 Llama2 系列 LLM 创建与 OpenAI 兼容的 API 服务。 Rust+Wasm 堆栈在 AI 推理中为 Python 提供了强大的替代方案。
- 轻。总运行时间大小为 30MB。
- 快。GPU 上的全原生速度。
- 便携式。不同 CPU、GPU 和操作系统上的单个跨平台二进制文件。
- 安全。在不受信任的设备上进行沙盒和隔离执行。
部署过程
WasmEdge下载
通过 【下载地址】可进行相关release版本的下载,直接搞个window版本的, 默认安装路径是C:\Program Files\WasmEdge
,记得配置环境变量才可在cmd
执行命令幺
cmd
wasmedge --version
LlamaEdge的Wasm文件下载
根据不同的需求选择处理,此处使用的是对话模型
bash
curl -LO https://github.com/second-state/LlamaEdge/releases/latest/download/llama-chat.wasm
模型下载
模型4.9G,下载可能要耗费一些时间
bash
git clone https://www.modelscope.cn/pooka74/LLaMA3-8B-Chat-Chinese-GGUF.git
WasmEdge的插件下载
这里会遇到比较多的坑点,因为许多在win下的教程到这里,就说的是win因为没有ggml
插件支持,所以必须用wsl
那种内置linux系统去支持,因为WasmEdge本身有内置sh
安装命令,比较容易一些,而且许多来源依据 bug70也就终止了
cmd
unknown option: nn-preload
当你执行了LlamaEdge
的运行命令时,提示出这个时,找官网资料发现了问题所在,win下的教程写的有些含糊不清,因此许多人到此处就放弃了探究
ggml
插件选择问题
如上图:我的电脑不是英伟达的显卡,就只能cpu渲染,WasmEdge-plugin-wasi_nn-ggml-0.14.1-windows_x86_64.zip
插件位置问题
官网上和其他的教程说的可以放在lib
或者plugins
下,然并卵,都是唬人的,具体
cmd
wasmedge --dir .:. --nn-preload default:GGML:AUTO:LLaMA3-8B-Chat-Chinese-Q4_K_M.gguf llama-api-server.wasm -p llama-3-chat
--nn-preload
必须将相关插件放在bin下头,才可以支持 你以为就到此结束了吗,并没有,我选择了相关的ggml组件,成功的执行了启动命令,好像终止了,也没什么提示,整的我没有了头绪
没办法,我想着换个插件看看行不行,找了一下noavx
好像比较趋近,下载WasmEdge-plugin-wasi_nn-ggml-noavx-0.14.1-windows_x86_64.zip
这个插件,终于..等到了结尾
运行情况
cmd
wasmedge --dir .:. --nn-preload default:GGML:AUTO:LLaMA3-8B-Chat-Chinese-Q4_K_M.gguf llama-api-server.wasm -p llama-3-chat
终于成功的运行了起来,至于对话模型的页面处理端,LlamaEdge
的教程写的比较清楚,chatbot-ui
包放在目录下就行
最终,成功的在本地启动了,但纯cpu搞的,16g,一句话要响应8分钟
左右,可能是我用的模型token比较大
总结
相较于其他的环境安装,当前教程的安装环境占用很小,WasmEdge
,LlamaEdge
的依赖很小,也就个模型比较大,其他的基本没产生额外的环境开销,算是比较友好的单机跑模型方式了、这篇教程,查了很多前期的资料,基本有效的参考教程很少,都是千篇一律的linux
教程,希望给后续的铁子们,较少不必要的时间浪费和踩坑。
发现身边事儿、聊点周奇遇,我是沈二,期待奇遇的互联网灵魂~、一个互联网技术OG
wx:breathingss,来交流吧