总结与提升

今天学习了ai,对今天学习的内容进行总结。

本文参考chat gpt-4的训练文献。

模型架构基础

  • Transformer 架构:ChatGPT 采用了 Transformer 架构,这是一种基于自注意力机制的深度学习模型架构。它能够并行计算文本中的长期依赖关系,有效捕捉输入文本的语义信息,从而更好地理解和生成自然语言文本。在 Transformer 架构中,包含了多个堆叠的编码器和解码器层,编码器负责将输入文本编码为一个固定维度的向量表示,解码器则根据编码器的输出和之前生成的文本,逐步生成下一个单词或字符.
  • 大规模参数:模型具有海量的参数,如 GPT-3 拥有 1.75 万亿个参数,这些大规模的参数使得模型能够学习到丰富的语言知识和语义模式,从而具备强大的语言生成能力,可以适应各种不同的自然语言处理任务,并在多个任务上达到了颠覆性的效果,如生成新闻、回答问题、翻译等.

预训练数据

  • 数据来源广泛:预训练数据来源多样,主要包括维基百科、书籍、期刊、Reddit 链接、Common Crawl 等。其中,维基百科提供了丰富的多语言、多领域且被严格引用的说明性文字;书籍则有助于训练模型的故事讲述和反应能力;期刊论文为模型提供了更有条理、理性和细致的语言表达范例;Reddit 链接中的热门内容反映了当下的流行趋势和大众关注点;Common Crawl 包含了海量的不同语言和领域的网页文本。此外,还有如 GitHub 代码数据集、Stack Exchange 对话论坛和视频字幕数据集等其他类型的数据.
  • 海量数据规模:预训练数据量达到了 45TB,如此大规模的数据为模型提供了丰富的语言样本,使其能够学习到各种语言表达方式、语义理解和知识体系,从而在面对不同的输入文本时,能够更准确地生成符合语义和逻辑的回复2.

训练方法

  • 无监督预训练:首先使用大量的无监督数据进行预训练,让模型自动从海量文本中学习语言的语法、语义、逻辑等知识和模式,如学习单词之间的共现关系、句子的结构模式、文本的语义连贯性等,初步构建起对自然语言的理解和生成能力.
  • 监督调优:在预训练的基础上,使用监督学习的方式,利用带有标签的文本数据集对模型进行进一步训练。这些标签为模型提供了明确的文本正确性和上下文信息指导,帮助模型更加准确地理解和生成符合要求的文本,使其生成的文本更加准确、连贯,能够更好地适应各种具体的自然语言处理任务,如问答、翻译等.
  • 人类反馈强化学习(RLHF):这是 ChatGPT 训练的独特之处,通过引入人类反馈来优化模型。具体包括以下几个步骤 :
    • 训练回报模型:在监督学习之后,使用强化学习中的回报模型来训练。该回报模型作为一种奖励机制,当 ChatGPT 生成合理、有条理和通顺的文本时,会给出正面的奖励值;而当生成不合理、有误导性或无意义的文本时,则给出负面的奖励值。这样可以引导模型朝着生成更符合人类期望的高质量文本的方向进行调整和优化。
    • 使用 PPO 模型微调 SFT 模型:ChatGPT 使用近端策略优化(PPO)模型来调整其回报模型,以改善模型的生成效果。同时,还采用了自我微调(SFT)技术,让模型能够根据当前的任务和数据集自主学习和调整,进一步提高模型在多个任务和数据集上的性能表现。

训练优化与改进

  • 模型微调:针对特定的任务或领域,在预训练好的模型基础上进行微调,使其更适应具体的应用场景和需求。微调时需要选择合适的预训练模型,并准备与任务相对应的数据集,然后根据任务需求构建模型,对预训练模型进行调整和初始化,通过反向传播算法更新模型参数,以最小化损失函数,提高模型在特定任务上的生成能力和语义理解能力.
  • 模型压缩:为了提高模型的运行效率和存储效率,采用模型压缩技术,如剪枝、量化、蒸馏等。剪枝通过删除一些不重要的神经元和连接来减少模型的大小和计算量;量化则是将模型中的浮点数参数转换为低精度的整数或定点数参数,以减少存储空间和计算量;蒸馏是将一个较大的教师模型的知识传递给一个较小的学生模型,从而得到一个性能较好且规模较小的模型.
  • 加速训练与推理:采用分布式训练、梯度累积、动态学习率调整等方法来加快模型的训练速度,缩短训练时间。在推理阶段,通过模型优化、硬件加速、网络剪枝和量化等技巧来提高模型的推理速度,从而提升模型的运行效率,更好地满足实际应用中的实时性要求.

下面来说一下实操:

数据收集与预处理

  • 数据收集
    • 对于文本相关的任务,可以收集新闻文章、小说、论文、社交媒体文本等。例如,训练一个新闻生成模型,就需要大量的新闻报道作为数据来源.
    • 对于图像任务,收集各种相关的图片,如训练一个动物分类模型,就需要收集不同种类动物的图片.
    • 还可以利用公开数据集,如 MNIST 数据集用于手写数字识别、CIFAR-10 数据集用于图像分类等常见的基准数据集.
  • 数据预处理 :
    • 对文本数据进行清洗,去除噪声、重复内容、特殊符号等,然后进行分词、词向量化等操作,将文本转化为模型能够处理的格式。
    • 对于图像数据,进行裁剪、缩放、归一化等操作,使图像数据具有统一的尺寸和格式,便于模型训练。

选择合适的模型架构

  • 根据任务类型和数据特点选择模型架构:
    • 卷积神经网络(CNN):适用于处理图像数据,能够自动提取图像的特征,如在图像分类、目标检测等任务中表现出色1.
    • 循环神经网络(RNN)及其变体:如长短期记忆网络(LSTM)和门控循环单元(GRU),适合处理序列数据,如文本生成、语音识别等自然语言处理任务.
    • Transformer 架构:在自然语言处理领域广泛应用,能够有效捕捉文本中的长距离依赖关系,如 GPT、BERT 等模型都是基于 Transformer 架构构建的,适用于文本生成、机器翻译等多种任务.

模型训练

  • 准备训练环境
    • 安装必要的软件和库,如 Python、TensorFlow、PyTorch 等深度学习框架及其相关依赖库.
    • 配置合适的硬件环境,对于小规模的模型训练,普通的高性能个人电脑可能就足够,但对于大规模复杂模型,可能需要使用云计算服务或专用的 GPU 服务器来加速训练.
  • 确定超参数
    • 设置学习率,学习率决定了模型参数更新的步长,过大或过小的学习率都可能影响训练效果,通常需要通过试验来选择合适的学习率值.
    • 确定批次大小,即每次训练时使用的数据样本数量,批次大小会影响训练的速度和模型的收敛情况.
    • 设定训练的轮数,即模型对整个数据集进行训练的次数,一般来说,训练轮数越多,模型越有可能收敛到更好的性能,但也可能导致过拟合.
  • 开始训练
    • 将预处理后的数据输入到选定的模型中,使用选定的优化算法,如随机梯度下降(SGD)、Adagrad、Adadelta、Adam 等,对模型的参数进行更新,以最小化损失函数的值.
    • 在训练过程中,监控模型的训练损失、准确率等指标的变化情况,根据这些指标的变化趋势来调整训练策略,如调整学习率、提前停止训练等,防止过拟合和欠拟合的发生.

模型评估与优化

  • 模型评估
    • 使用测试数据集对训练好的模型进行评估,计算各种评估指标,如准确率、精确率、召回率、F1 值、均方误差等,以客观地评价模型的性能和泛化能力.
    • 除了定量评估指标外,还可以通过人工观察和分析模型生成的结果来进行定性评估,如查看生成的文本是否通顺、合理,图像是否符合预期等。
  • 模型优化 :
    • 如果模型存在过拟合问题,可以采用正则化技术,如 L1 正则化、L2 正则化、Dropout 等,来减少模型的复杂度,防止模型对训练数据过度拟合。
    • 若模型性能不理想,可以尝试调整模型的结构,如增加或减少层数、神经元数量等,或者更换不同的模型架构。
    • 还可以收集更多的数据或对数据进行增强,以增加数据的多样性,提高模型的泛化能力。

模型部署与应用

  • 将训练好且经过评估和优化的模型部署到实际的生产环境中,使其能够为具体的应用提供服务.
  • 根据应用的需求,开发相应的接口或应用程序,将模型集成到整个系统中,实现 AI 模型的实际应用价值,如将图像分类模型集成到图像识别系统中,将文本生成模型应用于智能写作助手等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

舌头分割数据集labelme格式2557张1类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):2557 标注数量(json文件个数):2557 标注类别数:1 标注类别名称:["tongue"] 每个类别标注的框数&#xff1…

Jenkins 启动 程序 退出后 被杀死问题

参考 Spawning Processes From Build (jenkins.io) 解决jenkins脚本启动项目后进程被杀死_jenkins杀进程-CSDN博客

使用 Maven 来构建 Scala

以下是使用Maven构建Scala项目的基本步骤: 1. 创建Maven项目 - 可以使用Maven的原型(archetype)来创建项目。在命令行中运行 mvn archetype:generate -DgroupIdcom.example -DartifactIdmy -scala - project -DarchetypeArtifactIdmaven - ar…

测试工程师八股文03|Python编程题

一、题目 1、合并两个数组 class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:nums1[m:] nums2nums1.sort()2、判断链表中是否有环 class Solution:def hasCycle(self, head: ListNode) -> bool:seen set()while head:if…

[Unity] AppLovin Max接入Native 广告 Android篇

把下载下来的maxnativelibrary-release-文件放在Plugins/Android下 将这一行加入到mainTemplate.gradle文件中 implementation androidx.constraintlayout:constraintlayout:2.1.4添加下面的两个脚本 using System; using System.Collections; using System.Collections.Gener…

Pytest测试用例使用小结

基础使用 Pytest 测试用例实现代码 import pytest from server.service import Servicepytest.fixture def service():return Service(logger)class TestService:classmethoddef setup_class(cls):"""初始化设置一次:return:"""logger.info(&q…

MyBatis-Plus 基础

教程 视频教程:https://www.bilibili.com/video/BV1Xu411A7tL 详细文档:https://b11et3un53m.feishu.cn/wiki/PsyawI04ei2FQykqfcPcmd7Dnsc 常见注解 MybatisPlus就是根据PO实体的信息来推断出表的信息,从而生成SQL的。默认情况下&#xf…

VMware Workstation Pro 17 下载 以及 安装 Ubuntu 20.04.6 Ubuntu 启用 root 登录

1、个人免费版本 VMware Workstation Pro 17 下载链接怎么找?直接咕咕 VMware 找到如下链接。链接如下:Workstation 和 Fusion 对个人使用完全免费,企业许可转向订阅 - VMware 中文博客 点进去链接之后你会看到如下,注意安装之后仍…

30、使用ESP8266跟SG90舵机制作四足蜘蛛机器人

目录 1、简介 2、使用例子 3、代码解析 4、资源下载 正文 1、简介 本篇使用ESP8266跟SG90舵机制作四足蜘蛛机器人,使用的180度舵机有8个,需要一块16路舵机控制板,也可以使用小一点的控制板8路也够了。下面开始今天的教程,源码在文章末尾自行下载,力求大家都能看懂。…

python 将数据保存到现有的Excel文件的新工作表

out_file ‘query.xlsx’ df1 pd.DataFrame(out_data) 若直接写入: df1.to_excel(out_file, indexFalse, sheet_name‘v5v7’) # 将第二个DataFrame保存到现有的Excel文件的新工作表 with pd.ExcelWriter(out_file, engine‘openpyxl’, mode‘a’) as writer:…

深度学习——激活函数、损失函数、优化器

深度学习——激活函数、损失函数、优化器 1、激活函数1.1、一些常见的激活函数1.1.1、sigmoid1.1.2、softmax1.1.3、tanh1.1.4、ReLU1.1.5、Leaky ReLU1.1.6、PReLU1.1.7、GeLU1.1.8、ELU 1.2、激活函数的特点1.2.1、非线性1.2.2、几乎处处可微1.2.3、计算简单1.2.4、非饱和性1…

智慧政务数据中台建设及运营解决方案

数据中台:政府数字化转型的引擎 数据中台作为政府数字化转型的核心驱动力,起源于美军的作战体系,强调高效、灵活与强大。它不仅促进了政府决策的科学性,还推动了政府服务的精细化与智能化。 数据中台的应用场景:数字…

webpack4 - 配置文件分离(详细教程)

webpack根据开发和生成环境一般可以将配置文件拆分,拆分dev和prod两种环境 |- package.json|- /build|- webpack.base.js|- webpack.dev.js|- webpack.prod.js在scripts里修改相应的命令 "dev": "webpack-dev-server --config build/webpack.dev.j…

单片机最小系统

若要系统正常运行,确保稳定工作,一个单片机系统最少需要四个部分:电源电路 单片机对工作电压是有要求的,如果电压过大,会烧坏,如果电压过小,无法运行。晶振电路 单片机的原子指令的执行依赖晶振…

计算机毕设-基于springboot的社区居民诊疗健康管理系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

Pycharm访问MySQL数据库·上

1.MySQL驱动模块Connector #导入数据库的驱动工具 import mysql.connector #连接数据库必备的条件 config {"host": "localhost","port": 3306,"user": "root","password": "888888","database&…

【LLM】大模型领域相关博主博客

苏剑林 真神,无需多言 博客地址: https://spaces.ac.cn/ Lil’Log openai的大佬,涉及的领域非常广,擅长把某个方向系统地梳理出来 博客地址: https://lilianweng.github.io/tags/ Distill 通过生动的动图和可视化技术把技术细节解释清楚 博…

day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器

【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、复习 1.1 断言(3种) 1.2 关联(3种) 1.3 录制脚本 2、Jmeter直连数据库 2.1 直连数据库——使用场景 2.2 直连数据库——操作步骤 2.2.1 案例1&…

React的状态管理库-Redux

核心思想:单一数据源、状态是只读的、以及使用纯函数更新状态。 组成部分 Store(存储) 应用的唯一状态容器,存储整个应用的状态树,使用 createStore() 创建。 getState():获取当前状态。dispatch(action)&#xff…

解决MAC装win系统投屏失败问题(AMD显卡)

一、问题描述 电脑接上HDMI线后,电脑上能显示有外部显示器接入,但是外接显示器无投屏画面 二、已测试的方法 1 更改电脑分辨,结果无效 2 删除BootCamp,结果无效 3更新电脑系统,结果无效 4 在设备管理器中&#…