首页 > 其他分享 >大模型的幻觉太严重了,姑且作为参考。

大模型的幻觉太严重了,姑且作为参考。

时间:2025-01-20 20:59:55浏览次数:1  
标签:输出 编码器 姑且 参考 生成 解码器 序列 幻觉 输入

假设:

输入(中文): "我有一本书"
目标(英文): "I have a book"

一,训练阶段:

在 训练阶段,我们希望训练模型从源语言(中文)生成目标语言(英文)。在这个过程中,解码器依赖于编码器的输出,并通过与目标序列进行比较来计算损失,并优化模型参数。

# 1. 输入序列(中文):
输入句子为中文 “我有一本书”,它将作为 编码器 的输入,生成一个上下文相关的隐状态表示。

# 2. 输入嵌入(Input Embedding):
输入的中文词汇(“我”,“有”,“一本”,“书”)通过 输入嵌入 转换为向量,传递给 编码器:
“我” → [向量1]
“有” → [向量2]
“一本” → [向量3]
“书” → [向量4]

# 3. 编码器处理输入:
编码器接收到输入的词向量,并通过一系列自注意力(SelfAttention)和前馈网络(FeedForward)处理,生成上下文相关的隐状态表示:
编码器的输出:隐状态序列 [H1, H2, H3, H4],这些隐状态表示了输入句子中每个词的上下文信息。

# 4. 目标序列右移(Shifted Right):
在训练过程中,我们将目标序列 “I have a book” 进行右移,得到:
右移后的目标序列:[空] I have a book

这使得解码器能够在生成每个词时,只依赖于前面已生成的词(而不是后面的词)。

# 5. 解码器生成输出:
解码器接收到右移后的目标序列,并根据 编码器的隐状态序列 来生成预测输出。在每个时间步,解码器会根据前一个时间步的输出序列(而不是单独的词)生成下一个词。

## 第1步:
输入:[空](<start>标记)+ 编码器的隐状态 [H1, H2, H3, H4]
输出:解码器生成 “I”

## 第2步:
输入:“I” + 编码器的隐状态 [H1, H2, H3, H4]
输出:解码器生成 “have”

## 第3步:
输入:“I have” + 编码器的隐状态 [H1, H2, H3, H4]
输出:解码器生成 “a”

## 第4步:
输入:“I have a” + 编码器的隐状态 [H1, H2, H3, H4]
输出:解码器生成 “book”

# 6. 计算损失(交叉熵损失):
在训练时,每个时间步都会计算 交叉熵损失,比较解码器的输出与真实目标序列的对应词。每个时间步的损失通过交叉熵计算,衡量模型生成的词与目标词的差异。

在第1步,计算 “I” 和目标 “I” 的交叉熵损失。
在第2步,计算 “have” 和目标 “have” 的交叉熵损失。
在第3步,计算 “a” 和目标 “a” 的交叉熵损失。
在第4步,计算 “book” 和目标 “book” 的交叉熵损失。

损失的累加:所有时间步的损失会被累加起来(通常是取平均),得到总损失。总损失将通过 反向传播 来计算梯度并更新模型的参数。

# 7. 反向传播与优化:
通过反向传播算法计算梯度,并使用优化算法(如Adam)来更新模型的权重。通过多次迭代训练,模型逐渐优化,能够更好地从输入序列生成目标序列。

# 8. 重复训练:
整个过程在训练数据上重复进行,模型通过反向传播不断优化参数,使其能够准确地从输入句子生成目标句子。

 

二,推理阶段(生成阶段):

在 推理阶段,模型已经训练完成,此时我们使用训练好的模型进行实际的预测。不同于训练阶段,推理阶段并没有目标序列的右移,我们通过 逐步生成 目标序列中的词。

# 1. 输入序列(中文):
输入为中文句子 “我有一本书”。

# 2. 输入嵌入(Input Embedding):
输入句子通过输入嵌入转换为向量,并传入编码器。

# 3. 编码器的处理:
编码器生成上下文相关的隐状态 [H1, H2, H3, H4]。

# 4. 解码器的生成过程:
第1步:解码器从 [空](<start>标记)开始生成,基于编码器的隐状态序列生成第一个词 “I”。

第2步:解码器将 “I” 作为输入,继续生成下一个词 “have”。

第3步:解码器将 “I have” 作为输入,生成 “a”。

第4步:解码器将 “I have a” 作为输入,生成 “book”。

每一步的生成都依赖于前一步的输出。

# 5. 生成结束:
生成过程会在遇到 结束符号(<end>)时停止,或者当解码器生成完所有目标词时结束。生成的句子就是模型的最终输出。

推理阶段的关键区别:
在推理阶段,解码器生成的每个词都会作为输入传递给下一个时间步,这样模型可以逐步生成整个输出序列。
与训练阶段不同,推理时我们没有目标序列的右移,只有模型自己生成的输出。

 

三,训练阶段和推理阶段总结:

# 训练阶段:
1. 输入中文句子(如“我有一本书”)通过编码器生成隐状态。
2. 目标序列(如“I have a book”)右移,作为解码器的输入。
3. 解码器生成输出,通过与真实目标的比较,计算交叉熵损失。
4. 反向传播更新参数,逐步优化模型。

# 推理阶段:
1. 输入中文句子通过编码器生成隐状态。
2. 解码器从 [空](<start>)开始生成输出,并逐步生成目标语言的每个词。
3. 生成的输出会逐步作为下一时刻的输入,直到生成完毕。

 

这样,我将 训练阶段 和 推理阶段 的全过程做了一个完整的整合。希望这能帮助你更好地理解整个过程!如果有更多问题,随时欢迎提问。

标签:输出,编码器,姑且,参考,生成,解码器,序列,幻觉,输入
From: https://www.cnblogs.com/augustone/p/18682510

相关文章

  • 对多组学多模态方向感兴趣的医工交叉科研人员,这三篇综述值得参考!|顶刊速递·25-01-20
    小罗碎碎念推文速览第一篇文章围绕高分辨率空间转录组学展开,介绍其技术原理、在构建组织图谱等多方面的应用、临床研究设计要点,分析临床转化面临的挑战,展望未来发展,强调其对揭示疾病机制和推动个性化医疗的重要意义。第二篇文章围绕局部晚期直肠癌的全新辅助治疗(TNT)展......
  • 大华大数据开发面试题及参考答案
    Java的JDK和JRE有什么区别?JDK(JavaDevelopmentKit):即Java开发工具包,是Java开发人员用于开发Java程序的工具集。它包含了JRE和一系列开发工具。JDK提供了编译、调试和运行Java程序所需的所有工具和资源,比如编译器javac、调试器jdb等。如果要开发Java应用......
  • 运维系列&安卓系列【仅供参考】:fastutil-7.2.0.jar下载依赖包超时问题,Android
    fastutil-7.2.0.jar下载依赖包超时问题,Androidfastutil-7.2.0.jar下载依赖包超时问题,Android摘要正文fastutil-7.2.0.jar下载依赖包超时问题,Android摘要文章介绍了在下载FastUtil-7.2.0.jar时遇到的网络问题,提出解决方案是使用阿里云的国内镜像,并给出了G......
  • 运维系列&安卓系列【仅供参考】:android studio 3.1 升级gradle4.4时所踩到的坑
    androidstudio3.1升级gradle4.4时所踩到的坑androidstudio3.1升级gradle4.4时所踩到的坑androidstudio3.1升级gradle4.4时所踩到的坑公司原项目是使用Androidstudio2.3编译的,最近将Androidstudio升级到3.1后,buildapk时提示:Theprojectisusing......
  • 地球管理结构和参考
    起于《海奥华预言》的思考◆地球管理结构和参考 持续更新中......  英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 上面英文地址打不开的,可点击下面链接下载https://hub.gitmirror.com/https://github......
  • 2023年05月机器人一级理论参考答案
    一、单选题1、机器人的电源相当于人类的?()A、大脑B、皮肤C、血管D、心脏2、如图哪个工具是羊角锤?()A、aB、bC、cD、d3、如图下列最省力的滑轮组是?()A、aB、bC、cD、d4、如图要想从地面爬到M点,哪条路最省力?()A、aB、bC、cD、d5、下列哪个齿轮组是齿......
  • 库卡机器人示教器维修的参考措施
    开课啦!!!“工业机器人维修”之“库卡机器人示教器维修”先来看看这个库卡机器人示教器:1.KUKA 控制屏 (简称“KCP”)是人机交流的接口,它用于简化机器人“KRC”控制部分的操作。所有用于机器人系统编程和操作的部分(除了总开关以外)皆直接布置在 KCP 上。1.KCP 的握把凸缘和......
  • 数字工厂规划蓝图报告(69页 参考学习 PPT)
            该报告为数字化工厂规划蓝图的整体进展情况概述,对该内容的简洁总结:        详细记录了项目在各个阶段的准备工作和核心任务。在项目准备阶段(编号0),主要完成了以下工作:-0.1项目工作方法制定:确立了项目执行的基本方法和流程。-0.2项目工作计划制......
  • uniapp仿微信动态功能实现思路供参考
    1,创建三个数据表,一个朋友圈动态表,一个点赞表,一个评论表动态表创建 例如:dtlist包括用户uid,内容about,文字是否base64格式iszy,动态图片allimg,发布时间addtime(根据自己项目需要创建合适的字段)点赞表创建 例如:dzlist包括用户uid,点赞动态id:dtid,点赞时间addtime(根......
  • 【答题系统可参考】php 禁止api被跨域调用
    在PHP中,防止API被跨域调用可以通过设置适当的HTTP响应头来实现。跨域资源共享(CORS,Cross-OriginResourceSharing)机制允许或拒绝来自不同源的请求。为了禁止跨域调用,你可以在你的PHP脚本中设置 Access-Control-Allow-Origin 头为 null 或者不设置这个头。下面是一个......