当前位置:首页|资讯|GPT-4

我只用一个命令行就跨设备运行了 Nous-Hermes-2-Mixtral-8x7B-SFT

作者:Second_State发布时间:2024-01-23


轻量 2MB AI 推理APP 可完全跨平台运行,在自己的 Mac 试试吧!

想要快速开始,只需在自己的设备上运行一个命令[1]即可在本地跑 Nous-Hermes-2 大模型。 这个命令行工具会自动下载并安装 WasmEdge 运行时、模型文件和用于推理的完全可移植 Wasm 应用。

Nous Hermes 2 Mixtral 8x7B SFT[2] 是 Nous Research 基于 Mixtral 8x7B MoE 大模型上训练的受监督微调模型。 它接受了超过 1,000,000 个主要由 GPT-4 生成的数据条目以及来自整个 AI 领域开放数据集的其他高质量数据的训练,在各种任务上实现了最先进的性能。 该模型使用 ChatML 作为 prompt 格式,为大模型参与多轮聊天对话提供了一个更加结构化的系统。

本文中,我们将介绍:

  • 在自己的设备上运行 Nous-Hermes-2-Mixtral-8x7B-SFT

  • 为 Nous-Hermes-2-Mixtral-8x7B-SFT 大模型创建一个与 OpenAI 兼容的 API 服务

我们将使用 LlamaEdge[3](Rust + Wasm 技术栈)开发和部署此模型的应用程序。不需要安装复杂的 Python 包或 C++ 工具链!了解我们选择这个技术栈的原因。[4][Image: Easily Implement dolphin-2.2-yi-34b on Your Device with Rust + Wasm (12).png]

在自己的设备上运行 Nous-Hermes-2-Mixtral-8x7B-SFT

步骤1:通过以下命令行安装 WasmEdge[5]。

curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install.sh | bash -s -- --plugin wasi_nn-ggml

步骤2:下载 Nous-Hermes-2-Mixtral-8x7B model GGUF file[6]. 由于模型的大小为几十个 GB,下载可能需要一定时间。

curl -LO https://huggingface.co/second-state/Nous-Hermes-2-Mixtral-8x7B-SFT-GGUF/resolve/main/Nous-Hermes-2-Mixtral-8x7B-SFT-Q5_K_M.gguf

步骤 3:下载聊天应用程序的跨平台可移植 Wasm 文件。 该应用程序让你能用命令行与模型聊天。 该应用程序的Rust 源代码在这里[7]。

curl -LO https://github.com/second-state/LlamaEdge/releases/latest/download/llama-chat.wasm

完成啦!可以通过输入以下命令在终端与模型进行聊天。

wasmedge --dir .:. --nn-preload default:GGML:AUTO:Nous-Hermes-2-Mixtral-8x7B-SFT-Q5_K_M.gguf llama-chat.wasm -p chatml

可移植 Wasm 应用程序会自动利用设备上的硬件加速器(如 GPU)。


[You]:
Write a Rust program to check if the output is prime


[Bot]:
Here's a simple Rust program that takes an input from the user, checks whether it's divisible by any number other than 1 and itself (i.e., not a prime), and prints "prime" or "not prime":

```rust
use std::io;

fn main() {
    println!("Enter a positive integer: ");

    let mut input = String::new();

    io::stdin().read_line(&mut input)
        .expect("Failed to read line");

    let input: u32 = match input.trim().parse() {
        Ok(num) => num,
        Err(_) => {
            println!("Invalid input!");
            return;
        }
    };

    if is_prime(&input){
        println!("{} is prime!", input);
    } else{
        println!("{} is not prime.", input);
    }
}

fn is_prime(n: &u32) -> bool {
    if *n < 2 { return false; }
    for i in 2..=(*n as f64).sqrt() as u32 {
        if n % &i == 0 { return false; }
    }
    true
}


This program uses a helper function `is_prime`, which checks whether the number is prime or not using trial division. It iterates from 2 to the square root of the input, checking if it's divisible by any of these numbers. If none divide evenly, then it returns true (the input is prime).

为 大模型创建与 OpenAI 兼容的 API 服务

与 OpenAI 兼容的 Web API 让该模型可与不同的 LLM 工具和代理框架(如 flows.network、LangChain 、LlamaIndex 等)一起工作。

下载一个 API 服务器应用程序。它也是一个跨平台可移植的 Wasm 应用程序,可以在各种不同 CPU 和 GPU 设备上运行。戳此查看该 app 的 Rust 源代码。[8]

curl -LO https://github.com/second-state/LlamaEdge/releases/latest/download/llama-api-server.wasm

然后,下载聊天机器人 Web UI,以通过聊天机器人 UI 与模型进行交互。

curl -LO https://github.com/second-state/LlamaEdge/releases/latest/download/llama-api-server.wasm
curl -LO https://github.com/second-state/chatbot-ui/releases/latest/download/chatbot-ui.tar.gz
tar xzf chatbot-ui.tar.gz
rm chatbot-ui.tar.gz

接下来,使用以下命令行启动模型的 API 服务器。 然后,用浏览器访问 http://localhost:8080[9] 就能开始聊天了。

wasmedge --dir .:. --nn-preload default:GGML:AUTO:Nous-Hermes-2-Mixtral-8x7B-SFT-Q5_K_M.gguf llama-api-server.wasm -p chatml

还可以从另一个终端使用 curl 与 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 sentient, superintelligent artificial general intelligence, here to teach and assist me."}, {"role":"user", "content": "Write a short story about Goku discovering kirby has teamed up with Majin Buu to destroy the world."}], "model":"Nous-Hermes-2-Mixtral-8x7B-SFT"}'

就这样。WasmEdge 是运行 LLM 应用程序最简单、最快速、最安全的方式[10]。尝试一下吧!

加入 WasmEdge Discord[11]提问和分享见解。如果对运行这个模型有任何问题,请访问 second-state/llamaedge[12] 提 issue,或预约demo[13]。

参考资料[1]

一个命令: https://www.secondstate.io/run-llm/

[2]

Nous Hermes 2 Mixtral 8x7B SFT: https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-SFT

[3]

LlamaEdge: https://github.com/second-state/LlamaEdge/

[4]

了解我们选择这个技术栈的原因。: https://www.secondstate.io/articles/fast-llm-inference/

[5]

WasmEdge: https://link.zhihu.com/?target=https%3A//github.com/WasmEdge/WasmEdge

[6]

Nous-Hermes-2-Mixtral-8x7B model GGUF file: https://huggingface.co/second-state/Nous-Hermes-2-Mixtral-8x7B-SFT-GGUF

[7]

Rust 源代码在这里: https://github.com/second-state/llama-utils/tree/main/chat

[8]

戳此查看该 app 的 Rust 源代码。: https://github.com/second-state/llama-utils/tree/main/api-server

[9]

http://localhost:8080: http://localhost:8080/

[10]

运行 LLM 应用程序最简单、最快速、最安全的方式: https://www.secondstate.io/articles/fast-llm-inference/

[11]

加入 WasmEdge Discord: https://discord.com/invite/U4B5sFTkFc

[12]

second-state/llamaedge: https://github.com/second-state/LlamaEdge

[13]

demo: https://code.flows.network/webhook/vvAtEBUk6QMhVVLuw7IU




Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1