我们先定义理想状态下,大模型应该具备哪些综合性能:
- 指令理解能力:能够理解并遵循指令,并按照指令完成相应的逻辑推理、知识抽取、概念总结、API调用等任务
- 多语言理解能力:能够同时理解包括中文、英文等主流语言
- 逻辑推理能力:能够将复杂任务分解为相互串联依赖的子任务,通过分治的方法进行链式地逻辑推理,并最终解决问题
- 知识抽取能力:能够有效压缩、表征海量训练集中的有效知识,并存储在深度神经网络内部
- 概念总结能力:能够对输入内容进行抽象总结,并根据指令要求,形成新的格式化内容结构
- 有限外推自控能力:对模型内部不存在的知识能够控制幻觉生成,能够保证生成的内容永远是有用的
- 合规自控能力:模型内部蕴含复合公序良俗、符合人类共同价值观的规范
基于以上理想状态下的大模型,整个产业链的形态可以大致描述如下:
- 少数拥有高质量数据(多样性、丰富性、海量、信息质量高)的巨头公司/科研机构会不断迭代推出极高质量的基础大模型,大模型预测的token成本会随着边际效应不断降低,直至突破人力成本线
- 随着基础大模型性能的不断提升,B端开发者基于基础大模型的“再训练”以及“微调”行为,ROI逐渐降低。基础大模型成为新的实际意义上的“通用操作系统”,“自研操作系统”的意义逐渐丧失,接入基础大模型到现有业务流中成为最佳选择
- B端的开发工作转向“prompt engining(prompt工程)”,在应用端需求的拉动下,该领域会迎来海量场景的大规模爆发,同时也伴随着大量的新开发范式被提出,例如
- 基于prompt接口规范定义的元编程:通过prompt template近似实现“数据+prompt temple驱动的NLP Program”
- Role-Play prompt:让大模型成为特定领域任务的助手
- API-call prompt:让大模型成为传统软件User-Interface的NLP交互界面,灵活翻译用户的输入指令,并和Web2.0的现有IT基础设施进行交互,大幅度提升软件的用户交互体验
- ......
- 数据的价值会越来越受到人类重视,产权问题和保护主义会逐渐占据上峰
笔者猜想,上面描述的终态会在1到2年内达到,整个B端软件的开发和交付范式将完成一次彻底的蜕变。
通过第一章的讨论,我们已经很明确的一件事是:
基础大模型是未来一段时间软件行业的核心战略资源。
但是,处于过渡阶段期间,基础大模型的能力还并不完善,各个下游SaaS厂商所拥有的基础大模型资源又是不同的。同时,出于市场竞争的缘故,各家SaaS厂商又不可能傻等到基础大模型(通用操作系统)完全成熟后,再集成到各自的业务流中,因此,在未来1年多时间内,整个行业中会处于剧烈的整合实践中,各家SaaS厂商都会根据自己的实际情况,动态地投入资源并不断调整开发范式。
我们粗略地将行业开发范式分为以下几种状态:
完全没有基础大模型 ===> 拥有较弱综合性能的基模大模型 ===> 拥有中等综合性能的基模大模型 ===> 拥有完美综合性能的基模大模型
- 完全没有基础大模型:缺乏最基本条件,无法开发大模型相关开发工作
- 拥有较弱综合性能的基模大模型:基模大模型的预测能力几乎为零,迫于业务需求,只能通过SFT等技术,训练出服务于单一场景的专有LLM模型,仅能解决单一/少量场景问题,泛化能力很差
拥有中等综合性能的基模大模型
:基础大模型已经具备一定的指令理解和逻辑推理能力,但离直接完成领域任务依然存在一定距离(核心是)。处于这个阶段的厂商,需要双线作战,
- 提升预训练效果方向:通过扩大预训练的数据集范围以及质量,提升基础大模型的综合性能(建议投入80%以上精力)
- 提升微调效果方向(SFT或者二次预训练):打开全参数微调,并在新领域任务数据(注意同样要满足多样性原则,避免单一领域数据)中混入一定比例(例如超过30%)原始预训练数据,以期获取综合性能优良的微调模型(建议投入20%精力)
- 拥有完美综合性能的基模大模型:基础大模型已经完美胜任目标领域任务,通过prompt engining可以实现超级灵活的“数据+prompt temple驱动的NLP Program”
除了到达“拥有完美综合性能的基模大模型”终态的厂商,其他处于早期/中期的SaaS厂商,他们的目标都是一样的,都是不断争取向终态靠拢:
追求“SFT/Fine-tune LLM”尽可能高的综合性能,尽量避免模型向特定领域任务的过拟合,以期获得综合性能优良的微调模型
处于过渡阶段的厂商,因为受限于基础大模型战略资源等条件,因此不得不在以下几个方面作出折中:
- 微调模型面向新领域任务泛化性能
- 微调模型保持原有领域任务能力保持
- 微调训练成本
- 原始预训练样本可得性
接下来,我们进一步分析一下影响“SFT/Fine-tune LLM”综合性能的因素,并讨论该如何缓解这些影响因素。
通过VGG16微调实验,阐述影响“SFT/Fine-tune LLM”综合性能的因素。
0x1:全参数训练 and 一定比例预训练数据+新领域任务数据
0x2:全参数训练 and 100%新领域任务数据
0x3:freeze一定比例基模型并stacking新神经网络 and 一定比例预训练数据+新领域任务数据
0x4:freeze一定比例基模型并stacking新神经网络 and 100%新领域任务数据
综上,不管是做SFT-LLM还是二次预训练,最佳的做法是:
包含一定比例(例如30%以上)原始预训练数据,并开启全参数训练,这是避免微调模型陷入过拟合,获得最佳综合性能的一种最佳实践。核心思路都是希望下游微调模型也尽量具备泛化通用能力,尽量避免训练出服务于单一场景的专有LLM模型(仅能解决单一/少量场景问题)
文章来源: https://www.cnblogs.com/LittleHann/p/17506649.html
如有侵权请联系:admin#unsafe.sh