Contents

GPT介绍和DL常见网络

Beautiful landscape

Nature's Beauty

Explore the wonders of the world

参考资料

关于 GPT

应用场景示例

  • 金融科技

    • 智能投顾系统:提供实时市场分析、个性化投资组合建议
    • 风险控制:动态监测异常交易行为,生成风险评估报告
  • 医疗健康

    • 临床辅助诊断:分析患者病史和检查结果,提供鉴别诊断参考
    • 药物研发:加速分子结构分析、文献数据挖掘和临床试验设计
  • 零售电商

    • 智能导购:基于用户画像的个性化商品推荐系统
    • 客服自动化:7×24 小时多语言客户支持解决方案
  • 内容创作领域

    • 影视游戏:剧本生成、角色设定、关卡设计全流程辅助
    • 广告营销:自动生成广告文案、社交媒体内容及传播策略

模型基础

  • LM
    Language Model,语言模型,这是 ChatGPT 的基石的基石
    通过已经有的词预测接下来的词
    Greedy Search(贪心搜索),Beam Search(集束搜索)
    简单模型就是把一句话切成一个个词,然后统计概率,这类模型叫做 N-gram 语言模型,是最简单的语言模型,这里的 N 表示每次用到的上下文长度
    实际中我们往往不叫一个词为「词」,而是「Token」,你可以将其理解为一小块,可以是一个字,也可以是两个字的词,或三个字的词,取决于你怎么 Token 化

  • Transformer
    包含 Encode、Decode、Multi-Head 多头自注意力机制
    关注 Encoder 中 Token 的信息的机制就是 Attention(注意力机制)
    Encode 是知道数据的,所以建模时可以同时利用当前的 历史 Token 和未来(前面的)Token;但 Decode 时,因为是一个 Token 一个 Token 输出来的,所以只能根据历史 Token 以及 Encoder 的 Token 表示进行建模,而 不能利用未来的 Token
    Multi-Head 简单来说,就是把上面这种自注意机制重复 Multi 次(Multi 个 Head),每个注意到的信息不一样,这样就可以捕获到更多信息

  • GPT
    生成式预训练 Transformer
    从 GPT-1、GPT-2、GPT-3、GPT-3.5(ChatGPT)一直到现在的 GPT-4
    模型参数不断扩大
    预训练就是在大量语料上进行预先的训练

展望

如今各大公司纷纷推出自己动辄便数千亿级参数量的模型,所用数据更是无法统计
尽管语言模型并非监督训练,但 数据过滤,人工反馈 等阶段还是需要高昂的人力成本
这样超大模型加海量数据的组合,每次训练都需要耗费 数百万美元,用 数千台 GPU 来完成
即使后续更新时并不需要从头训练,但花费依旧不菲

当前对话模型更多关注在开放域场景,合理的回复往往不唯一,这意味着在训练阶段很难制作标签,同时在推理时模型也比较容易“放飞自我”,生成千奇百怪的回复结果,其中难免调用一些错误的知识
针对这种“一对多”的场景,很多研究致力于探索对话模型的 可控生成,通过添加一些控制因素,使生成文本满足一定的约束
**提示学习(Prompt Learning)**本身就是一种 在输入上加入可控因素 从而引导正确的生成,这已经成了最新流行的范式
另外在解码阶段,也可以适当调整策略 对生成的多条候选回复结果重新排序,尽可能选择出 包含目标词汇 的回复结果,控制生成内容

吴恩达和 openai 的 prompt 课程

模板

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import os
import openai
openai.api_key = os.getenv('OPENAI_API_KEY')


def get_completion(prompt, model='gpt-3.5-turbo', temperature=0):
    messages = [
        {'role': 'user',
        'content': prompt},
    ]
    response = openai.ChatCompletion.create(
        model = model,
        messages = messages,
        temperature = temperature,
    )
    return response.choices[0].message['content']

指南

  • RLHF
    Reinforcement Learning from Human Feedback
    从人类反馈中学习

  • 提示词书写规范
    用一些特定符号隔开,让模型知道需要处理的文本是哪部分,例如:

    1
    2
    3
    4
    
    """ 文本 """
    --- 文本 ---
    < 文本 >
    <tag> 文本 </tag>
    
  • 指定输出格式
    让 ChatGPT 用 JSON 或者 HTML 等格式输出
    也可以自定义输出格式例如 1) 2) 3)

    from IPython.display import display, HTML
    可以在 jupyter notebook 中展示 HTML

  • 给定少量的训练提示
    在 prompt 中给定一个或多个 示例及回答,让 ChatGPT 模仿

  • 多任务情况
    分点列出 step,指定每一步要完成的内容

  • 评判对错
    在让 ChatGPT 判断某个事物对错之前,先让它自己进行 逻辑推断 得到结论

  • 对于生成虚假的内容
    为了减少 Hallucinations 幻觉,先让 ChatGPT 找到比较可靠的相关信息
    引用 进行回答

迭代

不断改进提示词
想法 → 实现 → 获得实验结果 → 误差分析 → 新的想法 → 实现 →…

  • 优化 prompt 的步骤
    清晰明确地写出 prompt
    分析为什么没能得到想要的输出
    改进想法和 prompt
    重复上述过程

应用

  • 摘要
    将 ChatGPT 用于长评论的 总结
    可以控制 ChatGPT 回复的句子长度:通过 限制句子个数、字数 等等
    修改 prompt 使其适用于 特定的业务、情景

  • 推理
    ChatGPT 可用于 评论情感分析、商品评价、对新闻报刊的主题提取

    • 零样本学习
      没有提供带标签的训练样本
      • Zero-Shot:直接将任务输入给模型,让它输出任务结果
      • Few-Shot:给模型提供一些示例,然后再给出任务,让它给出输出结果
  • 转换
    ChatGPT 用于 文本翻译

    • 文本格式 转换
      正式或者非正式场合
      字典转 JSON 或者 HTML 等等

    • 语气 转换
      例如给同事或者教授写邮件时,需要注意书写的语气

    • 拼写、语法检查

    from redlines import Redlines
    该库可以用于检查文本之间的差异

  • 扩展
    ChatGPT 用于 文本扩写,例如可以生成个性化电子邮件
    参数 temperature 控制回答的 随机性、多样性,值越大则越多样

聊天机器人

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
message = [
    {"role": "system",
    "content": "。。。"},

    {"role": "user",
    "content": "。。。"},

    {"role": "assistant",
    "content": "。。。"},

    ...
]

system 作为高层指令,起到引导作用,设置 assistant 的行为
要使得模型提取或者记住信息,需要用到上下文 context
可以在 message 中提供或者类似上述方法存储在 message 列表中

import panel as pn
可以生成 GUI 界面

常见网络概览

深度学习是机器学习的一个分支
受到人类大脑结构启发,以深层人工神经网络(Artificial Neural Networks,ANNs)为基础
用于处理各种任务,包括 分类、回归、图像处理、自然语言处理、语音识别和强化学习
核心特点:自动特征提取端到端学习依赖大量数据和计算资源

前馈神经网络

Feedforward Neural Networks,FNNs

  • 最简单的神经网络结构,信息单向流动(输入层 → 隐藏层 → 输出层)
  • 典型应用:MNIST 手写数字分类、房价预测
  • 局限性:无法处理序列数据空间结构数据

卷积神经网络

Convolutional Neural Networks,CNNs

  • 核心组件:
    • 卷积层(局部感受野,权重共享)
    • 池化层(降采样,如 Max Pooling)
    • 全连接层
  • 专长领域:图像分类(ResNet)、目标检测(YOLO)、语义分割(U-Net)
  • 经典模型:LeNet-5、AlexNet、VGG、ResNet

循环神经网络

Recurrent Neural Networks,RNNs

  • 特点:时间维度上的循环连接,可处理变长序列
  • 应用场景:时间序列预测、简单文本生成
  • 缺陷:梯度消失/爆炸问题显著

长短时记忆网络

Long Short-Term Memory,LSTM

  • RNN 的改进变体,通过三门机制(输入门/遗忘门/输出门)控制信息流
  • 新增细胞状态(Cell State)实现长期记忆
  • 典型应用:机器翻译(早期 Seq2Seq)、股价预测

门控循环单元

Gated Recurrent Unit,GRU

  • LSTM 的简化版:合并细胞状态和隐藏状态,只有更新门和重置门
  • 优势:参数更少,训练更快
  • 应用:语音识别、中等长度文本生成

自注意力模型

Transformer

  • 革命性架构(2017 年提出):
    • 多头注意力机制(Multi-Head Attention)
    • 位置编码替代循环结构
    • 并行化处理能力极强
  • 衍生模型:
    • BERT(双向 Transformer)
    • GPT(自回归 Transformer)
    • ViT(视觉 Transformer)

生成对抗网络

Generative Adversarial Networks,GANs

  • 双网络博弈框架:
    • 生成器(Generator):伪造数据
    • 判别器(Discriminator):鉴别真伪
  • 著名变体:
    • DCGAN(深度卷积 GAN)
    • CycleGAN(图像风格转换)
    • StyleGAN(高分辨率人脸生成)

图神经网络

Graph Neural Networks,GNNs

  • 处理非欧几里得数据:社交网络、分子结构

强化学习网络

  • Deep Q-Network(DQN):结合 Q-Learning 与 CNN
  • Policy Gradient:直接学习策略函数