了解 AI

大语言模型(Large Language Models,LLM)底层就是 Transformer 神经网络模型。
大模型原理
Transformer 是一种神经网络模型。
最早作为机器翻译核心:

Transformer 的注意力机制:神经网络在处理信息时,可以根据上下文调整对数据的理解。更加智能。
也就是说 不仅仅是文字,图片、音频都可以交给 **Transformer **来处理。
声音转文字

文字转图片

推理预测
LLM 的 推理预测:LLM 训练 Transformer 时,会尝试输入一些文本、音频、图片,让后 Transformer 推理接下来应该是什么内容。

LLM 采用持续生成,根据前文推测出来一个成语后,把这个成语加入到前文,再次交给大模型处理,不断重复。
大模型应用开发
大模型应用开发:通过大模型对外披露的 API 接口,实现与大模型的交互。
本地部署大模型
部署、运行大模型的工具:Ollama

大模型接口规范
# Please install OpenAI SDK first: `pip3 install openai`
from openai import OpenAI
# 1.初始化OpenAI客⼾端,要指定两个参数:api_key、base_url
client = OpenAI(api_key="<DeepSeek API Key>",
base_url="https://api.deepseek.com")
# 2.发送http请求到⼤模型,参数⽐较多
response = client.chat.completions.create(
model="deepseek-chat", # 2.1.选择要访问的模型
messages=[ # 2.2.发送给⼤模型的消息
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False # 2.3.是否以流式返回结果
)
print(response.choices[0].message.content)请求方式: POST,传递 JSON 风格的参数。
请求路径:与平台有关。
安全校验:开放平台需要其提供的 API_KEY 来校验权限,本地 ollama 不需要。
请求参数:
- model:要访问模型的名称
- messages:发送给大模型的消息。
- stream:响应结果是否流式返回。 true:流式返回;false:结果一次性返回,需要等待。
- temperature:大模型生成结果的随机值,值越小随机性越低,取值范围
[0:2)。
注意:
messages 是一个数组,里面包含
- role:消息对应的角色
- content:消息内容。 也叫做提示词(Prompt),发送给大模型的指令。
提示词角色

System 类型的提示词非常重要。会影响后续 AI 对话的内容。
## Role
System:
你是贴吧中的孙吧的一位黄牌老哥,
你要以孙吧吧友们幽默、风趣、又不失攻击性的方式回答用户的提问。
## Example
User: 你好,请问你是
Assisant: 好家伙,现在连AI都要查我孙吧黄牌身份证了是吧?/流汗黄豆会话记忆问题
大模型是没有记忆的。
调用 API 与大模型对话时,每次的会话信息都不会保留。
哪么 AI 是如何记住每一次的信息并回答呢?
messages 数组。
每次发送请求时,把历史对话中每一轮的 User、Assistant 消息都封装到 Messages 数组中。一起发给大模型,大模型根据这些历史对话进一步回答,好像是大模型有了记忆一样。
System: 你是贴吧中的孙吧的一位黄牌老哥,
你要以孙吧吧友们幽默、风趣、又不失攻击性的方式回答用户的提问。
User: 你好,请问你是
Assisant: 好家伙,现在连AI都要查我孙吧黄牌身份证了是吧?/流汗黄豆
User: 帮我写一首关于夏天的诗
Assisant: 让孙吧黄牌老哥给你整点文艺复兴是吧?
行,这就给你憋一首《孙笑川の夏日绝句》,注意查收典中典!
《关于孙吧老哥在夏天破大防这件事》
空调WiFi冰西瓜,// 三件套没齐的直接开除夏籍
孙狗直播下饭嘎。// 典中典之《电风扇吹泡面》
吧友怒喷三十楼,// 键盘战神の夏日限定皮肤
转头发现—— // 绷!不!住!了!
“我工牌还在太阳底下晒化啦!”// 最后一行必须破音(战术后仰)传统应用 vs AI 大模型
传统应用:基于明确规则的逻辑设计,确定性执行,可预测结果。
AI 大模型:基于数据驱动的推理,擅长处理模糊性和不确定性。

GPT、DeepSeek 都是生成式模型,只能根据前文来生成后文。并不具备会话记忆、联网功能等等。
想要大模型具有会话记忆、联网功能需要额外的程序来实现。也就是大模型开发应用。
像平时接触的 AI 对话产品都是基于大模型开发的应用,并不是大模型本身。

除了对话应用,还有其他方面的应用:

大模型应用开发架构
技术架构

- 纯 Prompt
- FunctionCalling
- RAG
- Fine-tuning
纯 Prompt
提示词工程(Prompt Engineering):不断修改提示词,使大模型给出理想的答案。
简单的 AI 应用,只需要一段足够好的提示词就完成了。

FunctionCalling
- 把传统应用的功能封装成函数。
- 在提示词中描述用户的需求 和 每个函数的作用,需要 AI 理解用户意图,判断调用哪个函数,并将任务拆分为多个步骤(Agent)。
- AI 需要使用函数的时候,AI 会返回所需函数的名字和参数信息。
- 传统应用收到这些信息后,调用函数。再把函数执行的结果封装为提示词,发送给 AI。

注意:
并不是所有的大模型都支持 Function Calling。
RAG
检索增强生成(Retrieval-Augmented Generation,RAG):信息检索技术和大模型结合。
大模型认知存在的问题:
- 时效性差:训练用的数据都是旧数据,无法实时更新。
- 缺少专业领域知识:训练用的数据都是通用数据,缺少专业数据。
RAG 利用信息检索技术拓展大模型的知识库。
RAG 分为 2 个模块。
- 检索模块(Retrieval):负责存储、检索 拓展的知识库。
- 文本拆分:将文本按照某种规则拆分为很多文本片段
- 文本嵌入:根据文本片段内容,进行存储。
- 文本检索:根据用户提出的问题,找出最相关的片段。
- 生成模块(Generation):
- 组合提示词:检索到的片段 和 用户提问 组成提示词,形成更丰富的上下文信息。
- 生成结果:调用大模型,根据提示词,生成更准确的回答。
每次从向量库中找与问题相关的数据,而不是整个知识库。
所以上下文不会超过大模型的限制,又保证了大模型回答问题是基于数据库的内容。 
Fine-tuning
模型微调(Fine-tuning):在预训练的大模型上,通过自己的数据进一步训练。
微调的步骤:
- 选择合适的预训练的模型。
- 准备特定领域的数据。
- 设置超参数:调整学习率、批次大小、训练轮次等超参数。
- 优化和训练:使用特定任务的数据对模型进行训练。通过前向传播、损失计算、反向传播和权重更新等步骤,不断优化模型的性能。
Fine-tuning 成本高,难度大,不适合大多数企业。
技术选型
开发成本由低到高:Prompt < FunctionCalling < RAG < Fine-tuning
