一. 大模型应用开发基础

主题

  • 大模型是什么?
  • 大模型应用开发技术栈
  • OpenAI API的调用尝试

AGI, 人工通用智能,Artifical General Intelligence)是指具有人类智能水平的人工智能系统,能够在广泛的任务和环境中进行学习、理解、推理和适应。

LLM, 大语言模型, Large Language Models, 是基于深度学习的大型神经网络模型,专门设计用来理解、生成、翻译或完成与人类语言相关的各种任务。

Token, 指在文本中的最小单位, 用于模型的训练和生成文本过程;

token 关键点:

  1. 定义: 在文本处理中, token 通常指的是词、词组或其他符号, 这取决于所用的分词方法;
  2. 分词(tokenization):将文本字符串分解为 token 的过程;
  3. 编码:在文本被输入到模型之前,每个 token 会被转换或编码为数字,这些数字对应于词汇表中的索引;
  4. 模型词汇表:这是模型可识别的所有token的集合。词汇表的大小和组成可以根据模型的设计和训练数据而变化。
  5. 子词(tokenization):为了更有效地处理语言的多样性和复杂性,以及减少词汇表的大小,一些模型采用子词分词策略。这意味着较长的单词可以被分解成更小的单位(如字根、前缀、后缀),这些单位作为单独的token处理。这种方法有助于模型处理未见过的词汇,同时保持对已知词汇的高效编码。

应用落地思路

现在多数领域依旧落地困难

找落地场景的思路:

  1. 从最熟悉的领域入手
  2. 让AI 学最厉害员工的能力, 再让 AI 辅助其他员工, 实现降本增效;
  3. 找 “文本进 , 文本出” 的场景
  4. 别求大而全; 将任务拆解, 先解决小人物、小场景;

大模型是怎么生成结果的?

稍微详细一点的原理

用不严密但是通俗的语言描述大模型的工作原理

  1. 大模型阅读了人类曾说过的所有的话; 这就是机器学习, 这个过程叫训练
  2. 把一串 token 后面跟着的不同 token 的概率存储神经网络, 保存的数据就是参数, 也叫权重
  3. 当我们给他若干 token, 大模型就能算出概率最高的下一个 token 是什么; 这就是生成, 也叫推理
  4. 用生成的 token, 在加上上文, 就能继续生成下一个 token, 以此类推, 生成更多文字

思考:

  1. AI 做对的事情, 怎么用这个原理解释;
    1. 因为模型在训练时有提问的相关内容;
  2. AI 的幻觉,一本正经的胡说八道,怎么解释?
    1. 因为模型的训练中没有相关的提问内容;只是根据上下文进行推测生成,不能保证结果的正确性;

如何用好 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课堂的课程安排是每周二、四上课。如果有任何问题或者需要帮助,欢迎随时向我提问。