Caroline S
Love magic for itself.
展开
-
LLM - 大语言模型(LLM) 的 应用技术
大语言模型(LLM)的应用技术范围非常广泛,包括LangChain开发框架,专为大型语言模型设计,以提高开发人工智能应用的效率,允许开发者将语言模型、向量数据库、交互层Prompt、外部知识和工具整合到一起,从而构建多样化的 LLM 应用程序;推理优化,在大型语言模型的推理过程中,优化技术可以显著提升效率和性能,通过分布式计算框架、知识图谱集成以及模型内部的优化技术,加速模型的推理过程,使其更适合实际应用;多模态大模型结合文本、图像和声音等多种数据类型,能够处理和理解跨多个模态的信息。原创 2024-06-04 19:54:05 · 30 阅读 · 0 评论 -
LLM - 大语言模型(LLM) 的 评估体系
大语言模型(LLM)的评估是复杂且多维的过程,涉及多个方面,包括评估体系、评估方法、评估实践。评估体系包括评估数据集、模型输出、样本/输出变换、真值(Ground Truth)、评估媒介、性能报告。评估方法包括直接评估指标、基于辅助模型的评估、基于模型的评估。评估实践主要包括,避免数据泄漏、测试样本的覆盖率、测试评估样本与任务无关、数据集划分和表述改写、随机数种子、准确率与召回率的权衡。原创 2024-04-24 15:50:42 · 400 阅读 · 0 评论 -
PyTorch笔记 - Weight Normalization 权重归一化
深度神经网络的权重归一化(Weight Normalization,简称WN)是一种优化技术,它可以加速训练过程并提高模型的泛化能力。此外,权重归一化还可以改善网络的初始化和正则化,因为它可以降低权重矩阵的条件数,并且可以与批次归一化或dropout等技术结合使用。权重归一化将连接权重向量w在其欧氏范数和其方向上解耦成了参数向量v和参数标量g,即w = g * v / ||v||,其中||v||表示v的欧氏范数。这样,原来对w的优化就转化为对g和v的优化,而g和v分别控制了w的长度和方向。原创 2023-03-23 10:00:53 · 3268 阅读 · 0 评论 -
Nothing
原创 2024-04-08 12:49:47 · 209 阅读 · 0 评论 -
LLM - 大语言模型 基于人类反馈的强化学习(RLHF)
基于人类反馈的强化学习(RLHF,Reinforcement Learning from Human Feedback),结合 强化学习(RL) 和 人类反馈 来优化模型的性能。这种方法主要包括:多种策略产生样本并收集人类反馈:使用不同的策略来生成文本样本,然后,由人类评估这些样本的质量,以收集反馈数据。训练奖励模型:基于收集到的人类反馈,训练奖励模型(Reward Model, RM),该模型的目标是评估模型输出的文本质量。训练强化学习策略,微调语言模型:在这一步中,将初始语言模型的微调任务建模为强化学习原创 2024-04-02 23:12:56 · 563 阅读 · 0 评论 -
LLM - 大语言模型的指令微调(Instruction Tuning) 概述
大语言模型的指令微调(Instruction Tuning)是一种优化技术,通过在特定的数据集上进一步训练大型语言模型(LLMs),使其能够更好地理解和遵循人类的指令。这个数据集通常由一系列的指令和相应的期望输出组成。指令微调的目的是提高模型的能力和可控性,使其在执行任务时能够更准确地响应用户的需求。原创 2024-03-25 12:38:48 · 1828 阅读 · 0 评论 -
LLM - 大语言模型的分布式训练 概述
大语言模型的分布式训练是一个复杂的过程,涉及到将大规模的计算任务分散到多个计算节点上。这样做的目的是为了处理巨大的模型和数据集,同时,提高训练效率和缩短训练时间。原创 2024-03-22 00:18:50 · 1275 阅读 · 0 评论 -
LLM - 大语言模型的预训练数据(Dataset) 概述
BPE(Byte Pair Encoding)字节对编码模型,是用于NLP中的词元切分(Tokenization)的方法,核心思想是将常见的字符对(byte pairs)合并为一个单独的词元,从而减少整体的词元数量,同时保留了文本的重要信息。这种方法特别适用于处理词汇量非常大的语言模型,可以有效地减少词汇表的大小,同时保持语言的丰富性和表达能力。此外,BPE模型也支持多语言模型的训练,不依赖于特定语言的词汇结构。大语言模型的预训练数据通常涵盖了广泛的文本类型,以确保模型能够理解和生成多样化的语言内容。原创 2024-03-11 21:55:57 · 681 阅读 · 0 评论 -
LLM - 大语言模型的自注意力(Self-Attention)机制基础 概述
注意力(Attention)机制是大型语言模型中的一个重要组成部分,帮助模型决定在处理信息时,所应该关注的部分。在自然语言处理中,一个序列由一系列的元素组成。注意力机制通过为序列中的每个元素分配一个权重来工作,这个权重反映了每个元素对于任务的重要性。模型会更加关注权重高的元素。自注意力(Self-Attention)是一种特殊的注意力机制,不是将输入序列与输出序列关联起来,而是关注序列内部元素之间的关系。原创 2024-03-11 15:38:31 · 1457 阅读 · 1 评论 -
LLM - 大语言模型(LLM)发展 概述
大语言模型(LLM, Large Language Model)的发展和应用是一个非常广泛的领域,涉及从早期的统计模型到现代基于深度学习的模型。在自然语言处理领域的应用非常广泛,包括但不限于聊天机器人、内容生成、情感分析、自动摘要、问答系统等。强大的文本生成能力,使其在内容创作领域具有巨大潜力,可以用于撰写文章、创作诗歌、生成新闻报道等。也可以为教育提供丰富的资源和工具,如自动评分、个性化学习辅导等,还可以用于构建智能客服系统,提高客户服务的响应速度和准确性。原创 2024-03-11 11:15:47 · 1132 阅读 · 0 评论 -
Paper - VQGAN: Taming Transformers for High-Resolution Image Synthesis 简读
本文获得一个有效和富有表现力的模型的关键启发是,卷积和Transformer架构结合起来,可以建模视觉世界的组合性质:本文使用卷积方法来高效地学习一个包含丰富上下文的视觉部件的码本,然后学习一个全局组合的模型。这些组合中的长距离交互,需要一个富有表现力的Transformer架构,来建模其构成视觉部件的分布。此外,本文利用对抗方法,来确保局部部件的字典,捕捉到感知上重要的局部结构,从而减轻了用Transformer架构建模低级统计的需要。让Transformer专注于独特优势——建模长距离关系——使它们能够原创 2024-02-06 13:04:07 · 935 阅读 · 0 评论 -
Paper - VQVAE-2 多尺度分层结构的 VQ-VAE 模型
VQ-VAE-2,即向量量化变分自编码器(VQ-VAE) 的第2版。VQ-VAE 利用离散的隐变量,来近似连续的潜在分布,有效地压缩图像信息,结合自回归的先验来重建或生成图像。VQ-VAE-2提出一种多尺度的分层结构的VQ-VAE模型,在不同的分辨率上对图像进行编码和解码,提高图像的一致性和保真度。同时,引入一种基于PixelCNN的强大的先验,可以在压缩的隐空间中对隐变量进行建模,从而增加了生成图像的多样性和质量。原创 2024-02-03 12:42:55 · 1300 阅读 · 0 评论 -
Paper - VQ-VAE (Vector Quantised Variational AutoEncoder) 的实现源码
VQ-VAE,即Vector Quantized Variational AutoEncoder,向量量化变分自编码器。VQ-VAE 的创新之处是引入了一个向量量化(VQ)层,将连续的编码器输出映射到离散的潜在空间。VQ层由一组可学习的向量组成,称为代码本(Codebook)。每个编码向量都会被替换为代码本中与最近的向量,从而实现量化。这样,VQ-VAE 可以把图片编码成离散向量。原创 2024-01-30 17:07:59 · 1175 阅读 · 0 评论 -
AIGC - 视频生成模型的相关算法进展
视频生成技术,根据给定的文本、图像、视频等输入,自动生成符合描述的视频内容。视频生成技术在近年来取得了显著的进展,但也面临着一些挑战和限制。原创 2024-01-19 08:24:47 · 1527 阅读 · 0 评论 -
DeepLearning - 余弦退火热重启学习率 CosineAnnealingWarmRestartsLR
CosineAnnealingWarmRestartsLR,即 余弦退火热重启学习率,周期性修改学习率的下降和上升,间隔幅度逐渐增大,避免模型的性能抖动。原创 2023-11-06 16:49:47 · 1336 阅读 · 0 评论 -
Paper - Neural Discrete Representation Learning (VQ-VAE) 论文简读
VQ-VAE 是基于变分自编码器(VAE)的生成模型,可以学习离散的潜在表示。VQ-VAE 的主要创新是引入了一个向量量化(VQ)层,将连续的编码器,输出映射到离散的潜在空间。VQ 层由一组可学习的向量组成,称为代码本 (Coding Book)。原创 2023-10-23 16:31:28 · 419 阅读 · 0 评论 -
PyTorch随笔 - 生成对抗网络的改进cGAN和LSGAN
本文介绍GAN的两个常见改进,cGAN和LSGAN,两者一般结合使用。原创 2023-04-03 21:04:37 · 990 阅读 · 0 评论 -
PyTorch随笔 - Glow: Generative Flow with Invertible 1×1 Convolutions
1x1卷积主要作用是通道融合。输入 x -> log-det1(变换) -> z -> log-det2(变换) -> x,则 log-det1 + log-det2 = 0,即相反数的关系。1x1的卷积操作,即一个点乘操作,一个矩阵操作。LU Decomposition(分解),L是下三角矩阵,U是上三角矩阵,复杂度从。Affine Coupling Layer,仿射耦合层,Jacobi矩阵是分块矩阵,左上角和右上角有关。函数和逆函数,以及对数行列式(对数似然的增量),NN是非线性变换(神经网络),原创 2023-04-06 15:03:55 · 560 阅读 · 0 评论 -
LLM - 第2版 ChatGLM2-6B (General Language Model) 的工程配置
ChatGLM2-6B 是开源中英双语对话模型的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上。ChatGLM以上来自于官网的介绍。原创 2023-06-28 22:00:56 · 1227 阅读 · 0 评论 -
LLM - Hugging Face 工程 BERT base model (uncased) 配置
BERT是一个在大量英文数据上以自监督的方式预训练的变换器模型。这意味着它只是在原始文本上进行预训练,没有人以任何方式对它们进行标注(这就是为什么它可以使用大量公开可用的数据),而是用一个自动的过程来从这些文本中生成输入和标签。uncased 表示不区分大小写。完成更新 5 个文件。原创 2023-06-26 16:28:43 · 1507 阅读 · 0 评论 -
Nothing
原创 2023-06-25 19:09:20 · 1376 阅读 · 0 评论 -
LLM - 基于 Vicuna-13B 参数计算搭建私有 ChatGPT 在线聊天
LLaMA 和 Vicuna 都是大语言模型LLM,两者的差异如下:LLaMA (Large Language Model Meta AI):开放和高效的基础语言模型,这是一系列从7B到65B参数的语言模型,使用公开可用的数据集进行训练,没有使用专有和无法获取的数据集。LLaMA-13B在大多数基准测试中超越了GPT-3 (175B),LLaMA-65B 与最好的模型 Chinchilla-70B 和 PaLM-540B 相当。原创 2023-06-20 17:47:38 · 1895 阅读 · 0 评论 -
LLM - ChatGLM-6B (General Language Model) 的工程配置
ChatGLM是通用的预训练语言模型(General Language Pretraining Model),基于自回归空格填充(Autoregressive Blank Infilling)的方法,可以兼容三种主流的预训练框架:自回归模型(如GPT)、自编码模型(如BERT)和编码器-解码器模型(如T5)。GLM 通过添加二维位置编码和允许任意顺序预测文本片段,提高了空格填充预训练的效果。同时,GLM可以通过调整空格的数量和长度,来适应不同类型的任务,包括自然语言理解、有条件和无条件的文本生成。原创 2023-06-29 08:49:29 · 2647 阅读 · 0 评论 -
RL - 强化学习 蒙特卡洛 (Monte-Carlo) 方法计算状态价值
蒙特卡洛方法是一种基于随机采样和统计的强化学习方法,用于估计值函数或优化策略,得名于摩纳哥的蒙特卡洛赌场,因为这种方法使用了大量的随机模拟。在蒙特卡洛方法中,智能体通过与环境的交互来学习,其基本思想是通过多次采样来估计状态或动作的值函数,并根据估计的值函数进行策略改进。在强化学习中,状态价值 (State Value) 是指在特定状态下,智能体能够从该状态开始执行一系列动作,并且按照某个策略进行决策,所能获得的期望累积回报。状态价值函数用于衡量状态的好坏程度,指导智能体在不同状态下,选择最优的行动。原创 2023-06-08 10:14:51 · 1148 阅读 · 0 评论 -
RL - 强化学习 马尔可夫决策过程 (MDP) 转换 马尔可夫奖励过程 (MRP)
MDP由5个元素组成:状态集合(S),动作集合(A),状态转移概率函数(P),奖励函数(R),以及折扣因子(γ)。马尔可夫决策过程(Markov Decision Process,MDP),在马尔可夫奖励过程(Markov Reward Process,MRP)的基础上,引入动作(Action),即。需要注意的是,从MRP转换回MDP是不可能的,因为MRP中没有动作和策略的概念。动作的价值,在某个状态,尽量使用价值最高的动作,类似自动驾驶中,碰见某类情况,使用最优的动作进行处理,因为动作价值最高。原创 2023-06-07 22:17:35 · 796 阅读 · 0 评论 -
RL - 强化学习 马尔可夫奖励过程 (MRP) 的状态价值
马尔可夫奖励过程 (MRP) 的状态价值是指在某个状态下,从该状态开始,按照某个策略执行动作所能获得的累积奖励的期望值。状态价值反映了状态的优劣,越高的状态价值意味着越好的长期收益。MRP 的状态价值可以通过贝尔曼方程递归地定义和计算。马尔可夫过程,即MRP,Markov Reward Process;而马尔可夫过程,即MDP,Markov Decision Process。原创 2023-06-07 11:51:12 · 673 阅读 · 0 评论 -
RL - 强化学习 上置信界算法 (UCB) 和 汤普森采样算法 (TS)
上置信界算法和汤普森采样算法是两种解决多臂老虎机问题的经典方法。多臂老虎机问题是一种探索与利用的平衡问题,即在有限的尝试次数内,如何选择最优的动作(拉动哪根拉杆)来最大化累积奖励。上置信界算法是一种基于置信区间的方法,根据每个动作的期望奖励和不确定性来计算一个上界,然后选择上界最大的动作。汤普森采样算法是一种基于贝叶斯推断的方法,根据每个动作的先验分布和观测数据来更新后验分布,然后,从后验分布中采样一个参数,再根据该参数选择最优的动作。这两种方法都能有效地平衡探索与利用,从而达到较低的累积懊悔。原创 2023-06-01 10:57:08 · 2161 阅读 · 0 评论 -
RL - 强化学习 Decaying Epsilon Greedy 算法解决多臂老虎机问题
Decaying Epsilon Greedy 算法是一种强化学习中的探索策略,可以平衡开发和探索之间的矛盾。基本思想是,以一个递减的概率 epsilon 随机选择一个动作,以 1-epsilon 的概率选择当前最优的动作。随着学习的进行,epsilon 逐渐减小,从而增加利用已知信息的机会,减少随机探索的次数。这种算法可以保证每个动作都有一定的概率被访问到,同时也可以收敛到最优策略。原创 2023-05-30 11:46:29 · 944 阅读 · 0 评论 -
PyTorch随笔 - Sequential 和 ModuleList 的简要介绍
Module Class,继承于torch.nn.Moduletrain()函数:train(mode=True),当前self.training=True,所有子模块children,都设置training=True,设置self.training参数,子类会使用training参数Dropout源码,Dropout -> _DropoutNd -> Module、BatchNorm源码,都使用training模式eval()函数:train(mode=Fale):当前模型的所有参数,modul原创 2022-07-04 14:58:35 · 281 阅读 · 0 评论 -
PyTorch随笔 - Autograd自动微分
论文:Automatic Differentiation in Machine Learning: a Survey,自动微分参考 PyTorch:AUTOMATIC DIFFERENTIATION WITH TORCH.AUTOGRADLoss是标量,雅可比向量积,JVP,primitive operation(原始操作):torch.autograd(),计算梯度使用梯度反向传播算法,back propagationbackward()是Tensor类的方法,loss是标量直接调用backward()原创 2022-07-05 10:12:56 · 260 阅读 · 0 评论 -
PyTorch随笔 - 优化模型参数 Model Parameters
参考:OPTIMIZING MODEL PARAMETERS梯度反向传播算法,更新参数SGD -> Adamdataset -> dataloader,train_dataloader训练,test_dataloader测试,迭代器模型继承Module类,,定义层,Flatten()展平,和Sequential(),有序的容器forward()函数,前向的计算,logits输出类别数,10个类别Hyperparameters,超参数,不参与优化,影响模型的效果Loss Function,损失函数、目标函数,原创 2022-07-06 20:38:15 · 678 阅读 · 0 评论 -
PyTorch随笔 - Automatic Differentiation 自动微分
面试题:区分函数的Automatic Differentiation(自动微分)、Manual Differentiation(手动微分)、Numerical Differentiation(数值微分),自动微分属于链式求导。自动微分属于,前向传播(forward)过程,计算函数值时,同时计算微分值。参考:Automatic Differentiation in Machine Learning a Survey不同的微分方法,对应关系如下:具体源码如下,可作为题目:输出:Paper:Automa原创 2022-07-07 10:17:40 · 381 阅读 · 0 评论 -
PyTorch随笔 - pytorch-image-models的class-map参数
调研pytorch-image-models的class-map参数被函数调用,即描述:class_map: specify class -> index mapping via text file or dict (folder)root: root folder of dataset (all) -> 即,数据集路径name: dataset name, empty is okay for folder based datasets,即dataset,数据集类型在函数中,作为ImageDataset原创 2022-07-07 11:11:24 · 856 阅读 · 0 评论 -
PyTorch随笔 - 存储和加载网络模型
面试问题:PyTorch的state_dict里面都包含什么?PyTorch有几种模型保存方式,checkpoint和其他方式有什么不同,一般都保存什么?SAVING AND LOADING MODELS FOR INFERENCE IN PYTORCH两种保存方式:Net继承于Module,初始化层,forward将层连接起来,输入x,实例化net = Net()调用优化器optim.SGD,第1个参数是模型的参数,net.parameters()函数,包含当前和子module的参数,带名称、epoch、原创 2022-07-13 09:23:05 · 638 阅读 · 0 评论 -
PyTorch笔记 - Dropout: A Simple Way to Prevent Neural Networks from Overfitting
面试:torch.nn的模块,包含很多layer,神经网络是核心模块,都是torch.nn的组合结合torch.nn源码,理解不同的API,同时包括经典论文Dropout Layers,除此之外,以函数的形式的dropout,torch.nn.functional.dropouttorch.nn.functional.dropout函数dropout中,有training参数,training控制是否需要使用dropoutdropout论文:Dropout: A Simple Way to Prev原创 2022-07-13 15:28:16 · 359 阅读 · 0 评论 -
PyTorch笔记 - R-Drop、Conv2d、3x3+1x1+identity算子融合
Point-wise Convolution:1x1卷积,不考虑周围点,只考虑点自身,channel mix,通道加权组合,类似MLP,不考虑局部关联性、平移不变形。Dropout在训练和推理时,存在不一致的问题,Dropout本质是集成学习(Ensemble Learning),推理使用与训练近似的方式,只保证期望相同。R-Dropout将每个子模型的KL散度最小,普遍有效,微调任务改进,每个训练样本输入2次,最小化双向KL散度。提升BatchSize,再切分成2份,可以降低训练成本,测试成本没有差异。原创 2022-07-19 11:57:58 · 1016 阅读 · 1 评论 -
CRAFT字符检测算法和SynthText合成文本数据集
工程:CRAFT-Reimplementation数据集:Syndata - SynthText,数据集比较大,大约40GPyTorch版本:Which version of python and CUDA is used ?下载PyTorch的CUDA10版本conda install pytorch==1.0.1 torchvision==0.2.2 cudatoolkit=10.0PyTorch的历史版本,找到cu100版本,下载torch-1.0.1-cp37-cp37m-linux.原创 2021-05-24 16:30:57 · 2845 阅读 · 5 评论 -
AI算法 - 视线估计算法的工程实践
视线估计算法ELG的工程实践,来源于 https://github.com/SpikeKing算法:ELG:Eye region Landmarks based Gaze Estimation,基于视线估计的眼睛区域关键点DPG:Deep Pictorial Gaze Estimation,深度图像视线估计Papers:ELG:Learning to find eye region landmarks for remote gaze estimation in unconstrained原创 2021-06-17 11:33:52 · 2958 阅读 · 4 评论 -
深入理解Character Region Awareness for Text Detection (CRAFT)
本文分析CRAFT最重要的网络结构和训练数据。其余参考:CRAFT字符检测算法和SynthText合成文本数据集CRAFT网络结构参考文件:craft.py逻辑代码:输入x,[1, 3, 1280, 960],即输入图像尺寸basenet是vgg16_bn,输出5个中间结果的特征图0: 1x1024x80x60,即缩放16倍1: 1x512x80x60,即缩放16倍2: 1x512x160x120,即缩放8倍3: 1x256x320x240,即缩放4倍4: 1x128x640x4原创 2021-07-06 15:55:51 · 794 阅读 · 0 评论 -
PyTorch笔记 - Generative Adversarial Networks 论文和源码
generative model = counterfeiters(假币制造商)、discriminative model = police(警察)使用L1和L2 Loss训练模型,识别网络真实照片或者假照片。生成网络,GAN,Generative Adversarial Network。GAN是网络框架,生成任务即可使用GAN,不限于CNN或者Transformer。GAN是生成对抗网络,DALL·E 2是扩散模型。(1) 更新判别器部分:提升。(2) 更新生成气部分:降低。原创 2023-03-13 17:21:42 · 291 阅读 · 0 评论