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

相关推荐
海风极客7 分钟前
文件传输工具FTransferor<优化篇>
开发语言·后端·golang·编程思维
山语山7 分钟前
深度学习中常用的开源数据集
人工智能·深度学习
ss27315 分钟前
SSM 进销存系统
java·后端
青花瓷20 分钟前
苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序
人工智能·opencv·macos
AI视觉网奇27 分钟前
undefined symbol: __nvJitLinkComplete_12_4, version libnvJitLink.so.12
人工智能·python
Gauss松鼠会31 分钟前
数据库高安全—角色权限:角色创建角色管理
数据库·人工智能·windows·安全·华为云·gaussdb
湫ccc33 分钟前
《机器学习》KNN算法实现手写数字识别
人工智能·算法·机器学习
河南查新信息技术研究院36 分钟前
江苏省有一级科技查新机构吗?
大数据·人工智能·科技
_oP_i42 分钟前
python ai ReAct 代理(ReAct Agent)
人工智能·python·ai
橙子小哥的代码世界1 小时前
打造RAG系统:四大向量数据库Milvus、Faiss、Elasticsearch、Chroma 全面对比与选型指南
数据库·人工智能·深度学习·神经网络·elasticsearch·milvus·faiss