综合介绍
LlamaEdge是一个开源项目,旨在简化本地或边缘设备上运行和微调大型语言模型(LLM)的过程。该项目支持Llama2系列模型,并提供与OpenAI兼容的API服务,使用户能够轻松创建和运行LLM推理应用程序。LlamaEdge利用Rust和Wasm技术栈,提供了强大的替代方案来进行AI推理。用户可以通过简单的命令行操作快速启动和运行模型,并且可以根据需要进行微调和扩展。
功能列表
- 本地运行LLM:支持在本地设备或边缘设备上运行Llama2系列模型。
- OpenAI兼容API服务:提供与OpenAI API兼容的服务端点,支持聊天、语音转文本、文本转语音、图像生成等功能。
- 跨平台支持:支持多种CPU和GPU设备,提供跨平台的Wasm应用程序。
- 快速启动:通过简单的命令行操作即可快速下载和运行模型。
- 微调和扩展:用户可以根据需要修改和扩展源代码,以满足特定需求。
- 文档和教程:提供详细的官方文档和教程,帮助用户快速上手。
使用帮助
安装流程
- 安装WasmEdge:首先需要安装WasmEdge,可以通过以下命令行完成:
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash
- 下载LLM模型文件:以Meta Llama 3.2 1B模型为例,使用以下命令下载:
curl -LO https://huggingface.co/second-state/Llama-3.2-1B-Instruct-GGUF/resolve/main/Llama-3.2-1B-Instruct-Q5_K_M.gguf
- 下载LlamaEdge CLI聊天应用:使用以下命令下载跨平台的Wasm应用程序:
curl -LO https://github.com/second-state/LlamaEdge/releases/latest/download/llama-chat.wasm
- 运行聊天应用:使用以下命令与LLM进行聊天:
wasmedge --dir .:. --nn-preload default:GGML:AUTO:Llama-3.2-1B-Instruct-Q5_K_M.gguf llama-chat.wasm -p llama-3-chat
功能操作流程
- 启动API服务:可以通过以下命令启动API服务:
wasmedge --dir .:. --env API_KEY=your_api_key llama-api-server.wasm --model-name llama-3.2-1B --prompt-template llama-chat --reverse-prompt "[INST]" --ctx-size 32000
- 使用Web界面与LLM交互:启动API服务后,可以通过Web界面与本地LLM进行交互。
- 创建自定义API服务:可以根据需要创建自定义的API服务端点,例如语音转文本、文本转语音、图像生成等。
- 微调和扩展:用户可以修改源代码中的配置文件和参数,以实现特定的功能需求。
LlamaEdge 在笔记本电脑快速运行蒸馏 DeepSeek-R1
DeepSeek-R1是一个功能强大且用途广泛的 AI 模型,它凭借先进的推理能力、成本效益和开源可用性向 OpenAI 等老牌企业发起了挑战。虽然它有一些局限性,但其创新的方法和强大的性能使其成为开发人员、研究人员和企业的宝贵工具。对于那些有兴趣探索其功能的人来说,该模型及其精简版本可以在 Hugging Face 和 GitHub 等平台上获得。
由受 GPU 限制的中国团队训练,它在数学、编码甚至一些相当复杂的推理方面表现出色。最有趣的是,它是一个“精简”模型,这意味着它比它所基于的巨型模型更小、更高效。这很重要,因为它使人们在实际使用和构建它时更加实用。
本文我们将介绍
- 如何在自己的设备上运行开源 DeepSeek 模型
- 如何使用最新的 DeepSeek 模型创建与 OpenAI 兼容的 API 服务
我们将使用 LlamaEdge(Rust + Wasm 技术栈)来开发和部署这个模型的应用程序。无需安装复杂的 Python 包或 C++ 工具链!了解我们选择这项技术的原因。
在自己的设备上运行 DeepSeek-R1-Distill-Llama-8B 模型
第一步:通过以下命令行安装WasmEge。
curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s -- -v 0.14.1
第二步:下载量化过的DeepSeek-R1-Distill-Llama-8B-GGUF模型文件。
这可能需要一定时间,因为模型的大小为 5.73 GB。
curl -LO https://huggingface.co/second-state/DeepSeek-R1-Distill-Llama-8B-GGUF/resolve/main/DeepSeek-R1-Distill-Llama-8B-Q5_K_M.gguf`
第三步:下载 LlamaEdge API 服务器应用程序。
它也是一个跨平台的便可移植的 Wasm 应用程序,可以在许多 CPU 和 GPU 设备上运行。
curl -LO https://github.com/LlamaEdge/LlamaEdge/releases/latest/download/llama-api-server.wasm
第四步: 下载chatbot UI
以便在浏览器中与 DeepSeek-R1-Distill-Llama-8B 模型进行交互。
curl -LO https://github.com/LlamaEdge/chatbot-ui/releases/latest/download/chatbot-ui.tar.gz tar xzf chatbot-ui.tar.gz rm chatbot-ui.tar.gz
接下来,使用以下命令行为模型启动 LlamaEdge API 服务器。
wasmedge --dir .:. --nn-preload default:GGML:AUTO:DeepSeek-R1-Distill-Llama-8B-Q5_K_M.gguf \ llama-api-server.wasm \ --prompt-template llama-3-chat \ --ctx-size 8096
然后,打开浏览器访问 http://localhost:8080 开始聊天!或者可以向模型发送 API 请求。
curl -X POST http://localhost:8080/v1/chat/completions \ -H 'accept:application/json' \ -H 'Content-Type: application/json' \ -d '{"messages":[{"role":"system", "content": "You are a helpful assistant."}, {"role":"user", "content": "What is the capital of France?"}], "model": "DeepSeek-R1-Distill-Llama-8B"}' {"id":"chatcmpl-68158f69-8577-4da2-a24b-ae8614f88fea","object":"chat.completion","created":1737533170,"model":"default","choices":[{"index":0,"message":{"content":"The capital of France is Paris.\n</think>\n\nThe capital of France is Paris.<|end▁of▁sentence|>","role":"assistant"},"finish_reason":"stop","logprobs":null}],"usage":{"prompt_tokens":34,"completion_tokens":18,"total_tokens":52}}
为 DeepSeek-R1-Distill-Llama-8B 创建与 OpenAI 兼容的 API 服务
LlamaEdge 是轻量级的,不需要守护进程或 sudo 进程即可运行。它可以轻松嵌入到您自己的应用程序中!通过支持聊天和 embedding 模型,LlamaEdge 可以成为本地计算机上应用程序内部的 OpenAI API 替代品!
接下来,我们将展示如何为 DeepSeek-R1 模型以及 embedding 模型启动完整的 API 服务器。API 服务器将具有 chat/completions
和 embeddings
端点。除了上一节中的步骤之外,我们还需要:
第五步:下载 embedding 模型。
curl -LO https://huggingface.co/second-state/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf
然后,我们可以使用以下命令行启动具有聊天和 embedding 模型的 LlamaEdge API 服务器。更详细的说明,请查看文档——启动 LlamaEdge API 服务。
wasmedge --dir .:. \ --nn-preload default:GGML:AUTO:DeepSeek-R1-Distill-Llama-8B-Q5_K_M.gguf \ --nn-preload embedding:GGML:AUTO:nomic-embed-text-v1.5.f16.gguf \ llama-api-server.wasm -p llama-3-chat,embedding \ --model-name DeepSeek-R1-Distill-Llama-8B,nomic-embed-text-v1.5.f16 \ --ctx-size 8192,8192 \ --batch-size 128,8192 \ --log-prompts --log-stat
最后,可以按照这些教程将 LlamaEdge API 服务器作为 OpenAI 的替代与其他 Agent 框架集成。具体来说,在你的应用或 Agent 配置中使用以下值来替换 OpenAI API。
Config option | 值 |
---|---|
Base API URL | http://localhost:8080/v1 |
模型名称 (大模型) | DeepSeek-R1-Distill-Llama-8B |
模型名称 (文本 embedding) | nomic-embed |
就是这样啦!立即访问 LlamaEdge 仓库并构建你的第一个 AI Agent!如果觉得有意思,请在此处为我们的repo加注星标。在运行此模型时有任何问题,也可以请前往该 repo 提出问题或与我们预约演示,以跨设备运行自己的 LLM!