win下的LlamaEdge,性能不够,技术来凑

主题

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,来交流吧

相关推荐
weixin_404551245 分钟前
AI Native 架构建议:从零开始以 AI 为核心构建系统
人工智能·架构
蝶依斓(湖南)全案整装8 分钟前
整装行业长尾需求内容矩阵搭建方法:从五个维度拆解用户需求
大数据·人工智能·矩阵
半条_虫9 分钟前
SAI(Shell AI Agent) 使用说明
人工智能
蜗牛互联网12 分钟前
从GitHub动态工作流理解确定性编排与Agent判断边界
java·人工智能·后端·github
无忧.芙桃14 分钟前
人工智能给计算机专业带来的机遇与挑战
人工智能
栈帧之外16 分钟前
【白话大模型二】一文梳理深度学习与大语言模型
人工智能·深度学习·语言模型
梦帮科技16 分钟前
推测解码(Speculative Decoding)与 Draft-Target 双核协同:接受率判据、树状验证与两倍吞吐无损加速
网络·人工智能·深度学习·神经网络·线性代数·矩阵·架构
m4Rk_26 分钟前
【论文阅读】Agent 记忆机制(89):PersonaAgent——构建 Memory、Persona 与 Action 的持续反馈闭环
论文阅读·人工智能·学习·开源·github
开开心心就好30 分钟前
办公软件卸载不干净?专用工具一键清残留
java·前端·人工智能·智能手机·kafka·excel·memcache
机核研创社31 分钟前
接橡筋机做内裤腰头明橡筋:两段式工艺链的设备分工与参数窗口拆解
人工智能·自动化