Llama 是由 Meta 推出的一系列语言模型。
Llama 一共有 4 个模型尺寸,其出发点包括:只使用公开的数据集,以保证在数据使用上的公平性;用更多的数据训练更小的网络,例如用 1T 的 token 训练 7B 和 13B 的模型,用 1.4T 的 token 训练 33B 和 65B 模型,这参考了 Chinchilla 的结论。
在网络结构方面,Llama 采用 decoder-only 的方式,与 GPT3 相比有以下不同:使用了 SentencePiece 实现的 PBE 编码方式;使用了 PreNorm,这样收敛更稳定,同时采用 RMSNorm(均方根归一化),即 LayerNorm 里面没有减均值项和 beta 项;使用 SwiGLU(swish 激活+GeLU 调制),由于 SwiGLU 引入了额外的参数矩阵,原始 FFN 需要相应减小。此外,Llama 还使用了苏剑林老师提出的 RoPE 旋转位置编码,其核心思想是通过绝对位置编码的方式实现相对位置编码。
Ollama 则是一个开源的框架,旨在简化在本地运行大型语言模型(LLM)的过程。它是一个轻量级、可扩展的框架,提供了简单的 API 来创建、运行和管理模型,还有一个预构建模型库,进一步降低了使用门槛。不仅适用于自然语言处理研究和产品开发,还适合初学者或非技术人员使用,特别是那些希望在本地与大型语言模型交互的用户。通过简单的安装指令和一条命令即可在本地运行大模型,极大地推动了大型语言模型的发展和应用。
总的来说,Llama 作为语言模型具有独特的设计和特点,而 Ollama 作为框架为本地运行大模型提供了便利。
Ollama是一个开源的框架,旨在简化在本地运行大型语言模型(LLM)的过程。Ollama作为一个轻量级、可扩展的框架,提供了一个简单的API来创建、运行和管理模型,以及一个预构建模型库,进一步降低了使用门槛。它不仅适用于自然语言处理研究和产品开发,还被设计为适合初学者或非技术人员使用,特别是那些希望在本地与大型语言模型交互的用户总的来说,Ollama是一个高效、功能齐全的大模型服务工具,通过简单的安装指令和一条命令即可在本地运行大模型,极大地推动了大型语言模型的发展和应用
Langchain的核心在于其“链”概念,这是一个模块化的组件系统,包括Model I/O(模型输入输出)、Retrieval(数据检索)、Chains(链)、Agents(代理)、Memory(内存)、和Callbacks(回调)。这些组件可灵活组合,以支持复杂的应用逻辑。Model I/O模块负责处理与语言模型的直接交互,包括发送请求和解析响应。Retrieval模块用于增强语言模型的回答能力,通过向量数据库检索相关信息来支持回答生成。Chains模块则是多个组件的集成,用于构建更复杂的应用逻辑。Langchain的生态系统还包括LangSmith、LangGraph和LangServe等工具,这些工具能帮助开发者高效管理从原型到生产的各个阶段,以便优化LLM应用。Ollama简介https://ollama.com/Ollama是一个开箱即用的用于在本地运行大模型的框架。它的主要功能和特点包括:
Meta可谓是LLM开源一哥,LLaMA是其代表作,一共有4个模型尺寸,出发点如下只使用公开的数据集,保证所有人在数据面前平等用更多的数据训练更小网络,例如用1T的token训练7B的模型和13B模型,用1.4T的token训练33B和65B模型。这一点是参考了Chinchilla的结论。网络结构也是decoder-only的方式,跟GPT3相比异同如下使用了SentencePiece实现的PBE的编码方式使用了PreNorm,这样收敛稳定一些。同时用RMSNorm,就是LayerNorm里面没有减均值项和beta项使用SwiGLU,即swish激活+GeLU调制。由于SwiGLU引入了额外的参数矩阵,原始FFN需要做相应的砍小用了苏剑林老师提出的RoPE旋转位置编码,核心思想是通过绝对位置编码的方式实现相对位置编码,理论推导见[原文](https://zhuanlan.zhihu.com/p/359502624)RMSNormRMSNorm是本文要介绍的第3种norm,其中RMS(root mean square)是均方根的含义同时省去了beta,则可以得到SwiGLU激活函数SwiGLU和前面介绍的GeGLU非常相似,只是把GeLU激活换成了Swish激活,如下所示其中代表了逐元素乘法,且对比原始的FNN第一个dense乘法可以看出SwiGLU多了一个逐元素乘法项,因此为了跟原来的计算复杂度持平,FNN的dense需要相应砍小