Skip to content

⚠️ Important Notice

This post was last updated on: which was . Please pay attention to its timelines.

《程序员的AI开发第一课》阅读笔记

LLM基础

LLM 即 Large Language Model,是一种基于深度学习的自然语言处理模型。它可以通过学习大量的文本数据,来生成类似人类的文本。

根据输入的文本,去预测下一个词(Token)的概率,然后再根据概率再来生成下一个词,以此类推,就可以生成类似人类的文本

如果每次都采用概率高的来生成的话,那么相同的输入,生成的文本就会是相同的。

为了避免这种情况,有一个温度Temperature的概念,如果温度越小,那么生成的文本就会越保守,如果温度越大,那么生成的文本就会越跳跃。

LLM的工作简单描述就是:一次添加一个Token

提示词和提示工程

LLM会有很多个参数,参数哪怕是微调都会得到不一样的结果。所以想要用好AI,需要学会如何提问。

首先要明确自己提问的目的,其次是要有明确的上下文,最后是对输出结果的要求。满足这三点,基本就能得到满意的结果。

当然,这三点并不是必须的,可以根据提问的需求来调整。最核心的就是表达清楚自己的问题,以及上下文的描述

提示工程

提示工程的主要目的就是引导大模型能给出更好的答案

LangChain

是一个开发框架,可以用来开发各种基于LLM的应用。

提供了构建大模型应用的基础抽象和LangChain表达式语言。

是否需要LangChain:

  • LangChain有模型抽象,你的需求是否需要这个功能?
  • LangChain自带记忆存储的抽象,是否需要该功能?
  • 提示词模板是否需要?
  • ...

更重要的是,LangChain不仅是一个开发框架,更是一个生态系统

核心抽象

  • ChatModel:整个框架的核心,根据输入内容进行输出。
  • PromptTemplate:提示词模板,处理输入内容。可以区分开发者提示词和用户提示词
  • OutputParser:负责处理输出内容。

RAG Retrieval-Augmented Generation

大模型训练的数据决定了AI的应用场景,比如别家公司训练时是不可能拿你的数据来训练的,所以想要扩展AI的“知识面”,可以有两种方案:

  1. 模型微调:使用你的业务信息对模型进行微调
  2. RAG:使用你的业务信息对模型进行扩展,将你的业务信息作为上下文让大模型知道。

相比来说RAG的成本更低、也更加灵活、也更简单一点。

全称:Retrieval-Augmented Generation。检索增强生成。

主要步骤就是:将业务内容转化为检索内容,然后将检索增强到提示词中,最后再去内容生成

  1. 用户发起请求
  2. 根据用户问题在相关资料中搜索
  3. 获取到资料中的相关信息
  4. 相关信息和用户问题一起作为提示词,让大模型生成答案
  5. 返回答案

如果才能在资料中准确找到用户需要的呢?一般来说都是通过数据库查询,但是只能匹配字符串,并不能匹配语义。

所以通过向量数据库来进行匹配。

向量和向量数据库

通过将文本转化为向量,然后将向量存储在向量数据库中,就可以通过向量数据库来进行匹配。

NOTE

简单理解向量:红色是1,绿色是2,蓝色是3,那么红色的向量就是[1,0,0],绿色的向量是[0,1,0],蓝色的向量就是[0,0,1]。

转成向量之后,语义的匹配就变成了向量之间的相似程度,自然就有很多办法来进行语义的匹配

将文本转为向量的过程称为:Embedding。当然现在有很多种Embedding的方法,比如:Word2VecBERTGPT等。

文本从何而来?从指定的资源中来,可以是文本、图片、视频、音频等,然后根据需要提取不同的信息,还需要将信息分块,最后才是将分块后的文本转成向量

提取信息的过程称为检索

文本转成了向量,下一步就是要将这些向量存储起来,存储的地方就是向量数据库。

将信息存到向量数据库的全过程称为索引

Agent

是人工智能领域的一个重要概念,往往称他为智能代理(Intelligent Agent),简称为Agent。

Agent到底是什么?

简单来说,就是可以感知外界环境,将接收到的信息进行处理,然后做出决策的智能系统。

只要满足:能通过传感器感知外界,并通过执行器反作用于外界。都可以称为Agent智能体

但是人工智能领域的Agent,还必须要求能自主做出决策

上一次更新: