一. 大模型应用开发基础
主题
- 大模型是什么?
- 大模型应用开发技术栈
- OpenAI API的调用尝试
AGI, 人工通用智能,Artifical General Intelligence)是指具有人类智能水平的人工智能系统,能够在广泛的任务和环境中进行学习、理解、推理和适应。
LLM, 大语言模型, Large Language Models, 是基于深度学习的大型神经网络模型,专门设计用来理解、生成、翻译或完成与人类语言相关的各种任务。
Token, 指在文本中的最小单位, 用于模型的训练和生成文本过程;
token 关键点:
- 定义: 在文本处理中, token 通常指的是词、词组或其他符号, 这取决于所用的分词方法;
- 分词(tokenization):将文本字符串分解为 token 的过程;
- 编码:在文本被输入到模型之前,每个 token 会被转换或编码为数字,这些数字对应于词汇表中的索引;
- 模型词汇表:这是模型可识别的所有token的集合。词汇表的大小和组成可以根据模型的设计和训练数据而变化。
- 子词(tokenization):为了更有效地处理语言的多样性和复杂性,以及减少词汇表的大小,一些模型采用子词分词策略。这意味着较长的单词可以被分解成更小的单位(如字根、前缀、后缀),这些单位作为单独的token处理。这种方法有助于模型处理未见过的词汇,同时保持对已知词汇的高效编码。
应用落地思路
现在多数领域依旧落地困难
找落地场景的思路:
- 从最熟悉的领域入手
- 让AI 学最厉害员工的能力, 再让 AI 辅助其他员工, 实现降本增效;
- 找 “文本进 , 文本出” 的场景
- 别求大而全; 将任务拆解, 先解决小人物、小场景;
大模型是怎么生成结果的?
稍微详细一点的原理
用不严密但是通俗的语言描述大模型的工作原理
- 大模型阅读了人类曾说过的所有的话; 这就是机器学习, 这个过程叫训练
- 把一串 token 后面跟着的不同 token 的概率存储神经网络, 保存的数据就是参数, 也叫权重
- 当我们给他若干 token, 大模型就能算出概率最高的下一个 token 是什么; 这就是生成, 也叫推理
- 用生成的 token, 在加上上文, 就能继续生成下一个 token, 以此类推, 生成更多文字
思考:
- AI 做对的事情, 怎么用这个原理解释;
- 因为模型在训练时有提问的相关内容;
- AI 的幻觉,一本正经的胡说八道,怎么解释?
- 因为模型的训练中没有相关的提问内容;只是根据上下文进行推测生成,不能保证结果的正确性;
如何用好 AI?
把 AI 当人看;
大模型应用架构
大模型技术分两个部分:
- 训练基础大模型:
- 建造大模型应用:
大模型应用技术特点: 门槛低, 天花板高;
流行的架构
Transformer, RWKV(RWKV 5 训练代码), Mamba
典型技术架构
AI Embedded 模式, AI Copilot 模式, AI Agent 模式
技术架构
纯 Prompt, Agent + Function Calling, Rag(Retrieval-Augmented Generation), Fine-tuning
尝试通过 OpenAI Python 库调用 API
可以注册 https://devcto.com/app 这个, 送免费 20 次 请求次数, 拿到对应的 OpenAI openKey 进行试验
安装 python package 依赖
pip install --upgrade openai python-dotenv
代码:
import os
from openai import OpenAI
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # 用于加载 .env 环境变量配置
# 暂时不使用 .env 加载环境变量, 直接在程序中定义
os.environ['OPENAI_API_KEY'] = 'sk-' # 替换为自己的 openKey
os.environ['OPENAI_BASE_URL'] = 'https://api.fe8.cn/v1'
# 初始化 openai client
client = OpenAI()
messages = [
{
"role":"system",
"content": "你是AI助手小瓜,是 AGI 课堂的助教。这门课每周二、四上课。"
},
{
"role": "user",
"content": "周末上课吗?"
},
]
chat_completion = client.chat.completions.create(
model = "gpt-3.5-turbo",
messages = messages
)
print(chat_completion.choices[0].message.content)
成功请求行返回:
不,周末没有上课,AGI课堂的课程安排是每周二、四上课。如果有任何问题或者需要帮助,欢迎随时向我提问。