本文翻译自Step-by-Step Guide to Creating Your Own Large Language Model。从大语言模型的基本概念开始,逐步介绍如何创建自己的大语言模型。
AI 和认知卸载:将思考过程与机器共享
翻译 AI and cognitive offloading: sharing the thinking process with machines
AI
我们的大脑天生就能够减轻工作量(协作和使用工具),而 AI 这类工具把它推进到了一个新的高度。
这种与生俱来的能力,让我们可以把 思考 分享给工具、其他个体或技术,这种分布式认知的本质为协作和创新开辟了令人兴奋的可能。
AI 代理工作流程设计模式 — 概述
神经网络隐藏层中的过拟合问题
回顾一下,在 上一篇文章中,我们提到了在反向传播过程中的梯度计算。
梯度,是损失函数(成本函数)对参数的偏导数组成的向量。它的方向是损失函数上升最快的方向,它的值是损失函数上升最快的速率。
如上图示,是一张3D的损失函数图,其中,x轴和y轴分别是参数 w 和 b,z轴是损失函数的值。我们最终的目标是希望损失函数最小,即找到最优的参数 w 和 b。
这就像是一个下山的过程,我们需要找到那个下山最快的方向,但是,山路是曲折的,我们需要不断的调整方向,逐步跨步(按照一个学习率)。跨步太大,可能会错过最优解,跨步太小,可能会收敛太慢。
当然,实际过程要复杂的多,在神经网络中往往会存在很多的隐藏层,而每一层都需要计算梯度,而每一层的梯度计算都需要依赖于前一层的输出以及对后一层结果产生的影响。影响可能会被放大,也可能会被缩小,这就是梯度消失和梯度爆炸的本质原因。
前向传播和反向传播
LangChain Agents
接收输入,理解语言(语境、意图、逻辑关系等),并据此做出动作。
LangChain Runnables
在实际的应用场景中,输入、决策、输出过程是复杂、递进、动态的。可能需要路由、并行、串行、甚至这些机制的进一步组合。
LCEL 概述
LECE(LangChain Expression Language)提供了 可高度组合化 的组件,涵盖 Prompt(输入)、Retriever(检索)、LLMs(大语言模型)、Tool(工具/函数) 以及 OutputParser(输出处理) 等。它隐藏了诸多底层的实现细节,以声明式的形式,简化 AI 产品的实现过程。
这些组件,实现了统一的底层协议 – Runnable 接口。
Runnable 接口中,定义了以 同步 或 异步 的方式对数据的流式处理、对 Chain 的调用、批处理等功能。
初次 “域” 见
我们能够抓住的东西,总是有限的、离散的,也就是有边界的、有数量的。
我认为,在一个边界内的自治对象,就是一个 域。所谓自治,有事物(对象),有事务(动作),有状态,有驱动(动作)。
下面,我想通过 DDD 领域设计、PDDL 规划和 ChatGPT Prompt 编写三个方面去谈谈自己对 域 的具体理解,刚好,最近接触到了这三个 域,也算是做一总结。
Milvus 初识
让计算机理解非结构化数据,就像发现了一座蒙尘已久的矿山。
本节,我们通过 Milvus 来认识一种解决该问题的方式。