债券业务:
债券到期收益率和行权收益率:
到期收益率指的是:到期后用户能够兑换到的金额-当前买入净价/距离到期日时间,所以到期收益率与当前净价负相关,当前净价越高,到期收益率也就越低
行权收益率:行权收益率是一种特殊的到期收益率,当债券是含权债券时,债券不用到期就可以做行权操作,行权操作包括买方售出、卖方赎回、调整票面利率等。行权收益率指的是:行权时债券兑换的价格-净价/距离行权日时间
所以交易时,会给出净价/到期收益率,行权收益率比较少见,且行权收益率和到期收益率都是变化的。中债和wind对行权收益率的计算公式不用,不同的点在于行权后票面利率是否发生变化。
怎样提升产品竞争力?
举出一家或者两家竞品,从不同的角度来分析两方的优势与劣势
面对方优势使用什么样的方式来弥补或者避免在这个方向上正面硬刚
OCR方向的竞争公司 达观
NLP识别方面竞品Qtrade
我们取得的成绩?
对中型信托、基金公司或者债券一二级交易市场有大量数据沉淀,模型方面也有很多的积累,在之后接入同规模或者同行业的客户时能够减少数据收集,数据分析时间,并且模型具有可复用性
我们的优势:
- 用户层面:一直深耕大中型金融公司客户,对客户业务流程中的合同文件、指令数据有大量的积累;同时在客户群体中树立了良好服务口碑和较高的专业认可度
- 市场层面:落地了很多金融大型机构项目,在市场上树立了标杆
- 技术层面:针对模型训练有专业的研发团队,在poc阶段能以更高的准确率和流畅的演示效果提高客户使用感受,能够及时响应,优化使用过程中遇到的问题
- 产品层面:我们能够嵌入用户现有系统中,落地到客户本地使用,减少用户适应时间,保障数据一致性和安全性
- 运营方面:及时响应客户问题,分析客户反馈及时进行优化
产品的准确率是多少?
【不应该只阐述值是多少,而应该把对方当做完全不了解的人,阐述准确率有哪几种统计方法,目前使用的是哪种,举出示例,给出不同情况下的结果】
进行阐述的时候,阐述背景 调研方式 举出例子 结果排名
--做产品概述时:
阐述产品定位,面向的客群,解决什么样的问题。一般不阐述具体的功能模块和功能点
--怎样**(怎样提高用户体验?)
- 之前是什么样子,会对用户体验造成什么影响。经过怎样的设计,现在能够做到样,从而提升了用户做时的体验
- 之前是**
- 之前是**
【举出多个方面的例子】
怎么做产品化?
【用我们已经做了这样去回答,而不是用"我觉得"、"应该"这样的描述去回答,用我们尝试过哪几个方向,并且得到了哪些结果这样更具有说服性】
- 产品化一定是基于对大量客户的调研和需求分析,找到共同的业务诉求或者业务痛点
- 再进行需求分析,设计哪些功能能够满足共同的诉求并且具有良好的可扩展性
- 结合目前公司现有已实现的场景,以及时间人力成本,确定产品化的范围
产品化的结果:
- 形成了高复用的模块,节约了项目实施落地时间,以前需要两种才能实现的模块缩短到2天
- 更加方便的在POC环境进行演示,缩短POC准备时间,提高沟通效率
- 将产品化功能作为模块对接到整体业务系统中,减少开发维护工作量
怎样提高识别准确率?
阐述AI模型训练的整个流程:首先收集数据、进行数据清洗、校验数据完整性和数据量、对数据按特征进行分类。将数据分为测试集和训练集、使用测试集对初版模型进行准确率测试,针对识别错误的结果进行分析,
准确率不高的原因一般有:
- 数据样本不够:没有识别出来、识别错误,一般为某种格式没有练语料或者语料过少
- 数据内部结构复杂:有公共要素、多种格式混合输入、多条指令混合输入,指令之间无区分标识、
- 需提取的要素内容相似不易区分、原始数据中干扰项多、样本清晰度低
怎样解决:
- 增加训练语料的多样性,针对错误较多的语料种类加强训练
- 与客户约定可识别种类和范围,使用辅助分隔手段提高准确率,如多条复杂格式输入时使用分隔符标识
- 对样本数据进行更细致的分析,寻找与目标更加相关的特征
- 对训练集数据进行数据增强,增加数据多样性,提高模型泛化能力
- 和开发讨论现有模型架构是否是最合适的,是否使用多个模型来实现
- 持续跟进新版本模型训练结果
影响识别结果的因素有哪些?
表述的方式/结构:有无换行,有无共享信息;批量或者不批量;图片的话 颜色 正面侧面,图片清晰度,是否有覆盖
怎样引导客户,说服客户?客户一般对AI的准确率要求很高
- 整体行业情况,整体行业对某个难处理问题的识别准确率,当前我们的水平;
- 使用已经落地项目,同类型公司落地项目的成果来说服客户;
- 阐述准确率统计的方法,引导客户以要素准确率来作为准确率统计标准;
- 约定一个能够上线的准确率,上线并且客户使用后,再根据反馈进一步进行优化;
- 对客户提供的数据量数据种类,输入数据格式进行适当的约束;
常见的ai模型有哪些?
决策树和随机森林应该是属于机器学习的吧,比较老了。
深度学习也是机器学习的一个分支,就是利用很深的人工神经网络解决问题。
决策树(Decision Tree):
优点:易于理解和解释,可以处理分类和回归问题,具有较好的可扩展性。
缺点:对于复杂的问题,可能需要大量的计算和存储资源,对于连续型数据处理能力不足。
随机森林(Random Forest):
优点:具有较好的分类和回归性能,对于噪声数据和缺失数据具有较好的处理能力,具有较好的可扩展性。
缺点:对于复杂的问题,可能需要大量的计算和存储资源。
深度学习(Deep Learning):
优点:可以处理复杂的非线性问题,对于图像、语音等数据具有较好的处理能力,是人工智能的重要分支。
缺点:需要大量的训练数据和计算资源,模型的可解释性较差
- 卷积神经网络:模仿人类视觉的工作原理,核心是卷积层,卷积是指卷积运算;
- 循环神经网络:利用隐藏状态和时间,对序列数据的时间进行建模,能够很好的处理序列数据,可以短期记忆,
- 长短时记忆网络(Long Short-Term Memory,LSTM):一种改进的 RNN 结构,解决了传统 RNN 难以捕捉长期依赖关系的问题。LSTM 通过引入门控机制,能够更好地控制信息的流动和遗忘
- Transformer模型:基于自注意力机制,最知名的应用是谷歌的bert模型,在语音识别、图像生成、语音生成上均有很好的应用
- 自注意力机制:新的输入信息使用与原有信息的加权平均数进行标识,加权平均的参数是模型根据不同输入之间的相关性得来的
- PyTorch或TensorFlow:模型训练使用的框架
- 模型大小:13B表示1300亿个参数,是比较大的gpt3.0模型,模型使用显卡 V100,是性能比较好的显卡。模型的大小影响训练时间、训练消耗需要的资源、模型处理能力、部署需要的空间大小等
- 模型的训练所需要的时间受到以下因素影响:训练数据的复杂度、训练批次的大小,训练批次大可以缩短时间,但是大小不能超过内存、学习率的设置、超参数的设置、合理的选择架构和高效的优化技术(分布式训练、梯度累积)
- 分布式训练:数据分布式和机器分布式,需要注意机器之间梯度和参数的协同
- 梯度:在深度学习中,梯度是一个非常重要的概念,指的是损失函数关于参数的偏导数,可以看作是函数在某个点上升最快的方向。在模型训练中,我们通常会最小化损失函数以提高模型的性能。
大模型和深度学习模型的区别
定义:
深度学习模型是基于神经网络对数据进行特征提取和抽象表示,深度学习模型又可以分为卷积神经网络和循环神经网络等;
大模型是指参数量亿和万亿级别的模型,可以处理大量数据,例如 自然语言处理、计算机视觉、语音识别
参数量:
大模型的参数量是亿或者万亿级别,参数量大使得大模型能适应多种场景
深度学习模型参数量量只有百万、千万级别
数据处理能力:
大模型因为参数量大,数据处理能力强,能够适应诸多场景所以适用范围广
深度学习模型,对某个专业领域的知识进行学习,在专业领域有很好的数据处理能力
应用:
大模型在语言处理、计算机视觉、语音识别方面都能够解决复杂的任务
深度学习模型:深度学习模型通常针对特定领域或任务进行优化。例如,卷积神经网络(CNN)在计算机视觉任务中表现出色,循环神经网络(RNN)在自然语言处理任务中具有优势。
准确率和召回率;
召回率是指 预测正确的次数/样本中真正正确的数目(尽量全面,所以预测结果会多)
精确率是指 结果真的为正的次数/预测为正的次数 (尽量精准,所以预测结果会少)
语言大模型的优势:
1,基于预训练,在不需要提供语料前提下可以理解和生成对话,使用promote对模型理解能力进行测试
2,具有很好的泛化能力,能够基于思维链思考,更贴近人类交流
3,在模型反应没有达到预期时可以通过在promote中,提供上下文,给出明确模板的方式,不需要调整参数就能够优化模型
语言大模型的劣势:
大模型训练消耗资源和时间比较多
大模型容易生成大量,缺乏精准性的回答,在特定行业的适用性差
怎样让模型输出更加精准
- 使用行业内语料对模型进行训练,或者对模型进行微调,注意数据的准确性,类型是否覆盖全面,以及数据结果是否正确;
- 设计prompt时,对模型输出进行约束,引导;
- 模型内部使用更精确的评估机制,或者降低温度参数;
- 设计后处理规则,或者设置输出长度限制;
- 分析错误进行调优;
怎样优化提示
- 对模型具体解释promote中的要求;
- 将要素更换成简单、精简的描述词语;
- 寻找数据规则教导模型,提供上下文,或者将目标任务分段提示;
- 模型识别效果和模型本身用的预训练数据,以及参数量有关系
对模型的提示设计从笼统到精确可以分为四个层次:
类型(帮我写一篇演讲稿,这个时候模型会根据自己对演讲稿的类型输出),风格(帮我写一篇风格的演讲稿),大纲(帮我写一篇演讲稿,需要有三部分分别是*),给模板(给出一个示例,让模型模仿后输出)
大模型promot设计:
prompt设计:
zero-shot是指测试集结果并不在训练集中出现,比如 让模型学习马,并引导总结出马的特征,让模型学习松鼠并引导总结出条纹的特征,然后告诉模型斑马具有马和条纹的特征,最终希望模型能够识别出样本中的斑马;few-shot:使用少量的训练集样板,模型学习的主要是怎样区分样本的特征
设计案例1:请判断以下句子的情绪
设计案例2:给出示例:我想要投诉,此时用户的情绪是负面的
请判断 我现在很烦 用户的情绪是
设计案例3:给出一些引导/约束,阐述自己的目的,也是大模型的优势,我们可以通过改变提问的方式引导模型输出
定义:用户的情绪分为正向情绪和负面情绪,我很开心 输出:正面情绪
设计案例4:使用思维链的方式引导;就是将问题拆解并从大范围向小范围问:
这个问题是属于法律范畴么?相关的法律有哪些呢?了解这些法律之后能有什么解决方法么?
怎样设计prompt更好:
1,基于明确的描述词,避免少量,大量而是用精确描述为数字
2,使用符号分割指令和指令内容
3,指定输出的格式,比如输出为json格式,使用逗号分割结果
4,指定输出内容中必须包含什么,否则不进行输出
5,角色扮演,让模型扮演某种角色进行输出,或者告诉模型受众的角色,比如请问有哪些策略可以提高小朋友的成绩
prompt做fewshot时,注意模型会受到举例结果是否均衡,模型更受最近一个举例的影响,并且模型会更多使用例子中出现次数多的token
--AI产品经理和普通产品经理区别
- 职责:
普通产品经理:普通产品经理负责管理整个产品生命周期,从市场研究、需求分析、产品设计、开发、测试到上线和运营。他们需要与各个团队(如研发、设计、运营、市场等)紧密合作,确保产品顺利推出并满足用户需求。
AI 产品经理:AI 产品经理除了负责普通产品经理的职责外,还需要关注人工智能技术的应用和优化。他们需要深入了解 AI 技术的发展趋势,将 AI 技术融入产品设计中,以提高产品的智能化水平和用户体验。
- 技能和知识:
普通产品经理:普通产品经理需要具备市场分析、需求分析、产品设计、项目管理、沟通协调等基本技能。他们需要了解用户行为、市场趋势和竞争对手,以便为产品制定合适的发展策略。
AI 产品经理:AI 产品经理需要具备人工智能技术的基本知识,如机器学习、深度学习、自然语言处理等。他们需要了解 AI 技术在各个行业的应用场景,以便将 AI 技术应用于产品设计中。同时,AI 产品经理还需要具备数据分析、算法优化等技能,以提高产品的智能水平。
- 思维方式:
普通产品经理:普通产品经理主要关注用户需求、市场趋势和产品功能。他们需要站在用户的角度思考问题,以便为用户提供有价值的产品。
AI 产品经理:AI 产品经理除了关注用户需求和市场趋势外,还需要关注 AI 技术的应用和优化。他们需要将 AI 技术与产品功能相结合,以实现产品的智能化和自动化
----
项目
创金的智能交易机器人:
交易员需要进行多轮指令和询价信息确认,最终汇总下单,交易时间内时效性要求高,工作任务紧急并且有许多重复工作
通过设计一款交易机器人,通过自动与经理,中介对话将补全指令,交易员只需在界面复核既可下单
调研客户需求和业务场景,收集中国债券市场主要交易品种语料,数据分析后作为模型数据集;与客户聊天工具,资管系统,交易柜台打通,用户可以通过聊天窗或者前段页面对指令进行增删改查;
成果:现券、回购指令100%均由AI识别,运行近两年,与700名对手方,300家机构完成过沟通,单价机构每天完成近1000条指令交互;总共完成近2w笔交易
大模型智能投顾:
客服行业流程清晰,数据积累丰富,人工精力有限且人工成本高,且主要基于与用户的对话解决用户问题
基于LLM的智能客服,实现精确理解客户意图,流畅、可控、专业的为提供投顾、教培、投资陪伴服务。同时帮助公司建立对客户特征、收支、投资状况、投资预期的认知
调研用户需求,实现教培,陪伴闲聊,收集用户信息等业务场景。收集投顾语料数据整理成微调数据集和测试集,通过对话连配置功能和对话管理器控制对话,通过知识库让模型能快速迭代知识,收集用户反馈,优化prompt
成果
用户画像
债券一级市场发现机制不完善,用户对画像有较高需求,公司作为行业内唯一saas化平台,有数据积累的优势并且能成为重要增值功能
归结了不同来源的数据内容,进行数据清洗,纠错后沉淀在用户数据库中;通过统一的模型转化为用户特征。提供给债销人员提高营销效率。
向债销人员调研投资人购买债券的主要行为和参考因素,分析用户历史行为,刻画用户交易诉求,基于历史交易数据,刻画用户的交易偏好 ,基于近期行为,刻画用户交易意愿。指导债销人员针对不同债券,不同投资人设计差异化沟通方案和精力投入
知识库中,经典的问题可以配置成问答对的形式避免模型乱答,问答对的生成也可以由模型来抽取。模型输出乱说时,GPT本身以及langchain等工具配置有规则进行限制,参考知乎回答:
利用LangChain建gpt专属知识库,如何避免模型出现“幻觉”,绕过知识库知识乱答的情况? - 数字生命卡兹克的回答 - 知乎
利用LangChain建gpt专属知识库,如何避免模型出现“幻觉”,绕过知识库知识乱答的情况? - 知乎
GPT,BERT,Llama之间的区别,如何选择?
GPT和BERT都是transform模型,基于自注意力机制,不同的是bret使用的是双向机制,可以理解为对一句话中间缺少的某个词进行猜测,GPT是单向机制,只对一句话最后的词进行猜测。所以bert模型能够更加胜任语义理解,情感理解理解相关的任务,GPT更加适应语言生成,对话生成这类生成相关的任务。
GPT和bert都使用预训练机制,基于预训练后都有语义理解的能力。bert使用时依据不同的场景,再使用该场景语料进行有监督的训练和微调,从而实现对该场景更好的支持,比较符合传统模型的使用方式;而GPT则是设计优化该场景下的指令,就可以进行微调,实现对场景的支持。
Llama与GPT3相比,具有更小参数,在实现同样的理解和生成能力的同时,训练时对硬件资源的要求更小,训练完成后,因为参数量小,处理性能更好。
transformer模型:
是一种基于深度学习神经网络的模型,信息输入后首先进行token化,使用的是bpt方式,将文本进行分割;
然后在进行向量化,之后开始进入多层叠加的结构中,核心的逻辑是向量矩阵之间的相乘,最后得到输出。编码阶段,每一个位置token到最后生成的结果均参考了之后token的信息,解码阶段,后面token最后生成的结果参考了前面生成token的信息
transform结构是指运用自注意力机制的结构,不仅仅包含单向或者双向,每个输入位置都与序列中的所有其他位置进行交互,以便计算出每个位置对应的注意力分布。这种机制使得模型能够捕捉输入序列中各个位置点之间的复杂依赖关系,从而更好地理解整个序列的上下文信息,这个注意力分布教教关注度。
编码器和解码器结构:与transformer的概率是交叉的,一般编码器使用的是双向注意力机制,会能够掩盖中间的一个token然后依据上下文进行注意力分析。bert使用的就是双向注意力的编码器-解码器结构,一般用于情感分析,翻译等领域;GPT使用的是只有解码器结构,因为解码器用于生成所以只有能获取zuixtoken与上文的关系,所以注定是单向注意机制
token:一般一个英文单词大小>token,一个中文字符=2token
编码器
- 对输入序列进行嵌入(Embedding),将每个单词转换成一个向量表示。
- 对输入序列中的每个单词,分别计算出其对应的注意力权重,即该单词与其他所有单词之间的相似度。
- 根据注意力权重,对所有单词的嵌入向量进行加权求和,得到一个上下文向量,表示整个输入序列的语义信息。
- 将上下文向量通过多层前馈神经网络(Feedforward Neural Network)进行非线性变换,得到最终的编码输出。
解码器
- 对输出序列进行嵌入,将每个单词转换成一个向量表示。
- 对输出序列中的每个单词,分别计算出其对应的注意力权重。其中,解码器会额外利用编码器的上下文向量来计算注意力。
- 根据注意力权重,将编码器的上下文向量和解码器的当前嵌入向量进行加权求和,得到当前时间步的特征向量。
- 将特征向量通过多层前馈神经网络进行非线性变换,得到最终的解码输出。
在训练过程中,Transformer 采用了一种叫做 Masked Self-Attention 的技术,即在计算注意力权重时,只考虑输入序列中已经出现的单词,对于还未生成的单词则不考虑。这样可以避免模型在训练时看到未来的信息。
总之,Transformer 利用自注意力机制动态地把不同位置的语义信息融合起来,从而提高了模型的表现力和泛化能力。
模型训练相关知识:
模型训练需要的是计算量,计算机中GPU设计的功能主要就是用来做计算,所以模型训练使用GPU更快,cpu计算能力差;模型训练时占用的内存有,模型本身大小(7B,13B),梯度(大小等同模型,特殊情况也可以训练完在计算),优化器参数(模型大小*2),数据集大小(依据模型不同数据集大小不同,每个迭代训练的数据集数量影响模型训练市场和结果);模型运行时占用的大小就是模型本身大小。内存不够时可以将模型分层放在不同的机器上训练。
模型参数:
训练时参数:
批处理大小:是指模型一次训练的样本数量,样本的大小每个模型不同;学习率:每次模型更新参数时的步长;迭代次数:指的是将所有训练样本都用于训练的次数;正则化参数(Regularization Parameters):正则化参数用于控制模型的复杂度,以避免过拟合
模型微调(fine-tuning):模型微调和指令工程不是一个概念,模型微调是一种有监督的学习方式,需要人工选择数据,清洗数据。并且微调的结果并不完全可控。模型预训练阶段使用的是无监督的自学习方式
全量微调:需要大量时间和资源消耗,目前不使用;
lora:不改变已有模型参数,训练一个小的模型,在每一层的向量外增加lora自己的向量,以改变模型输出;与此类似的有适应器微调
Instruction 微调:思路与lora不同,是通过训练模型达到模型自动优化prompt的效果
基于人类反馈的强化学习RLTF:基于人类对模型输出的反馈训练一个奖励模型,使用奖励模型对模型进行强化训练
模型迁移学习:是将一个模型学习到的能力和参数给到另外一个模型,模型如果分为识别模型和规则模型,可以分开进行迁移
----
用户画像:
背景:1,债券市场对手方发现机制不完善 2,公司作为业内少有saas平台,有数据积累和能力实现画像功能 3,画像功能能够给公司和用户创造价值
目标:基于用户历史数据,标识出用户特点,并对预测用户行为提供依据
行动:收集客户需求,对目前系统中数据进行数据挖掘,确定数据采集范围;进行数据清洗,数据纠错,数据格式整理;对用户行为数据划分权重,依据权重推测用户行为并与真实用户行为进行校验,同时收集主要用户和产品专家意见,调整权重因子;拆分出主意债券特征
结果:页面化展示市场对手方特征,方便用户直接进行销售活动,通过产品路演累计15家用户参与试用,单个增值功能营收200w/年;通过埋点的方式计算用户活跃度,功能增值模块上线后,消息发送等模块月活提升30%
指令识别项目目标是什么,成果是什么?
目标是提高交易员收集信息,整理信息的效率。
时间维度:通过当前接收到指令到最终下单时间与之前收集下指令时间进行对比统计,之前指令收集到下单平均时间超20min因为交易员关注汇总精力有限,现在机器人自动提取并且通过对话方式确认补全,时间缩短为平均10min。效率提升50%以上
交易员使用满意度收集:满意度超95%,具体还有哪些问题不满意:1,多条复杂指令识别时可能出现错误 2,极小业务场景没有覆盖比如行权收益率下单
交易员使用频率:交易员基本摆脱原有整理下单方式,均使用自动识别进行汇总下单
识别准确率:
交易关键字段识别准确率95%左右,非关键字段90%左右。
关键字段如 交易对手,交易对手方,产品名称 为提高准确率会将识别结果与数据库字段进行es匹配。【如果匹配多条怎么办:首先通过业务逻辑区分,比如按增加市场作为筛选条件。无法判断则前端展示用户选择提示框】
对于关键数值识别错误,有什么应对措施:1,依据业务规则对明显错误的结果进行强提示 2,交易员确认前,将关键信息在提示框中展示 ,下单后,给出关键信息提示 3,设计下单复核功能,下单时选择复核人员,复核通过后才能下单成功
大模型智能客服
目标:能够替代传统人工客服提高客服处理效率,节约客服人工投入成本,替代传统问题配置型客服,更精确理解用户对话,使用更生动的语言与用户沟通
结果:使用问题对测试集的方式和用户满意度反馈两种方式统计结果
大模型运用在客服领域的优势:1,能够准确识别用户情绪和用户意图 2,知识库的内容能够及时更新3 个性化服务更强,能够依据每个用户的回答输出不同回复,而不是机械化的回答 4,基于上下文理解,能够更好地处理多轮对话,提供更连贯和有针对性的服务
-----------------------------------------------
transformer架构:
transformer:是深度学习神经网络的一种,和RNN相比能够进行并行计算,并且解决上下文依赖问题,所以这种架构被使用在很多模型上。其架构分为编码器和解码器俩部分。
编码器:编码器的输入是待理解或者操作的数据【数据可以包含文字,图片或者视频】,将其token化,类似于传统NLP的拆词,但是大模型一般使用BPE也就是词库拆分方法,token化的结果是对应到词库中的词位置也就是数字
——将拆分后的词进行词向量化,并加上位置向量化【前两层只需要进行一次】
——多头注意力层,在次层中底层进行的是QKV三种向量矩阵的计算,目的是为了获取当前token与上下文token的关系,这种关系用权重来表达,注意力越强表示越相关
——前反馈神经网络层:每一个多头注意力机制的输出均是前一层的输入,前反馈神经网络层负责负责记录之前层信息——最终输出为带有上下文权重的向量。【后两层可以多层叠加】
编码器的核心是指提取输入数据的特征,并转换为向量的形式
解码器:与编码器交互,不同的地方是有有一层的多头注意力机制是mask的,所以只能获取到当前token与前文token的注意力关系。【其余层也是多头注意力机制层和前馈神经网络层】输出也是向量,最终依据对应关系输出解码后结果
编码器和解码器层类似与砖块,可以多个组合形成不同架构的模型。运行时多层是并行运作的并且编码器层和除mask的解码器层都有交互;多头注意力机制的多头是指同时有多个QKV矩阵在进行计算;bert是只由编码器组成的模型,更多用于理解,分类,翻译等,GPT是只有解码器的模型,更多用于生成。
图片视频等目前都是分块后映射为向量,再变成与文字结果类似的向量进入编码器层。clip架构基于文字向量结果与图片对应关系的模型,可以实现文字生成图片
----------------------
注意力机制:
理解:注意力描述的是一个事物对另外一个事务的关注程度,比如人看一张照片时更关注任务的表情。体现在计算中,就是计算向量之间的相似程度:
方式:QKV,Q表示query,首先计算Q与K中不同事务的相似程度,体现Q在K中的注意力分布,再乘以V,得到注意力结果
自注意力机制:
属于注意力机制的一个分支,约定一个事物的QKV需要通过乘以WQ,WK,WV进行标准化,其实就是QKV在不同维度的向量坐标,也是不同向量维度对事物的表示。再分别计算每一个事物与其他事物之间的关系,最后得到新的词向量,这样的词向量就具有了与上下文相关的特征。计算一个词与句子中所有词的的关系,【需要与词的两种向量表示方法进行计算,得到一个结果】
所以i love you 句子经过自注意机制的结果是三个单词3*3的矩阵。
----------------------
模型微调的方法:
基础微调:QA问答对形式的微调,更多用在对话模型上,数据集格式一般为input和output,数据集格式与模型有关;instruction微调:是指让模型能够更好的理解指令的意思,内容一般包括:指令概括,指令详细解释,误区,示例,用于增强模型的鲁棒性和对未知指令的处理。prompt微调:一般用于对指令进行补充,比如需要进行情感判断时,训练模型在输入指令前添加“请判断该句情感”。针对指令的微调会改变模型中对指令理解部分的模型参数。
-----------------------------
梯度:训练模型是在找最小损失函数也就是最优解,可以简单理解为从山上下山找最低点,不同的梯度更新策略代表不同的下山方式,梯度可以理解为山的陡峭程度。批量梯度下降法,随机梯度下降法,动量梯度下降法。梯度下降的与学习率有关,也与迭代册数有关
训练参数:训练周期(epoch):数据集被完整用来训练的次数,一个周期内训练集会被遍历一次。迭代次数:每次迭代会选取一个批大小的数据进行训练,并更新模型参数,指一个训练周期内更新模型参数的次数。批大小:每次选取数据集的大小。e=迭代*批大小
langchain:一个开源的框架可以与pycharm结合,相当于大模型与应用层代码之间的中间件,解决的问题或者带来的好处:
- 提供prompt设计模板,对prompt进行管理
- 提供记忆功能:目前解决记忆缺失问题的方法是,将模型已经输出的内容精简后记录,下次输出时避免输出同样的话
- 提供网络检索,外部数据知识解码,切片,入库和检索功能:目前对不需要训练进入模型的知识,均通过解码切片并向量化写入向量数据库,有新的问题进来之后,比较问题切片向量化后的指与数据库中值的相似程度,并依据模型温度曲线和topk参数选取知识。
- 向量化:将一段文字转化成由很多位小数组成的数组形式,这个数组就是向量,将向量化结果储存在向量数据库中。相同内容向量是一致的,向量之间可以进行比较,比较结果值越小表示越相似。
- 温度曲线:0-1 0代表最精准 ;topk:10-100整数,表示每次取与目标值相似值的数量,10时准确度高,越高越具有多样性
- 将问题向量化后与向量数据库中知识进行匹配,并取值时,可以对相似内容进行剔除,或者按照来源文件进行剔除,再将输出内容喂给模型,模型依据prompt要求和向量数据库返回的值生成回复。
- 向量数据库内可以配置高频且准确率要求高的问答对,向量数据库中的知识需要有逻辑,才能避免匹配混乱的情况,逻辑包涵大型知识的树状逻辑和问答对形式。
- 不同的embeding方法会有不同的结果,使用不同的向量数据库对召回率也有影响
--大模型微调时数据集的收集和整理
- 数据的收集:在huggingface上以及国内opendatalab上已经有开源并且整理好的数据集,比如让llama模型更适应中文的模型,或者在CommonCrawl一个开放的收集全网数据的平台上获取数据。投顾相关的资料爬取,可以从东方财富,同花顺等官方网站,贴吧,雪球等论坛爬取得到
- 数据爬取到之后需要对数据进行过滤;数据过滤的方法有:对来源网站进行过滤,对关键字进行过滤,为了避免取到的内容是机器生成的,还可以对有多次重复句子的内容进行舍弃
- 进行数据去重,研究结果显示使用去重后的数据进行训练可以很好的提高模型能力,去重又分为按url来源去重,段落去重和行去重,可以利用hash算法的形式进行近似去重
- 数据格式整理,可以使用gpt等模型的能力对内容进行整理
--怎样减少模型资源消耗,怎样减少模型训练时间
- 数据:数据集要精简,可以对数据集进行压缩,减少数据集大小。对数据集进行清洗,对数据集进行数据加强,泛化,使数据集内容均匀分布,避免欠拟合和过拟合
- 模型选型和模型微调方式选择,将模型减枝或者降低模型精度也就是量化,使用
- 训练参数调整,批大小调高或者减少学习次数,对数据进行数据蒸馏
- 使用云训练资源或者扩展硬件资源
--模型生成时怎样节约资源
- 在提示词中加入“请精确回答”,减少模型输出token数,可以极大的节约模型组织答案时的资源消耗
- 优化模型推理结构,将模型进行减枝或者量化
- 利用模型的并行能力,模型并行处理请求时,平均每个请求所耗时间大大降低
--模型上下文关联长度和最大输入token数
- 这两个值都是可以通过改变参数来改变
- 最大输入长度会影响上下文关联长度
- 上下文关联长度的意思是,本次输入时会去前几次对话中的token
- 最大输入长度是指,超出这个长度模型就会对输入进行切分,每次模型真实接收到的是上下文指令+本次输入指令
--模型大小
llama7B运行时如果精度为float16位,那么所占用的内存是7*2=14GB,如果精度是8位则为7GB。模型的精度影响模型训练时资源和时间的消耗,也影响模型的输出
每个token所占的内存大小不固定,与模型相关,有些模型一个单词占用2个token,国内模型一个汉字占用一个token
--大模型的应用
- 大模型在C端的应用,C端自然语言的对话,图生文,图生视频等用户范围广,但是市场已经被微信抖音等巨头占据
- 随着模型结构算法优化,以及硬件资源的进步,最后会有很多大模型,在车载场景,手机电脑里。但是会基于开源且好用的大模型。
- 大模型在B端的市场更为广阔,比如产业数字化转型,在国内B端企业更喜欢使用私有云,数据敏感性高。所以模型的方向有:行业垂直大模型使用行业数据训练模型;企业垂直化的的模型使用企业私有数据训练;专精于某类工作的模型使用专业数据训练;模型减枝,小型化模型专注于某类问题。【不要通才要专才】具体落地场景可以有:针对企业管理者辅助决策的工具,新员工培训和企业知识快速查询,企业对C端客户的智能客服,节约办公时间,提高办公效率的流程优化工具。要注意客服这样的B短项目是TobToc的,
- 如果只是使用通用的大模型,会存在:企业不想将自己的数据放在公有云和共用大模型上;大模型预训练之后更多的是通用能力,对专业领域的知识训练不足回答没有深度,并且没有企业专有知识;大模型有胡说,可信度低的问题,对于通用的对话场景这是优势,但是对于B短使用来说是要解决的问题;训练成本过高;模型安全性和归属,数据隐私安全的问题
- 大模型目标是作为一个辅助,暂时不能取代人类进行决策,模型目前最主要的能力是文本生成和对话,并且不能取代原有业务系统,只是原有系统使用AI能力进行提效。大模型需要与其他系统进行隔离
- 大模型应用的设计:电脑和手机出现之后,GUI取代了命令行成为大众操作和使用软件的主要方式,大模型出现之后,LUI也随之兴起,但是大模型相关软件设计要注意的点有:意图理解,上下文相关(LUI做得到但是GUI做不到),清晰引导,服务和内容匹配(GUI容易实现,但是LUI实现较难)。所以结合GUI和LUI的优点,设计CUI的形式,就是将对话控制和图形界面控制结合,使对软件的设计使用和展示从功能导向转向任务导向。