通用大模型研究重点之一:data embedding

研究背景

在过去的传统机器学习中,通常我们是直接处理同一类型的数字类型数据。随着深度学习发展,在图像,文本,语音领域分别取得了超越平均人类水平后,多模态数据的量随着互联网技术指数性增长,近两年自媒体更是推动了多模态数据处理的发展。
那么怎么更加高效的处理不同结构类型并且数量巨大的数据,经过我对《复杂》《规模》《模型思维》等深度的研究,得出如下结论:
(1)场景业务问题抽象成业务模型,这个在很多咨询公司流行(简称:业务问题符号化)
(2)针对抽象问题得到的业务模型和既定的目标探索建模方法(简称:符号问题数字化)
(3)不同的业务类型带有不同的数据特征怎么更加高效的计算(简称:数字问题可计算)
(4)深度学习的优势是解决复杂结构数据并且规模很大的问题(简称:自动化建模学习)

在我学习深度学习过程中,从计算机视觉目标检测,分割,文字识别,文本处理,系统优化,硬件优化,硬件设计都有了涉及后,基于以上我将展开系统的梳理和学习,与共同兴趣的朋友一起研究。

动机

(一):如果统一处理数据
(二):如何高效处理数据

方法

给不同的数据类型建立统一的向量索引参数,也就是将所有输入通过编码进行统一的向量化处理。随着深度学习的发展,我们不仅要表示空间结构信息还需要更好的时间序列结构信息。

最初大家通过建模表示采用0-1编码去表示不同的单词和字符。由于汉字常见在8万个字符,英文常见在100万个字符,也就是基本单位token。日常使用的汉字5000个左右。
随着这项工作推进,发现这种编码方法存在太多的0和极少的1表示,这将导致神经网络在连接过程针对下一个和上一个的存在可能性概率预测输出结果导致结构单元参数冗余,同时出现了另外一个问题两个相近意思的文字对于算法来说还是无法表达之间的关系。

那么怎么更好的通过同一个字符在不同的场景(也就是通常说的维度)上分析,怎么获得更高的概率。那么我们将需要通过不同的维度概率的向量让模型去学习,这样embeddings就产生了。

那么首选我们来介绍一种相对经典的结构:自编码器VAE
编码器e对原始特征x进行编码,得到中间层表示e(x)向量,解码器对中间层向量进行重构得到原始特征d [e(x)],通过不断训练计算损失优化原始输入特征和重构特征(核心思想是对数据压缩同时保持信息量最大)。

那么在编解码中通过反向传播误差更新权重,如果解码器的逆变换在没有重建损失情况下降维,这种信息空间缺乏可解释的利用结构让规则变得混乱,可能编码生成内容奇特。
那么隐含层的信息空间在规则性和结构化上存在如下缺陷:
初始数据本身分布的依赖,隐空间的大小范围,编码器本身结构太自由出现无损解码过拟合,隐含层空间信息映射部分出现大量无效内容向量表示,如何保证高效的隐含层有序规则引入了显式正则化方法VAE更新AE编码生成,这个方向主要的研究热点是将输入编码为一个概率分布的隐含层空间,局部通过方差控制,全局由均值控制。

接下来我们简单介绍一下word2vec实现word embedding
在word embedding发展过程中item embedding,entity embedding,graph embedding,categorical variables embedding,position embedding,segment embedding,由于原来的word embedding是静态的,那么在下游任务如果将翻译理解转为摘要生成就效果很差。随着BERT,GPT,XLnet,T5,ViT,CLIP,BLIP发展实现了动态预训练模型可以微调下游任务获得更好效果。

self attention,seq2seq,transformer等基础架构获得重大突破代替CNN,RNN。而在这个过程中用向量表示内容或实体对象需要一个建模方法。

核心问题

data embedding

通过embedding对任何计算机所能输入的实体对象进行向量化表示。但是在transformer中由于它的编码过程由于self attention机制需要计算输出序列中每个token与所有token之间相关性,这种计算的时间和空间复杂度随着输入序列长度成平方。
因此长度一旦变化,所需消耗的计算资源和存储资源指数增长,导致计算效率和性能直线下降。所以经过实验他们发现输出序列长度在512个token内在大多数任务上表现较好,按照常规的硬件和模型参数transformer不能直接处理那些需要上下文内容的任务,这种context有长文本理解,文档摘要生成。

OpenAI官方给出的案例是如何通过embedding来解决长文本输入问题,最初在Ada模型上有了很好应用,目前已经广泛应用在不同产品。
如何基于embedding让大模型解决输入长度影响的问题。目前主流生成方法的研究和存储方法的研究,一种是通过神经网络将字符token映射到向量空间;一种是通过共现矩阵让模型获得相关性;在第二代的ada模型上他们通过输入8191个tokens实现输出1536维向量满足下游模型学习。在这个过程中目前主流的开源向量数据库我们使用了Milvus。

随着通用人工智能技术发展,将深度学习推到认知计算时候,我们需要设计更加高效的多模态数据向量化方法:Flash embedding!

你可能感兴趣的:(OpenAGI,&OpenLLMs,通用人工智能基础(语音,文本,图像等),系统科学,神经科学,认知科学,embedding)