大模型微调实战:使用INT8/FP4/NF4微调大模型

大模型微调实战:利用INT8/FP4/NF4量化技术提升性能与效率 本文介绍了在大模型微调过程中,如何使用INT8、FP4和NF4等量化技术来优化模型性能和提高运行效率。通过实战案例和技术解析,帮助读者了解并掌握这些量化方法,为实际项目中的大模型应用提供指导。 阅读详情
AI摘要

本文是大模型参数高效微调技术实战第八篇,结合bitsandbytes和LoRA技术微调Bloom大模型。介绍了数据集和模型准备,bitsandbytes和LoRA技术,给出模型训练及推理关键步骤。此外,还分享了AI大模型学习资料,助力掌握大模型应用开发技能。

随着,ChatGPT 迅速爆火,引发了大模型的时代变革。然而对于普通大众来说,进行大模型的预训练或者全量微调遥不可及。由此,催生了各种参数高效微调技术,让科研人员或者普通开发者有机会尝试微调大模型。

因此,该技术值得我们进行深入分析其背后的机理,之前分享了大模型参数高效微调技术原理综述的文章。下面给大家分享大模型参数高效微调技术实战系列文章,相关代码均放置在GitHub:llm-action。

本文为大模型参数高效微调技术实战的第八篇。本文将结合 bitsandbytes(使用 INT8 量化来加载大模型)和 LoRA 技术来微调Bloom大模型。

量化降低了浮点数据类型的精度,减少了存储模型权重所需的内存。因此,量化会降低推理性能,因为降低精度时会丢失信息。INT8量化只使用四分之一的精度,但它不会降低训练性能,因为它不仅丢弃位或数据。相反,INT8量化从一种数据类型舍入到另一种。

数据集和模型准备

本文使用english_quotes数据集,该数据集可用于多标签文本分类和文本生成。数据集下载地址:huggingface.co/datasets/Ab…

image.png

模型下载地址:huggingface.co/bigscience/…

bitsandbytes 简介

bitsandbytes 是自定义 CUDA 函数的轻量级包装器,特别是 8 比特优化器、矩阵乘法和量化函数。 主要特征如下:

  • 具有混合精度分解的 8 比特矩阵乘法
  • LLM.int8() 推理
  • 8 比特优化器:Adam、AdamW、RMSProp、LARS、LAMB、Lion(节省 75% 内存)
  • 稳定的嵌入层:通过更好的初始化和标准化提高稳定性
  • 8 比特量化:分位数、线性和动态量化
  • 快速的分位数估计:比其他算法快 100 倍

目前,transformers 库已经集成并 原生 支持了 bitsandbytes 这个量化库。而且bitsandbytes 是量化任何模型的最简单方法之一,因为它不需要量化校准数据及校准过程 (即零样本量化)。任何模型只要含有 torch.nn.Linear 模块,就可以对其进行开箱即用的量化。每当在 transformers 库中添加新架构时,只要其可以用 accelerate 库的 device_map="auto" 加载,用户就可以直接受益于开箱即用的 bitsandbytes 量化,同时该方法对性能的影响也是最小的。量化是在模型加载时执行的,无需运行任何后处理或准备步骤。

由于量化模型的唯一条件是包含 torch.nn.Linear 层,因此量化对于任何模态都可以实现开箱即用。用户可以开箱即用地加载诸如 Whisper、ViT、Blip2 之类的 8 比特或 4 比特(FP4/NF4)模型。

如果你在量化基础模型之上使用PEFT库基于Lora进行训练,则可以将训练得到的Apapter合并在基础模型之上进行部署,而不会降低推理性能。你甚至还可以在反量化模型之上合并 Apapter!

下面是使用 NF4 量化加载 4 比特模型的示例:

from transformers import BitsAndBytesConfig

nf4_config = BitsAndBytesConfig(
   load_in_4bit=True,
   bnb_4bit_quant_type="nf4",
   bnb_4bit_use_double_quant=True,
   bnb_4bit_compute_dtype=torch.bfloat16
)

model_nf4 = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=nf4_config)

下面是使用 FP4 量化加载 4 比特模型的示例:

import torch
from transformers import BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(
   load_in_4bit=True,
   bnb_4bit_compute_dtype=torch.bfloat16
)

LoRA 简介

LoRA方法的核心思想就是通过低秩分解来模拟参数的改变量,从而以极小的参数量来实现大模型的间接训练。

模型训练及推理

为了不影响阅读体验,详细的微调代码放置在GitHub:llm-action 项目中 finetune_bloom_bnb_peft.ipynb文件,这里仅列出关键步骤。

第一步,加载模型及Tokenizer。

import os

import torch
import torch.nn as nn
import bitsandbytes as bnb
from transformers import AutoTokenizer, AutoConfig, AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained("/workspace/model/bloomz-3b", load_in_8bit=True)
tokenizer = AutoTokenizer.from_pretrained("/workspace/model/bloomz-3b")

注意:这里演示的是INT8,如果希望使用NF4或者FP4,在模型加载时修改quantization_config参数即可,具体可以参考PEFT官方示例:inetune_fp4_opt_bnb_peft.py。

NF4+QLoRA:

model = AutoModelForCausalLM.from_pretrained(
    model_name_or_path='/name/or/path/to/your/model',
    load_in_4bit=True,
    device_map='auto',
    max_memory=max_memory,
    torch_dtype=torch.bfloat16,
    quantization_config=BitsAndBytesConfig(
        load_in_4bit=True,
        bnb_4bit_compute_dtype=torch.bfloat16,
        bnb_4bit_use_double_quant=True,
        bnb_4bit_quant_type='nf4'
    ),
)

第二步,训练模型做准备。在使用 peft 训练 int8 模型之前,需要完成一些预处理,需导入一个实用函数prepare_model_for_int8_training,它将完成如下操作:

  • 将所有非 int8 模块转换为全精度 (fp32) 以确保稳定性
  • 将forward_hook添加到输入嵌入层以启用输入隐藏状态的梯度计算
  • 启用梯度检查点(gradient checkpointing)以提高训练的内存效率
from peft import prepare_model_for_int8_training
model = prepare_model_for_int8_training(model)

第三步,创建 LoRA 微调方法对应的配置;同时,通过调用 get_peft_model 方法包装基础的 Transformer 模型。

from peft import LoraConfig, get_peft_model

config = LoraConfig(
    r=16, lora_alpha=32, target_modules=["query_key_value"], lora_dropout=0.05, bias="none", task_type="CAUSAL_LM"
)

model = get_peft_model(model, config)
model = model.to(device)
print_trainable_parameters(model)

第四步,进行模型微调。

from transformers import Seq2SeqTrainer, TrainerCallback, TrainingArguments, TrainerState, TrainerControl
from transformers.trainer_utils import PREFIX_CHECKPOINT_DIR

# 回调保存Peft模型
class SavePeftModelCallback(TrainerCallback):
    def on_save(
        self,
        args: TrainingArguments,
        state: TrainerState,
        control: TrainerControl,
        **kwargs,
    ):
        checkpoint_folder = os.path.join(args.output_dir, f"{PREFIX_CHECKPOINT_DIR}-{state.global_step}")
        print("checkpoint folder: ",checkpoint_folder)
        peft_model_path = os.path.join(checkpoint_folder, "adapter_model")
        kwargs["model"].save_pretrained(peft_model_path)

        
        files = os.listdir(checkpoint_folder)
        print("checkpoint folder list: ", files)
        adapter_files = os.listdir(peft_model_path)
        print("checkpoint adapter folder list: ", adapter_files)
        
        pytorch_model_path = os.path.join(checkpoint_folder, "pytorch_model.bin")
        if os.path.exists(pytorch_model_path):
            os.remove(pytorch_model_path)
        return control

args = transformers.TrainingArguments(
        per_device_train_batch_size=2,
        gradient_accumulation_steps=4,
        warmup_steps=5,
        max_steps=20,
        learning_rate=2e-4,
        fp16=True,
        logging_steps=1,
        output_dir="outputs",
        save_strategy = 'steps',
        save_steps = 10
    )

trainer = transformers.Trainer(
    model=model,
    train_dataset=data["train"],
    args=args,
    data_collator=transformers.DataCollatorForLanguageModeling(tokenizer, mlm=False),
    callbacks=[SavePeftModelCallback()],
)

model.config.use_cache = False  # silence the warnings. Please re-enable for inference!

trainer.train()

第五步,重新加载训练的Apapter进行推理。

import torch
from peft import PeftModel, PeftConfig
from transformers import AutoModelForCausalLM, AutoTokenizer

peft_model_id = "outputs/checkpoint-20/"
config = PeftConfig.from_pretrained(peft_model_id)
model = AutoModelForCausalLM.from_pretrained(
    config.base_model_name_or_path, return_dict=True, load_in_8bit=True, device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)

# Load the Lora model
model = PeftModel.from_pretrained(model, peft_model_id)

batch = tokenizer("Two things are infinite: ", return_tensors="pt")

# 使用 Pytorch 的 autocast 运行推理
# 以 autocast 选择的特定op数据类型运行ops,以提高性能,同时保持准确性。
with torch.cuda.amp.autocast():
    output_tokens = model.generate(**batch, max_new_tokens=50)

print("output:\n\n", tokenizer.decode(output_tokens[0], skip_special_tokens=True))

结语

本文结合 bitsandbytes(使用 INT8 量化来加载大模型)和 LoRA 技术来微调Bloom大模型。码字不易,如果觉得我的文章能够能够给您带来帮助,期待您的点赞收藏加关注~~

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

大模型涉及到的精度是啥?FP32、TF32、FP16、BF16、FP8、FP4、NF4、INT8区别 浮点数精度:双精度(FP64)、单精度(FP32、TF32)、半精度(FP16、BF16)、8位精度(FP8)、4位精度(FP4、NF4)量化精度:INT8、INT4 (也有INT3/INT5/INT6的)另外,实际使用场景中,还有多精度和混合精度的概念假设你每秒钟赚到的钱是1块钱,那一个月的收入是160602430=216000,如果每秒钟赚到1块1呢,那一个月的收入是237600,就一个1毛钱的小数点,让你月收入少了1万多,这就是精度不同导致的差异。 阅读详情

相关推荐

FP4精度技术革命:从硬件架构到AI应用的全面解析

在人工智能计算领域,精度与效率的平衡始终是核心挑战。FP4(4位浮点数)作为一种超低精度的数值表示格式,正在引发一场深刻的计算革命。传统AI模型通常使用FP32(32位浮点数)或FP16(16位浮点数)进行训练和推理,而FP4通过将每个参数压缩到仅4位,实现了8倍于FP32的内存占用减少和显著的计算加速,同时保持了浮点表示的非线性特性。FP4的基本结构遵循E2M1格式:1位符号位表示正负,2位指数位决定数值范围,1位尾数位提供有限的精度。

2503_91665385的博客 4651

神经网络量化原理

一般来说,量化粒度越小,需要额外存储的量化系数就越多,比如针对卷积运算常见的 per-tensor/per-channel 量化,如下图所示,per-tensor 共享一组 (S, Z) 量化系数,而 per-channel 需要多组,提升了量化精度,但同时会一定程度增加量化后数据的大小。基于范围的近似,则需要统计待量化数据的分布,然后进行整体的缩放和偏移,再映射到量化空间,精度相对更高,但需要额外存储量化参数(如缩放系数、偏移等),并且计算时需要先反量化,比定点近似更复杂。

weixin_51031772的博客 2896

LLM之大模型精度(fp32、fp16、bf16等)学习记录

float类型,是由IEEE定义的标准浮点数类型 ,由符号位(sign)、指数位(exponent)和尾数位(fraction)三部分组成,以float32举例,它使用1位做符号位,8位做指数位,23位做尾数位,图片实例如下:整个浮点数可表示为,其中s为符号位-1或1,t为尾数,i为指数。

weixin_44598554的博客 2131

NF4 是一种更聪明的 4bit 压缩方法,它知道「有些值在神经网络里很常见」,所以就把稀缺的 4bit 编码资源优先给这些常见值更高的精度,稀有值就少给点精度

NF4是一种智能4bit量化方法,不同于传统线性均匀量化,它会根据神经网络参数的实际分布特点进行非线性优化。分析发现模型参数多集中在中间区域[-0.5,0.5],两端值较稀疏。因此NF4将有限的4bit编码(16个值)优先分配给高频区域,在[-0.3,0.3]区间设置更精细的分级(如0.05步长),而对低频的极端值(如±1.0)则分配较粗精度。实验表明,这种分配策略使常见中间值的量化误差显著小于线性方法,整体模型精度更接近原始浮点模型,而极端值的少量精度损失对整体影响很小。

陈开心的博客 982

西门子精致面板TP1200 历史数据(历史数据、审计追踪) 移存到网络路径

TP1200 审计追踪

zhang080602的博客 5770

从原理到代码:一文搞懂LFM信号脉冲压缩在Matlab中的实现

本文深入解析了LFM信号脉冲压缩的核心原理与Matlab实现方法。从线性调频信号的数学表达、时频特性入手,详细讲解了如何构建多目标回波仿真环境,并重点阐述了匹配滤波器的频域实现算法。文章提供了完整的、可运行的Matlab代码,涵盖信号生成、噪声添加、脉冲压缩及性能评估等关键步骤,并探讨了加窗处理、参数选择等工程实践中的考量,为雷达信号处理的学习与实践提供了清晰指南。

weixin_29063035的博客 415

大模型量化从0到1(四):FP16、INT8、INT4、FP8、NF4 到底差在哪

前三篇我们讲了为什么量化、量化的数学、还有 PTQ/QAT 两条路。这篇要讲讲 FP32、FP16、BF16、INT8、INT4、FP8、NF4——它们到底是啥,一个比特一个比特是怎么排的,又各自适合干什么。

weixin_49520696的博客 647

Python + Google AI 自动修复 Sonar Bug 实践

在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种问题已经累积到了上万个,手动修复不但费时费力,而且过程异常枯燥。

子洋 Blog 2415

bitsandbytes 大模型量化完全指南:INT8/NF4/FP4 量化、QLoRA 微调与 8-bit 优化器实战

> 导读:本文以 AI-Research-SKILLs 仓库 [bitsandbytes SKILL](https://link.gitcode.com/i/749c673adc3887b134a9aa9ac9d6a849) 为骨架,系统讲解 bitsandbytes 在 LLM 上的 8-bit(INT8)与 4-bit(NF4/FP4)量化原理、显存估算方法、与 HuggingFace Tra

gitblog_00934的博客 355

从PHY芯片看工业网络精准时钟:IEEE 1588v2(PTP)协议实现与选型指南

本文深入解析了工业网络中IEEE 1588v2(PTP)协议的实现与PHY芯片选型要点。通过对比KG7101、RTL8211F等芯片的关键参数,揭示硬件时间戳对纳秒级时钟同步的决定性作用,并提供PTP网络设计中的拓扑布局与配置优化技巧,助力工业自动化场景实现精准时间同步。

weixin_42628688的博客 501

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1082

litgpt量化比较:NF4/FP4/INT8效果分析

你是否在部署大语言模型(LLM)时遇到过GPU内存不足的问题?是否在追求高性能与低延迟之间难以权衡?本文将深入分析LitGPT框架中三种主流量化技术——NF4(Normalized Float 4-bit)、FP4(Float 4-bit)和INT8(Integer 8-bit)的实际效果,帮助你在资源受限环境下做出最优选择。通过本文,你将获得: - 三种量化技术的内存占用、推理速度对比 - 量...

gitblog_00259的博客 655

SAP Retail 补货里的 Requirement Groups,站点和商品太多时,主数据维护如何做减法

SAP Retail补货主数据设计中,Requirement Groups(需求组)是常被低估但至关重要的分类机制。它通过将具有相同补货需求的接收方(如门店)按商品分类(Merchandise Category)分组,大幅降低主数据维护量。在大型零售场景中(如800家门店、6万商品),直接维护每个门店和商品的组合参数会导致维护量失控。Requirement Groups允许企业按品类特性(如乳制品、饮料等)为不同门店组设置统一补货参数,并随业务变化灵活调整。该机制与商品分类紧密绑定,不同于MRP Group

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 68

Ai00 该选哪个模型?RWKV 1B6/3B/7B/14B 的 FP16/INT8/NF4 显存需求全解

**Ai00** 是一个基于 RWKV 模型的本地推理 API 服务器,支持 Vulkan/Dx12/OpenGL 后端,兼容 OpenAI ChatGPT API 接口,内置 WebUI、Embed、RAG、BNF 采样等能力。装好 Ai00 之后,新手最常遇到的第一个问题就是:**1B6、3B、7B、14B 模型到底选哪个?FP16、INT8、NF4 量化又该怎么配?** 这篇文章给出完整的显

gitblog_00040的博客 948

OpenMVS :用 colmap制作自己的数据集 重建(用colmap计算位姿,将位姿转为MVS需要的格式)

数据集制作主要是在windows进行,比较方便。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 3325

解锁RK3588 HDMI输出:分辨率与EDID的深度探索

本文详细探讨了瑞芯微RK3588处理器的HDMI输出分辨率配置与EDID解析技术。文章首先介绍了RK3588处理器的性能特点及其HDMI功能在多媒体和工业领域的应用价值,随后分别阐述了HDMI输出分辨率的硬件连接要求和软件配置方法,包括4K/8K等不同分辨率的配置实例。在EDID部分,深入解析了EDID的数据结构、交互机制,以及数据获取与修改的具体方法。最后总结了配置过程中常见问题的解决方案,并展望了RK3588在高分辨率显示领域的发展前景。全文为开发者提供了RK3588 HDMI显示配置的完整技术指南。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 592

fp32-int4系列数据格式深入理解

量化(Quantization) = 将高精度数值映射为低精度数值原始(FP32):0.123456789, -0.987654321, 1.234567890量化后(INT8):36, -127, 127需要存储:- 量化后的整数值- 缩放因子(scale):用于反量化- 零点偏移(zero_point):某些量化方法需要反量化:原始值 ≈ 量化值 × scale + zero_point。

Together_CZ的博客 1170

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

为什么QLoRA 使用NF4 而不是 INT4

代码的背后是数学

码刀攻城 451

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

量化那些事INT4/INT8/FP16 到底怎么选

大模型量化核心原理与选型指南 大模型量化通过降低权重和激活值的精度(如FP16→INT8/INT4),显著减少显存占用并提升推理速度。以7B模型为例:FP16需14GB显存,INT8压缩至7GB(精度保留97%+),INT4仅需3.5~4GB(精度85%~92%)。 精度对比 INT8:成熟方案(GPTQ/AWQ),推理速度提升2~4倍,适合企业生产。 INT4:极限压缩,适用于边缘设备或低显存场景,但精度损失较大。 FP16:全精度基准,适合微调和高精度任务。 选型建议 本地推理:INT4(如GGUF格式

gdwhkj的博客 172

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

大模型量化是什么?INT8/INT4/AWQ/GPTQ 怎么选?

INT8 和 INT4 告诉我们模型用了多少位;GPTQ、AWQ、SmoothQuant 告诉我们如何降低精度;QLoRA 告诉我们如何在低比特基础权重上继续训练;GGUF 和 safetensors 则负责模型如何落盘。把这些层次分开,量化选型就不会只剩下“哪个文件更小”。真正可靠的方案,必须在自己的模型、硬件、框架和业务数据上同时验证质量、显存、延迟与吞吐。量化没有绝对冠军,只有更适合当前约束的组合。

闵浮龙的博客 419

模型量化方法:PTQ、QAT、INT8、INT4、FP8 与大模型部署(分层式精讲)

数值格式-> 校准/训练方法-> 量化粒度-> 敏感层策略-> 推理引擎-> 硬件 kernel-> 真实任务评估你的模型瓶颈是权重、激活、KV cache 还是算力?你的目标硬件支持什么低精度 kernel?你的任务能容忍多少质量回退?你的评估集是否覆盖真实长尾输入?量化后是否真的降低 p95 延迟和单位请求成本?一句话收束:好的量化不是把模型压到最低比特,而是在目标硬件上用最小质量代价换到可验证的显存、延迟、吞吐和成本收益。

AI浩 1174

QLoRA微调BERT实战:4-bit量化+NF4让大模型微调落地个人设备

QLoRA是一种面向大语言模型与Transformer架构的高效微调技术,其核心在于将低秩适配(LoRA)与4-bit量化深度融合,通过NF4非均匀浮点格式和双重量化机制,在不修改模型结构的前提下显著压缩显存开销。相比传统LoRA,QLoRA在数值计算域重构梯度更新路径,兼顾精度与效率,尤其适配BERT类模型的尖峰长尾权重分布。该技术使7B级模型微调从依赖A100集群降至单卡3090甚至笔记本可行,广泛应用于NLP领域实体识别、文本分类等下游任务,是当前轻量化微调工程落地的关键范式。

cunbei2644的博客 647

7B模型塞进5.2G显存:Ai00的INT8/NF4量化与性能调优完全指南

**Ai00 RWKV Server** 是一个基于 RWKV 模型的一体化本地大模型推理服务,内置 **INT8/NF4 量化**、RAG、AI Agent 和 OpenAI 兼容 API。它最大的卖点就是省显存:通过 NF4 量化,**7B 模型只需 5.2GB 显存**,INT8 量化下也只要 8.2GB——一张中端显卡就能流畅跑起本地 LLM。本文带你快速完成量化配置,并给出性能调优的实操

gitblog_00799的博客 427

大模型量化原理与实战:从INT4/NF4到校准部署的完整指南

大模型量化是一种将浮点权重和激活值映射为低比特整数或特殊浮点格式的技术,其核心在于平衡精度损失与显存/算力压缩。它基于分布感知的分组量化、零点偏移与动态缩放原理,解决LLM推理中因FP16高开销导致的消费级设备部署瓶颈。NF4、AWQ等新型量化方法针对权重偏态分布与激活离群值优化,显著提升INT4级别下的语言建模稳定性。该技术广泛应用于本地知识库、边缘端AI、手机APP等对延迟与资源敏感的场景,是当前轻量化落地不可或缺的关键环节。

aofan9566的博客 502

第二十四个问题-模型为什么要量化?什么是NT4、INT8、FP8、FP16、FP32量化?

通用低精度格式,硬件广泛支持(如NVIDIA TensorRT),推理速度显著提升。:极低精度,需配合特殊技术(如QLoRA)使用,大幅压缩模型体积。:INT8/FP16广泛支持,FP8依赖新一代硬件(如H100)。:低精度计算在硬件(如GPU/TPU)上更快,内存带宽需求更低。:动态量化(实时校准) vs. 静态量化(离线校准)。:训练加速(配合混合精度,如AMP)、移动端推理。:8位浮点数(如E5M2或E4M3格式)。:4位整数(或特殊4位格式,如NF4)。:大模型训练(如LLM)、混合精度计算。

释迦呼呼的博客 1006

【学习笔记】量化压缩实战:INT8 / INT4 / AWQ / GPTQ 全面对比(12/35)

本文介绍了大模型部署中的量化技术,重点分析了其原理、方法及实践应用。量化通过将高精度权重压缩至低精度(如INT8/INT4),显著降低显存占用(最高达75%)、提升推理速度(30-150%)并减少能耗(40-60%)。文章对比了主流方案: INT8方案(LLM.int8/SmoothQuant)几乎无损,但性能提升有限; INT4方案(GPTQ/AWQ)通过校准数据和优化算法实现1%以内的精度损失,成为显存受限场景首选; FP8在H100+硬件上表现最优,接近无损且速度媲美INT8。

tpriwwq的专栏 569
上一篇: Flutter + AI 大模型实战经验分享:一个可调用多个平台多种模型的 AI 工具应用
下一篇: 大模型书籍下载-《基于PyTorch的深度学习:使用Python工具构建、训练和调优》
爱喝白开水a
博客等级 码龄3年 6793粉丝 763原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值