1. 全局搜索与局部微调概述:协同策略的定义、核心思想、应用场景
大家好,欢迎来到这门课的第一章。
先聊个题外话。我记得刚入行那会儿,做推荐系统调参,总爱用一个策略死磕到底——要么全局暴力搜,要么局部小修小补。结果呢?全局搜太慢,局部调又容易掉进坑里出不来。后来我才意识到,这两者根本不是二选一的关系。
说白了,全局搜索与局部微调协同策略,就是把“大范围探索”和“精细打磨”结合起来。你想想看,这就像找宝藏——先拿个金属探测器满山跑(全局搜索),锁定大概位置后,再用小铲子慢慢挖(局部微调)。缺了哪一步,都容易白忙活。
1.1 协同策略的定义
我习惯这么定义它:协同策略是一种两阶段或多阶段优化方法,先通过全局搜索快速定位高潜力区域,再通过局部微调在该区域内进行精细化参数调整,最终找到最优解或近似最优解。
这里有个关键点——两个阶段不是割裂的,而是信息共享、迭代反馈的。全局搜索的结果会指导局部微调的起点,局部微调的反馈又能反过来修正全局搜索的方向。
核心公式(简化版):
最优解 ≈ 全局搜索(粗粒度空间) → 局部微调(细粒度空间)
其中,全局搜索负责“找对地方”,局部微调负责“做到极致”。
1.2 核心思想:为什么非要“协同”?
你可能会问:我直接用全局搜索不行吗?或者只做局部微调不行吗?
嗯,这里要注意——全局搜索的代价太高了。拿大模型微调来说,如果每个参数组合都试一遍,算力成本能让你哭出来。而局部微调又太依赖初始点,起点选不好,结果就是局部最优,离全局最优差得远。
我在项目中遇到过这样一个案例:做机器人关节控制时,一开始只用局部梯度下降,结果机器人老是卡在一个别扭的姿势里出不来。后来加了全局搜索做初始姿态估计,效果立竿见影。
协同策略的核心思想可以归纳为三点:
- 分而治之:把复杂优化问题拆成“粗搜”和“细调”两个子问题,降低单次求解难度。
- 信息传递:全局搜索的结果作为局部微调的“先验知识”,局部微调的梯度信息反馈给全局搜索,形成闭环。
- 资源分配:把大部分计算资源花在“有希望”的区域,而不是均匀撒网。
我的个人经验:在实际工程中,全局搜索和局部微调的比例不是固定的。我一般先用20%的预算做全局搜索,如果发现收敛趋势明显,就提前切换到局部微调。这个比例需要根据问题规模动态调整。
1.3 应用场景:三个典型领域
协同策略不是纸上谈兵,它在三个领域里特别能打。
1.3.1 大模型微调(LLM Fine-tuning)
大模型微调是当前最热的方向之一。你想想看,一个百亿参数的模型,全参数微调?算力成本高得离谱。所以业界普遍采用参数高效微调(PEFT),比如LoRA、Adapter。
但这里有个坑——如何选择微调哪些层?用多大的秩(rank)? 这就是协同策略的用武之地。
- 全局搜索阶段:用贝叶斯优化或进化算法,快速搜索最优的微调层组合和秩大小。
- 局部微调阶段:在选定的配置下,用梯度下降精细调整LoRA权重。
我曾经在一个文本生成任务上试过,只用局部微调(固定层和秩),BLEU分数卡在32.5上不去。加上全局搜索后,找到了更优的层组合,分数直接跳到34.1。别小看这1.6个点,在NLP领域已经算显著提升了。
1.3.2 推荐系统(Recommender Systems)
推荐系统的核心是特征组合和模型超参。特征空间动辄上亿维,超参组合更是天文数字。
我习惯的做法是:
- 全局搜索:用随机搜索或遗传算法,在特征空间和超参空间中快速采样,找到几个高潜力候选区域。
- 局部微调:对每个候选区域,用贝叶斯优化或网格搜索做精细化调参。
举个例子,我在做电商推荐时,全局搜索发现“用户历史点击序列长度”和“商品价格分桶数”这两个特征对AUC影响最大。然后局部微调把这两个特征的参数从粗粒度(10个桶)优化到细粒度(50个桶),AUC提升了0.8%。
避坑指南:我曾经在推荐系统里犯过一个错误——全局搜索阶段采样太少,导致漏掉了真正的最优区域。后来我定了个规矩:全局搜索的采样数至少是特征维度的10倍。这个经验救了我好几次。
1.3.3 机器人控制(Robot Control)
机器人控制是个典型的连续空间优化问题。关节角度、力矩、轨迹规划……每个维度都是连续的,搜索空间无限大。
协同策略在这里的应用非常直观:
- 全局搜索:用快速随机搜索树(RRT)或遗传算法,在状态空间中规划一条粗略的可行路径。
- 局部微调:用模型预测控制(MPC)或强化学习,对路径进行平滑和优化,减少抖动和能耗。
我记得有个项目是做机械臂抓取,全局搜索找到了一条避开障碍物的路径,但路径太曲折,机械臂执行起来抖得厉害。局部微调阶段用MPC做了轨迹平滑,抖动减少了60%,抓取成功率从78%提升到93%。
1.4 知识结构图:协同策略全景
下面这张图是我自己画的,把协同策略的核心逻辑串起来了。你可以把它当作本章的“地图”。
1.5 三种场景对比:一张表说清楚
为了方便你对比,我把三个应用场景的关键差异整理成了表格。
| 维度 | 大模型微调 | 推荐系统 | 机器人控制 |
|---|---|---|---|
| 搜索空间 | 离散(层选择、秩大小) | 混合(离散特征 + 连续超参) | 连续(关节角度、力矩) |
| 全局搜索方法 | 贝叶斯优化、进化算法 | 随机搜索、遗传算法 | RRT、遗传算法 |
| 局部微调方法 | 梯度下降(LoRA权重) | 贝叶斯优化、网格搜索 | MPC、强化学习 |
| 典型指标 | BLEU、Perplexity | AUC、CTR | 成功率、能耗 |
| 我踩过的坑 | 全局搜索采样太少,漏掉最优层组合 | 局部微调步长太大,跳过最优区域 | 全局路径太曲折,局部微调无法收敛 |
一个小技巧:如果你不确定自己的问题适合哪种全局搜索方法,我建议先从随机搜索开始。它虽然“笨”,但胜在简单、无偏,能帮你快速了解搜索空间的“地形”。等有了初步结果,再换更高级的方法。
1.6 本章小结
好了,第一章就到这里。我们聊了协同策略的定义——说白了就是“先粗搜再细调”;核心思想——分而治之、信息传递、资源分配;以及三个典型应用场景——大模型微调、推荐系统、机器人控制。
你可能会觉得这些概念有点抽象。别急,后面几章我会带你手把手实现这些策略,从代码到工程落地,一步步来。
记住一句话:全局搜索帮你“找对方向”,局部微调帮你“做到极致”。两者缺一不可。