生成式语言模型技术全解析
一、引言
在人工智能领域,生成式语言模型(Generative Language Models,GLMs)无疑是近年来最为耀眼的明星。从早期的简单语言模型到如今如DeepSeek、Qwen 2.5 Max等具有强大能力的先进模型,它们在自然语言处理的各个方面都展现出了惊人的潜力。这些模型不仅能够生成高质量的文本,还能在问答、机器翻译、文本摘要等众多任务中取得优异的成绩。本文将全面深入地介绍生成式语言模型的技术,包括其发展历程、核心技术、训练方法、评估指标以及未来发展趋势。
二、发展历程
早期语言模型
早期的语言模型主要基于统计方法,如n - gram模型。n - gram模型通过计算文本中n个连续词出现的概率来预测下一个词。例如,在一个bigram(n = 2)模型中,会统计相邻两个词同时出现的频率。虽然n - gram模型简单易懂,但它存在数据稀疏和长距离依赖处理能力弱等问题。
神经网络语言模型
随着神经网络的发展,研究人员开始尝试使用神经网络来构建语言模型。其中,循环神经网络(RNN)及其变体长短期记忆网络(LSTM)和门控循环单元(GRU)成为了主流。这些模型能够处理序列数据,通过隐藏状态来捕捉文本中的上下文信息。然而,RNN系列模型仍然存在梯度消失和梯度爆炸的问题,难以处理长序列文本。
基于Transformer架构的语言模型
2017年,《Attention Is All You Need》论文提出了Transformer架构,这是生成式语言模型发展的一个重要里程碑。Transformer架构采用了自注意力机制(Self - Attention),能够并行处理序列数据,有效地解决了长距离依赖问题。基于Transformer架构,出现了一系列强大的生成式语言模型,如GPT(Generative Pretrained Transformer)系列、BERT(Bidirectional Encoder Representations from Transformers)等。
最新进展:DeepSeek、Qwen 2.5 Max等
近期,DeepSeek和Qwen 2.5 Max等模型引起了广泛关注。DeepSeek以其高效的训练和强大的生成能力受到瞩目,它在大规模数据集上进行训练,能够生成高质量、连贯的文本。Qwen 2.5 Max则后来者居上,在多个任务上展现出了卓越的性能,通过优化架构和训练方法,进一步提升了模型的表现。
三、核心技术
Transformer架构
自注意力机制
自注意力机制是Transformer架构的核心。它允许模型在处理序列中的每个位置时,关注序列中的其他位置,从而捕捉到长距离的依赖关系。具体来说,自注意力机制通过计算查询(Query)、键(Key)和值(Value)之间的相似度来确定每个位置的权重,然后根据这些权重对值进行加权求和,得到每个位置的表示。
多头注意力机制
多头注意力机制是自注意力机制的扩展。它将输入的查询、键和值分别投影到多个低维子空间中,然后在每个子空间中独立地计算自注意力,最后将各个子空间的输出拼接起来并进行线性变换。多头注意力机制能够捕捉到不同类型的依赖关系,提高模型的表达能力。
前馈神经网络
Transformer中的前馈神经网络由两个线性层和一个非线性激活函数(通常是ReLU)组成。它对每个位置的自注意力输出进行进一步的处理,提取更高级的特征。
编码器和解码器
Transformer架构通常由编码器和解码器组成。编码器用于对输入序列进行编码,提取序列的特征表示;解码器则根据编码器的输出和之前生成的部分序列来生成目标序列。在生成式语言模型中,如GPT系列只使用了解码器,而BERT只使用了编码器。
预训练和微调
预训练
预训练是生成式语言模型训练的重要步骤。模型在大规模无监督数据上进行预训练,学习到语言的通用特征和模式。常见的预训练任务包括掩码语言模型(Masked Language Model,MLM)和下一句预测(Next Sentence Prediction,NSP)。在MLM任务中,模型需要预测输入序列中被掩码的词;在NSP任务中,模型需要判断两个句子是否是连续的。
微调
微调是在预训练的基础上,使用特定任务的有监督数据对模型进行进一步的训练。通过微调,模型能够适应不同的任务需求,提高在特定任务上的性能。例如,在文本分类任务中,将预训练的模型在分类数据集上进行微调,使其能够准确地对文本进行分类。
优化算法
Adam优化器
Adam(Adaptive Moment Estimation)是一种常用的优化算法,它结合了AdaGrad和RMSProp的优点,能够自适应地调整每个参数的学习率。Adam优化器在生成式语言模型的训练中表现出色,能够加快模型的收敛速度。
学习率调度
为了提高模型的训练效果,通常会使用学习率调度策略。例如,在训练初期使用较大的学习率,以便模型能够快速收敛;在训练后期逐渐减小学习率,以避免模型在局部最优解附近震荡。常见的学习率调度策略包括学习率衰减、余弦退火等。
四、训练方法
数据准备
数据收集
训练生成式语言模型需要大量的文本数据。这些数据可以来自互联网、书籍、新闻文章等多个来源。数据的质量和多样性对模型的性能有重要影响,因此需要收集高质量、多样化的数据。
数据清洗和预处理
收集到的数据通常需要进行清洗和预处理,以去除噪声、错误和重复数据。常见的预处理步骤包括分词、去除停用词、转换为小写等。此外,还需要将文本数据转换为模型能够处理的格式,如将文本转换为词向量。
模型训练
分布式训练
由于生成式语言模型的参数数量巨大,训练过程需要大量的计算资源。为了加快训练速度,通常采用分布式训练的方法。分布式训练将模型的训练任务分配到多个计算设备(如GPU、TPU)上并行进行,通过数据并行或模型并行的方式提高训练效率。
模型融合
模型融合是指将多个不同的模型进行组合,以提高模型的性能。常见的模型融合方法包括投票法、平均法、堆叠法等。在生成式语言模型中,模型融合可以结合不同架构、不同预训练数据的模型,从而获得更准确、更稳定的结果。
五、评估指标
困惑度(Perplexity)
困惑度是衡量语言模型性能的常用指标之一。它表示模型在预测下一个词时的不确定性。困惑度越低,说明模型对文本的预测能力越强。困惑度的计算公式为:
[PP(W)=\sqrt[N]{\prod_{i = 1}^{N}\frac{1}{P(w_i|w_1,\cdots,w_{i - 1})}}]
其中,(W=(w_1,w_2,\cdots,w_N)) 是一个文本序列,(P(w_i|w_1,\cdots,w_{i - 1})) 是模型在给定前面 (i - 1) 个词的条件下预测第 (i) 个词的概率。
BLEU分数(Bilingual Evaluation Understudy)
BLEU分数主要用于评估机器翻译的质量。它通过比较机器翻译的结果和参考译文之间的n - gram匹配程度来计算分数。BLEU分数越高,说明机器翻译的结果越接近参考译文。
ROUGE分数(Recall - Oriented Understudy for Gisting Evaluation)
ROUGE分数用于评估文本摘要的质量。它通过比较生成的摘要和参考摘要之间的重叠程度来计算分数。常见的ROUGE指标包括ROUGE - N(N - gram重叠)、ROUGE - L(最长公共子序列重叠)等。
人类评估
除了使用自动评估指标外,人类评估也是评估生成式语言模型性能的重要方法。人类评估可以从多个维度对模型生成的文本进行评价,如语法正确性、语义连贯性、信息完整性等。
六、未来发展趋势
模型小型化和高效化
随着生成式语言模型的发展,模型的参数数量越来越大,训练和推理成本也越来越高。未来,研究人员将致力于开发小型化、高效化的模型,以降低成本并提高模型的可部署性。例如,通过知识蒸馏、量化等技术,将大型模型的知识迁移到小型模型中。
多模态融合
多模态融合是指将语言、图像、音频等多种模态的数据进行融合,使模型能够处理更复杂的任务。未来的生成式语言模型将不仅仅局限于文本处理,还将与图像、音频等模态进行深度融合,实现更强大的功能,如生成图文并茂的内容、进行语音交互等。
强化学习在语言生成中的应用
强化学习可以通过奖励机制来引导模型生成更符合用户需求的文本。未来,强化学习将在生成式语言模型中得到更广泛的应用,使模型能够根据用户的反馈不断优化生成的结果,提高用户满意度。
伦理和安全问题的解决
随着生成式语言模型的广泛应用,伦理和安全问题也日益凸显。例如,模型可能生成虚假信息、有害内容等。未来,需要研究有效的方法来解决这些问题,确保模型的使用符合伦理和法律规范。
七、总结
生成式语言模型是人工智能领域的重要研究方向,从早期的简单模型到如今的先进模型,经历了快速的发展。本文全面介绍了生成式语言模型的发展历程、核心技术、训练方法、评估指标以及未来发展趋势。随着技术的不断进步,生成式语言模型将在更多领域得到应用,为人们的生活和工作带来更多的便利和创新。同时,我们也需要关注模型带来的伦理和安全问题,确保其健康、可持续的发展。
相关文章:
生成式语言模型技术全解析
一、引言 在人工智能领域,生成式语言模型(Generative Language Models,GLMs)无疑是近年来最为耀眼的明星。从早期的简单语言模型到如今如DeepSeek、Qwen 2.5 Max等具有强大能力的先进模型,它们在自然语言处理的各个方…...
香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。
简介: 亮点直击 将电影镜头设计引入图像到视频的合成过程中。 推出了MotionCanvas,这是一种简化的视频合成系统,用于电影镜头设计,提供整体运动控制,以场景感知的方式联合操控相机和对象的运动。 设计了专门的运动条…...
bazel 小白理解
Bazel命令是用于构建和测试软件项目的一个强大工具,尤其适用于大规模和多语言的软件项目。对于小白来说,可以这样理解Bazel及其命令: Bazel的基本概念 构建系统:Bazel是一个构建系统,它的主要任务是自动化地编译和链…...
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
一、介绍 蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【“香菇(Agaricus)”, “毒鹅膏菌(Amanita)”, “牛肝菌&…...
基于 STM32 平台的音频特征提取与歌曲风格智能识别系统
标题:基于 STM32 平台的音频特征提取与歌曲风格智能识别系统 内容:1.摘要 摘要:本文介绍了一种基于 STM32 平台的音频特征提取与歌曲风格智能识别系统。该系统通过对音频信号进行特征提取和分析,实现了对歌曲风格的自动识别。在特征提取方面,…...
AUTOGPT:基于GPT模型开发的实验性开源应用程序; 目标设定与分解 ;;自主思考与决策 ;;信息交互与执行
目录 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序目标设定与分解自主思考与决策信息交互与执行AUTOGPT是一款基于GPT模型开发的实验性开源应用程序 目标设定与分解 自主思考与决策 信息交互与执行 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序,它能让大语言模…...
DeepSeek底层揭秘——知识图谱与语料库的联邦学习架构
目录 1. 知识图谱与语料库的联邦学习架构 2. 技术要素 3. 技术难点与挑战 4. 技术路径 5. 应用场景 6. 最新研究与技术进展 7. 未来趋势 8. 实际案例 猫哥说 1. 知识图谱与语料库的联邦学习架构 (1) 定义 “知识图谱与语料库的联邦学习架构”是一种结合知识图谱&…...
MVVM设计模式
MVVM(Model-View-ViewModel)是一种软件设计模式,MVVM模式由三个主要部分组成: Model(模型):负责管理应用程序的业务逻辑和数据。它不关心UI如何展示数据,主要负责与服务器通信和数据处处…...
5.实时推荐系统的设计与实现
接下来我们将学习实时推荐系统的设计与实现。实时推荐系统需要处理大规模数据,并在用户交互时提供即时的推荐结果。这一课我们将介绍以下内容: 实时推荐系统的基本概念实时推荐系统的架构设计实时推荐系统的关键技术实践示例 1. 实时推荐系统的基本概念…...
分层解耦-ioc引入
内聚: 软件中各个功能模块内部的功能联系。 耦合: 衡量软件中各个层/模块之间的依赖、关联的程度。 软件设计原则: 高内聚低耦合。...
Docker安装常用软件说明
1.总体步骤 2.安装tomcat docker run -d -p 8080:8080 --name tomcat1 tomcat:11.0.8 访问tomcat猫首页 出现404 这是正常情况 Docker 默认采用的是 NAT 网络模式,所以会自动创建 IPtable 规则并自动开放端口,所以无需考虑防火墙问题 新版Tomcat已经…...
陶氏环面包络减速机:为工业视觉检测注入“精准动力”!
在工业4.0时代,视觉检测技术已成为智能制造的核心环节。无论是精密电子元件的检测,还是汽车零部件的质量把控,视觉检测系统都需要极高的精度、稳定性和响应速度。而这一切,离不开一颗强大的“心脏”——陶氏环面包络减速机。 一、…...
标准日本语 导学
新版标准日本语-初级 结构 初级 上 初级 下 每章结构 教学方法...
vscode怎么更新github代码
vscode怎么更新github代码 打开终端: 在 VS Code 中,使用快捷键 Ctrl (Mac 上是 Cmd) 打开终端。 导航到项目目录: 确保你当前所在的终端目录是你的项目目录。如果不是,可以使用 cd 命令导航到项目目录,例如…...
【转载】开源鸿蒙OpenHarmony社区运营报告(2025年1月)
●截至2025年1月31日,开放原子开源鸿蒙(OpenAtom OpenHarmony,简称“开源鸿蒙”或“OpenHarmony”)社区累计超过8200名贡献者,共63家成员单位,产生51.2万多个PR、2.9万多个Star、10.5万多个Fork、68个SIG。…...
Pdf手册阅读(1)--数字签名篇
原文阅读摘要 PDF支持的数字签名, 不仅仅是公私钥签名,还可以是指纹、手写、虹膜等生物识别签名。PDF签名的计算方式,可以基于字节范围进行计算,也可以基于Pdf 对象(pdf object)进行计算。 PDF文件可能包…...
【C#】任务调度的实现原理与组件应用Quartz.Net
Quartz 是一个流行的开源作业调度库,最初由 Terracotta 开发,现在由 Terracotta 的一部分 Oracle 所有。它主要用于在 Java 应用程序中调度作业的执行。Quartz 使用了一种复杂的底层算法来管理任务调度,其中包括任务触发、执行、持久化以及集…...
HTML之JavaScript函数声明
HTML之JavaScript函数声明 1. function 函数名(){}2. var 函数名 function(){}<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…...
如何在 Qt 中添加和使用系统托盘图标
在 Qt 中实现系统托盘图标是一个常见的需求,尤其是在桌面应用程序中。系统托盘图标可以让应用程序在后台运行时仍然具有可见性,同时避免占用过多的桌面空间。本文将详细介绍如何在 Qt 项目中添加托盘图标,并通过资源系统(.qrc 文件…...
day5QT套接字通信
Widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);objtimer new QTimer (this);//连接定时器的timeout信号到启动的槽函数//connect(objtimer,&…...
JVM速成=。=
JVM跨平台原理 跨平台:一次编译,到处运行 本质:不同操作系统上运行的JVM不一样,只需要把java程序编译成一份字节码文件,JVM执行不同的字节码文件。 Java是高级语言,提前编译一下(变成字节码文件…...
操作系统中的任务调度算法
在多任务操作系统中,任务调度算法(Task Scheduling Algorithm)是决定CPU资源如何分配给进程或线程的核心机制。优秀的调度算法需要平衡响应时间、吞吐量和公平性,同时适应不同的应用场景。 任务调度的核心目标 CPU利用率最大化&a…...
第七节 文件与流
基本的输入输出(iostream) C标准库提供了一组丰富的输入/输出功能,C的I/O发生在流中,流是字节序列。如果字节流是从设备(键盘、磁盘驱动器、网络连接等)流向内存,叫做输入操作。如果字节流是从…...
回首2024,展望2025
2024年,是个充满挑战与惊喜的年份。在这366个日夜里,我站在编程与博客的交汇点,穿越了无数的风景与挑战,也迎来了自我成长的丰收时刻。作为开发者的第十年,我依然步伐坚定,心中始终带着对知识的渴望与对自我…...
Ubuntu指令学习(个人记录、偶尔更新)
Ubuntu指令学习 0、一点常用指令列表一、Ubuntu下复制与移动,cp/mv二、Ubuntu下echo 与 重定向>,>>三、Ubuntu下chmod,用户权限四、Ubuntu下的tar打包,gzip压缩五、Ubuntu(22.04)下系统语言为中文,切换主目录文件名为英文。六、Ubun…...
【牛客】动态规划专题一:斐波那契数列
文章目录 DP1 斐波那契数列法1:递归法2:动态规划法3:优化空间复杂度 2.分割连接字符串3. 给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子 DP1 斐波那契数列 法1:递归 // 递归 #include <iostream>…...
HCIA-Access V2.5_13_1_1_VLAN类型
VLAN类型(1)Standard VLAN VLAN类型(1)-Smart VLAN Smart可以包含多个上行口,和多个业务虚端口(Service Port),以太网端口在同一下VLAN中是互通的,但是业务虚端口,在同一个VLAN之间是…...
【动态规划】风扫枯杨,满地堆黄叶 - 9. 完全背包问题
本篇博客给大家带来的是完全背包问题之动态规划解法技巧. 🐎文章专栏: 动态规划 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅🚀 要开心要快乐顺…...
Android ndk兼容 64bit so报错
1、报错logcat如下 2025-01-13 11:34:41.963 4687-4687 DEBUG pid-4687 A #01 pc 00000000000063b8 /system/lib64/liblog.so (__android_log_default_aborter16) (BuildId: 467c2038cdfa767245f9280e657fdb85) 2025…...
极狐GitLab 17.8 正式发布,多项 DevOps 重点功能解读【一】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
java面试题
以下是一些Java面试题: 一、基础概念 Java中的基本数据类型有哪些?它们的默认值是什么? 答案: 基本数据类型有byte(字节型,默认值为0)、short(短整型,默认值为0)、int(整型,默认值为0)、long(长整型,默认值为0L)、float(浮点型,默认值为0.0f)、double(双精…...
C语言蓝桥杯1003: [编程入门]密码破译
要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母. 例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译…...
react实例与总结(一)
目录 一、简单认识 1.1、特点 1.2、JSX语法规则 1.3、函数组件和类式组件 1.4、类组件三大属性state、props、refs 1.4.1、state 1.4.2、props 1.4.3、refs 1.5、事件处理 1.6、收集表单数据—非受控组件和受控组件 1.7、高阶函数—函数柯里化 1.8、生命周期—新旧…...
科技赋能直播!DeepSeek大模型+智享AI直播第三代plus版本,未来直播将更加智能化!
科技赋能直播!DeepSeek大模型智享AI直播第三代plus版本,未来直播将更加智能化! 能成事的人,都是懂得整合资源的高手。 要学会“万物不为我所有,万物皆为我所用。”的思维方式。 一个人的成就高低,在于他的…...
几种3D 旋转 的参数化形式
在 3D 空间中,旋转是 3 自由度的,刚体变换是 6 自由度的(3自由度旋转3自由度平移)。 3x3 的旋转矩阵有 9 个量,表达了 3自由度的旋转。 旋转矩阵是有 自约束的,即一个旋转矩阵是一个 正交矩阵,…...
【kubernetes组件合集】深入解析Kubernetes组件之三:client-go
深入解析Kubernetes组件之三:client-go 目录 深入解析Kubernetes组件之三:client-go 引言 1. client-go简介 2. client-go的功能 2.1 资源操作 2.2 资源监听 2.3 认证和授权 2.4 错误处理和重试 2.5 扩展性和定制化 3. 使用client-go与Kubern…...
强化学习概念入门
1 概述 强化学习,英文名为reinforcement learning,简称RL,是机器学习的一个分支,其想要解决的问题是智能体(agent)如何在复杂环境(environment)下最大化其能获得的奖励。 一般来说…...
自动控制视频讲解
本视频几乎包含了所有《自动控制原理》(胡寿松)所有重点章节。针对于考研都能满足。 视频内容包括但不限于:时域分析、信号流图、结构图绘制、跟轨迹、幅相曲线、稳定裕度、z变换、离散传递函数、数字控制器、稳定判据、相平面法、描述函数法…...
【Mastering Vim 2_01】开篇词:在 AI 时代持续深耕底层技术,做长期主义的坚定捍卫者
【最新版《Mastering Vim》封面,涵盖 Vim 9.0 版特性】 文章目录 1 背景:AI 时代的底层技术觉醒2 Vim:一款被严重低估的文本编辑神器3 聊聊 IT 人士的职业病4 进阶之道:构建完整的知识体系5 从 AI 时代的深耕与精进再谈长期主义 1…...
zsh: command not found: conda
场景描述 在 Linux 服务器上使用 zsh 时,如果出现 zsh: command not found: conda 错误,说明你的系统未正确配置 conda 命令,或者你尚未安装 Anaconda/Miniconda。 解决方案 确保已安装 Anaconda 或 Miniconda conda 是 Anaconda 或 Minico…...
Unity中使用Best MQTT v3插件实现MQTT通信功能,进行模块拆分
概述 本文将详细介绍如何在Unity中使用Best MQTT v3插件实现MQTT通信功能。将通过模块化设计实现配置加载、连接管理、订阅/发布等功能,并提供完整的代码实现。 重连说明:当意外断开连接的时候,会进行重新连接,重连上之后会再次订…...
NO.14十六届蓝桥杯备战|switch语句|break|default|2道练习(C++)
switch语句 除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。 switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。 switch (expression) { case value1: stat…...
探索B-树系列
🌈前言🌈 本文将讲解B树系列,包含 B-树,B树,B*树,其中主要讲解B树底层原理,为什么用B树作为外查询的数据结构,以及B-树插入操作并用代码实现;介绍B树、B*树。 Ǵ…...
【SpringBoot实现全局API限频】 最佳实践
在 Spring Boot 中实现全局 API 限频(Rate Limiting)可以通过多种方式实现,这里推荐一个结合 拦截器 Redis 的分布式解决方案,适用于生产环境且具备良好的扩展性。 方案设计思路 核心目标:基于客户端标识(…...
esxi添加内存条因为资源不足虚拟机无法开机——避坑
exsi8.0我加了6根内存条,然后将里面的ubuntu的内存增加 haTask-2-vim.VirtualMachine.powerOn-919 描述 打开该虚拟机电源 虚拟机 ub22 状况 失败 - 模块“MonitorLoop”打开电源失败。 错误 模块“MonitorLoop”打开电源失败。无法将交换文件 /vmfs/volumes…...
实验8 配置标准访问控制列表IPv4 ACL
实验8 配置标准访问控制列表IPv4 ACL 一.实验目的 1、掌握IPv4 ACL工作方式和工作过程。 2、掌握定义编号和命名的标准 IPv4 ACL 的方法。 3、掌握接口和VTY下应用标准IPv4 ACL的方法。 二.实验内容 配置IPv4 ACL的实验拓扑如下图所示。 图1 实验拓扑…...
5.7.2 进度管理
文章目录 进度管理Gantt图PERT图 进度管理 进度安排:通过将项目分解成多个活动,分析活动间的依赖关系,估算工作量,分配资源,制定活动时序。 Gantt图 Gantt图横坐标表示时间,纵坐标表示不同任务。使用一条条…...
Android新版高斯模糊(毛玻璃)官方实现,Kotlin
Android新版高斯模糊(毛玻璃)官方实现,Kotlin 从Android 12开始,Android官方API支持高斯模糊(毛玻璃)效果。关键是通过RenderEffect实现。 https://developer.android.com/reference/android/graphics/RenderEffecthttps://developer.android.com/refer…...
b站——《【强化学习】一小时完全入门》学习笔记及代码(1-3 多臂老虎机)
问题陈述 我们有两个多臂老虎机(Multi-Armed Bandit),分别称为左边的老虎机和右边的老虎机。每个老虎机的奖励服从不同的正态分布: 左边的老虎机:奖励服从均值为 500,标准差为 50 的正态分布,即…...
使用开源项目xxl-cache构建多级缓存
xxl-cache简介 官网地址:https://www.xuxueli.com/xxl-cache/ 概述 XXL-CACHE 是一个 多级缓存框架,高效组合本地缓存和分布式缓存(RedisCaffeine),支持“多级缓存、一致性保障、TTL、Category隔离、防穿透”等能力;拥有“高性…...