- 博客(97)
- 收藏
- 关注

原创 从深度学习到大模型(从理论到代码)
博主在学习过程中发现只读论文还是有些抽象,具体方法如何实现并没有实际操作过,但是不同模型有不同仓库、依赖。本仓库将博主学习过的模型集成在一个仓库中,只需修改配置,便可以快速训练自己的模型。模型实现参考了现有的开源项目,如有需要引用原项目代码处,@博主立马纠正。
2025-03-26 11:14:50
318
原创 语音量化:解决音频合成难题的关键技术
由于音频通常以16位整数值序列的形式存储,因此需要一个生成模型来输出每个时间步长的2^16=65,536个概率,以合成原始音频。此外,超过一万的采样率导致序列长度异常长,使得原始音频合成更加困难。问题1:生成模型来输出每个时间步长的2^16=65,536个概率过长。解决方法:µ律变换可以将每个时间步长量化为256个值问题2:超过一万的采样率导致序列长度异常长。解决方法:音频编解码器,例:EnCodec。
2025-05-20 16:16:34
117
原创 MFCC特征提取及Griffin-Lim算法(librosa实现)
进入melspectrogram函数可以看到S的计算过程,对应stft和幅值的平方计算。melspectrogram:根据名字可知mel语谱图。当S存在,接下来的步骤就到了离散余弦变换(DCT)步。power_to_db:显然就是对数功率的步骤。给出声谱图,还原音频。
2025-05-12 14:36:41
323
原创 正余弦位置编码和RoPE位置编码
为每个位置赋予独一无二的编码向量,来明确表示输入序列中每个元素的绝对位置。像 BERT 中采用的正弦余弦位置编码,会根据位置索引,利用特定的正弦和余弦函数计算出对应位置向量的每个维度值。位置pos在维度2i的值是sinpos/100002idmodel,在维度2i1的值是cospos/100002idmodel,其中dmodel是模型维度。这种编码方式让模型可以直接学习到每个位置对应的特征表示。
2025-04-24 14:33:19
579
原创 【论文速读】ViT:AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
论文地址:2010.11929v2。
2025-04-17 10:52:26
171
原创 提示工程指南学习记录(四)
我们没有向模型提供任何示例——这就是零样本能力的作用。指令调整已被证明可以改善零样本学习Wei等人(2022)。指令调整本质上是在通过指令描述的数据集上微调模型的概念。此外,RLHF(来自人类反馈的强化学习)已被采用以扩展指令调整,其中模型被调整以更好地适应人类偏好。当零样本不起作用时,建议在提示中提供演示或示例,这就引出了少样本提示。
2025-04-14 14:46:23
329
原创 提示工程指南学习记录(三)
你给出了对文本进行分类的指令,模型以’Neutral’回应,这是正确的。这没有问题,但假设你真正需要的是让模型以你希望的确切格式给出标签。因此,你希望它返回的是neutral而不是Neutral。在这里,你关心的是具体性,所以你给提示词提供的信息越多,结果就越好。到目前为止,你已经使用了简单的指令来执行任务。作为提示词工程师,你需要更擅长提供更好的指令。你还会发现,在更困难的用例中,仅仅提供指令是不够的。这就是你需要更多考虑上下文和其他元素(在提示词中使用)的地方。你可以提供的其他元素包括输入数据或示例。
2025-04-14 14:21:22
342
原创 提示工程指南学习记录(二)
如果您接触过大量提示工程相关的示例和应用,您会注意到提示词是由一些要素组成的。提示词可以包含以下任意要素:指令:想要模型执行的特定任务或指令。上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应。输入数据:用户输入的内容或问题。输出指示:指定输出的类型或格式。为了更好地演示提示词要素,下面是一个简单的提示,旨在完成文本分类任务:提示词在上面的提示示例中,指令是“将文本分类为中性、否定或肯定”。输入数据是“我认为食物还可以”部分,使用的输出指示是“情绪:”。
2025-04-14 13:59:34
831
原创 提示工程指南学习记录(一)
如果您希望模型生成多样化或创造性的文本,您可以设置更高的 presence penalty,如果您希望模型生成更专注的内容,您可以设置更低的 presence penalty。Frequency Penalty:frequency penalty 是对下一个生成的 token 进行惩罚,这个惩罚和 token 在响应和提示中已出现的次数成比例, frequency penalty 越高,某个词再次出现的可能性就越小,这个设置通过给 重复数量多的 Token 设置更高的惩罚来减少响应中单词的重复。
2025-04-14 11:43:44
571
原创 变分边界详解
当时看VAE论文时有这么一段,但是看完直接一头雾水,这都那跟哪,第一个公式咋做的变换就变出那么一堆。网上搜了很多博客都语焉不详,只好自己来写一篇,希望能解答后来人的疑惑。推导公式1:(引入一个隐变量z,z可以想象成VAE编码器计算出来的均值和方差的随机变量,对应分布q(z))第一种理解同上,可以结合VAE模型理解他的解释,这个解释比较抽象。DK >= 0证明结果如下,写的不清楚请参考其他博客,证明很多,实在懒得敲了见谅。计算结果如下,写的不清楚请参考其他博客,证明很多,实在懒得敲了见谅。
2025-02-13 15:18:10
986
原创 【Torch踩坑】Transformer模型加入softmax不收敛问题
当我训练transformer模型时,发现loss一直无法收敛,当我注释掉softmax时,loss得以收敛。但是再论文中最后输出是需要softmax的。
2024-11-25 13:46:06
328
原创 【论文速读】BPE算法
在NLP 中,2015年Sennrich 通过论文Neural Machine Translation of Rare Words with Subword Units将这个算法使用在生成Tokenizer的词表上,做法是先将每个文本词(Word)拆分成 Char粒度的字母序列,然后通过迭代地合并最频繁出现的字符或字符序列来实现生成Tokenizer最终词表的过程。4.统计每一个连续字节对的出现频率,选择最高频的字符对合并成新的subword;1.准备足够大的训练语料,确定期望的subword词表大小;
2024-10-23 16:18:09
545
原创 【Python技巧】超好用的python标准库——pathlib
以上都是比较常用的操作,更多操作请看官方文档,作对比后个人感觉确实比os操作简便很多。
2024-10-17 17:04:14
303
原创 Torch常用函数
kernel_size(int or tuple) - 卷积核的尺寸,卷积核的大小为(k,),第二个维度是由in_channels来决定的,所以实际上卷积大小为kernel_size*in_channels。当输入是一个多维张量时,返回的是同等维度的张量并且最后两个维度的下三角矩阵的。nn.Parameter的对象的requires_grad属性的默认值是True,即是可被训练的,这与torth.Tensor对象的默认值相反。unsqueeze(1):扩容一个维度为1的维度(3,2)→(3,1,2)
2024-10-16 15:27:08
1380
原创 大模型微调
基于离散提示方法 [238, 239],它通过包含一组软提示 token(以自由形式 [236] 或前缀形式 [230])来扩充输入文本,然后将扩充后的输入用于解决特定的下游任务。在上文中,我们讨论了指令微调和对齐微调的方法,以使 LLM适应特定的目标。但是, 这些模型有时可能表现出预期之外的行为,例如编造虚假信息、追求不准确的目标,以及产生有害的、误导性的和有偏见的表达。但是, 这些模型有时可能表现出预期之外的行为,例如编造虚假信息、追求不准确的目标,以及产生有害的、误导性的和有偏见的表达。
2024-10-14 11:15:50
1770
原创 【论文速读】LoRA:Low-rank adaptation of large language models
自然语言处理的一个重要范例包括对一般领域数据进行大规模的预训练和对特定任务或领域的适应。当我们对更大的模型进行预训练时,重新训练所有模型参数的完全微调就变得不那么可行了。以GPT-3 175B为例——部署微调模型的独立实例,每个模型都有175B参数,这是非常昂贵的。我们提出了Low-Rank Adaptation,或称LoRA,它冻结了预先训练的模型权值,并将可训练的秩分解矩阵注入变压器架构的每一层,大大减少了下游任务的可训练参数的数量。
2024-10-14 11:12:02
1013
原创 【论文速读】P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales andTasks
提示调优),即只使用冻结的语言模型来调优连续的提示,它大大减少了训练中每个任务的存储和内存使用。然而,在NLU的背景下,先前的工作表明,提示调优对于正常大小的预训练模型表现不佳。我们还发现,现有的提示调优方法不能处理硬序列标记任务,这表明缺乏通用性。我们提出了一个新的经验发现,即适当优化的提示调优可以在广泛的模型尺度和NLU任务中普遍有效。它与微调的性能相匹配,而只有0.1%-3%的调整参数。
2024-10-14 11:08:55
716
原创 【论文速读】P-Tuning:GPT Understands, Too
用自然语言模式Prompting(提示)预先训练的语言模型已被证明对自然语言理解(NLU)是有效的。然而,我们的初步研究表明,手动离散prompts(提示)往往会导致性能不稳定——例如,在提示中改变一个单词可能会导致性能的显著下降。我们提出了一种新的P-Tuning微调方法,该方法采用了可训练的连续prompt(提示)embeddings与离散prompts连接。
2024-10-14 11:08:11
1310
原创 【论文速读】Prompt Tuning:The Power of Scale for Parameter-Effificient Prompt Tuning
在这项工作中,我们探索了“prompt tuning(提示调优)”,这是一种简单而有效的机制,用于学习“soft prompts(软提示)”,以条件下冻结的语言模型来执行特定的下游任务。**与GPT-3使用的离散文本提示不同,软提示是通过反向传播来学习的,并且可以进行调优,以合并来自任意数量的标记示例的信号。**我们的端到端学习方法比GPT-3的少量镜头学习效果更好。
2024-10-14 11:07:17
1138
原创 【论文速读】Prefix-Tuning: Optimizing Continuous Prompts for Generation
微调实际上是利用大型预训练过的语言模型来执行下游任务的一种方法。但是,它会修改所有的语言模型参数,因此需要为每个任务存储一个完整的副本。在本文中,我们提出了Prefix-Tuning(前缀调优),这是一种针对自然语言生成任务的轻量级替代方法,它可以保持语言模型参数冻结,但优化了一个连续特定任务的小向量(称为前缀)。前缀调优从prompting(提示)中获得灵感,允许后续的令牌像关注“虚拟令牌”一样关注这个前缀。
2024-10-14 10:37:06
1459
原创 【论文速读】Adapter tuning:Parameter-Effificient Transfer Learning for NLP
对大型预训练模型进行微调是自然语言处理中一种有效的传递机制。然而,在存在许多下游任务的情况下,微调是参数效率较低的:每个任务都需要一个全新的模型。**作为一种替代方案,我们建议使用适配器模块进行传输。适配器模块产生一个紧凑和可扩展的模型;它们每个任务只添加一些可训练参数,可以添加新的任务而无需重新访问以前的任务。原网络的参数保持不变,产生了高度的参数共享。**为了证明适配器的有效性,我们将最近提出的BERT变压器模型转移到26个不同的文本分类任务中,包括GLUE基准测试。
2024-10-14 10:34:49
1195
原创 【论文速读】DDIM:DENOISING DIFFUSION IMPLICIT MODELS
因为DDPM是遵循马尔可夫过程的,下一时刻状态取决上一时刻状态。DDIM经过变换后,让前向加噪过程成立的同时,去噪过程可以不遵循马尔可夫过程,将T=1000的序列,采样L序列(远小于T),加速推理。
2024-09-29 10:27:11
386
原创 UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0x81 in position 1224: ordinal not in range(128)
博主拿到了python2的代码,想改成python3读取pickle文件中的内容,遇到编码问题。添加encoding=“iso-8859-1”
2024-09-25 15:10:38
283
原创 Poetry超好用python依赖、包管理工具
Poetry 用一个pyproject.toml 代替 setup.py, requirements.txt, setup.cfg, MANIFEST.in and Pipfile文件。用过vue的肯定看上去会无比熟悉,类似于package.json文件。
2024-09-20 10:50:50
432
原创 【论文速读】DDPM:Denoising Diffusion Probabilistic Models
是一个常量可以忽略。为什么要再加一个噪音暂时没懂。,T长度通常设置为1000。是给定好的一组序列,
2024-09-12 15:00:03
354
原创 Agent探索之OpenAI方式调用本地模型(one-api)
OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用. OpenAI key management & redistribution system, using a single API for all LLMs, and features an
2024-09-10 15:46:04
1007
原创 Agent探索之本地大模型推理(Xinference)
Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过 Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,都可以通过 Xorbits Inference 与最前沿的 AI 模型,发掘更多可能。
2024-09-10 15:15:32
556
原创 semantic-kernel调用huggingface本地模型
semantic-kernel主要支持OpenAI和Azure OpenAI,由于国内原因无法使用。想调用本地模型发现资料很少,遂有下文:示例不全,想快速上手推荐直接看仓库代码官方文档:https://learn.microsoft.com/zh-cn/semantic-kernel/get-started/quick-start-guide?下文来自源码库中示例:07-hugging-face-for-plugins.ipynb。
2024-08-07 14:28:33
809
原创 torchaudio.load() 和 librosa.load() 的返回值区别
之前都在使用librosa加载音频数据,今天看到一段代码是用torchaudio加载的音频,发现torchaudio加载的数据和librosa返回的结果不一致。
2024-06-26 16:44:37
1337
2
原创 【论文速读】GPT-1:Improving Language Understanding by Generative Pre-Training
自然语言理解包括广泛的不同的任务,如文本隐含、问题回答、语义相似性评估和文档分类。虽然大量的未标记文本语料库非常丰富,但用于学习这些特定任务的标记数据非常稀缺,这使得经过区别训练的模型要充分执行任务具有挑战性。我们证明,通过在不同的未标记文本语料库上对语言模型进行生成式预训练,然后对每个特定任务进行区分性微调,可以实现这些任务上的巨大收益。
2024-05-25 17:09:01
1139
原创 【论文速读】Transformer:Attention Is All You Need
我们提出了一种新的简单的网络架构,Transformer,完全基于注意力机制,完全取消RNN和CNN。在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时更并行,需要的训练时间明显更少。
2024-05-25 09:44:35
1144
原创 大模型都在用的GQA是什么
Multi-query attention(MQA)只使用一个键值头,大大加快了解码器推理。然而,MQA可能导致质量下降,而且不为了更快的推断而训练一个单独的模型。我们提出了一个方法,将现有的多头语言模型检查点升级成MQA模型,引入分组查询注意(GQA),一种多查询注意的泛化,使用一个中间(多于一个,少于查询头数量)的键值头。我们表明,向上训练的GQA以接近MQA的速度达到接近多头注意力的质量。MHA(Multi-head Attention)是Google团队在 2017 年在。
2024-05-12 20:03:28
1685
1
原创 【全网首发】大模型入门、概念详解、综述
学完上面两篇论文,对NLP应该已经有了一定认知,接下来需要对每一篇文章逐篇学习。相信你学完后,对大模型有更加全面的认知。下面这两篇文章总结的非常到位,只想入门的小伙伴大力推荐。
2024-05-12 18:39:38
1327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人