openbmb/MiniCPM3-4B-GPTQ-Int4

openbmb/MiniCPM3-4B-GPTQ-Int4
练习
OpenBMB 的 MiniCPM3-4B-GPTQ-Int4 是一个基于 MiniCPM3 模型的量化版本,专注于减少模型大小并提高推理效率。它采用了 GPTQ (General Quantization) 技术,结合了 Int4(4位整数) 量化方式,能够在保持合理的精度下大幅降低模型的计算和存储需求。

关键特点:

  1. MiniCPM3 架构:MiniCPM 是一个多语言预训练语言模型,特别适用于中文等多种语言任务。MiniCPM3 是该系列的最新版本,拥有更大的参数量和更强的能力。

  2. 4B 参数:该模型有 40 亿个参数,是一种相对较小的参数规模,专为高效推理设计,同时在性能和效率之间取得平衡。

  3. GPTQ(通用量化):GPTQ 是一种后量化方法,旨在减少模型大小和推理时间。相比传统量化技术,GPTQ 能更好地保持模型的性能,特别适合大语言模型的量化。

  4. Int4 量化:该模型采用 4 位整数量化,这意味着每个权重值被压缩成 4 位表示,大幅减少模型的存储需求,从而降低内存消耗和计算负担。

优势:

  • 推理效率高:由于采用了 Int4 量化,推理时的计算量大幅减少,可以在较低的硬件配置上运行大型模型。
  • 模型压缩:与未量化版本相比,GPTQ-Int4 版本的模型大小显著缩小,便于部署。
  • 性能保留:GPTQ 的量化方式在尽可能压缩模型的同时,尽量减少了性能的损失,适合在推理任务中应用。

适用场景:

  • 文本生成:用于生成高质量的自然语言文本。
  • 机器翻译:支持多语言翻译任务。
  • 语义理解:可用于各种自然语言处理(NLP)任务,如文本分类、信息检索、问答等。

通过这种量化方式,MiniCPM3-4B-GPTQ-Int4 实现了高效的性能表现,同时保持了模型在实际任务中的可用性。

以下是几个类似于 OpenBMB MiniCPM3-4B-GPTQ-Int4 的量化模型,它们采用了类似的架构与技术,旨在优化模型推理效率和资源消耗:

1. LLaMA (Low-Rank Adaptation of LLaMA) Quantized Models

  • 模型架构: 基于 LLaMA (Large Language Model Meta AI) 的量化版本。
  • 参数规模: 提供 7B、13B 等不同规模的量化版本。
  • 量化技术: 支持 Int8、Int4 量化,以减少模型尺寸并提高推理速度。
  • 用途: 多语言任务、文本生成、自然语言理解等。

2. GPT-3 Quantized (Int8/Int4)

  • 模型架构: GPT-3 系列的量化版本。
  • 参数规模: 175B 参数量的 GPT-3,支持 Int8 和 Int4 量化。
  • 量化技术: 基于 GPTQ 或其他后量化技术,减少了内存和推理计算的需求。
  • 用途: 文本生成、翻译、问答等多种 NLP 任务。

3. Bloom-7B1 Quantized (GPTQ-Int8/Int4)

  • 模型架构: 大规模开源语言模型 Bloom 的量化版本。
  • 参数规模: 7.1B 参数版本支持量化处理。
  • 量化技术: GPTQ 结合 Int8 或 Int4 量化。
  • 用途: 多语言处理,特别适合多种语言生成和理解任务。

4. OPT (Open Pretrained Transformer) Quantized Models

  • 模型架构: Meta 发布的 OPT 系列模型的量化版本。
  • 参数规模: 提供了 2.7B、6.7B、13B 等多种参数规模。
  • 量化技术: 基于后量化方法,如 GPTQ 支持 Int8、Int4 量化。
  • 用途: 文本生成、问答、语言建模等。

5. T5 (Text-to-Text Transfer Transformer) Quantized

  • 模型架构: Google T5 系列的量化版本。
  • 参数规模: T5-Base、T5-Large 等不同大小的版本可以量化为 Int8、Int4。
  • 量化技术: 使用类似 GPTQ 的量化方法。
  • 用途: 文本摘要、机器翻译、问答、文本分类等任务。

6. Galactica-6.7B Quantized

  • 模型架构: Meta 发布的科学文献理解与生成模型 Galactica 的量化版本。
  • 参数规模: 6.7B 参数版本,支持量化。
  • 量化技术: Int8、Int4 等量化版本。
  • 用途: 科学领域的文本生成、知识检索、文献摘要等。

7. BERT Quantized (Int8/Int4)

  • 模型架构: BERT 系列模型的量化版本。
  • 参数规模: 支持 BERT-Base、BERT-Large 等不同版本的量化。
  • 量化技术: Int8、Int4 量化,以减少推理资源消耗。
  • 用途: 适用于文本分类、问答、命名实体识别等 NLP 任务。

这些量化模型与 MiniCPM3-4B-GPTQ-Int4 类似,都采用了 Int8 或 Int4 等量化技术,适合在资源受限的设备上进行高效的自然语言处理任务。

import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

path = "openbmb/MiniCPM3-4B-GPTQ-Int4"
device = "cuda"

tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map=device, trust_remote_code=True)

def generate_response(history):
    
    messages = []
    for input_text, replay in history:
        messages.append({"role": "user", "content": input_text})
        if len(replay) == 0:
            continue
        messages.append({"role": "assistant", "content": replay})

    model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(device)

    model_outputs = model.generate(
        model_inputs,
        max_new_tokens=1024,
        top_p=0.7,
        temperature=0.7
    )

    output_token_ids = [
        model_outputs[i][len(model_inputs[i]):] for i in range(len(model_inputs))
    ]

    responses = tokenizer.batch_decode(output_token_ids, skip_special_tokens=True)[0]
    return responses
# 定义一个简单的聊天函数
def chatbot(message, history=[]):
    history = history or []
    noreplay = ''
    history.append([message, noreplay])
    # 模拟一个回复,简单地回显用户的输入
    # reply = f"Echo: {message}"
    reply = generate_response(history)
    
    # 将用户消息和回复追加到历史中
    history[-1][-1] = reply
    
    # 返回聊天历史
    return history, history, gr.update(value="") 

# 创建 Gradio 界面
with gr.Blocks() as demo:
    gr.Markdown("## 简单的聊天机器人")
    
    # 聊天窗口,用于显示历史消息
    chat_box = gr.Chatbot()
    
    # 文本输入框
    msg = gr.Textbox(placeholder="输入你的消息...")
    
    # 点击按钮发送消息
    submit = gr.Button("发送")
    
    # 定义消息发送的动作
    submit.click(chatbot, inputs=[msg, chat_box], outputs=[chat_box, chat_box, msg])

# 启动 Gradio 应用
demo.launch()

在这里插入图片描述

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大霸王龙

+V来点难题

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值