task01 llm-universe LLM 介绍

1.LLM介绍

1.1.1llm是什么?

llm——Large Language Model(大语言模型),源于语言模型。

语言模型:

(1)用于预测一个句子中的序列出现的概率。

其计算方法从最开始的基于语料库中各个序列出现的频率进行预测,由于无法预测语料库中之前没有出现的序列。

进行改进后,计算方法为:

(2)计算一个序列中前n-1个序列出现的条件下,n个序列出现的概率,由于随着序列n的增加,计算量过大,模型难以继续学习。

加入神经网络的知识进行改进后,计算方法为:

(3)使用前馈神经网络(FFNN)来学习单词的分布式特征表示,将语料库中的单词进行向量表示,使用神经网络学习单词之间的关系,实现文本的生成。由于FFNN只能处理固定长度的序列,

加入RNN,解决变长 的序列的学习问题,但是导致了训练过程中梯度过大和梯度小时的问题。

(4)使用长短期记忆模型(LSTM_RNN)解决了梯度过大和梯度消失的问题,但是神经网络模型具有较深的网络结构,大多数NLP任务的监督数据集规模较小,容易在这些数据集中发生拟合,泛化性能较差,难以在下游任务应用。

(5)使用预训练技术解决泛化问题,先在大语料库中进行模型训练,再针对不同的下游任务使用较小的数据集进行进一步微调,泛化性能明显改善。

(6)但是预训练阶段模型学习到的词嵌入与上下文无关,迁移到下游任务仍需重新训练调整,针对此问题,提出解决方案:在句子级别进行预训练,使用嵌入语言模型,Embedings from Language Models,ELMO),采用正向和反向的双层LSTM编码器结构,学习词的上下文表示,ELMO在下游任务生带来了巨大的改进,但是其常被作为特征提取器生成上下文词嵌入向量,并输入到下游主模型中,而模型中的其他部分仍需从头有开始训练

(7)因为(6)的局限性,研究人员引入Transformer 架构的神经网络模型,使用大量文本数据训练模型,使其理解语言规则和模式,因此能做出更好的预测,在多项NLP任务重表现优异。

1.1.2llm的发展历程?

语言模型——>神经网络语言模型——>基于transformer的神经网络语言模型——>基于大规模数据的语言模型——>(大语言模型规模超过10亿参数)

1.1.3常见的LLM模型

闭源:GPT系列、Claude 系列 Palm/Gemini系列、文心大模型、星火大模型

开源:LLaMa系列、通义千问、GLM系列、BaiChuan系列

1.2.1LLM能做什么

LLM具有涌现能力:

上下文学习、指令遵循、逐步推理

LLM作为基座模型支持多元应用能力

支持对话作为入口的能力

1.2.2LLM的特点

巨大的规模、预训练和微调、上下文感知、多语言支持、多模态支持、伦理和风险问题、高计算资源需求

1.3.1LLM的应用

自然语言处理领域:写文章、回答问题、翻译语言

计算机视觉领域:让计算机理解图像和文字

1.3.2LLM的影响

实现通用人工智能的可能性

大模型有较强的能力,但是在专用领域的问题上可能出现答非所问、回答不精准、无法回答最新的知识、内容不可追溯、领域专业知识能力欠缺、推理能力受限、应用场景适应性较弱、长文本处理能力较弱等问题,为解决这一问题,出现了RAG技术。

为了实现一个专业领域的模型可以实现的技术有微调或者RAG技术。

但是微调需要重现训练全部数据、依旧存在前面模型的问题,需要定期训练,消耗较大。不能从根本上解决问题。

2.RAG(Retrieval-Augmented Generation)技术

什么是RAG?

一个完整的系统,分为四个阶段:

数据处理、检索阶段、增强阶段、生成回答阶段

将新的数据以外挂知识库的形式并入,将用户的问题和外挂知识库一起进行向量化,提交给大模型进行检索,找出模型中匹配最高的top-k个答案,将相关信息给大模型,生成为答案输出给用户,比起微调RAG技术优势极为突出。

3LangChain

我们希望可以利用OPenAI提供的API或者私有化模型开发一些自己专属的应用程序。

要创建这一一个程序需要很多流程,许多机构和个人推出了开源框架,帮助开发者快速构建基于大模型的端到端的应用程序或者工作流程。LangChain就是其中一个关注度较高的框架。可以简化应用程序的开发流程。

LangChain的6个核心组件:

与模型交互的接口——>模型输入/输出(MOdel I/O)

与特定应用程序的数据进行交互的接口——>数据连接(Data connection)

将组合实现端到端应用——>链(Chains)

用于链的多次运行之间持久化应用程序状态——>记忆(Memory)

扩展模型推理能力,用于复杂的应用的调用序列——>代理(Agents)

扩展模型推理能力,复杂应用调用序列——>回调(Callbacks)

4.LLM 应用的开发

利用大模型api或者开源模型开发对应需求的应用。

通过Prompt Enginnering实现大语言模型的控制。

大模型开发的一般思路:

不大幅度改动大模型,而是将其作为工具调用,通过Prompt Enginnering、数据工程、业务逻辑分解等手段充分发挥大模型的能力,适配应用任务。

大模型应用开发的流程:

确定开发目标——>设计功能——>搭建整体框架(特定数据库+prompt+通用大模型)——>搭建数据库(向量数据库,收集数据,进行预处理,向量化存储到数据库中。数据处理:常用pdf\ppt\markdown \html 向纯文本的转化,错误数据、异常数据、脏数据清洗,预处理后的数据切片、向量化构建出个性化数据库)——>PromptEnginnering(逐步迭代构建优质的PromptEnginnering,构建一个来源于实际业务的小型验证集,基于小型验证集设计满足基本要求、具备基本能力的prompt)——>验证迭代(不断发现BadCAse 针对性改进PromptEnginnering,提升系统效果、性能)——>前后端搭建(搭建前后端,设计产品界面,让我们的应用成为产品)——>体验优化(应用上线体验,用户体验跟踪,针对性改进优化)

环境配置问题:找不到txt文件,解决方法:cd llm-universe

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值