最近在学习OCI的生成式AI相关方面的内容,对相关内容做一下整理,内容涉及LLM基础、LLM架构、提示(Promot)、微调(fine-tuning)、各种模型、OCI的生成式AI、RAG,及向量数据库等等。争取写出一个系列的内容。
什么是LLM?
LLM(Large Language Model)是大型语言模型的缩写,语言模型(LM)是一个文本的概率模型。为了能够简单说明该模型,在这里举一个简单的例子。
例如,“我写信给农场,希望他们送我一个宠物,他们送给我一只()”
括号中的词汇概率如下:
牛 0.1 羊 0.2 狗 0.3 猫 0.2 马 0.1 猪 0.05 兔子 0.2
LM给出每一个候选词汇的概率。注意,LLM中第一个L是指模型参数的数量。
按照此时的候选词汇概率高低,LM大概率会选择“狗”填入括号中,如果句子变为“我写信给农场,希望他们送我一个宠物,他们送给我一只小()”。此时,“狗”的概率会大幅增加,而“牛”的概率会降低。我们所需要学习的就是LLM如何利用这些词汇的分布生成文本,以及我们如何去影响词汇的分布。
LLM架构
LLM的多个架构聚焦在编码和解码,例如嵌入和生成文本。所有的这些模型构建在Transformer架构之上,关于“Transformer架构”感兴趣的读者可以阅读论文“Attention is all you need”,该论文提出了Transformer架构,并改变了以往自然语言处理中常用的循环神经网络(RNN)或卷积神经网络(CNN)的主导地位,使得 Transformer 架构成为许多先进语言模型的基础。LLM中的各种模型具备不同的能力,例如嵌入(emmbedding)/生成(generation),模型的类型不同导致了它们的参数数量不同。
编码 Encoder
模型用于将连续的词汇转换为向量进行嵌入。例如,MiniLM,Embed-light,BERT, RoBERT,DistillBERT,SBERT,...。
编码主要用于嵌入令牌(tokens),句子及文档。
解码 Decoder
模型用于接收连续的词汇并输出下一个词汇。例如,GPT-4,Llama,BLOOM,Falcon,...。
解码主要用于生成文本,聊天模型等等。
编码-解码 Encoders -Decoders
对连续的词汇进行编码,之后使用这些编码输出下一个词汇。例如,T5,UL2,BART,...。
编码-解码通常用于翻译文本。
下面是一个模型分布图,注意纵轴,参数的数量是成10倍增长的。
以上内容是关于LLM基础及架构的一个简单介绍,后续会介绍提示及微调等方面的内容。感谢关注MySQL解决方案工程师。