首页 > 其他分享 >大语言模型的底层原理,ChatGPT,文心一言等人工智能体是如何产生的?本文将详细讲解

大语言模型的底层原理,ChatGPT,文心一言等人工智能体是如何产生的?本文将详细讲解

时间:2024-06-08 11:02:10浏览次数:13  
标签:语言 训练 text 模型 体是 文心 ChatGPT 数据 分词

文章目录


基础介绍

  • 大语言模型是指在海量无标注文本数据上进行预训练得到的大型预训练语言模型,例如 GPT-3。
  • 目前大语言模型所需要具有的最小参数规模还没有一个明确的参考标准,但是大语言模型通常是指参数规模达到百亿、千亿甚至万亿的模型;也有部分工作认为经过大规模数据预训练(显著多于传统预训练模型如 BERT 所需要的训练数据)的数十亿参数级别的模型也可 以称之为大语言模型(如 LLaMA-2 7B)。
  • 对于大语言模型,这里泛指具有超大规模参数或者经过超大规模数据训练所得到的语言模型。与传统语言模型相比,大语言模型的构建过程涉及到更为复杂的训练方法,进而展现出了强大的自然语言理解能力和复杂任务求解能力(通过文本生成的形式)。

从机器学习的观点来说,神经网络是一种具有特定模型结构的函数形式,而大语言模型则是一种基于 Transformer 结构的神经网络模型。

因此,可以将大语言模型看作一种拥有大规模参数的函数,它的构建过程就是使用训练数据对于模型参数的拟合过程。尽管所采用的训练方法与传统的机器学习模型(如多元线性回归模型的训练)可能存在不同,但是本质上都是在做模型参数的优化。大语言模型的优化目标更加泛化,不仅仅是为了解决某一种或者某一类特定任务,而是希望能够作为通用任务的求解器。

为了实现这一宏大的目标,大语言模型的构建过程需要更为复杂、精细的训练方法。一般来说,这个训练过程可以分为大规模预训练和指令微调与人类对齐两个阶段

一、预训练

预训练是研发大语言模型的第一个训练阶段,也是最为重要的一个阶段。

有效的预训练能够为大语言模型的能力奠定坚实的基础:通过在大规模语料上进行预训练,大语言模型可以获得通用的语言理解与生成能力,掌握较为广泛的世界知识,具备解决众多下游任务的性能潜力。在这一过程中,预训练语料的规模和质量对于提升大语言模型的能力至关重要。

1.数据准备

为了构建功能强大的大语言模型,需要从多元化的数据源中收集海量数据来进行训练。现有的大语言模型主要将各种公开的文本数据进行混合,作为预训练语料。

根据来源不同,预训练数据主要分为两种类型:通用文本数据和专用文本数据。

通用文本数据涵盖了网页、书籍和对话文本等。由于通用文本数据规模较大、多样性强且易于获取,大多数大语言模型都会收集大量的通用文本数据,以增强其语言建模能力。此外,为了进一步提升大语言模型在特定专业任务上的表现,人们还将预训练语料的范围扩展至更专业的数据集,如多语数据、科学数据和代码数据等。

预训练数据预处理流程图
在这里插入图片描述
当收集了丰富的文本数据之后,为了确保数据的质量和效用,还需要对数据进行预处理,从而消除低质量、冗余、无关甚可能有害的数据

质量过滤

直接收集到的文本数据往往掺杂了很多低质量的数据。例如,从网页抓取的数据中可能包含由机器自动生成的广告网页。为了优化模型学习的性能,需要去除语料库中的低质量数据。目前,研究人员主要使用以下两种数据清洗方法:(1)基于启发式规则的方法,和(2)基于分类器的方法。

敏感内容过滤

除了去除低质量内容,收集到的数据还可能包括有毒内容或隐私信息,需要进一步进行更为细致的过滤和处理。与质量过滤类似,不同类型的数据内容往往需要采用特定的过滤规则。

数据去重

对预训练数据进行去重处理是一个重要步骤。由于大语言模型具有较强的数据拟合与记忆能力,很容易习得训练数据中的重复模式,可能导致对于这些模式的过度学习。

研究工作发现,预训练语料中出现的重复低质量数据可能诱导模型在生成时频繁输出类似数据,进而影响模型的性能。此外,这些数据也可能导致训练过程的不稳定(训练损失震荡),可能导致训练过程崩溃。此外,为了避免数据集污染问题,还需要从预训练数据集中删除在测试集中可能出现的重复或者相关文本,从而防止训练集和测试集之间的重叠。总体来说,去重算法的设计可以基于不同的计算粒度以及匹配方法。

数据预处理实践

质量过滤

在过滤阶段,被判断为低质量的数据会被直接丢弃;而在清洗阶段,经过清洗后的高质量文本会替换原始文本。质量过滤阶段的实现可以依赖于启发式规则(如数据集统计特征、正则表达式匹配等)、预训练模型度量(如模型困惑度等)和语言标签判别(如语言分类器打分)等。用户还可以对数据进行采样,自由组合和安排预定义的算子灵活定制数据质量过滤流水线。

下面以使用 FastText 的语言过滤模块为例来展示实现细节。首先,加载预训练好的 FastText 语言分类器,为每个输入文本生成一个语言标签,不符合配置文件中语言类别的文本将被过滤。

from utils.evaluator import LangIdentifier

class FilterPassageByLangs():
    def __init__(self) -> None:
        # 使用 LangIdentifier 模块加载已经训练好的 fasttext 模型
        self.language_identifier = LangIdentifier(model_path="utils/models/fasttext/lid.176.bin")
        self.reject_threshold = 0.5
    def filter_single_text(self, text: str, accept_lang_list: list) -> bool:
        # 使用 fasttext 模型给 text 打分,每种语言生成一个置信分数
        labels, scores = self.language_identifier.evaluate_single_text(text)
        # 如果 text 所有语言的分数均比 reject_threshold 要低,则直接定义为未知
        if socres[0] < self.reject_thereshold:
            labels = ["uk"]
        accept_lang_list = [each.lower() for each in accept_lang_list]
        # 如果分数最高的语言标签不在配置文件期望的语言列表中,则丢弃该文本
        if labels[0] not in accept_lang_list:
            return True
        return False

去重

在去重阶段,YuLan-GARDEN 集成了句子级和文档级去重方法,分别基于句子间

标签:语言,训练,text,模型,体是,文心,ChatGPT,数据,分词
From: https://blog.csdn.net/weixin_49837118/article/details/139512799

相关文章

  • 9个小时就能写完论文的ChatGPT论文指令大全,赶紧收藏用起来
    欢迎关注,为大家带来最酷最有效的智能AI学术科研写作攻略。关于使用ChatGPT等AI工具的相关问题可以添加作者交流沟通这篇文章将详细的介绍如何更好地利用ChatGPT的功能,从文献综述到论文润色,从选题指导到理论推荐完成一篇优质论文,每一步都精心设计,以确保您的研究成果能够以最佳......
  • 【6月最新版本】ChatGPT商业运营网站源码,Midjourney绘画系统,支持AI换脸+GPTs+GPT语音
    【6月最新版本】ChatGPT商业运营网站源码,Midjourney绘画系统,支持AI换脸+GPTs+GPT语音对话+DALL-E3文生图+文档分析+Suno-AI音乐生成文章目录一、文章前言《SparkAI系统介绍文档-渐进式AIGC系统》系统核心功能二、系统演示三、系统功能模块3.1AI全模型支持/插件系统A......
  • 深度解读ChatGPT基本原理
    目录一、引言二、ChatGPT概述三、ChatGPT的基本原理Transformer架构预训练与微调语言建模生成式建模四、ChatGPT的应用与优势五、结论一、引言在人工智能领域,自然语言处理(NLP)一直是研究的热点之一。随着技术的不断进步,我们见证了从简单的聊天机器人到复杂的语言模......
  • ChatGPT-4o在临床医学日常工作、数据分析与可视化、机器学习建模中的技术
    2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5,将人工智能的发展推向了一个新的高度。2023年11月7日,OpenAI首届开发者大会被称为“科技界的春晚”,吸引了全球广大用户的关注,GPT商店更是显现了OpenAI旨在构建AI生态......
  • 265 Custom Exceptions(更容易定位报错内容具体是什么)
    优势CustomExceptions相比于ArgumentException/ArgumentNullException,更容易定位报错内容具体是什么,报错内容与具体业务相关。示例新建类库项目Exceptions,为Services/CRUDExample项目添加Exceptions项目引用Exceptions项目中添加InvalidPersonIdException.csnamespac......
  • 一键快速部署:Chat-Next-Web自己专属的ChatGPT服务对话平台
    一键快速部署:Chat-Next-Web自己专属的ChatGPT服务对话平台文章目录一键快速部署:Chat-Next-Web自己专属的ChatGPT服务对话平台导语:需要用到的链接汇总1、github项目直达地址2、vercel服务器直达地址3、Cloudflare加速地址一、Github项目`star`+Vercel部署1、......
  • 本地配置离线的llama3大模型实现chatgpt对话详细教程
    参考:Llama3本地部署及API接口本地调试,15分钟搞定最新MetaAI开源大模型本地Windows电脑部署_llama3本地部署-CSDN博客 正在下载-----importrequestsimportjsonurl="http://localhost:11434/api/generate"data={&......
  • 自媒体必用的50 个最佳 ChatGPT 社交媒体帖子提示prompt通用模板教程
    在这个信息爆炸的时代,社交媒体已经成为我们生活中不可或缺的一部分。无论是品牌宣传、个人展示,还是日常交流,我们都离不开它。然而,要在众多信息中脱颖而出,吸引大家的关注并不容易。这时候,ChatGPT这样的AI写作工具就显得特别有用了。ChatGPT不仅能帮你快速生成高质量的内容,还能给你......
  • 怎么能通过chatgpt-on-wechat获取全部的微信聊天信息
    要通过chatgpt-on-wechat工具获取全部的微信聊天信息,你可以按照以下步骤操作:安装并配置itchat库:itchat是一个开源的微信个人号接口,可以帮助你获取微信群聊信息。pipinstallitchat登录微信:使用itchat登录微信,获取群聊列表并监听群消息。importitchat#......
  • 调用文心一言API询问httpx的使用方法2
    [importrequestsimportjsondefget_access_token():url="https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=输入自己的id&client_secret=输入自己id的密码"payload=json.dumps("")headers={"Content-Typ......