本地运行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

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

Spring AI集成DeepSeek三步搞定Java智能应用的详细过程

《SpringAI集成DeepSeek三步搞定Java智能应用的详细过程》本文介绍了如何使用SpringAI集成DeepSeek,一个国内顶尖的多模态大模型,SpringAI提供了一套统一的接口,简... 目录DeepSeek 介绍Spring AI 是什么?Spring AI 的主要功能包括1、环境准备2

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring