对于普通用户而言,大模型接触到的其实就是一个简单的问答对。在chatgpt4和文心一言这样的产品里面,用户的理解其实就是简单的问一个问题,得到一个答案这么简单,在类似文心,格,Stable Diffusion等类似的产品里面,就是输入一段特定描述,生成符合描述的图片。
如果你准备学习大模型,那么我可以向你简单的介绍一下大模型的一个学习步骤。 下面是构建行业大模型的通用步骤:
1.选择一个预训练模型: 基于需要选择一个适当的预训练模型。例如,你可以选择一个像BERT、GPT或其他任何现有的大型预训练模型。
2.准备无监督语料: 根据应用领域或特定任务,收集或选择一个相应的无监督数据集。例如,如果在医学领域,那么医学文献或文章可以是一个好的数据源。
3.数据预处理: 对无监督语料进行预处理,使其符合模型的输入格式。这可能包括分词、去除停用词、处理特殊字符等。
4.模型配置: 根据硬件和数据大小,设置适当的训练参数,如批次大小、学习率、训练周期数等。
5.模型增强: 使用无监督语料对预训练模型进行训练。通常可以使用较小的学习率,因为只是在已经训练好的模型上进行细微的调整。
6.评估效果: 使用一些验证集或任务来检查模型的性能是否有所提高。
7.模型微调: 模型经过增强训练,可以将其继续用于特定的下游任务(如文本分类、实体识别)对模型进行微调,以便它能更好地执行这些任务。
8.promt构建: 设计有效的prompt,.给模型输入提示引导模型生成所需的输出。
利用大模型实现具体的应用,执行流程可以简化为如下流程图:
LLM Chain的一个例子如下:
from langchain import PromptTemplate, OpenAI, LLMChain
prompt_template = "What is a good name for a company that makes {product}?"
llm = OpenAI(temperature=0)
llm_chain = LLMChain(
llm=llm,
prompt=PromptTemplate.from_template(prompt_template)
)
llm_chain("colorful socks")
# output: {'product': 'colorful socks', 'text': ' Socktastic!'}
此外,可以在链中也可以进行数据处理操作,如,将一个超长文本过滤为仅前3段,而后将其传递到LLMChain以对其进行摘要。 自定义Chain需要重写下面3个方法:
from langchain.chains import LLMChain
from langchain.chains.base import Chain
from typing import Dict, List
class ConcatenateChain(Chain):
chain_1: LLMChain
chain_2: LLMChain
@property
def input_keys(self) -> List[str]:
# Union of the input keys of the two chains.
all_input_vars = set(self.chain_1.input_keys).union(set(self.chain_2.input_keys))
return list(all_input_vars)
@property
def output_keys(self) -> List[str]:
return ['concat_output']
def _call(self, inputs: Dict[str, str]) -> Dict[str, str]:
output_1 = self.chain_1.run(inputs)
output_2 = self.chain_2.run(inputs)
return {'concat_output': output_1 + output_2}
作为百度的一名开发者,对大模型的发展和变革还是有一些感触的。
大模型基本原理与技术: 在年初,我深入研究了深度学习、强化学习等基本原理和技术,并了解了Transformer、BERT等大模型的基本架构和训练方法。通过阅读相关论文和开源代码,我逐渐掌握了使用大模型进行自然语言处理、图像识别等任务的方法。
模型训练: 模型训练分为四个阶段:预训练(Pretraining)、监督微调(Supervised Finetuning)、奖励建模(Reward Modeling)、以及强化学习(Reinforcement Learning)
数据量: 预训练阶段所需的数据量很大,但质量要求不高;而后面的三个阶段恰恰相反,需要的数据质量较高。
训练方法: 预训练和监督微调的训练方法相同,都是预测下一个单词。奖励模型和强化学习的训练方法则不同。奖励模型是:元分类学习,而强化学习则鼓励模型生成奖励模型评分较高的回答。 训练所需资源: 预训练阶段的资源消耗巨大,使用数千颗GPU,花费数月时间,占总训练时间的99%。后面的三个阶段只需使用数十颗GPU,训练时间约数天。
通过以上过程,我们可以看到,预训练阶段的资源消耗如此巨大,只有大厂才有能力进行。如果资源有限,我们应将重心放在后三个阶段,例如,我们可以针对自己熟悉的专业领域对模型进行微调等。
我觉得除了现在最主流的一些通用大模型:国外的CHAT-GPT,国内的文心一言、通义千问等等,我觉得未来发展会有越来越多的专用大模型,比如百度的专注健康的灵医大模型,去帮助我们去解决具体的问题
-
解决幻觉问题: 核心的模型公司正在努力改进控制 LLM 输出的方法(路径、进展...)
-
上下文学习能力需要提升模型的记忆&储存能力: 扩展的上下文窗口和检索机制对企业使用场景非常重要,高记忆容量的模型将在实际应用中明显领先(例子,比较)
-
将理解转化为行动: 大模型目前拥有一个储存海量知识的大脑,但缺乏一个从提供分析到作出行动的映射(ChatGPT的Plug-ins就优化这个部分)
-
多模态: 从长远来看,多模态,特别是与计算机视觉的整合,可以通过机器人、自动驾驶和其他需要与物理世界实时交互的应用程序将大模型扩展到物理现实中
大模型的时代是对我们的产品的一个冲击,无论哪一个产品都需要抓住这一个风口,这是一个改变时代的机会,改变我们当前的互联网时代的一个转折点。接入大模型,将面向用户的产品变成对用户友好且人性化的产品。
infoq原文链接:https://xie.infoq.cn/article/48f39e5f35969c139f325d691