利用QLoRA实现低配置微调llama3.2

大模型基础知识-LoRA与QLoRA QLoRA (Quantized Low-Rank Adaptation) 是一种结合了模型量化和低秩适配的技术,旨在减少大规模预训练模型微调和部署的计算和存储成本。参数高效:通过这种方式,只需微调少量参数(即低秩矩阵的参数),而非整个模型的参数,从而大大降低了存储和计算成本。低秩适配 (LoRA):在量化后的模型上应用低秩适配技术,仅微调少量附加的低秩矩阵,从而保持微调的高效性。低秩适配:在量化后的模型基础上进行低秩适配,通过引入低秩矩阵来进行微调,从而节省参数数量和计算开销。 阅读详情
AI摘要

本文介绍了低配置本地环境微调Llama-3.2-3B的流程,包括Llama3.2与QLoRA介绍、预训练模型参数获取、微调数据集准备、训练脚本搭建等,还分享了低配置友好的调参心得和局限性。此外,作者作为资深码农,分享了大模型学习经验和相关资料,鼓励大家学习AI大模型。

目录:

  1. Llama3.2与QLoRA介绍
  2. Llama3.2预训练模型参数获取
  3. 微调数据集准备
  4. 微调训练脚本搭建
  5. 低配置友好的调参心得
  6. 低配置微调的局限性

1.Llama3.2与QLoRA介绍

Llama3.2

Llama是Meta开发的大语言模型系列,其采用自回归架构,可以用于文本生成、对话、代码编写等功能,并且完全开源且免费。目前,Meta已经发布了其最新的Llama大模型系列——Llama-3.2系列。在HuggingFace上面已经可以从Meta的主页下载到以下模型的训练参数:

Llama-3.2-1B

Llama-3.2-1B-Instruct

Llama-3.2-1B-evals

Llama-3.2-1B-Instruct-evals

Llama-3.2-3B

Llama-3.2-3B-Instruct

Llama-3.2-3B-Instruct-evals

本文将介绍适合低配置本地环境微调Llama-3.2-3B的流程。

QLoRA

直接在低配置本地环境对大模型进行微调,即使只选用参数量最小的Llama-3.2-1B,要实现也是较为困难的。但是,当引入QLoRA算法后,微调参数较大的Llama-3.2-3B,也成为了可能。

【什么是LoRA?】

我们知道,不论是在大模型的训练中,还是在基于大模型的微调上,最核心的部分就是更新模型的权重矩阵,例如注意力机制中的Wq,Wk,Wv等等,下文统称为W。然而,对于B(十亿)数量级以上的模型,由于使用了海量数据进行训练,其权重矩阵的参数数量非常庞大。若直接对上述的大模型进行微调,意味着每一次都需要对其巨大的权重矩阵做出调整。

我们知道,对于形状为mr的矩阵B和rn的矩阵A,其秩都为r.现在令一个矩阵ΔW=BA,那么ΔW的大小为m*n,秩为r.

通过这个启发,我们可以令权重矩阵W(典型Transformer中的W形状为in_dim*out_dim)的更新方式从直接更新W所有参数(h=Wx),变为如下方法:

将原始权重矩阵W₀冻结。

设置一个可学习的矩阵B,大小为in_dim*r.

设置一个可学习的矩阵A,大小为r*out_dim.

ΔW=BA

h=W₀+α*ΔW

(其中,α为LoRA算法中预设好的权重)

img

这样一来,在微调时只需更新低秩矩阵A和B(他们的秩r通常设置<=64),这极大减少了显存使用、加速了训练速度。

这样做可行的原因:

神经网络权重矩阵通常具有高度冗余、少数主要维度集中大部分信息、存在“内在低秩”的特点,而实验证明LoRA压缩方法能够有效地捕捉微调时低维子空间中的参数变化,即使使用较低的秩,LoRA也能逐步减少误差,使低秩矩阵适应性地学习最重要的变化方向。由此,LoRA看似“抛弃”了原权重矩阵中的大部分信息,实际上训练还是能够高效进行的。

【QLoRA方法】

QLoRA = 量化基础模型 + LoRA微调 + 内存优化

​ └─ NF4量化 └─ FP16参数 └─ 分页管理

QLoRA方法相比LoRA方法,不仅在训练过程中使用了低秩矩阵,还对基础模型的精度进行削减,使权重矩阵的数据大小得到大幅度减小,同时使用了分页管理、优化器状态管理的方法来进一步减少对显存的消耗。

img

全量微调、LoRA方法、QLoRA方法对比

以下是大致流程:

<1>已知W₀为fp16(或者fp32)量化,QLoRA方法将其转化为nf4量化

W₀ = dequantize(W₀_nf4)

冻结通过nf4量化压缩得到的W₀,这个新的矩阵的数据量只有原先的1/4。

<2>对W₀添加LoRA层,开始训练,流程同之前提到的LoRA方法,使用低秩矩阵的更新来进行训练(精度为FP16量化)。训练过程中分页管理、优化器状态管理开始生效。

<3>模型微调完成后,可以将NF4量化存储的W₀16反量化为FP16存储,这样就可以正常使用这个权重矩阵来进行生成工作。

2.Llama3.2预训练模型参数获取

要使用Llama模型的预训练参数与分词器需要Meta授权,获得授权的步骤如下:

<1>登录HuggingFace,打开Meta团队页面,可以看到一系列的Llama模型资源

img

<2>选择需要的Llama版本,这里使用的是Llama-3.2-3B,在跳转出的页面中可以看到这个按钮

img

点击,完成填表

img

等待Meta团队审核通过后,刷新页面可以看到

img

这就说明已经获取了Meta的授权,可以使用这个版本的Llama模型的预训练参数和分词器了。

<3>接下来创建一个token,如下图勾选

img

之后就可以通过这个token在代码中获取需要的文件。

3.微调数据集准备

在网络上可以找到丰富的微调用数据集,这里推荐从HuggingFace获取。

需要注意的是,对于Llama大模型的微调,其对数据集格式有所要求:

<1>数据集文件通常要为.json或者.jsonl后缀形式。

<2>若要有效地进行微调,使用的数据集最好按照特定的模式设置。数据集文件内容分为两种模式,分别为对话格式和Alpaca格式.当然,字段名不同,但大体形式相同的数据集也可以使用,并非严格限定。

<3>仅限本文微调的3B模型来说:由于显存紧张、要求训练轮数比较少,因此最好使用质量较高的数据集,数据文件控制在20MB以内,否则会出现欠拟合现象。

[对话格式]

必须包含“conversation”字段数组,“conversation”字段数组中必须包含多组“from”和“value”字段,from 字段值只能是 "assistant"等能表明身份的词。

例如:

{
    "conversations": [  # 必需字段:对话数组
        {
            "from": "human",     # 必需字段:说话者身份
            "value": "问题内容"   # 必需字段:具体内容
        },
        {
            "from": "assistant", # 必需字段:说话者身份
            "value": "回答内容"   # 必需字段:具体内容
        }
    ]
}

[Alpaca格式]

必须包含“instruction”和“output”字段,可以包含“input”和“message”字段。

例如:

{
    "instruction": "任务指令",    # 必需字段:指令/任务描述
    "input": "输入内容",          # 可选字段:补充输入
    "output": "期望的输出内容"     # 必需字段:任务的答案/输出
}

4.微调训练脚本搭建

HuggingFace为模型微调提供了一套非常好用的库,下面的训练脚本将用主要使用HuggingFace的核心库transformers和datasets,同时还会使用到启用QLoRA的peft库和大模型工作必需的torch库。

值得说明的是,HuggingFace和QLoRA对其库都有详细的使用手册,读者完全可以通过阅读手册尝试自行编写训练脚本,当然,也可以按照下面的流程快速搭建脚本(推荐使用Jupyter搭建,便于逐步检查代码可行性):

训练环境:12GB显存

python版本:3.9

<1>首先导入必要的库,登录HuggingFace,并启用GPU

from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer
import torch
from huggingface_hub import login
import os #导入os库以本地保存一些预处理好的数据、模型训练参数,方便下次使用

login("Token")#Tokens替换为从HuggingFace上面生成的Token
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

<2>获取需要的文件

在HuggingFace任意一个数据集页面中,都可以看到如何使用此数据集

img

# 依照提示加载数据
dataset = load_dataset("bavest/fin-llama-dataset")
# 此处仅举例,可以换成任意所需的数据集

# 分割数据集为训练集和验证集
# 训练集和验证集的比例通常为9:1或者8:2
dataset = dataset["train"].train_test_split(test_size=0.1)
train_dataset = dataset["train"]
test_dataset = dataset["test"]

# 打印数据集以确认格式
print("测试集样本:", test_dataset[0])
print("训练集样本:", train_dataset[0])

# 加载分词器
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-3B")

# 设置pad_token
if tokenizer.pad_token is None:
    tokenizer.pad_token = tokenizer.eos_token

需要说明的是,由于Llama 等一些模型默认没有设置 pad_token(pad_token是用于填充序列的标记,保证一个批次(batch)中的所有序列长度相同),这可能会在批处理和训练时造成问题,因此可以将pad_token设置为eos_token。

<3>数据预处理

这里使用的数据集有三个字段"instruction"“output”"text"希望被使用,

使用Llama3.2-3B的tokenizer来对数据集进行token化。

一步一步编写下来即可

def preprocess_function(examples):
    # 拼接 instruction 和 text 字段作为输入
    inputs = [inst + "\n" + txt for inst, txt in zip(examples['instruction'], examples['text'])]
    outputs = examples['output']  # 模型需要生成的内容

    # 对输入进行分词
    model_inputs = tokenizer(inputs, max_length=256, truncation=True, padding='max_length')

    # 对输出进行分词,作为标签
    with tokenizer.as_target_tokenizer():
        labels = tokenizer(outputs, max_length=256, truncation=True, padding='max_length')

    # 将分词后的标签添加到模型输入中
    model_inputs['labels'] = labels['input_ids']
    return model_inputs


# 检查预处理后的数据集是否存在
if os.path.exists(train_dataset_path) and os.path.exists(test_dataset_path):
    # 加载预处理后的数据集
    train_dataset = load_from_disk(train_dataset_path)
    test_dataset = load_from_disk(test_dataset_path)
else:
# 将数据集映射到预处理函数
train_dataset = train_dataset.map(preprocess_function, batched=True)
test_dataset = test_dataset.map(preprocess_function, batched=True)

# 打印预处理后的数据集示例
print("预处理后的训练集样本:", train_dataset[0])

# 数据集文件路径
train_dataset_path = 'preprocessed_train_dataset'
test_dataset_path = 'preprocessed_test_dataset'

# 保存预处理后的数据集
train_dataset.save_to_disk(train_dataset_path)
test_dataset.save_to_disk(test_dataset_path)

<4>QLoRA配置,同样,手册给出了详细的配置方法

### 加载预训练模型并启用QLoRA
from peft import LoraConfig, get_peft_model
from transformers import BitsAndBytesConfig

# 配置4-bit量化
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_use_double_quant=True,
    bnb_4bit_compute_dtype=torch.float16
)

# 加载预训练模型(启用4-bit量化)
model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.2-3B",
    quantization_config=quantization_config,
    device_map="auto",
)

# 配置QLoRA(LoRA参数)
lora_config = LoraConfig(
    r=8,  # LoRA 低秩参数
    lora_alpha=16,  # LoRA 权重因子
    target_modules=["q_proj", "v_proj"],  # 只在q_proj和v_proj上应用LoRA
    lora_dropout=0.1,  # LoRA dropout
    bias="none",  # 不训练偏置
    task_type="CAUSAL_LM"  # 自回归语言模型任务
)
# 将LoRA应用到模型
model = get_peft_model(model, lora_config)

# 检查LoRA参数
model.print_trainable_parameters()

<5>训练参数配置、优化器设置

以下参数设置仅供参考,要结合本地测试以及需求来调节参数

除此之外,还使用了torch优化器AdamW和Flash Attention(这两项可选)

# 按照手册配置训练参数
training_args = TrainingArguments(
    output_dir="./results",  # 保存模型的路径,可以自己指定
    eval_strategy="epoch",  # 每个epoch进行评估
    learning_rate=2e-4,  # QLoRA通常需要更高的学习率
    warmup_ratio=0.03,  # 学习率预热比例
    per_device_train_batch_size=8,# 每个设备的训练batch大小
    per_device_eval_batch_size=8,  # 每个设备的评估batch大小
    num_train_epochs=50,  # 训练的epoch数量
    weight_decay=0.01,  # 权重衰减
    logging_dir='./logs',  # 日志保存路径
    logging_steps=10,  # 每10步记录一次日志
    save_total_limit=2,  # 最多保存2个检查点
    save_steps=20,  # 每500步保存一次检查点
    fp16=True,  # 启用混合精度训练
    gradient_accumulation_steps=4,  # 梯度累积
    gradient_checkpointing=True, # 启用梯度检测
    optim="adamw_torch"   # 使用torch优化器,可选
)

from torch.optim import AdamW

# 初始化优化器 可选
optimizer = AdamW(model.parameters(), lr=5e-4, weight_decay=0.01)

# 按照手册初始化Trainer对象
trainer = Trainer(
    model=model,  
    args=training_args,  
    train_dataset=train_dataset,  
    eval_dataset=test_dataset, 
    optimizers=(optimizer, None)  
)

#  使用flash attention (如果模型支持)可选
model.config.use_flash_attention = True

<6>开始训练

# 调用trainer对象的train方法来开始训练
trainer.train()

# 注意保存训练结果
model.save_pretrained("./results/finetuned_model")
tokenizer.save_pretrained("./results/finetuned_model")

5.低配置友好调参心得

在实际训练过程中,一些参数的配置对训练速度影响非常大,下面给出简要的调参心得:

<1>最大序列长度

在预处理函数preprocess_function中,max_length的设置会显著影响显存使用,max_length越大,训练步数越少,显存占用最大。通过实践,对于12GB的GPU,本文建议设置为256,因为3B预训练模型的微调通常上只能实现较为简单的推理问题,256的序列长度就足够。序列小于256会显著降低模型的性能,大于256,例如使用512的序列长度,会导致显存告急,一旦显存爆满,批处理将会变无比缓慢,训练几乎无法进行。

<2>批次长度

在training_args中,per_device_train_batch_size和per_device_eval_batch_size对显存占用的影响是最大的。

就调参方法本文给出两个建议:

(1)保证per_device_train_batch_size和per_device_eval_batch_size的大小不要小于8,如果小于8,过短的批次长度那么很可能会使loss值无法下降。若两个参数等于8仍然无法进行训练,可以考虑调整最大序列长度和QLoRA的低秩r的大小。

(2)调参时观察显存占用情况,确保显存被充分使用,加快训练过程。若发现显存爆满(若发现开始占用共享GPU内存,就说明显存爆满),即使只是很小程度地利用内存充当显存,也要及时停机调参。由于内存频率和带宽相较于显存非常低,加上GPU到内存的通信延时,即使是很小程度的显存爆满也会导致批处理变得异常缓慢。

<3>低秩r

在lora_config中,低秩r的大小也会显著影响显存占用,这很直观,因为其决定了低秩权重矩阵AB的大小,建议设置为4~64,r小于4可能会导致插入的低秩矩阵容量不足,无法有效捕获任务相关的特征,而大于64之后r增大的收益十分微小,并且会增大显存占用。

<4>应用QLoRA的目标矩阵

注意到lora_config中的config_modules,这决定了参与训练的权重矩阵有哪些,如如 q, k, v, o 或 FFN 的某些权重,对于低配置环境,指定q和k权重矩阵进行训练足够,并且对能够减少显存的占用。

6.低配置环境局限性

最后,如果在所有配置都达到最低限度的情况下仍不能实现对1B模型的微调,或者是微调效果很差,考虑此方法的局限性:

(1)无法有效利用太大或者质量不高的数据集。

(2)无法进行任务过于复杂的微调。例如微调出一个简单的法律问答模型这是可行的,但如果是利用CoT方法微调一个数学解题模型,7B以上的大模型+算力更高的云平台更加适合。

​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

大模型微调技术LoRA与QLoRA QLORA 可以使用 4 位基础模型和低秩适配器 (LoRA) 复制 16 位完全微调性能。QLORA将微调65B参数模型的平均内存需求从>780GB的GPU内存降低到 阅读详情

相关推荐

qlora原理

我们提出了QLORA,这是一种高效的微调方法,它减少了足够的内存使用,可以在单个48GB GPU上微调一个650亿参数的模型,同时保留了完整的16位微调任务性能。QLORA通过一个冻结的、4位量化的预训练语言模型向后传播梯度到低秩适配器(LoRA)。我们最好的模型系列,我们称之为Guanaco,在Vicuna基准测试中超过了所有以前公开发布的模型,达到了ChatGPT 99.3%的性能水平,而仅在单个GPU上微调了24小时。QLORA引入了一系列创新,以节省内存而不牺牲性能:(a)

XD的博客 1389

QLoRA:量化LLM的高效微调策略与实践

在大型语言模型(LLM)领域,微调是提高性能和调整行为的关键过程。然而,由于内存需求巨大,对于大型模型进行微调可能非常昂贵。最近,华盛顿大学发表了一项关于解决这一问题的创新方案——QLoRA(Quantized Low-Rank Adapter)。QLoRA是一种新的微调大型语言模型(LLM)的方法,它能够在节省内存的同时保持速度。其工作原理是首先将LLM进行4位量化,从而显著减少模型的内存占用。接着,使用低阶适配器(LoRA)方法对量化的LLM进行微调。

FrenzyTechAI的博客 1万+

大模型量化感知训练实战:基于LLaMA-Factory的轻量化部署方案

模型量化是深度学习模型部署优化的核心技术之一,其核心原理是通过降低模型权重和激活值的数值精度(如从FP32降至INT8),来减少模型体积和内存占用,从而显著提升推理速度。这项技术的核心价值在于,它能让原本需要昂贵计算资源的大模型,在资源受限的边缘设备或消费级GPU上高效运行,极大地拓展了AI模型的应用边界。在量化技术中,量化感知训练通过在训练阶段模拟量化噪声,使模型提前适应低精度计算,相比训练后量化能更好地保持模型精度。结合LLaMA-Factory微调框架,开发者可以系统性地实施量化感知训练流程,并通过上

weixin_34199405的博客 376

QLoRA:量化 LLM 的高效微调

我们提出了一种高效的微调方法QLORA,可以在单个48GB GPU上减少内存使用量,同时保持完整的16位微调任务性能,从而对一个拥有65B参数的模型进行微调。QLORA通过将梯度反向传播到冻结的4位量化预训练语言模型中,进而传递到低秩适配器(LoRA)。我们的最佳模型系列被命名为Guanaco,在Vicuna基准测试中表现优于所有先前公开发布的模型,达到ChatGPT性能水平的99.3%,仅需要单个GPU上的24小时微调时间。

AI生成式技术曾小健 3049

通过 GTPQ 量化 Llama 2 实现电脑端快速推理

如果你的模型已经完成微调,它并非推理阶段的最佳选择。它将创建一个名为"Llama-2–7b-4bit-chat-hf"的新目录,其中包含量化后的模型。这是一个 3.6GB 大小的".bin"文件,仅占原始模型大小的 26.7%。要使用该模型进行推理,仍需借助 auto-gptq 工具,这意味着无法直接通过 Hugging Face transformers 的 from_pretrained 方法加载。注意:如需量化更大的 Llama 2 模型,请将"7B"改为"13B"或"70B"。以上就是全部内容了。

人工智能领域专家 674

基于Arduino UNO的OLED显示器使用方法x2(Arduino系列五)

Arduino使用OLED显示模块可以实现串口数据显示,还可以与其他模块联合使用,实现实时显示开发板实时数据。

LNN0212的博客 4171

【大模型微调实战】LLaMA Factory快速微调(三):零门槛微调LLaMA 3/Qwen,附详细步骤

本篇教程完整带领你完成了基于LLaMA Factory的零代码大模型微调全流程,结合前两节的微调原理与数据集制作教程,你已经掌握了大模型微调的完整闭环能力: 1. 理解了大模型微调的核心原理,学会了制作符合要求的高质量微调数据集 2. 完成了全平台环境搭建,支持本地与云端双方案,解决了硬件瓶颈问题 3. 零代码实现了LLaMA 3、Qwen等主流模型的LoRA/QLoRA微调,掌握了核心参数配置方法 4. 完成了微调模型的效果验证、推理测试、权重合并与多格式导出,适配了不同的部署场景

学海无涯,笃行致远 2136

SAP 对接CBS(http方式)

CLEAR:lv_xml_crc32_string. CONCATENATEcrc32_passwordcrc32_keyi_stringINTOlv_xml_crc32_string. CONDENSElv_xml_crc32_string. CALLFUNCTION'SCMS_STRING_TO_XSTRING' EXPORTING text=lv_xml_crc32_string encoding='8400' "GB...

3597

Llama2模型微调实战:用QLoRA在消费级GPU训练大模型

Llama2是Meta公司推出的开源大规模语言模型,其目标是为学术研究和行业应用提供高效且可控制的语言生成能力。Llama2模型系列包括不同规模的版本,从7B(70亿参数)到70B(700亿参数)不等。在各类NLP任务中,Llama2展现出了非常强的能力,特别是在生成任务和文本理解任务上。尽管Llama2在多个场景下表现优异,但由于其模型参数量庞大(例如70B参数的模型),这使得在消费级GPU(例如NVIDIA的RTX 3080或3060等)上进行训练和微调变得非常困难。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1045

TruckSim与Simulink联合仿真中的车轮转角精确控制策略

本文深入探讨了TruckSim与Simulink联合仿真中实现车轮转角精确控制的关键策略。针对多轴车辆路径跟踪时转角指令失灵的常见问题,核心在于正确配置TruckSim转向轴的外部输入模式(Advanced Settings),并确保仿真接口的稳定搭建。文章详细解析了从单轴到多轴协同转向的配置方法,并提供了提升MPC路径跟踪精度的实战技巧与调试经验。

weixin_29035147的博客 367

基于MOS的防反接电路

防反接电路一般用于电源入口处,在电源反接时,保证电源入口之后的电路不会受到损害。一般在电源电流较小、对1V左右的压降不敏感时可以使用二极管进行防反接。防反接的形式有直接在正极串联二极管(如图1),或使用整流桥的方式(如图2),但这两种方式均存在:1、存在二极管的管压降;2、过大电流时,二极管消耗的功率大,发热严重。这两个问题。 图 1 二极管防反接电路 图 2 整流管防反接电路 1、基于NMO...

qq_42682826的博客 2万+

Llama3显存不足怎么办?LoRA微调显存优化实战教程

本文介绍了基于星图GPU平台,如何自动化部署Meta-Llama-3-8B-Instruct镜像,结合QLoRA与梯度检查点技术,在单卡环境下高效完成模型微调。该方案显著降低显存占用,适用于构建轻量级对话系统与AI应用,助力开发者快速实现大模型本地部署与优化。

weixin_36059856的博客 301

C#实现低通和高通滤波算法

低通滤波器允许通过低于某个截止频率的信号成分,并且抑制高于该频率的成分。而高通滤波器则允许通过高于某个截止频率的信号成分,并抑制低于该频率的成分。巴特沃斯滤波器是一种对称的滤波器,具有平坦的幅度响应和最小的群延迟。低通和高通滤波是数字信号处理中常用的滤波技术,用于滤除或增强信号中的特定频率成分。在本篇文章中,我们将使用C#编程语言来实现低通和高通滤波算法。以上就是使用C#实现低通和高通滤波算法的示例代码。你可以根据自己的需求调整截止频率和采样率,将这些代码应用于你的项目中。是滤波器的截止频率,

XisVisual_Basic的博客 1275

【大模型微调实战】QLoRA微调进阶(五):大模型全量微调替代方案,高效且省资源

深度拆解了QLoRA的核心原理(双量化、分页优化),对比了QLoRA与LoRA、全量微调的差异,提供了零代码LLaMA Factory和原生代码两种实操方案,讲解了量化、超参、训练策略等进阶优化技巧,覆盖了不同硬件配置的适配方案和高频踩坑点解决。

学海无涯,笃行致远 193

planning模块(6)-参考线的平滑(二次规划)

上一篇已经介绍了采样点生成锚点数据的过程,并且将所有采样点生成的锚点数据设置到了平滑器中.接下来继续介绍使用二次规划平滑参考线的算法过程.从锚点数据中提取坐标存入raw_point2d,提取横向边界存入anchorpoints_lateralbound,将起点和终点的横向边界设置为0,防止车在起点和终点位置偏离车道中心线.

让复杂的问题变得更容易理解 787

PX4从放弃到精通(五):PX4中的姿态表示方法及转换关系

文章目录机体坐标系与地理坐标系一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 机体坐标系与地理坐标系 在实际应用中,加速度计的测量轴是由运动平台安装固定此器件的轴向决定的。这些坐标轴就形成了载体坐标系,定义如下: 坐标原点设在载体质心(这样可简化运动方程的推导); y轴指向载体前方,称为横滚轴,横滚角以y轴为起始旋转轴而得到,符合右手定则; x轴与y轴夹角90°,指向载体横向,称为俯仰轴,俯仰角以x轴为起始旋转轴而得到,符合右手定则; z轴与x轴、y轴构成右手笛卡儿坐标系,指向载体垂直方向

超维空间科技的博客 8113

Llama-Factory实战指南:手把手教你微调专属行业大模型

本文介绍如何使用LLama-Factory高效微调垂直领域大模型,重点讲解LoRA与QLoRA技术原理、实战流程及常见陷阱。通过WebUI实现免代码训练,支持多模型、小样本、低资源场景,助力企业快速构建专业AI应用。

weixin_28968525的博客 361

Cadence PCB仿真 使用Allegro PCB SI为BRD文件创建通用型IBIS模型的方法图文教程

本文简单介绍使用Allegro PCB SI软件为BRD PCB设计文件中的元器件创建IBIS模型的方法。

fydar的博客 2169

别再全量微调了!用PEFT技术,在消费级显卡上也能玩转百亿大模型

本文详细介绍了如何利用PEFT技术在消费级显卡上高效微调百亿参数大模型,包括LoRA、Prefix Tuning等方法的实战应用。通过参数高效微调技术,开发者可以在RTX 3090等显卡上实现接近全量微调的效果,显著降低硬件门槛和训练成本。文章还提供了代码示例和优化技巧,帮助读者快速掌握PEFT技术的核心要点。

weixin_30718391的博客 468

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Aquila2-34B推出Int4量化版本,低资源实现最强开源模型性能

为了降低开发者使用大模型的门槛,智源Aquila团队在AquilaChat2 系列模型基础上整合了Int4量化技术和QLoRA微调推理技术,显著降低了34B级别大模型的训练和推理所需的资源,为用户在低资源环境中运行大参数模型提供了新的可能。此外,Aquila2-34B 系列模型已与较低配置的AI芯片进行适配,已成功在 24G 显存的国产芯片上进行推理,后续将积极推动模型与更多国产异构芯片的适配,期望广泛链接大模型产业生态创新力量,推动AI软硬件生态繁荣。

eagleofstar的博客 668

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【AI模型】模型微调技术

模型微调(Fine-tuning)是指在已经预训练好的大模型基础上,使用特定领域或任务的数据进行进一步训练,使模型能够更好地适应特定应用场景的技术。 预训练模型通常在大规模通用数据上进行训练,具备广泛的知识和能力。但在特定垂直领域或任务中,可能需要模型具备更专业的知识或更特定的能力。微调就是实现这一目标的有效方法。

设计 AI 玩游戏🎮 380

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

2026 主流大模型微调框架全解析:从选型到落地,新手也能快速上手

2026 年的今天,LLaMA-Factory凭借全流程适配、新手友好、企业级能力强的优势,成为了绝大多数开发者的首选,无论是新手入门还是企业落地,都能完美匹配需求。

Y525698136的博客 321

Qwen3-0.6B-FP8参数可视化调节指南:temperature与max_new_tokens实战解析

本文介绍了如何在星图GPU平台上自动化部署⚡ Qwen3-0.6B-FP8极速对话工具,并详细解析了其可视化参数调节功能。通过实时调整temperature与max_new_tokens等核心参数,用户可快速优化模型在创意写作、技术问答等场景下的对话效果,实现高效、个性化的本地AI对话体验。

SilverfoxLynx45的博客 832

AMD R9 700系列显卡AI实践:量化、小模型与OpenCL本地部署指南

模型量化与推理优化是深度学习工程实践中的关键技术,其核心原理在于通过降低模型权重精度来减少内存占用和计算开销,从而在资源受限的设备上实现高效部署。这项技术的价值在于打破了硬件限制,使得AI应用能够扩展到边缘计算和旧有硬件平台。在应用场景上,它特别适合本地化部署、隐私敏感任务以及作为AI学习与实验的低成本沙盒。本文聚焦于如何在AMD R9 700系列等老旧显卡上,通过模型量化和OpenCL计算框架,实现大语言模型的本地推理与轻量级微调,为硬件资源有限的开发者提供了可行的AI入门与实践路径。

weixin_34296641的博客 457

Tencent Cloud SaaS Accelerator参与:获得官方资源扶持

借助Tencent Cloud SaaS Accelerator与ms-swift框架,开发者可用单卡A10完成大模型高效微调与部署。支持QLoRA、多模态融合、vLLM推理加速,全流程从数据准备到API上线可在一天内完成,显著降低AI落地门槛。

weixin_42593701的博客 609

环境总报错怎么办?Unsloth预置镜像一键解决

本文介绍了基于星图GPU平台的Unsloth预置镜像,支持一键自动化部署,轻松解决大模型训练中的环境配置难题。该镜像深度优化显存使用,最低仅需7.75GB即可微调Llama3、Qwen等主流大模型,适用于模型微调、AI科研实验等场景,显著提升训练效率,助力开发者快速实现高效AI应用开发。

NightshadeRaven21的博客 691
上一篇: 使用Llama 3.2-Vision多模态LLM与您的图像聊天
下一篇: 大模型入门书籍 | 《大模型基础》开源分享!
AI程序猿人
博客等级 码龄3年 6517粉丝 561原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值