本地运行Mixtral-8x7B,我滴AI我做猪

2024-02-21 22:12

本文主要是介绍本地运行Mixtral-8x7B,我滴AI我做猪,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最初是参考了大佬的介绍自己跑了一下:https://juejin.cn/post/7319541634122907699。然后发现自己实际运行时有些小问题和可以补充的。

Mixtral-8x7B介绍

2023年12月11日Mistral 发布了一个激动人心的大语言模型: Mixtral 8x7b。Mixtral 的架构与 Mistral 7B 类似,但有一点不同: 它实际上内含了 8 个“专家”模型,这要归功于一种称为“混合专家”(Mixture of Experts,MoE) 的技术。
本次发布的 Mixtral 模型的主要特点:

  • 模型包括基础版和指令版
  • 支持高达 32k 词元的上下文
  • 性能优于 Llama 2 70B,在大多数基准测试上表现不逊于 GPT3.5
  • 支持英语、法语、德语、西班牙语及意大利语(是的,官方没有声明支持中文,实测发现可以用中文提问,也可以要求他中文回答,但是回答的效果较差,经常会说到一半变成英文。但是这个问题可以通过参数-p baichuan-2运行baichuan-2模块进行中文对话,下面会介绍)
  • 擅长编码,HumanEval 得分为 40.2%
  • 可商用,Apache 2.0 许可证
    借助 WasmEdge,你可以在任意设备上创建并运行该 LLM 的跨平台应用程序,包括自己的笔记本电脑、边缘设备和服务器。
    接下来我会介绍如何在你的mac电脑或服务器上运行Mixtral 8x7b。

前期准备

  1. 一台电脑
  2. 科学上网工具

安装软件

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

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

如果你没有科学上网工具可以通过

https://raw.gitmirror.com/WasmEdge/WasmEdge/master/utils/install.sh

下载install.sh,并将下载的install.sh里的域名https://raw.githubusercontent.com一并修改为https://raw.gitmirror.com:
在这里插入图片描述
然后运行本地的install.sh进行安装

步骤2: 下载 Mixtral-8x7B-Instrcut-v0.1 GGUF 文件。

由于Q5_K_M模型的大小为32.2 GB,下载可能需要一定时间。

curl -LO https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF/resolve/main/mixtral-8x7b-instruct-v0.1.Q5_K_M.gguf

当然你可以根据自己对生成质量和空间大小的要求选择合适的模型

https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF#provided-files

在这里插入图片描述
Q5_K_M是大小与质量均衡的版本,被标记为推荐,所以我们下载这个。如果你无法下载模型可以联系我发你一份。

步骤3:下载用于聊天应用的跨平台可移植 Wasm 文件:llama-chat。

该应用程序让你能用命令行与模型聊天

curl -LO https://github.com/second-state/llama-utils/raw/main/chat/llama-chat.wasm

然后就可以通过输入以下命令在终端与模型进行聊天。

wasmedge --dir .:. --nn-preload default:GGML:AUTO:mixtral-8x7b-instruct-v0.1.Q5_K_M.gguf llama-chat.wasm -p baichuan-2

可移植 Wasm 应用程序会自动利用设备上的硬件加速器(如 GPU)。-p baichuan-2代表运行中文模型
然后就可以在终端里用命令行进行交流:
在这里插入图片描述
至于速度嘛,要看你的显卡了,mac跑了快一个小时🤡

什么?命令行太丑了?

llama也提供了页面和api-server

步骤1:下载llama-api-server

curl -LO https://github.com/second-state/llama-utils/raw/main/api-server/llama-api-server.wasm

步骤2:下载前端代码

curl -LO https://github.com/second-state/chatbot-ui/releases/download/v0.1.0/chatbot-ui.tar.gz
tar xzf chatbot-ui.tar.gz
rm chatbot-ui.tar.gz

注意,这几个文件要在同一文件夹下
接下来,用以下命令行启动模型的 API 服务器。 然后,打开浏览器访问 http://localhost:8080 就能开始聊天了!

wasmedge --dir .:. --nn-preload default:GGML:AUTO:mixtral-8x7b-instruct-v0.1.Q5_0.gguf llama-api-server

llama的参数可以参考github文档
例如:-p参数可选择运行的模块
以下是对几个主要模块的简要介绍:

  1. llama-2-chat:这是一个经过 fine-tuning 的 OpenAI GPT-3 模型,专门用于聊天交互。它被设计成能够进行自然语言文本的生成和回答问题。

  2. codellama-instruct:这是一个基于 OpenAI GPT-3 的模型,旨在为程序员提供编程指导和建议。它可以回答关于编程问题、代码片段等方面的提问,并给出相应的建议和解决方案。

  3. codellama-super-instruct:这个模型是 codellama-instruct 的增强版本,提供更强大和全面的编程指导。它可以更深入地理解编程上下文,并给出更详细和准确的建议。

  4. mistral-instruct-v0.1 和 mistral-instruct:这两个模型都是基于 OpenAI GPT-3 的,旨在生成自然语言文本。它们可以用于各种任务,包括问答、翻译、摘要等。

  5. mistrallite:这是一个轻量级的 Mistral Instruct 模型,专注于生成自然语言文本。它可以在资源受限的环境中运行,提供较快的响应速度。

  6. openchat:这是一个用于聊天交互的模型,旨在与用户进行自然语言对话。它可以回答一般性问题、提供信息和娱乐等。

  7. baichuan-2:这是一个面向中文的模型,用于生成自然语言文本。它可以用于问答、翻译、摘要等任务。

这些模型都是基于 OpenAI GPT-3 系列模型的变体,用于不同的自然语言处理任务和应用场景。它们的设计目标和特点可能有所不同,但都可以用于生成自然语言文本和回答相关问题。

这篇关于本地运行Mixtral-8x7B,我滴AI我做猪的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733236

相关文章

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb