news 2026/7/13 16:52:44

小白/程序员轻松上手微调大模型:从零到实战,附真实案例与代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小白/程序员轻松上手微调大模型:从零到实战,附真实案例与代码

本文详细介绍了微调开源基座模型的完整流程,适合想自己训练小模型的读者。文章首先分析了微调的适用场景和与其他方法的对比,然后讲解了如何选择基座模型和数据集,接着深入剖析了数据准备、模型加载和训练配置等关键步骤,最后通过一个真实案例展示了如何评估微调效果。文章强调数据质量的重要性,并提供了代码示例,帮助读者快速上手实践。

开篇

读完这篇文章,你会知道:什么时候该微调、选什么模型、数据怎么准备、训练怎么跑,以及训完后怎么判断模型真的变好了。

微调不是把模型下载下来跑一遍 SFT 就结束。它通常是为了解决更现实的问题:数据不能出企业、API 调用成本太高、通用模型不懂业务规则,或者模型的回答方式必须被稳定控制。

这篇文章会把"微调开源基座模型"这条完整链路走一遍,并且贯穿一个真实可跑的例子:

示例任务:用 DeepMath-103K 数据集微调 Qwen2.5-1.5B,让它学会先输出推理过程(带 <think>)、再给出数学答案,最后在 MATH500 上评测准确率。

代码基于 HuggingFace Transformers,单张 24GB 卡即可跑通。

一、先想清楚:到底要不要微调?


在动手前,先回答一个更根本的问题——同样一个业务问题,除了微调,还有别的路子吗?

有三条常见路径。

路径 1:提示工程(Prompt Engineering)

类比:助手博览群书但不太懂事,每次交任务前先讲清楚"请用礼貌语气,不确定就说不知道,不要瞎猜"。

零成本、零训练,适合任务简单、上下文可以塞进 prompt 的场景。缺点是每次调用都要带这一大段 prompt,费 token,而且模型有可能"忘记"指令。

路径 2:RAG(检索增强生成)

类比:助手不懂行业术语,给他配一本电子版行业词典,回答之前先让他去查。

知识和模型解耦,更新知识不用改模型,适合"知识密集但推理简单"的场景,比如内部知识库问答。缺点是检索质量决定天花板,检索错了模型也救不了。

路径 3:微调(Fine-tuning)

类比:直接把助手送去培训班。这次培训之后,他的行为方式和思维习惯会真正发生变化,不需要每次再提醒了。

效果最深、覆盖最广,但也最贵——需要数据、算力、时间。适合"需要模型改变行为方式"的场景,比如按公司特定格式回答、掌握新的专业能力、调整语气风格。

一个简单判断

本文的示例任务(让模型学会数学推理)属于"改变行为方式"——需要模型学会在给出答案前先推理,是标准的微调场景。


二、基座模型 vs 对话模型:选哪个当起点?


决定微调后,第一个选择题:选基座模型(Base)还是对话模型(Chat / Instruct)?

基座模型是只做过预训练的"素材",博览群书,但只会续写文本,不知道"人类问一句要答一句"这个规矩。

对话模型是在基座上做过一轮 SFT + RLHF 之后的"成品",已经学会了对话礼仪、能理解指令。

类比:基座模型像刚从图书馆出来的实习生,什么书都读过,但不会礼貌回答问题;对话模型像参加过公司培训的正式员工,懂规矩、会说话。

情况推荐起点
从零构建对话能力,数据量大(几十万条+)基座模型
让模型学会新领域知识 + 特定格式对话模型 (改造更省力)
改造模型的"人格"或语气风格对话模型
数据量小(几百到几千条)对话模型 (基座学不出对话)

绝大多数业务场景,答案都是对话模型。本文示例里我们选择的是 Qwen2.5-1.5B 的基座版——因为想让模型学会一种全新的输出格式(<think>...</think>+ 答案),对话模型自带的行为反而会成为干扰。


三、怎么选具体的开源模型?


现在开源模型多如牛毛:Qwen、Llama、DeepSeek、Mistral、GLM、Baichuan、Yi……

三个维度做选择:

① 参数量 —— 看显卡够撑多大的模型

模型规模全参微调所需显存LoRA 所需显存
1.5B~20 GB~6 GB
7B~80 GB(需 A100 × 2)~15 GB
14B单卡放不下~28 GB
32B多卡训练~60 GB

24GB 消费级卡(3090 / 4090)的甜蜜点是 7B LoRA 或 1.5B 全参。本文选 1.5B 全参,一张 24G 卡刚好能吃下。

② 许可证(License)

商用场景一定要看 License。Apache 2.0 / MIT 最宽松,Llama 系列有额外的商业条款(用户量门槛),部分模型明确禁止商用。

③ 生态成熟度

看 HuggingFace 下载量、issue 活跃度、有没有官方 chat_template、训练框架支持情况。中文场景优先看 Qwen、DeepSeek、GLM。

务实的默认选择:中文任务用 Qwen2.5-7B-Instruct,英文任务用 Llama-3.1-8B-Instruct。本文示例走 Qwen2.5-1.5B 的原因是它体积小、速度快、方便测试。


四、数据准备:决定成败的一步


业内经验一句话:微调 = 30% 训练配置 + 70% 数据质量。

4.1 选一个合适的开源数据集

本文用 DeepMath-103K(HuggingFace 上公开)。它是一个专门为数学推理准备的数据集,每条包含:

  • question

数学题原文

  • final_answer

最终答案

  • r1_solution_1/2/3

DeepSeek-R1 生成的三条推理过程

10 万条太多,单卡训不完。业务里通常只挑一个子集进行训练

train = train.filter(lambda x: x["length"] < MAX_LENGTH, num_proc=16)print("Samples after token-length filter:", len(train))if len(train) > MAX_TRAIN_SAMPLES: train = train.shuffle(seed=SEED).select(range(MAX_TRAIN_SAMPLES))print("Final SFT training samples:", len(train))

4.2 构造训练样本

关键设计:让模型学会先输出推理过程,再输出答案。做法是把 R1 的推理放进<think>.../n里作为 assistant 的回答:

def tokenize(example): question = example["question"] r1_solution = clean_solution(example["r1_solution_1"]) assistant_content = f"<think>/n{r1_solution}/n</think>" message = [ {"role": "user", "content": question}, {"role": "assistant", "content": assistant_content}, ] result = qwen_tokenizer.apply_chat_template( message, add_generation_prompt=False, tokenize=True, return_dict=True, ) result["length"] = len(result["input_ids"]) result["labels"] = result["input_ids"].copy() return resulttrain = candidate_data.map(tokenize, batched=False, num_proc=16)print("Tokenized candidate samples:", len(train))

三个要点:

  • messages 里已经包含完整 assistant 回答

    add_generation_prompt=False

  • labels = input_ids.copy()

    → collator 后续会自动把 pad 位置置为 -100

  • num_proc=16

    → 多进程加速 tokenize

4.3 过滤过长样本

推理过程往往很长,超过模型上下文会被截断,浪费显存。设一个长度上限:

train = train.filter(lambda x: x["length"] < 4096, num_proc=16)print("Samples after token-length filter:", len(train))
train = train.select(range(min(5000, len(train))))演示我们选取 5000 条,生产环境里,子集大小取决于目标能力和算力预算

4.4 数据质量的三条硬标准

类比:训练数据是给学生的教材。参考答案写错了、写偏了、写得不一致,学生就会"忠实地"学到错的东西。

  • 答案正确

(基本前提)

  • 格式一致

(不要今天用 Markdown 明天用纯文本)

  • 风格统一

(目标是"简洁客服",就不要混入啰嗦的例子)

数据准备阶段的 80% 时间应该花在清洗和检查上,而不是搞数据增强。


五、开源模型的三件套:解剖一个 Qwen2.5-1.5B


数据齐了,把模型下载下来。以 Qwen2.5-1.5B 为例,目录长这样

加载它,一行代码就够:

model = AutoModelForCausalLM.from_pretrained("./Models/Qwen2.5-1.5B", torch_dtype=torch.bfloat16)model

但这里每一个文件都值得单独说说。

5.1 model.safetensors:权重本体

类比:如果说模型是一台机器,safetensors 就是里面所有的零件——每一个参数张量。

传统.bin/.pt底层是 Python pickle,加载时会执行任意代码,存在木马风险。safetensors 是纯二进制加 JSON 头,不执行代码,加载可零拷贝、跨框架兼容。HuggingFace 现在默认推荐它。

一个粗略的显存估算:参数量 × 每参数字节数 = 权重文件大小。看到 14GB 的 safetensors,基本可以反推是 7B 参数的 FP16 模型。

5.2 config.json:模型的装配图

类比:safetensors 是零件,config 是装配图——告诉框架每个零件放在哪、几个 attention head、总共几层。

关键字段:

{ "architectures": [ "Qwen2ForCausalLM" ], "attention_dropout": 0.0, "bos_token_id": 151643, "eos_token_id": 151643, "hidden_act": "silu", "hidden_size": 1536, "initializer_range": 0.02, "intermediate_size": 8960, "max_position_embeddings": 131072, "max_window_layers": 28, "model_type": "qwen2", "num_attention_heads": 12, "num_hidden_layers": 28, "num_key_value_heads": 2, "rms_norm_eps": 1e-06, "rope_theta": 1000000.0, "sliding_window": 131072, "tie_word_embeddings": true, "torch_dtype": "bfloat16", "transformers_version": "4.40.1", "use_cache": true, "use_mrope": false, "use_sliding_window": false, "vocab_size": 151936}

num_key_value_heads: 2是 GQA(Grouped Query Attention)——12 头 Q 只对应 2 头 K/V,推理时 KV cache 显存降 6 倍,现代大模型标配。

print(model)可以看到装配后的完整骨架:

5.3 tokenizer 两件套:模型和文字世界的翻译官

类比:模型只认数字(token id),不认字符串。tokenizer 就是双向翻译官——把人话翻译成 id 让模型吃,再把 id 翻译回人话给用户看。

  • tokenizer.json

= 词表 + BPE 合并规则(算法本体)

  • tokenizer_config.json

= 特殊 token +chat_template(使用规范)

其中chat_template特别重要。它是一个 Jinja2 模板,负责把 messages 数组渲染成模型能吃的字符串。用一段代码看得最清楚:

两个开关必须记牢:

  • tokenize=True/False

返回 token id 还是字符串

  • add_generation_prompt=True/False

是否追加"该模型说话了"的提示

推理时必须 True,SFT 训练数据准备时必须 False——训练样本的 messages 已经包含完整的 assistant 回答,再开启就会在末尾额外插入孤立的<|im_start|>assistant/n,导致 label 错位、loss 计算偏离。


六、SFT 的核心机制:只批改"回答"部分


微调用的技术叫 SFT(Supervised Fine-Tuning)——用"指令 → 回答"配对数据教基座模型怎么听话。

类比:老师批作业,不看学生把题目抄得对不对,只改答题部分。SFT 里最重要的一件事就是——只对 response 部分算 loss,prompt 部分不算。

一条训练样本会拼成:

[prompt tokens x] [response tokens y]

如果对整条序列都算 loss,模型会试图"生成用户的问题",这偏离目标。工程做法:把 prompt 部分的 label 设为 -100(ignore_index),交叉熵会忽略这些位置。


七、训练配置 & 启动训练


上代码。基于 HuggingFace Trainer 的完整训练流程,分三段。

7.1 TrainingArguments:训练的控制面板

# 设置训练的参数training_args = TrainingArguments( # batch size & epochs per_device_train_batch_size=1, # 显存不足时,可以适当缩减,最小为1 gradient_accumulation_steps=4, num_train_epochs=1, # hyperparameters learning_rate=1e-6, lr_scheduler_type="cosine", # monitoring output_dir="./checkpoints", logging_dir="./checkpoints/logs", report_to="none", eval_strategy="no", save_strategy="steps", save_steps=100, save_total_limit=1, # efficiency bf16=True, torch_compile=True, gradient_checkpointing=True, # 显存不足时,请设置为True # reproducibility seed=42, data_seed=42)

三个决定成败的旋钮。

① 学习率

类比:培训力度。太猛,学员把原本会的东西忘光光;太轻,培训完等于没培训。

情况推荐 LR
全参微调对话模型1e-6 ~ 2e-5
全参微调基座模型1e-5 ~ 5e-5
LoRA 微调1e-4 ~ 5e-4
预训练(仅供对比)1e-4 ~ 3e-4

新手最常见的错误是照抄预训练 LR 去做 SFT,一轮下来把预训练学到的先验冲得七零八落,输出直接崩坏。SFT 一定要小 LR。

② 有效 batch size

有效 batch = per_device_batch × grad_accum × 卡数 = 1 × 4 × 1 = 4

类比:老师不是每改一份作业就调整一次教学方法,而是攒够一批作业再总结、再调整。

③ 精度与显存

  • bf16=True

混合精度训练,显存减半、几乎不掉效果

  • gradient_checkpointing=True

反向传播时重算激活值不保存,显存降 30%~70%,速度慢 20%

  • LoRA:只训 0.1%~1% 的参数,显存降到几分之一

粗略估算(1.5B 全参微调 + BF16):

显存
模型权重3 GB
梯度3 GB
优化器状态(AdamW)12 GB
激活值(开 grad checkpoint)~2 GB
总计~20 GB

消费级 24GB 卡刚好能跑。卡不够,选 LoRA。

7.2 DataCollator:批量整理器

# 设置默认的用于seq2seq任务的DataCollatorcollator = DataCollatorForSeq2Seq( qwen_tokenizer, padding=True, pad_to_multiple_of=8, return_tensors="pt",)

Dataset 输出的是不等长的样本,组 batch 时必须对齐。Collator 做三件事:

  1. 动态 padding

每个 batch 内补齐到该 batch 最长,而不是全局最长

  1. 补到 8 的倍数

NVIDIA Tensor Core 在 shape 是 8 或 16 的倍数时才能全速运行,补齐后能带来 30%~50% 加速

  1. pad 位置的 label 自动置为 -100

交叉熵会忽略这些位置

7.3 Trainer:一键启动训练

# 使用Trainer进行训练trainer = Trainer( model=model, args=training_args, train_dataset=train, processing_class=qwen_tokenizer, data_collator=collator,)trainer.train()

Trainer 会自动做:

  • 把数据喂给 collator 组 batch
  • 前向 → 反向 → 累积梯度 → 每 4 步更新一次参数
  • 每 100 步保存 checkpoint
  • 训练结束打印 loss 曲线和总耗时

一次典型跑完的输出:

5000训练样本在24G显存的GPU上训练31分钟。

到这里,一个专属版本的 Qwen2.5-1.5B 就落地在./checkpoints/tang_v1_model/目录下了。

八、评估:模型真的变好了吗?


回到开篇那个问题:训完的模型效果到底有没有变好?

三层评估,建议都做。

8.1 训练指标层

看训练 loss 曲线是否稳定下降(不该突然抖动或爆炸)。这只保证训练没崩,不代表效果好。

8.2 自动指标层:用 MATH500 打分

本文示例的目标是数学推理,业界通用的评测集是 MATH500 —— 500 道高中/竞赛数学题,自带标准答案。核心思路:

  1. 让模型在每道题上生成一段推理 + 答案

  2. 用正则/表达式解析器从输出里提取最终答案

  3. 与 ground truth 做数学等价比较

  4. 统计准确率

关键代码(来自eval.py):

import transformersimport torchimport datasetsfrom datasets import load_datasetfrom transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments, DataCollatorForSeq2Seqimport matplotlib.pyplot as pltimport copyimport acceleratefrom tqdm import tqdmfrom utils import math_equal, extract_answer_mathtest_math = load_dataset("json", data_files="/root/autodl-tmp/llm-course/MATH500/test.jsonl")math500 = test_math['train']model_path = "/root/autodl-tmp/llm-course/checkpoints/tang_v1_model"tokenizer = AutoTokenizer.from_pretrained(model_path)# 使用 bfloat16 精度加载模型,并自动分配到 GPU (device_map="auto") 避免 OOMmodel = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.bfloat16, device_map="auto")model.eval() # 切换到评估模式if tokenizer.pad_token is None: tokenizer.pad_token = tokenizer.eos_tokentokenizer.padding_side = "left"test_data = math500.select(range(200))BATCH_SIZE = 16correct_count = 0total_count = len(test_data)# 用一个列表把结果存下来,方便后续分析哪些题做错了error_cases = [] print(f"/n🚀 开始在 MATH500 上进行评测,总题数: {total_count} 条")# 3. 开始批量推理循环with torch.no_grad(): # 评测阶段不需要计算梯度,省显存提速 for start_index in tqdm(range(0, total_count, BATCH_SIZE), desc="Evaluating"): batch = [test_data[index] for index in range(start_index, min(start_index + BATCH_SIZE, total_count))] # ⚠️ 注意:这里的键名 "problem" 和 "solution" 请根据你 dataset 的实际打印结果调整 problems = [item["problem"] for item in batch] # 获取标准答案 (根据你数据的格式,可能自带 "answer" 字段,或者需要从 "solution" 中提取) ground_truths = [] for item in batch: ground_truth = item.get("answer") if not ground_truth: ground_truth = extract_answer_math(item["solution"]) ground_truths.append(ground_truth) # 构造对话模板(大部分数学模型推荐加上 System Prompt 引导输出格式) texts = [] for problem in problems: messages = [ {"role": "user", "content": problem} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) texts.append(text + "<think>") # 模板化与张量化 model_inputs = tokenizer(texts, return_tensors="pt", padding=True).to(model.device) # 生成回答 (数学推理建议用 greedy search,即 temperature=0) generated_ids = model.generate( model_inputs, max_new_tokens=3700, # 根据显存和题目难度适当调整,通常推导步骤较长 temperature=0.0, do_sample=False, pad_token_id=tokenizer.pad_token_id or tokenizer.eos_token_id ) # 截取新生成的部分并解码(去掉输入的 prompt 部分) prompt_length = model_inputs.input_ids.shape[1] generated_ids = generated_ids[:, prompt_length:] responses = tokenizer.batch_decode(generated_ids, skip_special_tokens=True) # 4. 提取模型答案并与标准答案比对 for problem, ground_truth, response in zip(problems, ground_truths, responses): pred_answer = extract_answer_math(response) is_correct = math_equal(pred_answer, ground_truth) if is_correct: correct_count += 1 else: # 记录错题,方便后面打磨数据或调优 error_cases.append({ "problem": problem, "ground_truth": ground_truth, "pred_answer": pred_answer, "full_response": response })# 5. 输出最终成绩单accuracy = correct_count / total_countprint("/n" + "="*40)print(f"🎉 评测完成!")print(f"总题数: {total_count}")print(f"正确题数: {correct_count}")print(f"最终准确率 (Accuracy): {accuracy * 100:.2f}%")print("="*40)

本次训练后的正确率,用5000条数据训练,用200个测试集,正确率25%。

8.3 业务指标层(最关键)

自动指标的问题是语言没有唯一答案。同一道题,模型输出 A、B、C 三种不同的推理都可能是对的,但正则提取答案可能会失败。所以在实际业务里,还需要:

  • 内部标注

找几位业务专家,对旧模型和新模型的输出盲评

  • LLM-as-judge

让 GPT-4 / Claude 当裁判打分,注意规避"同一模型评自己"的偏见

  • 线上 A/B

小流量对比,看业务指标(客服解决率、代码采纳率、用户满意度)

类比:训练 loss 是学员的模考分数,自动指标是标准化考试成绩,业务指标是他到岗后的实际绩效——三者不完全一致,决定饭碗的是最后一个。


结语

微调开源基座模型这件事,归根到底是用自家的数据 + 自家的目标,在通用能力之上,加一层专属能力。

整条链路可以浓缩成一句话:

选对基座 → 准备好数据 → 用小学习率训 → 用业务指标验收。

讨论

手上的场景更适合微调、RAG,还是提示工程?混合方案有没有实际跑过?

我们是不是可以蒸馏好的模型的结果作为微调的数据集?

如何学习大模型 AI ?

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

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

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

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

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包

  • ✅ 从零到一的 AI 学习路径图
  • ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
  • ✅ 百度/阿里专家闭门录播课
  • ✅ 大模型当下最新行业报告
  • ✅ 真实大厂面试真题
  • ✅ 2026 最新岗位需求图谱

所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》下方扫码获取~

① 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)

② 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

③ 大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

④ AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

⑤ 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

⑥ 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

以上资料如何领取?

为什么大家都在学大模型?

最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

不出1年,“有AI项目经验”将成为投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

以上全套大模型资料如何领取?

https://mp.weixin.qq.com/s/Zfzd-MCXADSJl_wGtwUU9g

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 16:49:44

Havenlon|AI 时代的执行安全语言体系(一):基础公理

Working Draft AI Era Execution Security LanguageThis article is part of the Havenlon Execution Security Language project. The terminology and definitions presented here describe the current working draft and may evolve as the discipline matures.AI 时代执行…

作者头像 李华
网站建设 2026/7/13 16:47:22

【大数据课程设计/毕业设计】基于spring 的新冠肺炎疫情实时监控系统的设计与实现 基于spring 的疫情数据可视化分析系统的设计与实现【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/13 16:47:17

收藏!月薪5万的AI高薪技能,小白也能逆袭掌握!

本文揭示了2026年AI高薪岗位的核心能力需求&#xff0c;强调AI工程化、Prompt工程、行业知识、AI安全与伦理、AI产品思维以及AI商业思维的重要性。文章指出&#xff0c;AI技术同质化严重&#xff0c;能力组合比单一技能更关键&#xff0c;鼓励读者选择感兴趣的行业&#xff0c;…

作者头像 李华
网站建设 2026/7/13 16:46:54

2026商城网站制作哪家好|搭建效率与上手体验实测

据中国信通院、CNNIC与艾瑞咨询联合数据&#xff0c;2025年国内网站建设市场规模突破2300亿元&#xff0c;同比增长15.3%&#xff0c;2026年预计达2980亿元。截至2025年底&#xff0c;中国企业网站数量突破3000万个&#xff0c;企业线上化渗透率达89.3%。然而全国建站服务商超1…

作者头像 李华