大语言模型LLM的原理,bert、GPT、GLM三者的对比

本次任务:
    1、大语言模型原理、    
    2、演示1:单一文档摘要、        3、演示2:多文档+langchain摘要        4、演示3:微调训练本地知识库:美食、菜谱大模型....

一、大语言模型介绍:
    主要、技术依赖: transformer架构、    主要点:self-attention自注意力--机制
    编码器 + 解码器,        不同公司的技术路线不同:    有二者选其一的,也有兼备的!..
    谷歌重磅论文,《attention is all you need》...
    分为编码器encoder和解码器decoder,
        输入-输出关系: seq2seq,从一排序列,到另一排序列,
        应用,从一个序列(文本、语音、图像),转为另一个序列(文本、语音、图像):    
            如、文本翻译(一种语言、翻译为另一种语音)、多模块(文本、语音、图像的转换)

    编码器encoder:        self-attention的存在,天涯若比邻,不因为序列长度增加,而降低之前参数-状态向量的所占比重,而是分配不同的注意力、分值...
    解码器decoder:        接受编码器转移过来的一排向量,读取,开始结束都给一个特殊的token符号,让他自己吐出生成的关联信息,一排向量,
                开始token可以是任意特殊字符,只要和结束的输出token,不一样即可....

                让他自己吐出生成的关联信息,一排向量,可以设置长度,如常见的几千几万个词语,每个单词,对应一个softmax概率值,给最大值做输出...
                输出,当成新的输入...周而复始....            自回归(输出重新变输入...)
                防止无限生成,介入一个结束的token,结束流程
    二者的结构:
        1、共同点:    底层:多头自注意力self-attention,    二层: 残差链接、layer-norm....
                  三层:全连接层                四层:残差链接、layer-norm....
        Layer normalization(层归一化)是一种用于深度神经网络中的归一化技术。它可以对网络中的每个神经元的输出进行归一化,使网络中每一层的输出都具有相似的分布。

        2、不同点:    底层的多头自注意力机制,解码器decoder的多了一个masked,掩码机制...
                可以理解成为,拥有了masked,掩码机制的decoder,它遮挡住了该词后续的词语,提取自注意力了,仅作用在:本身、及其之前的词语....
    两个经典公司的架构、介绍...
        词编码:        1、one-hot:常用,受限词库的长度、无关联特征    2、词嵌入:1-降维度,自己设置,2-训练得到词嵌入向量,向量某个值代表,某种归类...

    1.1 bert(谷歌公司) :(bidirectional encoder representations from transformer)        【源于transformer的双向编码,表征模型...】
        1、仅用了encoder,编码器....    2、他是预训练模型        3、大量未标注的文本上训练得到的    4、发表时,11个nlp任务取得亮眼成绩...

        任务:    给一个句子进来,每一个句子,都会吐出一个embedding出来,
        优点:        1、因为经过预训练了,仅需微调 fine-tune,便可以取得不错的效果、
                2、可以利用,大规模文本数据,自监督性质,来构建预训练任务...
        虽然,nlp领域,没有像imagenet这样的类似的大规模的,人工标注数据,但是可以利用,    大规模文本数据,的自监督性质,来构建预训练任务....
        

    bert的训练:
        方式1:    掩码的-语言模型    【 masked-language-model】.....
            随机将15%的输入词语,遮住了,掩码,换成特殊的token(如:[masked]),
            让bert去猜测,盖住的是什么词语,完形填空,
                然后,每一个词语,对应输出一个 embedding,      遮住的embedding,输入到一个线性的多类分类器,(全连接层做的),预测是哪个遮住词语,
                因为是线性分类器,预测能力很弱,若想成功预测,bert模型就要深一些,输出embedding表征能力一定要非常好,才能用过embedding,轻易得知遮词.
                若 女人/女士,填入masked句子意思相近,则意味着他们有相近的embedding,可能是同一类...
        方式2:    段落拆分-模型    【next-sentence-prediction】...
            一个段落,拆分成两端,由bert告知我们,是否应该相接,
            拆分处token,边界[sep],        开头token,加入一个二分类,[cls],true or false...
        
        上游:    bert在大量文本上,经过以上的两种预训练之后,就可以用它来,进行各种文本分类nlp的下游任务....    
            把bert当成一个特征提取器,用bert得到文本的embedding,就可以用它来进行各种任务...
        应用:    case1:分类        文本分类、情感分类,正常结构,    线性分类器,训练出来,即可判断分类,    训练线性分类器 + bert微调...
            case2:槽填充        智能音箱、命令解读,语音对话,    结构设计:输入语句->bert模型->embedding->线性分类器->分类结果...
            case3:自然语言,逻辑推断        因果、前提假设、判断真假,    结构设计:类似于方式2,真/假/未知,的三分类-分类器,    
    1.2 GPT     (open-ai) :    (generative pre-training)                    【生成式-预训练模型】
        GPT是transformer的decoder,解码器部分,
        decoder,产生输出,因为掩码的存在,只能看到当前的,和之前的存在...
            开始token,不断生成,结束token,结束生成..
            不断地自回归,预测未来,成语接龙,潜力非常强大....

        1、GPT1 的架构:          transformer的decoder架构...
            1、训练语言模型:给前面一句话,生成后面的单词...            大量未标注的语料...
            2、文本分类模型:    与1的语言模型,同时训练...    .            大量标注文本....
        在诸多nlp下游任务的体现:
            1、cls,开始->文本->提取,分类器        2、蕴含,类似bert,逻辑关系推断..       3、相似度计算,调换text1和text2位置,分别计算,相加和...分类器,
            4、多选题,同一个内容,多个答案,各自计算,分类器
        总体而言,就是训练transformer模型,通过调整输入,和线性分类器,实现各种下游任务的目的...
            训练的,数据集:    books-corpus dataset,7000本尚未发表的书...

        2、GPT2    :    模型与1代基本一致,更大数据集,更大的模型,更多可以学习的参数,
                openai利用网络爬虫,抓取了4500万个links链接的,抽取了链接里的文字,        最终,8000万个文本,40 GB的文字

            GPT 2的亮点:    它的,零样本学习能力、zero-shot,
                    不需要标注任何信息,也不需要训练模型,它训练好了一个模型,你在任何地方都能用....
                        如:英语->法语。        英语转法语,英语text,法语text,        英语转法语,即为[cls]...既是该执行的任务...
        3、GPT3    :    模型与2代基本一致,参数比 gpt2,大了100多倍,    1.5B -> 175 B...        更大的数据...
            因为GPT 3的模型太大,做微调fine-tune实现下游任务,也不太现实,
            所以,它扩展了GPT 2的zero-shot能力,引入了in-context,上下文学习--的链接能力,
                不更新模型梯度,来实现各种子任务...        如: zero-shot,one-shot,few-shot,都不更新模型梯度,
                zero-shot:    1、英译法、2、放入,翻译的词...    translate English to France,     cheese => input_word...  [=> prompt提示]
                one-shot:    1、英译法    2、插入个样例    3、放入,翻译的词...        中间插入一个样例    ,进来...
                few-shot:    其实就是,...中间插入更多的样本...         使用的门槛,降低了很多....
                
    1.3 chatGLM-6b     (北京智源-清华唐杰教授) :    (generative pre-training)    
        chatGLM-6b:    开源、支持中英双语的对话模型,基于general-language-model的GLM 大模型,具有 62亿的参数...
                更强性能、更长上下文、更高效的推理...
        集众家所长,如下:
            自编码模型 bert:    双向注意力,擅长文本理解,
            自回归模型 GPT:    单向注意力,擅长文本生成,
            编码器-解码器模型 T5:    编解码,擅长对话,
            GLM:        自回归,空白填充,通用语言模型(通用:希望,集众家所长...统一架构...)

        bert、gpt、glm三者的区别:
            bert,挖掉某个词语挖掉,让模型预测,
            gpt,让模型生成新的文本,
            glm,将多个词汇挖掉,让他自回归,生成出缺失的部分,        比bert,更像完形填空,多个单词的,
        glm,将各种自然语言理解任务,把它定制成,包含任务描述的完形填空的问题,这些问题,都可以通过自回归来生成...对应的回答...
            多出采样,用掩码替代掉,挖去的词汇,让他自回归生成出来...

        chatGLM 具备的能力:        【通识领域】
            1、自我认知:自己如何/怎样/优缺点        2、提纲写作:写博客提纲        3、文案写作:网易云热评        
            *4、信息抽取:给定信息中,抽取出、人物、时间、地点、事件类型的实体,输出位 json格式....
            
        chatGLM 应用:        【垂直领域】
            LLM,通常都是建立在,通识领域知识的训练,    至于、在垂直领域知识、私有知识-问答领域,需要微调,或者提示词工程....
            1、微调(fine-tune):
                针对预训练的语言模型(pre-LLM),在特征任务的少量数据集上,对模型进一步训练,
                适用于:    任务,或域定义明确,有足够的标注数据...
            2、提示词工程(prompt engineer):
                设置,自然语言提示,或指令,引导模型执行特定任务,
                适用于:    高精度和明确输出的任务,提示工程,可用于制作引发所需输出的查询....
            

你可能感兴趣的:(计算机视觉cv-base,语言模型,bert,gpt,自然语言处理,chatgpt)