4bit/8bit 启动 Mixtral 8*7B 大语言模型

这篇具有很好参考价值的文章主要介绍了4bit/8bit 启动 Mixtral 8*7B 大语言模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 背景

个人电脑配置实在难以以 float16 运行 Mixtral 8*7B 大语言模型,所以参数 4bit 或者 8bit 来启动。

实际测试结果,4bit 时推理速度明显变快了,8bit 时推理也非常慢。

使用的推理框架时 fastchat。

1. 修改代码

vi fastchat/model/model_adapter.py

修改前,

class MistralAdapter(BaseModelAdapter):
    """The model adapter for Mistral AI models"""

    def match(self, model_path: str):
        return "mistral" in model_path.lower() or "mixtral" in model_path.lower()

    def load_model(self, model_path: str, from_pretrained_kwargs: dict):
        model, tokenizer = super().load_model(model_path, from_pretrained_kwargs)
        model.config.eos_token_id = tokenizer.eos_token_id
        model.config.pad_token_id = tokenizer.pad_token_id
        return model, tokenizer

修改后,

class MistralAdapter(BaseModelAdapter):
    """The model adapter for Mistral AI models"""

    def match(self, model_path: str):
        return "mistral" in model_path.lower() or "mixtral" in model_path.lower()

    def load_model(self, model_path: str, from_pretrained_kwargs: dict):
        # model, tokenizer = super().load_model(model_path, from_pretrained_kwargs)
        tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
        if "mixtral" in model_path.lower():
            model = AutoModelForCausalLM.from_pretrained(
                model_path,
                low_cpu_mem_usage=True,
                trust_remote_code=True,
                # attn_implementation="flash_attention_2",
                # load_in_8bit=True,
                load_in_4bit=True,
                **from_pretrained_kwargs,
            )
        else:
            model = AutoModelForCausalLM.from_pretrained(
                model_path,
                low_cpu_mem_usage=True,
                trust_remote_code=True,
                **from_pretrained_kwargs,
            )
        model.config.eos_token_id = tokenizer.eos_token_id
        model.config.pad_token_id = tokenizer.pad_token_id
        return model, tokenizer

完结!文章来源地址https://www.toymoban.com/news/detail-799733.html

到了这里,关于4bit/8bit 启动 Mixtral 8*7B 大语言模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在人工智能时代,Django + 简单的 HTML + Whisper + mixtral-8x7b-instruct + SQLite 实现了一个 TODO应用

    人工智能TODO应用程序演示https://ivan-tolkunov–surukoto-run.modal.run/(警告:该应用程序可能需要长达30秒才能启动)。所有数据在不活动5分钟后重置。试着告诉它:“添加彩虹的每一种颜色”,然后“标记所有提到绿色和紫色之间的待办事项”和“清理完成的待办事项。” 每个人

    2024年01月20日
    浏览(44)
  • 深入解析 Mistral AI 的 Mixtral 8x7B 开源MoE大模型

    1、可在公众号「 技术狂潮AI 」中回复「 GPTs 」可获得 「 GPTs Top100 深度体验分析报告 」PDF 版报告,由椒盐玉兔第一时间输出的一份非常详细的GPTs体验报告。 2、可在公众号「 技术狂潮AI 」中回复「 大模型案例 」可获得 「 720-2023大模型落地应用案例集 」PDF 版报告,主要包

    2024年01月22日
    浏览(64)
  • MistralAI发布全球首个MoE大模型-Mixtral 8x7B,创新超越GPT-4

    引言 MistralAI,一家法国的初创企业,近期在AI界引发了轰动,刚刚发布了 全球首个基于MoE(Mixture of Experts,混合专家) 技术的大型语言模型——Mistral-8x7B-MoE。这一里程碑事件标志着AI技术的一个重要突破,尤其是在模型结构和效率上的创新,让它在业界赢得了“超越GPT-4”的

    2024年02月04日
    浏览(55)
  • YUV 8bit转10bit

    在有些场景中,我们经常会使用到YUV 8 bit转10bit的场景。 比如YUV420p 8bit 转 P010,P010le,YUV420p10le。 首先说ffmpeg 8 bit 转 10bit. 对于ffmpeg的P010le 和P010be 分别代表小端和大端,那么它转化的时候非常简单,就是8 bit再增加 8bit,后面的8bit全为0. 比如: 这是最简单的一种办法,所以如果

    2024年02月12日
    浏览(39)
  • 【FGPA】Verilog:移位寄存器 | 环形计数器 | 4bit移位寄存器的实现 | 4bit环形计数器的实现

      目录 Ⅰ. 理论部分 0x00 移位寄存器(Shift Register) 0x01 环形计数器(Ring Counter)

    2024年02月05日
    浏览(41)
  • 用面包板搭建4bit加法器

    4bit加法器是一种数字电路,用于将两个 4 bit的二进制数相加,生成一个 4 bit的和。实验目的如下: (1)学习数字电路的基本概念和实现方法 (2)熟悉 4 bit加法器的设计和实现原理 (3)学会使用数字电路仿真工具模拟和验证电路的功能 (4)使用晶体管搭建一个4bit加法器电

    2024年02月03日
    浏览(41)
  • 用verilog 实现8bit数据的并串转换

    输入信号为8bit并行信号 该程序实现每8个时钟周期,便把收到的8bit并行信号拆解成串行信号并输出,等下8个时钟周期过后再转换下一个并行信号。 仿真图如下:

    2024年02月15日
    浏览(38)
  • Verilog快速入门(8)—— 4bit超前进位加法器电路

    (1) 四选一多路器 (2)异步复位的串联T触发器 (3)奇偶校验 (4)移位运算与乘法 (5)位拆分与运算 (6)使用子模块实现三输入数的大小比较 (7)4位数值比较器电路 (8)4bit超前进位加法器电路 (9)优先编码器电路① (10)用优先编码器①实现键盘编码电路 (11)8线-3线优先编码器 (12)使用8线-3线

    2024年02月04日
    浏览(47)
  • 04 4bit移位寄存器设计与功能验证(附源码)

    写在前面,4位右移移位寄存器,顾名思义使用四个触发器级联,从一次输入到输出,只移动了3位,而不是4位。比如输入是1101,输出时为0001,而不是0000。 虚拟机:VMware -14.0.0.24051 环 境:ubuntu 18.04.1 脚 本:makefile(点击直达) 应用工具:vcs 和 verdi 行为级描述 结构级描述

    2024年02月05日
    浏览(73)
  • STM32为基础的模拟I2C通用8bit和16bit读取以及多字节读取

    GPIO模拟I2C驱动的通用代码,I2C的寄存器地址有8位和16位的,主要解决了同一个MCU同时处理8位和16位寄存器地址芯片时候的驱动问题。 以上是结构体,作为参数,其中DevAddr是芯片地址,RegAddr是寄存器地址,data_len是写入或者读取的数据长度,data_buf是写入或者读出的数据缓冲

    2024年04月28日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包