一位淘宝工程同学的大模型LoRA微调尝试

GLM-5.1开源实战:MIT协议下的可控解码与Agent工作流重构 大语言模型开源不是简单释放权重,而是提供可修改、可嵌入、可编排的底层能力。从MIT许可证赋予的法律自由,到ALiBi位置编码、FlashAttention-2适配、Tokenizer深度定制等技术原理,GLM-5.1揭示了开源模型真正的工程价值——支撑可控解码、低延迟Agent编排与本地化工具链集成。它不追求单点推理SOTA,而服务于真实业务中的字数硬约束、多阶段路由、VS Code原生协同等高阶场景。本文聚焦GLM-5.1在Agent构建、vLLM部署优化与生产级落地中的关键技术路径与踩坑实录。 阅读详情

本文主要介绍了大模型时代下,如何通过 LoRA(Low-Rank Adaptation)这一参数高效微调技术,实现对大模型的轻量级定制。文章从微调的基本概念出发,详细阐述了 LoRA 的原理、优势与局限性,并结合本地原生实现(Transformers + PEFT)和百炼平台两种方式,展示了在小样本、低资源场景下的实战流程。结果表明,LoRA 能以极低的计算成本让通用大模型有效学习业务知识,显著提升其在特定任务中的表现,真正实现“让大模型懂业务”,推动 AI 从“可用”走向“好用”。

前言

如今大模型时代,深刻重塑了很多行业的业务形态与技术架构。从智能客服到内容生成,从代码辅助到推荐系统,大模型正以前所未有的速度渗透到互联网技术的各个领域,成为驱动创新的核心引擎。其强大的泛化能力和上下文理解水平,使得许多过去需要复杂工程与规则设计的任务,如今只需一次“提示”即可完成。

然而,尽管大模型展现出惊人的通用能力,对大多数开发者和业务方而言,它仍是一个“黑盒”——我们只能调用其预训练时所掌握的知识与行为模式,难以干预其内部逻辑,也无法直接引导模型适应特定场景的表达习惯、术语体系或业务规则。在生产环境中,这种 “能力固定”的特性带来了明显的局限:模型输出可能偏离业务预期,难以保证一致性,更无法随业务演进而持续进化。

面对这一挑战,模型微调(Fine-tuning)提供了一条关键路径。尤其是以 LoRA 等为代表的参数高效微调技术(PEFT),在不改变主干模型的前提下,仅通过训练少量新增参数,即可实现对大模型行为的精准定制。这不仅大幅降低了计算成本与技术门槛,更让业务开发者能够基于自身积累的高质量数据,赋予通用大模型“专属”的业务理解能力。本文将围绕 LoRA微调技术展开,探讨其在小样本、低资源场景下的实践价值,展示如何利用业务数据对大模型进行轻量级定制,真正实现“让大模型懂业务”,推动 AI 从“可用”走向“好用”,从“通用”迈向“专属”。

微调

▐****什么是微调

大模型的微调(Fine-tuning),是指在一个已经预训练好的大模型(比如 GPT、 DeepSeek、BERT、Llama等)基础上,针对特定任务、领域或数据进行进一步训练。微调通常通过在目标数据集上继续训练模型权重,使模型更适应该任务,从而提升下游任务的表现。

简单来说,预训练让模型掌握通用知识,微调让模型适应某个具体用例。LLM 微调是一个有监督学习过程,即有监督微调(SFT),通常语言模型的初始训练是无监督的,但微调是有监督的。

▐****微调的分类

按照⽬标任务

  • 标准微调(任务微调):针对某⼀具体任务进⾏微调(如分类、问答、摘要等)。
  • 领域微调:针对某⼀特定领域数据进⾏微调(如医疗、法律、⾦融等)。
  • 指令微调:通过⼤量的「指令-响应」数据集(如Alpaca, Baize等)对模型进⾏微调,使其能够按照⾃然语⾔指令完成多种任务。

按参数调整⽅式

  • 全参数微调(Full-parameterTuning):对所有模型参数进⾏更新。
  • 部分参数微调(Repurposing):只更新部分参数,⽐如最后⼀层、分类头等。
  • 参数⾼效微调(ParameterEfficientFine-Tuning, PEFT):引⼊少量额外可训练参数,冻结原模型绝⼤部分参数,如LoRA、Adapter、Prefix Tuning等,主要⽬的是⽤很少量新参数即实现任务适配。
▐常⻅微调⽅法

全参数微调

  • 直接在⽬标数据集上继续训练所有模型参数,效果好但耗资源⼤,对硬件要求⾼,不易迁移。

参数⾼效微调(PEFT)

  • LoRA(Low-Rank Adaptation):通过在部分参数上引⼊低秩矩阵,仅训练这些新增的低秩参数,⼤⼤减少训练所需参数量和显存消耗。
  • Adapter:在原有⽹络层之间插⼊⼩型新⽹络模块并仅训练这些模块参数。
  • PrefixTuning / PromptTuning:在输⼊或模型内部插⼊可训练的参数向量(前缀、提示),主⽹络参数保持不变。

LoRA微调

▐什么是 LoRA

LoRA(Low-RankAdaptationof LLMs),即 LLMs的低秩适应,是参数⾼效微调最常⽤的⽅法。

▐原理

LoRA的核⼼思想是:冻结预训练的基座模型(Base Model),在其某些层(如注意⼒中的 Q、K、V投影)上,额外添加低秩矩阵(A和 B)作为可训练参数,⽤于学习任务特定的增量调整。

  • 原始基座模型的权重 全程保持冻结、未修改。
  • 训练过程中,只有 LoRA 引⼊的少量新增参数(如 lora_A, lora_B)被更新。

LoRA的本质就是⽤更少的训练参数来近似 LLM全参数微调所得的增量参数,从⽽达到使⽤更少显存占⽤的⾼效微调。

LoRA的核⼼思路就是,直接 freeze基座模型的全部参数,然后额外给模型增加⼀个扰动的 module,来模拟 finetune 之后参数改变的效果。如此⼀来,只要这些扰动的 module参数量够⼩且推理够快,就不会影响模型整体的 inference 成本,且可以⼤幅地缩减模型 finetune的开销,因为我们只需要训练极⼩量的⼀部分参数即可。

基座模型只参与训练过程中的前向传播,反向传播更新参数的只有 LoRA的插⼊的adapter参数。

  • 保留原来预训练好的权重 W不动;
  • 旁路插入一个低秩矩阵 BA,对 W 的输出做一个可学习的微小增量;
  • 只训练 A、B 这两组很小的参数,就能让模型适配新任务。

上⾯是简化的示意图,实际的 Transformer由很多线性投影(如 Q、K、V、O、FFN 的W₁、W₂ 等)组成,每个都是⾃⼰的 d₁ × d₂ 矩阵。 LoRA 是把这些⼤矩阵 W 逐个冻结,然后在它们上⾯叠加⼀个低秩增量 ΔW = BA。 因此,严格来说是对模型⾥的每个⼤矩阵都做⼀次 rank = r(远⼩于 d₁, d₂)的低秩更新。

训练省资源的根本原因

  • 原来若要微调 W,需要存和反向传播 d₁·d₂ 个参数;

  • LoRA只训练 A(r × d₂)和 B(d₁ × r),参数量变成 2·r·max(d₁,d₂),当 r≪ min(d₁, d₂) 时可省 100× 乃⾄ 10 000× 的显存和梯度计算;

  • W冻结 → 不必存动量/梯度,也不⽤进⾏前后两次 matmul⽐较差分,⼤幅降低显存与算⼒。

  • 推理过程

核心机制:权重增量叠加(Weight Addition)。

LoRA(Low-RankAdaptation)在推理时,并不是“绕道”或“替换”,而是:将 LoRA学习到的增量权重,加到原始预训练模型的对应权重上。

数学表达:

对于一个原始权重矩阵 W∈Rd×kW∈Rd×k,LoRA引入低秩分解:

ΔW=AB其中 A∈Rd×r , B∈Rr×k , r≪dΔW=AB其中 A∈Rd×r, B∈Rr×k, r≪d

推理时的实际权重为:

Wnew=W+ΔW=W+ABWnew=W+ΔW=W+AB

然后使用 WnewWnew进行前向计算。

两种推理模式:

模式说明特点
1. 推理时动态叠加(On-thefly)加载原始模型 + LoRA 权重,实时计算**W+ΔWW+ΔW可用,但慢
2. 合并后推理(MergedInference)将 LoRA 权重 合并到原始模型中,生成一个新模型,直接推理推理更快、更稳定

⼀般采⽤合并后⽣成新的模型来进⾏推理,同时可以保留原始模型。

  • 优劣势

LoRA 的优势

优势说明
资源成本低仅需训练少量参数(如 QKV投影层),节省 GPU显存和算力
训练速度快梯度计算集中在小模块,训练效率显著提升
存储友好一个基础模型 + 多个 LoRA权重(每个几 MB~几百 MB),便于版本管理和部署
灵活切换任务可动态加载不同 LoRA权重,实现多业务场景快速切换
保护原始模型原模型冻结,避免灾难性遗忘,保证通用能力

LoRA 的局限性

劣势说明
性能略低于全参数微调在复杂任务上可能稍逊于全量微调,但差距通常可控(<5%)
依赖基础模型质量LoRA无法修复基础模型的根本缺陷,微调效果受限于预训练能力
适配层选择敏感效果受插入位置(如仅 attention、FFN等)影响,需实验调优
推理需额外集成需支持 LoRA加载的推理框架(如 HuggingFace + PEFT、vLLM、llama.cpp等)
▐实战

LoRA微调⽬前有多种⽅式实现,Transformers + PEFT原⽣实现,LLaMA-Factory、Axolotl等框架实现,以及借助百炼等封装好的可视化界⾯平台实现。本⽂主要尝试了 Transformers + PEFT原⽣实现,以及公司⽣产中更有可能⽤到的百炼平台实现。

  • 原⽣微调

使⽤ Transformers + PEFT原⽣实现。

环境搭建

  1. transformers+peft+datasets

注意:几个库的版本之间有协同关系,随意安装版本可能导致不兼容问题,可在Hugging Face的官方文档中查看推荐版本。

代码:

pip install --upgrade torch==2.1.0+cpu torchvision==0.16.0+cpu --index-url https://download.pytorch.org/whl/cpu
pip install -U transformers==4.38.2 peft==0.10.0 datasets==2.18.0 \
accelerate sentencepiece safetensors tqdm

2. 模型准备

这里考虑到微调是在 mac本地运行,算力有限,所以使用了较小的 DeepSeek-R1-Distill-Qwen-1.5B作为基座模型。使用 Hugging Face或 Modelscope等下载模型到本地即可。

数据处理

训练数据:

准备好数据文件 lora_seckill_qa.jsonl,格式使用如下 instruction-response格式。

{"instrucAon":"埋点时主要记录哪些事件?","response":"使⽤的是xx埋点框架,埋点有分为各种事件类型,主要的有曝光事件和点击事件,可以根据曝光和点击事件来统计数据,如点击率等"}
{"instrucAon":"xxxxxxxxxxxxxxxxxx?","response":"xxxxxxxxxxxxxxx"}

处理脚本:

import json
from datasets import Dataset
from transformers import AutoTokenizer
# 正确读取jsonl
with open("lora_seckill_qa.jsonl", "r", encoding="utf-8") as f:
raw_data = [json.loads(line) for line in f if line.strip()]
# 如果是单轮格式可直接用
# dataset = Dataset.from_list(raw_data)
# 若是conversation 格式(如 [{"conversation":[...]}]),需展开
def conversation_to_list(item):
out = []
for turn in item["conversation"]:
instr = turn.get("system", "") + "\n" + turn["input"] if
turn.get("system") else turn["input"]
out.append({
"instruction": instr.strip(),
"response": turn["output"].strip()
})
return out
# 如果你的raw_data 已经是单轮格式就跳过这一段
all_samples = []
if "conversation" in raw_data[0]:
for d in raw_data:
all_samples.extend(conversation_to_list(d))
dataset = Dataset.from_list(all_samples)
else:
dataset = Dataset.from_list(raw_data)
# 保存分词器
tokenizer = AutoTokenizer.from_pretrained(
"/Users/shawn/Documents/AI-dev/models/deepseek/deepseek-ai/DeepSeek-R1-
Distill-Qwen-7B",
trust_remote_code=True,
local_files_only=True
)
tokenizer.save_pretrained("./tokenizer")
# 保存处理后的数据集
dataset.save_to_disk("./processed_dataset_ms")
print("预处理完成,已保存!")

训练参数

训练脚本:

import torch
from datasets import load_from_disk
from transformers import AutoTokenizer, AutoModelForCausalLM,
TrainingArguments, Trainer, default_data_collator
from peft import get_peft_model, LoraConfig
import random
# 1. 加载数据集
dataset = load_from_disk("./processed_dataset_ms")
# 2. 样本随机打乱
dataset = dataset.shuffle(seed=42)
# 3. 分词器
tokenizer = AutoTokenizer.from_pretrained("./tokenizer", local_files_only=True)
def generate_and_tokenize_prompt(batch):
texts = [
f"""<s>### Instruction:
{instruction}
### Response:
{response}
</s>"""
for instruction, response in zip(batch["instruction"],
batch["response"])
]
out = tokenizer(
texts,
max_length=256,
padding="max_length",
truncation=True,
add_special_tokens=False,
return_tensors=None,
)
# Loss 忽略paddingp.
out["labels"] = [
[tok if tok != tokenizer.pad_token_id else -100 for tok in label]
for label in out["input_ids"]
]
return out
tokenized_dataset = dataset.map(
generate_and_tokenize_prompt,
batched=True,
remove_columns=dataset.column_names,
desc="Tokenizing"
)
# 4. 加载基座模型(如设备有限可指定CPU/其他device)
model = AutoModelForCausalLM.from_pretrained(
"/Users/shawn/Documents/AI-dev/models/deepseek/deepseek-ai/DeepSeek-R1-
Distill-Qwen-7B",
torch_dtype=torch.bfloat16, # MPS、A100 等建议用bfloat16
local_files_only=True,
trust_remote_code=True
)
# 5. LoRA 配置
lora_config = LoraConfig(
r=8,
lora_alpha=16,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
lora_dropout=0.05, # 或0, 稳定死记记忆;推荐小数据降dropout
bias="none",
task_type="CAUSAL_LM"
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# 6. 训练参数
training_args = TrainingArguments(
output_dir="./results_ms",
per_device_train_batch_size=2,
gradient_accumulation_steps=1,
learning_rate=3e-4,
num_train_epochs=8,
logging_dir="./logs_ms",
save_steps=100,
save_total_limit=3,
logging_steps=10,
overwrite_output_dir=True,
report_to=None,
fp16=False
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset,
data_collator=default_data_collator,
)
# 7. 训练与自动采样输出
trainer.train()
# 8. 保存模型与tokenizer
model.save_pretrained("./deepseek-7b-lora_ms")
tokenizer.save_pretrained("./deepseek-7b-lora_ms")
print("训练完成。")

参数解析

LoRA配置参数(lora_config)

  1. r=8
  • 含义:LoRA中低秩矩阵的秩(rank),⽤于近似原始权重矩阵。

  • 作⽤:控制新增参数量,显著降低训练显存消耗。

  • 影响:

  • r太⼩ → ⽋拟合,表达能⼒不足

  • r太⼤ → 接近全量微调,失去 LoRA优势

  • 常⻅值:4~ 64,根据任务复杂度调整(如简单任务⽤ r=8,复杂任务可⽤ r=32)

  1. lora_alpha=16
  • 含义:LoRA权重的缩放因⼦,控制低秩矩阵对输出的影响强度。

  • 作⽤:调节LoRA分⽀的贡献程度,类似“学习率系数”。

  • 影响:

  • 推荐保持 alpha / r≥ 1(如 r=8, alpha=16→ ⽐值为 2)

  • 值过⼤ → 容易过拟合;值过⼩ → 影响微弱

  • 建议:初试设置 alpha = 2 × r

  1. target_modules=[“q_proj”,“v_proj”,“k_proj”,“o_proj”]
  • 含义:指定在哪些模块上应⽤ LoRA(通常是注意⼒层的投影层)。

  • 作⽤:精准控制适配范围,节省计算资源。

  • 常⻅选择:

  • LLaMA系列:[“q_proj”, “k_proj”, “v_proj”, “o_proj”]

  • BERT类:[“query”, “value”, “key”, “dense”]

  • 影响:

  • 仅作⽤于部分模块 → 可能限制模型适应能⼒

  • 可根据模型结构扩展(如加⼊ up_proj, down_proj)

  1. lora_dropout=0.05
  • 含义:LoRA层的 Dropout概率,⽤于正则化。

  • 作⽤:防⽌过拟合,提升泛化能⼒。

  • 影响:

  • 值越⼤ → 正则化越强

  • ⼩数据集建议:0.1~ 0.2

  • ⼤数据集可设为 0或 0.05

  • 注意:若训练不稳定,可尝试增加 dropout

  1. bias=“none”
  • 含义:是否在 LoRA层中引⼊偏置项。

  • 选项:

  • “none”:不加偏置(推荐起点)

  • “all”:所有模块加偏置

  • “lora_only”:仅 LoRA层加偏置

  • 影响:

  • 加偏置可能略微提升效果,但增加参数量

  • 建议:从 “none” 开始,效果不佳再尝试 “lora_only”

  1. task_type=“CAUSAL_LM”
  • 含义:指定任务类型,影响损失函数和标签处理⽅式。

  • 常⽤类型:

  • “CAUSAL_LM”:⾃回归语⾔模型(如 GPT、LLaMA⽣成任务)

  • “SEQ_CLS”:序列分类(如情感分析)

  • “TOKEN_CLS”:Token级分类(如命名实体识别)

  • “SEQ_2_SEQ_LM”:Seq2Seq任务(如翻译、摘要)

  • 注意:必须与任务匹配,否则训练会出错

训练参数(training_args)

参数值说明
output_dir“./results_ms”保存模型检查点、日志等文件的目录
per_device_train_batch_size2每个设备上的 batchsize,显存不足时可减小
gradient_accumulation_steps1梯度累积步数,等效增大 batchsize(如设为 4→ 实际 batch = 8)
learning_rate3e-4学习率,LoRA推荐范围: 1e-4~1e-3
num_train_epochs8训练轮数,一般从 3~10开始调整
logging_dir“./logs_ms”日志保存路径,可用于 TensorBoard可视化
save_steps100每隔多少 step保存一次 checkpoint
save_total_limit3最多保留几个 checkpoint,自动删除旧的
logging_steps10每隔多少 step输出一次日志,便于监控
overwrite_output_dirTrue若目录存在则覆盖,避免手动清理
report_toNone不连接远程报告工具(如 wandb、tensorboard)
fp16False是否启用 FP16半精度训练 ✅ 支持设备建议开启(节省显存 + 加速) ⚠️ 若开启需确保模型
场景建议配置
小数据集微调r=8*,alpha=16,dropout=0.1,*epochs=5~10
大数据集微调r=16~32*,alpha=32,dropout=0.05,*lr=2e-4
显存受限减小batch_size,启用fp16,使用**gradient_accumulation
快速实验overwrite_output_dir=True*,logging_steps=10,*save_steps=50

训练成本

使⽤1000条左右数据微调qwen3-14b的模型,⼀次训练成本预计 10元左右。可以看到模型微调本⾝的成本并不算很⾼,即使换参数量更⼤的模型以及更多的数据。后续的部署、推理成本才是⼤头。

测试脚本

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
# 路径设置
BASE_PATH = "/Users/shawn/Documents/AI-dev/models/deepseek/deepseekai/
DeepSeek-R1-Distill-Qwen-7B"
LORA_PATH = "./deepseek-7b-lora_ms"
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(
BASE_PATH,
local_files_only=True,
trust_remote_code=True
)
# === 严格分离模型实例 ===
# 原始模型
model_base = AutoModelForCausalLM.from_pretrained(
BASE_PATH,
device_map="mps",
torch_dtype=torch.bfloat16,
local_files_only=True,
trust_remote_code=True
)
# 微调后的模型(Base + LoRA 适配器)
model_base_for_lora = AutoModelForCausalLM.from_pretrained(
BASE_PATH,
device_map="mps",
torch_dtype=torch.bfloat16,
local_files_only=True,
trust_remote_code=True
)
model_lora = PeftModel.from_pretrained(
model_base_for_lora,
LORA_PATH
)
def format_prompt_one_round(user_input: str) -> str:
return f"<s>### Instruction:\n{user_input}\n### Response:\n"
def generate_single(model, prompt, tokenizer, max_new_tokens=200):
inputs = tokenizer(prompt, return_tensors="pt")
for k, v in inputs.items():
inputs[k] = v.to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=max_new_tokens,
temperature=0.7,
top_p=0.9,
do_sample=True,
eos_token_id=tokenizer.eos_token_id
)
full_output = tokenizer.decode(outputs[0], skip_special_tokens=True)
reply = full_output[len(prompt):]
# 截断下一个分隔符,保证只输出新生成内容
for sep in ["<s>", "</s>", "###"]:
if sep in reply:
reply = reply.split(sep)[0]
return reply.strip()
def main():
print("="*40)
print("DeepSeek 模型微调前/后 单轮对话对比(严格模型物理分离版)")
print("="*40)
print("输入exit 退出。\n")
while True:
user_input = input("你说:").strip()
if user_input.lower() in {"exit", "quit"}:
print("对话结束~ 再见!")
break
prompt = format_prompt_one_round(user_input)
# 原始模型推理
base_reply = generate_single(model_base, prompt, tokenizer)
# LoRA 微调后模型推理
lora_reply = generate_single(model_lora, prompt, tokenizer)
print("\n-------------------------------")
print("【原模型 输出】↓\n" + base_reply)
print("\n【微调后输出】↓\n" + lora_reply)
print("-------------------------------")
if __name__ == "__main__":
main()

测试结果 case:

可以看到原模型完全无法感知到业务相关的知识,而微调后的模型已经有效的学到了(注:由于数据量小,且模型本身参数量也小,做演示的微调结果存在一定的过拟合)

  • 百炼平台微调

数据准备

根据百炼的训练数据示例格式准备数据

百炼训练数据格式

{“messages": [{"role": "system", "content": "You are a professional e-commerce
title analyst. Given a long product title, output ONLY the core product entity
name (1-5 words) without any other text."}, {"role": "user", "content": "请从下列
商品标题中提取最核心的商品主体,直接输出主体名,不要加其它词:【黑旗】心语肉松原味辣
味1kg 烘焙面包蛋糕寿司原料商用肉松小贝"}, {"role": "assistant", "content": "肉松
"}]}
{"messages": [{"role": "system", "content": "You are a professional e-commerce
title analyst. Given a long product title, output ONLY the core product entity
name (1-5 words) without any other text."}, {"role": "user", "content": "请从下
列商品标题中提取最核心的商品主体,直接输出主体名,不要加其它词:夏季竹枕片成人藤凉席冰
丝枕头套单人儿童竹枕席藤枕芯套一对拍2"}, {"role": "assistant", "content": "枕套"}]}

训练参数

参数跟原⽣实现的参数基本⼀致,可以参考上述的训练参数解析及百炼的⽂档。

评测

  1. 创建评测数据集

创建⽅式同训练数据,使⽤百炼模版

2.选择评测⽅式,开始评测

有三种评测⽅式

  • ⼈⼯评测

特点:经过⼈⼯校验打分,在很多应⽤场景下是相对准确的;同时⽐较主观,在⼀些场景下可能不够标准化,且⼈⼒消耗较高。

  • 模型评测

特点:适合评测⽂本⽣成类,可以调整 prompt 来对⾃⼰微调后模型的回答要点进⾏打分,利⽤另⼀个⼤模型的能⼒,实现灵活打分,但是⽐较依赖模型的能⼒以及 prompt,同时分数有时也不够标准化。

  • 基线评测

通过预置的算法来对模型的特定⽅向能⼒进⾏标准化评测。

⼿动测试结果

左侧为微调后的模型,右侧为原始模型,其对商品主体识别的能⼒得到提升。

总结

LoRA(Low-RankAdaptation)微调技术为业务开发场景提供了⾼效、低成本的⼤模型定制化路径,展现出显著优势:

  • 训练成本低,效果出色

  • 显存占用少:仅需微调少量新增参数,可在消费级 GPU上完成训练,降低硬件门槛。

  • 训练速度快:参数更新量小,支持快速迭代,适合业务团队敏捷试错。

  • 性能接近全量微调:在多种任务中表现优异,效果逼近全参数微调,性价比极高

  • 部署灵活,易于管理

  • 适配器轻量化:LoRA 权重文件通常仅几十 MB,便于存储、传输与版本管理。

  • 多任务共享主干:支持“一个基础模型 + 多个 LoRA适配器”的模式,实现不同业务线共用底座模型,提升资源利用率。

  • 稳定可靠,风险可控

  • 缓解过拟合:在小样本场景下表现更稳定,有效避免全参数微调带来的灾难性遗忘或过拟合问题。

  • 保护原始模型:不修改主干参数,仅通过低秩增量进行适配,提升模型鲁棒与可维护性。

核心价值:让大模型真正“懂业务”

LoRA 微调的轻量与高效,使得业务开发者能够基于自身积累的高质量业务数据(如客服对话、商品描述、内部流程文本等),对大模型进行快速定制化训练。这不仅大幅降低了 AI 落地的技术门槛,更让模型输出更可控、更精准、更贴近实际业务需求。未来,我们将持续探索 LoRA在真实业务场景中的应用,例如智能推荐、自动化文案生成、研发提效等方向,以数据驱动 + 模型微调的方式,助力业务增长与技术升级。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

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

在这里插入图片描述

ChatGPT浏览器自动化实战:9个即用型Puppeteer脚本 浏览器自动化是连接AI能力与真实业务系统的桥梁,其核心在于稳定操控网页DOM、应对动态结构变化与反爬机制。基于Puppeteer的轻量级方案,相比Selenium和Playwright,在单浏览器(Chrome)场景下具备更高执行精度、更快错误定位能力和更低维护成本。技术价值体现在智能等待、DOM快照适配、真实浏览器运行等工程化设计,广泛应用于竞品监控、客服工单、CRM数据同步、知识库更新等高频重复性任务。本文聚焦ChatGPT驱动的浏览器自动化落地实践,提供9个经生产验证的Hands-On脚本及避坑指南。 阅读详情

相关推荐

除了 `task_type=“SEQ_CLS“`(序列分类),还有CAUSAL_LM,QUESTION_ANS

序列分类任务指的是对整个输入序列进行分类,为输入的文本序列分配一个类别标签。例如,情感分析就是一个典型的序列分类任务,它要判断一段文本所表达的情感是积极、消极还是中性;文本主题分类也是序列分类任务,需将文本划分到不同的主题类别中,如体育、科技、娱乐等。对应着不同的自然语言处理任务,每种任务都有其独特的目标和处理方式。在实际应用中,需要根据具体任务选择合适的模型和参数。的缩写,意思是序列分类任务。下面为你详细解释其含义、原理,并给出示例。通过这个示例,你可以看到如何使用预训练模型进行简单的序列分类任务。

ZhangJiqun&191cm&85kg 421

AI Coding 资讯 2025-09-25

本文介绍了LoRA(Low-Rank Adaptation)这一参数高效微调技术,通过冻结预训练模型参数并引入少量低秩矩阵进行增量训练,实现在小样本、低资源场景下对大模型的轻量级定制。LoRA能显著降低计算成本和显存占用,同时保持接近全参数微调的性能,支持多任务快速切换和灵活部署。实战案例展示了通过Transformers+PEFT原生实现和百炼平台进行LoRA微调的流程,验证了其在业务知识适配上的有效性。

王乐平 技术博客 1613

AI大模型:(三)3.9 Deep Agents实现Agent

DeepAgents是基于LangChain的智能体框架,专为复杂长期任务设计。其通过分层架构解决传统局限,提供智能规划、虚拟文件系统、权限控制、任务委派、上下文管理、人机协同、模型适配及技能系统八大核心功能。相比基础LangChain,它内置状态持久化、流式处理和子智能体调度,显著提升可靠性与自主性。典型应用涵盖自动化编程、复杂业务流程编排及持续学习型研究助手。该框架支持多智能体协作,具备路由分发与动态技能加载能力,适用于需高自主性与安全控制的AI场景,有效实现从代码分析到人工审批的全流程自动化管理。

haylee的专栏 439

EcomGPT电商大模型部署案例:某MCN机构用7B模型批量生成短视频口播文案

本文介绍了如何在星图GPU平台上自动化部署EcomGPT 电商领域智能助手 (EcomGPT-中英文-7B-电商领域)W镜像,快速构建电商短视频口播文案生成系统。该镜像专为电商场景优化,支持批量导入商品信息并5秒内生成多风格60秒口播稿,已成功应用于MCN机构日均200+条高质量文案的高效生产。

weixin_42510243的博客 301

UE5动画革命:如何用Motion Matching技术让你的游戏角色动作更流畅(附实战配置)

本文深入解析了UE5中Motion Matching技术的实战配置与应用。通过对比传统动画状态机的局限,详细阐述了如何构建动画数据库、在UE5中配置Pose Search Database及动画蓝图,并探讨了与IK融合、性能优化等进阶策略。该技术能显著提升游戏角色动作的流畅度与真实感,是下一代动画解决方案的核心。

weixin_29075633的博客 862

ThinkPad X230魔改指南:从博通网卡驱动到1080P屏显全攻略(附Sonoma避坑清单)

本文详细介绍了ThinkPad X230的全面改造方案,包括博通网卡驱动(BCM94352HMB)的安装与调试、1080P屏幕改装技术以及macOS Sonoma系统的适配优化。通过硬件升级和软件调优,使这台经典商务本焕发新生,适合DIY爱好者和技术极客参考实践。

weixin_30379531的博客 586

人工智能算法工程师成长

算法工程师成长

usa_washington的博客 197

HFSS仿真中如何提取最大E/H场强与频率关系曲线

本文详细讲解了在HFSS仿真中提取最大E/H场强与频率关系曲线的完整流程。通过使用场计算器(Field Calculator)和创建场报告,工程师可以准确获得器件在整个频带内的电场或磁场强度峰值,并进一步推导出关键的功率容量曲线,为高功率射频器件(如滤波器、耦合器)的设计提供至关重要的安全评估依据。

ss78901的博客 1099

企业级AI图像批量生成实战:从Prompt工程到自动化工作流

AI图像生成技术,特别是基于扩散模型的Stable Diffusion和DALL-E等模型,其核心原理是通过学习海量图像-文本对,将文本描述(Prompt)转化为像素级视觉内容。这项技术的工程价值在于,它能将传统需要数小时的设计工作压缩至分钟级,极大地提升了内容生产的效率与敏捷性。在电商、营销、新媒体等强视觉驱动的应用场景中,企业可以利用该技术实现主图、广告素材的批量化、标准化生产。本文聚焦于**电商主图批量生成**这一核心需求,通过构建结构化的**Prompt模板**与自动化脚本,为企业提供一套可落地的、

weixin_34080571的博客 539

告别龟速计算!用Python的fengwo模块5分钟搞定通达信COST/WINNER函数(附完整代码)

本文介绍如何使用Python的fengwo模块高效复现通达信的COST和WINNER函数,解决量化交易中的计算精度和性能问题。通过C++核心算法和多线程优化,计算速度提升显著,误差低于0.5%,并支持与通达信DLL无缝集成,适用于实盘交易策略开发。

weixin_42533751的博客 600

AI学习指南RAG篇(19)-API调用与集成

通过上述API调用示例,您可以方便地将RAGFlow与其他系统集成,实现数据集管理、文档处理、会话管理等功能。希望本文的介绍能帮助您更好地理解和使用RAGFlow的API。

俞兆鹏的博客 2546

大数据与AI毕业设计选题指南:从创新场景到工程实践

数据处理与模型构建是计算机科学领域的核心基础。其原理在于通过算法对海量信息进行高效存储、计算与分析,以提取有价值的知识。这项技术的价值在于驱动决策智能化,提升业务效率。在工程实践中,它广泛应用于推荐系统、智能风控、计算机视觉等场景。本文聚焦于毕业设计这一具体需求,针对大数据方向的**数据采集与存储优化**、**Spark SQL性能调优**,以及人工智能方向的**深度学习模型微调**、**大语言模型(LLM)应用**等关键技术环节,提供了从选题评估、技术选型到避坑指南的完整实践路径,旨在帮助学生将通用技术原

weixin_34342992的博客 523

【电子通识】TINA-TI怎么使用受控源向导创建受控源

TINA-TI怎么使用受控源向导创建受控源

一点硬件 358

电商搜索Stacking架构:分层建模与动态融合实战

电商搜索排序本质上是用户多阶段决策过程,涉及意图识别、相关性判断与转化预估。传统端到端大模型虽提升单点指标,却难以兼顾毫秒级延迟、badcase归因与业务可解释性。Stacking架构通过异构模型解耦(如BERT-Mini召回、Sentence-BERT相关性、LightGBM转化预测)与任务分层(L1召回/L2多粒度打分/L3规则驱动融合),在保障P99延迟≤50ms前提下,将首屏有效曝光率从78.3%提升至86.1%。其核心价值在于工程可控性——支持优雅降级、分钟级归因、策略热更新,特别适用于高并发、强

weixin_33836874的博客 379

使用Clumsy和Process Explorer定位软件高CPU占用问题

使用弱网模拟工具Clumsy和进程查看工具Process Explorer定位软件高CPU占用问题。

dvlinker的技术专栏 5706

【AI智能体】Dify 搭建个人专属简历美化助手操作详解

Dify 搭建个人专属简历诊断助手实战操作详解

congge 4381

Trae SOLO移动端:原生Agent驱动的三端任务操作系统

在AI工作流加速演进的当下,'智能代理(Agent)'正从云端概念走向设备端原生能力。Trae SOLO并非传统App,而是一种以自然语言为输入、多模态上下文为锚点、设备原生能力为执行基础的轻量级任务操作系统。其核心在于将用户模糊意图(如语音、截图、选中文本)实时解析为可执行动作,依托Rust引擎+平台原生UI实现iOS/Android/Web三端语义一致、能力自适应。区别于插件式Agent架构,SOLO的Agent是运行时内核,支持离线OCR、本地大模型、系统API直调等关键能力,真正解决‘想法到执行’之

weixin_34122810的博客 323

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 224

NTscan扫描工具

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

6 款电商 AI 图片生成软件实测|国内 + 跨境卖家工具清单

电商 AI 作图工具已经从 "能不能用" 进入了 "好不好用" 的阶段。对于绝大多数卖家而言,现在的 AI 工具已经可以覆盖 60%-80% 的基础商品图需求,显著降低拍摄和设计成本。选择工具的核心逻辑不是 "哪款最强",而是 "哪款最适配你的品类、平台规模和团队能力"。垂直电商工具胜在工作流效率,通用生图工具强在创意上限,模板类工具赢在上手速度。建议根据自身业务阶段,搭配 1-2 款主力工具 + 1 款辅助工具,形成适合自己的视觉生产流程。

Mardi_Ladin的博客 398

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

我用 GPUWorks 在 M1 Pro 上搭了个发票识别原型

公司里经常要看电子发票。我想先做个小原型:把 PDF 发给一个自己部署的图文模型,让它提取发票类型、日期、交易双方和金额,再把结果交给同事核对。这个原型不用先接财务系统,先看看从部署到调用要走多少步,模型返回的内容能不能帮上忙。

鸽芷咕的博客 2万+

您您这可以把问小白的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭

第三层是格式编译层。这个决策背后的判断很清晰:一个批量导出工具的价值,不在于“试三次”,而在于你真正用它处理了几十份技术文档、访谈记录或课程讲义之后,它是否值得留在你的工作流里。问小白的会话列表通过分页接口加载,AI导出鸭 在页面运行时建立旁路监听,捕获每一次分页请求返回的完整对话清单,包括会话 ID、标题、时间戳和隐藏的元数据字段。让AI导出回归优雅——这句话说的是:导出不该是体力活,而应该是一次完整的、可预期的文件交付。注意:这里的“批量”指的是左侧列表里的多个独立会话,不是一条会话内的多轮对话。

laoyunsi的博客 246

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 501

河道漂浮物目标检测数据集

目标检测,yolo,河道漂浮物目标检测数据集

DL_data_set的博客 201

AI Agent之核心框架

A: 显式 Thought 有三类价值:可解释性(便于人类审计)、可调试性(定位哪一步选错工具)、学习信号(可做监督微调或评估中间步骤质量)。ReAct 把推理与 可执行行动 绑定,每一步行动后都有 真实 Observation 反馈,从而用工具结果约束生成,降低闭卷幻觉。做完不等于结束——还要 评估做得好不好,把 教训 记下来,下次 带着教训重试,反思作为 记忆,影响后续尝试的策略。工作流程:Action → Evaluation → Reflection → Retry。A: 普通 CoT 只在。

剑雨巍巍的博客 199

AI 应用开发工程师技术实践:大模型接入、通用组件封装与性能优化

本文提出AI应用从PoC到生产的核心挑战:模型调用的持续可用、可控与可优化。通过构建统一LLM网关实现多供应商路由与故障转移,封装对话、工具调用与RAG组件以解耦业务逻辑,结合前缀缓存、批处理与流式背压治理等性能优化手段,形成“接通→接稳→接快”的工程路径,最终以工程化能力决定AI应用的生产可用性。

2301_79189962的博客 558
上一篇: 爆肝整理!大模型底层原理全解析:从Transformer到GPT/BERT,小白也能秒懂,面试不慌!
下一篇: 大模型开发的“核武器“:RAG技术让AI回答秒变专业级,小白也能学会![特殊字符]
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值