注意力机制详解笔记 Attention is all I donot understand!
注意力机制好奇了太久,QKV知道是什么但是一直没搞懂为什么,这段时间终于眼一闭心一横摁头看了一天视频,3B1B大佬太强了!基于GPT看了三个视频,基本讲的toy model,没有讲“硬核”的如何训练和码代码,但是完全满足了我的求知欲和总缠绕在脑海里的不确定性。
【官方双语】GPT是什么?直观解释Transformer | 深度学习第5章_哔哩哔哩_bilibili
【官方双语】直观解释注意力机制,Transformer的核心 | 【深度学习第6章】_哔哩哔哩_bilibili
【官方双语】直观解释大语言模型如何储存事实 | 【深度学习第7章】_哔哩哔哩_bilibili
.总体流程:
GPT的全称是Generative Pretrained Transformer,也就是生成式预训练模型,最初的attention结构出现在2017年谷歌的翻译模型里,也就是大名鼎鼎的《Attention is all you need》,后来常见任务、也是这一系列视频用到的任务,是怎么基于提供的段落预测接下来的内容,虽然也是T2T模型但是难度和实际不一样了。
GPT的总体信息流动路径如下:
1.分割为Tokens
tokens可以翻译为语素,大致可以理解为一个单词或者一个汉字,但是其实划分更细,比如cleverest可能会把clever-和-est分割为两个tokens,亦或者一个标点或者一个词根也会被分为一个token,在图像中可能tokens会被划为一个一个像素。但是整体便于理解可以视为一个一个单词
每个token对应一个表示语义的向量,向量在空间中相近表示语义相近的词。
这里作者附了一个非常好玩的代码,可以试着输出一下不同单词的embedding:
In [21: import
# You need to pip install gensim
In [3]: model = gensim.downloader.load("glove-wiki-gigaword-50")
In [4]: model["tower"]
2.过Attention结构
根据上下文(context)优化token的语义
3.过MLP
(Multilayer Perception 多层感知器)实现每个token独立优化,被认为是存储信息和记忆的关键部分。
在实现中 往往是1-2-3-2-3-2-3-2-3-....-输出这样的过程,会过很多个attention-MLP的循环直到最后输出过一个softmax认为是下一个位置是tokens的概率分布。
从整体来看,GPT的格式为system prompt+user prompt的形式~
背景知识:
GPT参数量
总体GPT-3的数据量超过1750亿个参数,具体如下,在接下来的几章会分别讲述这些参数的意义。
embedding:
词嵌入,也就是学习到每个token的表征,GPT有50257个备选tokens,学习到的表征是12288维,因此这个表示表征的矩阵是122888*50257的参数量
每个token对应的这个12288维的表征,直观上可以用于找新词。 一个非常toy的例子:
虽然这个和现实出入很大,但是很有助于直观了解,如果我们有男性君主和男性女性三个tokens的表征,可以“猜”得queen对应的token的表征——E(king)+(E(woman)-E(man))
最终步:
把最后的向量通过“解嵌入矩阵”和softmax变成预测下一个位置是每一个token的概率:
tricks:
值得一提的是,此处有加入温度作为trick,温度越高使得较小值的P越高,这样各个不同的概率差别没那么大,采样的时候更有丰富性,反之如果T=0,那么一定会输出概率最大值,更稳定也更刻板,可以理解为T越大越有多变性和创造性,但是不会改变相对大小关系,也就是小的概率差别小但是一定不会比大概率的大。
Attention(self-attention)
作用:
由于单纯看每一个token容易造成歧义(比如可能出现一词多义)因此理解特定token需要上下文关联。
1.精细化token的含义
2.允许模型相互传递嵌入的表征向量包含的信息
接下来以最简单的one head self-attention为例,详细讲讲QKV怎么理解意思。
Query
每当我们想试试下一位置是不是该token,都要像之前的位置提问。比如,我们想知道creature的位置是不是creature,我么要考虑“前面有没有形容词?”---如果有可能这个位置会是名词,那么这个提问就是creature对应的query
这个query怎么获得?用我们之前讲过的embedding获得的表征(12288维)乘上一个矩阵,这个矩阵
表示了query的获得方法,也就是我们为了实现找到query需要学习的参数量。在GPT-3中,我们获得的query的维数是128,(可以理解为我们每个token可以问128个问题,)那么此处需要12288*128个参数来习得这样一套query。
Key
有了当前位置的tokens们的提问自然要有前面tokens的回复, 视频的图很形象:
同样的,我们给每个token的key的长度为128,(可以理解为128个相对应的回答)
Key+Query=Attention Pattern
我们怎么检测前面的回答(Key)和当前位置的提问(Query)是不是对应呢? 非常自然的结论是,用点乘,两个向量是不是方向一致大小差不多~
实际应用中我们还要除以一个维数的常数,加上我们后面提到的Value就构成了常见的attention公式:
这样,QK的参数量分别为:
tricks:
值得一提的是,我们要用前文预测后文,所以不能知道后文的信息,也就是需要把上面的QV的矩阵变成上三角阵,实际应用中,把左下半角的值先变成非常小的负数再过softmax
可以看出,上下文的窗口大小非常影响预测质量,过小的窗口会导致记忆力很差的模型,过大的窗口又导致参数量过大,于是有了很多变体:
Value:
V的主要目标是回答这个问题:如果要让QK(128维的向量)包含的信息影响tokens的嵌入(12288维的向量),应该怎么实现?
值得一提的是,当我们用Q和K点乘获得了attention pattern后我们就不关心QK的具体值了 ,上面公式也表示了,我们用的V是这样实现的↓
也就是说,Q K表示了一个“重要性”或者“权重”,进而把加权后的V加入原始token的embedding上
tricks:
这样看,V要把Q*V(/\sqrt(d))中的12288维向量映射到另一个12288维向量(为了和原始embedding齐平),所以要有12288*12288参数量,但是实际上会用low-rank transformation的思路,转化为两个12288*128的矩阵
这两个分别指的是参数量表格中的Value矩阵(把原始12288维的QV的列 映射到128维的中间向量)和Output矩阵(把128维的中间向量映射到最终要加到embedding上的12288维向量)
也就是Value层实现需要12288*128*2的参数量
multi-head attention:
实际上,GPT-3用了好几个(96个)注意力机制并行,可以理解为问不同的问题给出不同的回答,并把这些heads输出的最终要加到embedding上的12288维向量一起加进去。
进而总的新的embedding的运算公式为:
这也是为什么参数量表格里QKV都要乘上一个n_heads的原因。
习惯性的,一般会把96个output矩阵放到一起形成超大矩阵称为实际的output矩阵。
MLPs
结构:
多层感知机结构相信学过CNN的都耳熟能详,它的结构非常简单且清晰。
分析中,科学家们认为,GPT主要储存记忆就在MLPs里面,也是为什么这个简单的结构能占据了2/3的参数量。
应用:
在应用中,2-3-2-3的结构会不断堆叠(96层,也就是参数量中乘上的n_layers)
值得一提的是,在MLPs中,不同于attention,每个token是被独立计算的,因此可以实现并行
计算参数量也很容易,不加赘述。也就是第一个矩阵乘法放大,过一个简单的非线性函数,第二个矩阵再缩回原来的维数。
此处针对大小有非常多的解释,我已经可以take it for granted,但是解释还挺巧妙也贴在这里。
“第一个线性层行可以视为嵌入空间的方向,神经元的激活程度表示给定向量与特定方向的一致程度,第二个线性层的列可视为若该神经元被激活应当加入多少信息给当前的embedding”
*superposition(叠加)
很有趣的一个结果,解释为什么增加特征维数能大幅度提高准确度:
正常来说,在n维线性空间中我们用不同方向表示不同的表征,基础的线性代数告诉我们,n维空间的表征个数(也就是基向量的个数)只有n,但是如果我们放宽条件,加个noise使得基向量不再要求90°的垂直而是可以在89°-91°的区间内,低维度看不出来,但是高维度空间可以大幅度提高特征数量。100维可以实现至少塞下10000个基向量,因此提高一维可以提供远超十倍的特征量。
有意思。
sparse autoencoder 可以follow一下。
相关文章:
注意力机制详解笔记 Attention is all I donot understand!
注意力机制好奇了太久,QKV知道是什么但是一直没搞懂为什么,这段时间终于眼一闭心一横摁头看了一天视频,3B1B大佬太强了!基于GPT看了三个视频,基本讲的toy model,没有讲“硬核”的如何训练和码代码ÿ…...
分布式锁—2.Redisson的可重入锁二
大纲 1.Redisson可重入锁RedissonLock概述 2.可重入锁源码之创建RedissonClient实例 3.可重入锁源码之lua脚本加锁逻辑 4.可重入锁源码之WatchDog维持加锁逻辑 5.可重入锁源码之可重入加锁逻辑 6.可重入锁源码之锁的互斥阻塞逻辑 7.可重入锁源码之释放锁逻辑 8.可重入锁…...
Ribbon实现原理
文章目录 概要什么是Ribbon客户端负载均衡 RestTemplate核心方法GET 请求getForEntitygetForObject POST 请求postForEntitypostForObjectpostForLocation PUT请求DELETE请求 源码分析类图关系 与Eureka结合重试机制 概要 什么是Ribbon Spring Cloud Ribbon是一个基于HTTP和T…...
游戏引擎学习第133天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾并设定今天的主题 今天的任务是进一步优化背景资源的流式加载,尤其是在内存管理方面。昨天,我们实现了资源流式加载,让游戏在加载时可以动态地加载背景,而不是一开始就把所有资…...
DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!
今天跟大家分享下我们如何将DeepSeek生成的VBA代码,做成按钮,将其永久保存在我们的Excel表格中,下次遇到类似的问题,直接在Excel中点击按钮,就能10秒搞定,操作也非常的简单. 一、代码准备 代码可以直接询问…...
deepseek+mermaid【自动生成流程图】
成果: 第一步打开deepseek官网(或百度版(更快一点)): 百度AI搜索 - 办公学习一站解决 第二步,生成对应的Mermaid流程图: 丢给deepseek代码,或题目要求 生成mermaid代码 第三步将代码复制到me…...
递归遍历目录 和 普通文件的复制 [Java EE]
递归遍历目录 首先 先列出当前目录所包含的内容 File[] files currentDir.listFiles();if (files null || files.length 0) {// 若是空目录或非法目录, 则直接返回return;} 然后 遍历列出的文件, 分情况两种讨论 for (File f: files) {// 加个日志, 方便查看程序执行情…...
安防监控/视频集中存储EasyCVR视频汇聚平台如何配置AI智能分析平台的接入?
EasyCVR安防视频监控平台不仅支持AI边缘计算智能硬件设备的接入,还能快速集成AI智能分析平台,接收来自智能分析平台或设备的AI告警信息,如烟火检测、周界入侵检测、危险区域闯入检测、安全帽/反光衣佩戴检测等。 本文将详细介绍如何在EasyCVR…...
React 之 Redux 第二十八节 学习目标与规划大纲及概要讲述
接下来 开始Redux 全面详细的文档输出,主要基于一下几个方面,欢迎大家补充指正 一、Redux 基础概念 为什么需要 Redux? 前端状态管理的挑战(组件间通信、状态共享) Redux 解决的问题:集中式、可预测的状态…...
五分钟快速学习优秀网站的HTML骨架布局设计
一.编写多级过滤脚本,在控制台执行copy方法进行提取: 过滤脚本脚本 // 在浏览器F12的控制台里,直接执行以下脚本 copy(document.documentElement.outerHTML// 一级过滤:移除动态内容.replace(/<script\b[^>]*>[\s\S]*?…...
神经网络AI原理回顾
长期记忆存储在大模型的参数权重中,不经过推理和编码无法读取,且必须依赖输入的提示,因为大模型不会无缘无故的自言自语,毕竟输入层是它唯一 与外界交互的窗口。 目前个性化大模型的局限就是训练成本过高,除非使用RAG&…...
常见webshell工具的流量特征
1、蚁剑 1.1、蚁剑webshell静态特征 蚁剑中php使用assert、eval执行;asp只有eval执行;在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征。 1.2、蚁剑webshell动态特征 查看流量分析会发现…...
探秘基带算法:从原理到5G时代的通信变革【四】Polar 编解码(一)
文章目录 2.3 Polar 编解码2.3.1 Polar 码简介与发展背景2.3.2 信道极化理论基础对称容量与巴氏参数对称容量 I ( W ) I(W) I(W)巴氏参数 Z ( W ) Z(W) Z(W)常见信道信道联合信道分裂信道极化 本博客为系列博客,主要讲解各基带算法的原理与应用,包括&…...
【计算机网络】考研复试高频知识点总结
文章目录 一、基础概念1、计算机⽹络的定义2、计算机⽹络的目标3、计算机⽹络的组成4、计算机⽹络的分类5、计算机⽹络的拓扑结构6、计算机⽹络的协议7、计算机⽹络的分层结构8、OSI 参考模型9、TCP/IP 参考模型10、五层协议体系结构 二、物理层1、物理层的功能2、传输媒体3、 …...
nio多线程版本
多线程多路复用 多线程NIO,,就是多个线程,每个线程上都有一个Selector,,,比如说一个系统中一个线程用来接收请求,,剩余的线程用来读写数据,,每个线程独立干自…...
Lua | 每日一练 (5)
💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 Lua | 每日一练 (5)题目参考答案浅拷贝深拷贝使用场景…...
IO的概念和标准IO函数
作业: 1.使用标准IO函数,实现文件的拷贝 #include <stdio.h>int main(int argc, char *argv[]) {// 检查是否提供了源文件和目标文件if (argc ! 3) {printf("Usage: %s <source_file> <destination_file>\n", argv[0]);re…...
影刀RPA开发拓展--SQL常用语句全攻略
前言 SQL(结构化查询语言)是数据库管理和操作的核心工具,无论是初学者还是经验丰富的数据库管理员,掌握常用的 SQL 语句对于高效管理和查询数据都至关重要。本文将系统性地介绍最常用的 SQL 语句,并为每个语句提供详细…...
零信任架构和传统网络安全模式的
零信任到底是一个什么类型的模型?什么类型的思想或思路,它是如何实现的,我们要做零信任,需要考虑哪些问题? 零信任最早是约翰金德瓦格提出的安全模型。早期这个模型也是因为在安全研究上考虑的一个新的信任式模型。他最…...
【前端】HTML 备忘清单(超级详细!)
文章目录 入门hello.html注释 Comment段落 ParagraphHTML 链接Image 标签文本格式标签标题Section Divisions内部框架HTML 中的 JavaScriptHTML 中的 CSS HTML5 标签页面标题导航HTML5 TagsHTML5 VideoHTML5 AudioHTML5 RubyHTML5 kdiHTML5 progressHTML5 mark HTML 表格Table …...
React 中 useState 的 基础使用
概念:useState 是一个React Hook(函数),它允许我们向组件添加状态变量,从而影响组件的渲染结果。 本质:和普通JS变量不同的是,状态变量一旦发生变化,组件的视图UI也会跟着变化&…...
蓝桥杯单片机组第十二届省赛第二批次
前言 第十二届省赛涉及知识点:NE555频率数据读取,NE555频率转换周期,PCF8591同时测量光敏电阻和电位器的电压、按键长短按判断。 本试题涉及模块较少,题目不难,基本上准备充分的都能完整的实现每一个功能,并…...
React Native 原理
React Native 是一个跨平台移动应用开发框架,它允许开发者使用 JavaScript 和 React 来开发 iOS 和 Android 原生应用。React Native 的核心原理是通过 桥接(Bridge) 技术,使用 JavaScript 来控制原生组件,并将应用逻辑…...
C++简易贪食蛇项目
一.案例介绍 二.制作思路 三.墙模块 #include "wall.h" //初始化墙 void initWall() { for (int i 0; i < HEIGHT; i) { for (int j 0; j < WIDTH;j) { if (i 0 || j 0 || i HEIGHT - 1 || j WIDTH - 1) …...
C++蓝桥杯基础篇(七)
片头 嗨~小伙伴们,大家好!今天我们来一起学习蓝桥杯基础篇(七),学习相关字符串的知识,准备好了吗?咱们开始咯! 一、字符与整数的联系——ASCII码 每个常用字符都对应一个-128~127的…...
Sass基础
目录 什么是sass? Sass的安装 Sass的编译 Sass的语法: Sass的基本使用: 一、Sass变量: 二、嵌套语法: 三、import的使用: 四、mixin混入和include: 五、extend: 六、注释 七、if和if: 八、for: 总结: 什么是sas…...
Linux文档编辑相关命令详解
Linux文档编辑相关命令 1. grep grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 1.1 语法 grep [options] pattern [files] 1.2 常用选项 -i:忽略大小写进行匹配。-v:反向查找,只打印不匹配的行。-…...
QT实现简约美观的动画Checkbox
*最终效果: * 一共三个文件: main.cpp , FancyCheckbox.h , FancyCheckbox.cpp main.cpp #include <QApplication> #include "FancyCheckbox.h" #include <QGridLayout> int main(int argc, char *argv[]) {QApplication a(argc, argv);QWidget* w new…...
每日学习Java之一万个为什么?[MySQL面试篇]
分析SQL语句执行流程中遇到的问题 前言1 MySQL是怎么在一台服务器上启动的2 MySQL主库和从库是同时启动保持Alive的吗?3 如果不是主从怎么在启动的时候保证数据一致性4 ACID原则在MySQL上的体现5 数据在MySQL是通过什么DTO实现的6 客户端怎么与MySQL Server建立连接…...
git笔记
定义:分布式版本控制工具,免费开源的,快速高效的处理从小到大的项目,git占地面积小,性能快,有廉价的本地库 安装:官网最新版 全部点下一步就行 版本控制工具:使用中央服务器&#…...
Full GC 排查
在 Java 中,Full GC(完全垃圾回收)会对整个堆(包括年轻代和老年代,甚至可能包括永久代/元空间)进行垃圾回收,通常会导致较长的停顿(STW,Stop-The-World)。如果…...
VS2022远程调试Ubuntu中的C++程序
前言 最近想基于星火大模型的SDK开发第一些应用。但是,发现星火的SDK当中Linux版本的比较丰富,Windows 版本支持的比较少。但是,从调试的IDE而言,Visual Studio又是最方便的。所以,考虑采用Visual Studio Ubuntu的形式…...
Flutter 学习之旅 之 flutter 使用 flutter_screenutil 简单进行屏幕适配
Flutter 学习之旅 之 flutter 使用 flutter_screenutil 简单进行屏幕适配 目录 Flutter 学习之旅 之 flutter 使用 flutter_screenutil 简单进行屏幕适配 一、简单介绍 二、简单介绍 flutter_screenutil 三、安装 carousel_slider 四、简单案例实现 五、关键代码 六、补…...
【华为OD机考】华为OD笔试真题解析(16)--微服务的集成测试
题目描述 现在有n个容器服务,服务的启动可能有一定的依赖性(有些服务启动没有依赖),其次,服务自身启动加载会消耗一些时间。 给你一个 n n n \times n nn的二维矩阵useTime,其中useTime[i][i]10表示服务…...
NCCL AI 分布式训练集合通讯库技术基本原理
目录 文章目录 目录AI 分布式训练NCCL 的简介NCCL 的核心功能NCCL 的基本工作流程NCCL 的集合通信操作方式NCCL 的 API 编程示例 AI 分布式训练 在一个最初的 AI 模型训练场景中,由于模型自身的程序体积、输入的参数量以及样本的数据量都比较有限,一张 …...
算法-回溯篇01-组合
组合 力扣题目链接 题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 解题思路 刚开始做回溯的题目,关于回溯的相关知识推荐大家去看代码随想录的视频。 做了几道题,感觉回溯题…...
泵吸式激光可燃气体监测仪:快速精准守护燃气管网安全
在城市化进程加速的今天,燃气泄漏、地下管网老化等问题时刻威胁着城市安全。如何实现精准、高效的可燃气体监测,守护“城市生命线”,成为新型基础设施建设的核心课题。泵吸式激光可燃气体监测仪,以创新科技赋能安全监测࿰…...
Lumoz Chain正式上线:AI 时代的新算力破局者
新的叙事和技术突破永远是推动行业前行的核心动力。当下,AI Agent无疑是最炙手可热的赛道之一。 当加密世界将目光投向AI领域时,大多数项目仍停留在以AI为工具或应用场景的层面,试图通过集成AI模型或优化链上功能来吸引用户。然而࿰…...
算法之排序算法
排序算法 ♥常见排序算法知识体系详解♥ | Java 全栈知识体系 算法 - 排序 | CS-Notes 面试笔记 十大经典排序算法总结 | JavaGuide...
Java面试第七山!《MySQL索引》
一、索引的本质与作用 索引是帮助MySQL高效获取数据的数据结构,类似于书籍的目录。它通过减少磁盘I/O次数(即减少数据扫描量)来加速查询,尤其在百万级数据场景下,索引可将查询效率提升数十倍。 核心作用:…...
基于 Rust 与 GBT32960 规范的编解码层
根据架构设计,实现编解码层的代码设计 Cargo.toml 加入二进制序列化支持 # 序列化支持 ... bincode "1.3" # 添加二进制序列化支持 bytes-utils "0.1" # 添加字节处理工具 开始编码 错误处理(error.rs&#x…...
二、Redis 安装与基本配置:全平台安装指南 服务器配置详解
Redis 安装与基本配置:全平台安装指南 & 服务器配置详解 Redis 作为高性能的内存数据库,其安装和配置是使用 Redis 的第一步。本篇文章将全面介绍 Redis 的安装方式,覆盖 Windows、Linux、Docker 环境,并详细讲解 Redis 的基础配置,包括 持久化、日志、端口设置等。此…...
⭐算法OJ⭐矩阵的相关操作【动态规划 + 组合数学】(C++ 实现)Unique Paths 系列
文章目录 62. Unique Paths动态规划思路实现代码复杂度分析 组合数学思路实现代码复杂度分析 63. Unique Paths II动态规划定义状态状态转移方程初始化复杂度分析 优化空间复杂度状态转移方程 62. Unique Paths There is a robot on an m x n grid. The robot is initially lo…...
基于 Elasticsearch 和 Milvus 的 RAG 运维知识库的架构设计和部署落地实现指南
最近在整理一些业务场景的架构设计和部署落地实现指南 先放一个 【基于RAG的运维知识库 (ElasticSearch + Milvus) 的详细实现指南】,其中包含了详尽的技术实现细节、可运行的示例代码、原理分析、优缺点分析和应用场景分析。 架构描述: 基于RAG的运维知识库 (ElasticSearch…...
山西青年杂志山西青年杂志社山西青年编辑部2025年第3期目录
青年争鸣 教师发展中心行动转向的价值意蕴分析框架研究与启示 于宝证;李军红;郑钰莹;何易雯; 产教融合视角下职业本科工商管理专业人才培养模式探析 杜芯铭; 青年教育研究 教育数字化背景下高职院校的课堂教学研究 张晨; 统筹职业教育、高等教育、继续教育协同…...
使用Truffle、Ganache、MetaMask、Vue+Web3完成的一个简单区块链项目
文章目录 概要初始化Truffle项目创建编写合约编译合约配置Ganache修改truffle-config.js文件编写迁移文件部署合约使用Truffle 控制台使用MetaMask和VueWeb3与链交互 概要 使用Truffle、Ganache、MetaMask、VueWeb3完成的一个简单区块链项目。 初始化Truffle项目 安装好truf…...
【GenBI优化】提升text2sql准确率:建议使用推理大模型,增加重试
引言 Text-to-SQL(文本转 SQL)是自然语言处理(NLP)领域的一项重要任务,旨在将自然语言问题自动转换为可在数据库上执行的 SQL 查询语句。这项技术在智能助手、数据分析工具、商业智能(BI)平台等领域具有广泛的应用前景,能够极大地降低数据查询和分析的门槛,让非技术用…...
LLVM - 编译器前端 - 学习将源文件转换为抽象语法树(二)
一:处理消息 在一个庞大的软件(比如编译器)中,我们不希望将消息字符串分散在各个地方。如果需要修改消息内容或将其翻译成另一种语言,最好将它们集中存放在一个地方!目前缺少的是对消息的集中定义。下面我们看看来如何实现它。 一种简单的方法是,每条消息都有一个 ID(一…...
T-SQL 语言基础: SQL 数据库对象元数据及配置信息获取
目录 介绍目录视图 获取表和架构名称获取列信息 信息架构视图 获取表信息获取列信息 系统存储过程和函数 获取对象列表获取对象详细信息获取约束信息获取数据库属性信息 总结引用 介绍 在 SQL 数据库管理中,获取数据库对象的元数据信息是至关重要的。元数据提供了…...
基于vue框架的游戏博客网站设计iw282(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
系统程序文件列表 项目功能:用户,博客信息,资源共享,游戏视频,游戏照片 开题报告内容 基于FlaskVue框架的游戏博客网站设计开题报告 一、项目背景与意义 随着互联网技术的飞速发展和游戏产业的不断壮大,游戏玩家对游戏资讯、攻略、评测等内容的需求日…...