自然语言处理
文章平均质量分 79
余俊晖
余俊晖,NLP炼丹师,目前专注自然语言处理领域研究。曾获得国内外自然语言处理算法竞赛TOP奖项近二十项。
展开
-
【LLM & RAG】RAFT:垂域知识微调LLM提升RAG表现
本文主要记录了RAFT方法如何构造训练数据,微调LLM提高对垂域知识的适应性,为大型语言模型在特定领域内的应用提供了一种有效的提升途径。原创 2024-03-30 15:16:57 · 1013 阅读 · 0 评论 -
【文档智能 & LLM】LayoutLLM:一种多模态文档布局模型和大模型结合的框架
传统的文档理解任务,通常的做法是先经过预训练,然后微调相应的下游任务及数据集,如文档图像分类和信息提取等,通过结合图像、文本和布局结构的预训练知识来增强文档理解。LayoutLLM是一种结合了大模型和视觉文档理解技术的单模型方法,通过多模态指令数据集的微调来提高对图像文档的理解和分析能力。本文介绍了一种传统布局模型结合大模型做文档理解的方法:LayoutLLM。这个框架通过结合VrDU编码器来捕捉文档图像的特征,以及使用LLM作为解码器来处理任务指令,有效地提高了对文档图像的理解和分析能力。原创 2024-03-24 11:39:11 · 946 阅读 · 0 评论 -
【LLM】LongRoPE:LLM上下文窗口扩展方法及非官方实现
目前,大多数LLMs的上下文窗口限制在4k个标记左右,这意味着模型在处理超过这个长度的文本时性能会下降。新位置索引的未训练引入了许多灾难性值,导致分布外问题,使得微调难以收敛。微调通常需要相应长度的文本。然而,当前数据集中特别是超过1000k的长文本非常有限。此外,对超长文本进行训练计算成本高昂,需要大量的训练时间和GPU资源。当扩展到极长的上下文窗口时,注意力会变得分散,因为它需要在大量的标记位置上进行分配,这会降低模型在原始短上下文上的性能。原创 2024-03-23 21:10:38 · 960 阅读 · 0 评论 -
【文档智能】再谈基于Transformer架构的文档智能理解方法论和相关数据集
文档的智能解析与理解成为为知识管理的关键环节。特别是在处理扫描文档时,如何有效地理解和提取表单信息,成为了一个具有挑战性的问题。扫描文档的复杂性,包括其结构的多样性、非文本元素的融合以及手写与印刷内容的混合,都为自动化处理带来了难题。本文记录了基于Transformer架构的文档理解模型常见方法和相关数据集。文档理解本质上是一个序列标注任务,类似于命名实体识别(NER),通常被称为关键信息提取(KIE)。原创 2024-03-09 16:10:46 · 1005 阅读 · 0 评论 -
【LLM & RAG】GritLM:统一嵌入和生成的大语言模型浅谈
目前,所有基于文本的语言问题都可以归结为生成问题,并通过单一的LLM来处理。然而,使用嵌入的任务(如聚类或检索)在这种视角下往往被忽视了。文本嵌入在许多关键的实际应用中扮演着重要角色。如RAG,在向量表征时,通过一些表征模型如:BGE、BCE等进行嵌入。因此,当前的方法在处理生成任务和嵌入任务时通常是分开的,这导致了效率和性能的损失。本文提出了GRIT(Generative Representational Instruction Tuning),这是一种统一嵌入和生成任务的方法。原创 2024-03-01 18:52:14 · 1308 阅读 · 0 评论 -
多模态大型语言模型综述
这篇论文《The ®Evolution of Multimodal Large Language Models: A Survey》提供了对多模态大型语言模型(MLLMs)领域的全面回顾。引言:介绍了MLLMs的重要性,它们通过整合视觉和文本模态,提供了基于对话的接口和遵循指令的能力。论文强调了在这一领域进行研究的重要性,并概述了研究的三个核心方面:模型架构、训练方法和任务设计。赋予LLMs多模态能力。原创 2024-02-21 15:15:22 · 1055 阅读 · 0 评论 -
TOP RAG痛点思考及解决方案
幻觉和捏造指的是在大型语言模型(LLM)中,特别是在生成文本时,模型可能会产生虚构(hallucination)或捏造(fabrication)信息的问题。在大型语言模型中,个性化意味着模型需要能够理解并适应每个用户的特定需求,这在技术上可能非常复杂,因为需要处理大量的个性化数据,并且确保隐私和数据安全。这些因素都可能影响用户的真实意图和所需信息的类型。:经过投毒训练的模型可能会在实际应用中产生预期之外的行为,比如在图像识别中错误地分类图像,或者在自然语言处理中生成带有偏见或误导性的内容。原创 2024-02-06 08:53:59 · 703 阅读 · 0 评论 -
【LLM & KBQA】FlexKBQA:一种结合LLM的KBQA框架
直接生成答案:一些方法直接利用LLMs生成答案,而不是生成中间的程序(如SPARQL查询)。这种方法通常依赖于模型的上下文学习能力,通过提供少量的示例(in-context learning)来引导模型理解问题并生成答案。程序生成:在某些情况下,LLMs被用来直接生成执行查询的程序,例如SPARQL查询。这种方法需要模型理解问题的结构,并能够将自然语言问题转换为有效的查询语言。语义解析:LLMs也被用于将自然语言问题映射到结构化的查询表示,如SPARQL。原创 2024-02-03 11:35:58 · 778 阅读 · 0 评论 -
【LLM推理】Lookahead:一种无损推理加速机制
Lookahead框架的核心思想是利用多分支策略和Trie树结构来加速推理过程:多分支策略:传统的自回归模型逐个生成下一个词,而Lookahead框架通过并行生成多个分支(即多个可能的词序列),然后通过验证和接受(Verification and Accept, VA)过程来确定最终的输出。这种方法允许模型在每个推理步骤中生成更多的词,从而提高整体的推理速度。Trie树:在Lookahead框架中,Trie树用于记录输入和输出的词列表,使得模型能够基于上下文预测多条路径。原创 2024-01-27 10:15:42 · 1521 阅读 · 0 评论 -
【LLM】FuseLLM:大模型融合trick-知识融合LLMs
传统的模型融合方法分为集成的方法和权重合并的方法,这两种方法在以往的NLP的比赛中非常常见,是一种提分手段。然而,上述两种方法都需要预训练或者微调相应的模型。在大模型场景下,对每个源模型都进行初始化成本太高,为了减少初始化源LLM的成本,使集成后的模型受益于所有源LLMs的优势。因此,本文介绍了一种知识融合的方法用来进行大模型的融合。FUSELLM提供了一种LLMs的集成方法,为大模型融合提供了一个trick,或许未来LLM比赛爆发的时候,最后大家涨分涨不动了,可以考虑下试一试这个trick。原创 2024-01-25 21:02:31 · 1089 阅读 · 0 评论 -
【LLM问答】两阶段的对话式问答模型ChatQA思路和兼看两阶段的RAG知识问答引擎QAnything
ChatQA:这篇文章的两阶段微调的ChatQA模型,对于对话式问答任务,特别是处理长文档和需要检索的上下文时对话时,能够达到或超过GPT-4的性能水平。QAnything:介绍了基于微调的Qwen-7b,两阶段的RAG知识库问答引擎 QAnything,支撑任意格式的文档数据私有化进行知识问答。原创 2024-01-20 21:47:15 · 1407 阅读 · 0 评论 -
vLLM部署推理及相关重要参数
vLLM部署推理及相关重要参数原创 2024-01-04 18:10:08 · 2010 阅读 · 1 评论 -
【LLM】一种经过指令微调的文本嵌入模型
引入了 INSTRUCTOR,一种计算给定任务指令的文本嵌入的新方法:每个文本输入都与解释用例的指令(例如任务和域描述)嵌入在一起。与之前工作中更专业的编码器不同,INSTRUCTOR 是一个单一的嵌入器,可以生成针对不同下游任务和领域的文本嵌入,无需任何进一步的培训。首先对 330 个不同任务的指令进行注释,并在这种多任务混合上使用对比损失来训练 INSTRUCTOR。原创 2024-01-02 22:44:53 · 448 阅读 · 0 评论 -
【qwen】DeepSpeed Zero-3 is not compatible with `low_cpu_mem_usage=True` or with passing a `device_map
DeepSpeed Zero-3的核心功能就是在显存不足的情况下,使用CPU内存。原创 2023-12-28 17:22:00 · 811 阅读 · 0 评论 -
【预处理】大模型下开源文档解析工具总结及技术思考
本文介绍了一些常见的文档解析工具和实现方法以及文本分割模型在文档解析中的充当的角色,并提供了相关技术实现思路。当然,如果粗糙的进行文档处理也是可以的,常见的有,基于LangChain的文档处理方式,但其底层技术很多都是上述文档parser工具的集成。在面对复杂文档,解析时还是存在一定的困难,基于布局的多模态版面分析是值得研究的点。虽然目前百模支撑的上下文长度能cover一本书的长度,但真正落地实施起来效果一般。原创 2023-12-18 16:38:24 · 1109 阅读 · 0 评论 -
【LM、LLM】浅尝二叉树在前馈神经网络上的应用
随着大模型的发展,模型参数量暴涨,以Transformer的为组成成分的隐藏神经元数量增长的越来越多。因此,降低前馈层的推理成本逐渐进入视野。前段时间看到本文介绍的相关工作还是MNIST数据集上的实验,现在这个工作推进到BERT上面来了,再次引起兴趣记录一下。该工作将前馈神经基于二叉树结构进行改装,加速前向传播的速度,称为:快速前馈网络(FFF),然后应用FFF,取代BERT中的前馈网络(FF),实现12个神经元加速推理。原创 2023-11-24 09:12:54 · 458 阅读 · 0 评论 -
讯飞AI算法挑战大赛-校招简历信息完整性检测挑战赛-三等奖方案
本文公开了”讯飞AI算法挑战大赛-校招简历信息完整性检测挑战赛“赛道的技术方案,本次比赛主要采用pdf解析和特征工程的方法,通过使用lightgbm的树模型10折交叉验证进行二分类的任务,最终取得三等奖的成绩。本次比赛主要采用pdf解析和特征工程的方法,通过使用lightgbm的树模型10折交叉验证进行二分类的任务。原创 2023-11-07 10:07:00 · 431 阅读 · 1 评论 -
【LLM】浅谈 StreamingLLM中的attention sink和sink token
本文介绍了关于 StreamingLLM中提到的关于attention sinks和sink token的原理。在原文中提到,通过引入“attention sinks”与最近的令牌配对,能够高效地处理长度达 4 百万令牌的文本。还通过使用具有专门的 sink token 的预训练模型,以此提高流式应用部署的性能。原创 2023-10-15 17:58:28 · 478 阅读 · 0 评论 -
【文档智能】多模态预训练模型及相关数据集汇总
大模型时代,在现实场景中或者企业私域数据中,大多数数据都以文档的形式存在,如何更好的解析获取文档数据显得尤为重要。文档智能也从以前的目标检测(版面分析)阶段转向多模态预训练阶段,本文将介绍目前一些前沿的多模态预训练模型及相关数据集。本文简单介绍了文档智能领域关于多模态预训练语言模型相关内容及相关数据集,相对于基于目标检测(版面分析)的pipline形式,多模态预训练模型能够一定程度的实现端到端的提取文本内容。但实际应用还需要根据特定的场景进行进一步的研究。原创 2023-10-15 17:54:24 · 691 阅读 · 0 评论 -
【文档智能】:GeoLayoutLM:一种用于视觉信息提取(VIE)的预训练模型
文章介绍了一种用于视觉信息提取(VIE)的预训练模型:GeoLayoutLM。GeoLayoutLM通过显式建模几何关系和特殊的预训练任务来提高文本和布局的特征表示。该模型能够提高文档信息抽取的性能。该文章提出GeoLayoutLM,一个用于VIE的几何预训练框架。定义了三种不同层次的几何关系:GeoPair、GeoMPair和GeoTriplet。相应地,引入了三个专门设计的预训练目标来明确地建模几何关系。相较于LayoutLMv3,在关系抽取上取得了非常好的性能,为文档智能的布局理解提供了新的思路。原创 2023-09-29 10:59:02 · 534 阅读 · 0 评论 -
多模态知识学习
大模型时代来临,多模态知识学习的作用或更凸显;不仅需要丰富的想象,也需要严谨的推理,这有赖于多模态知识与大模型的进一步结合;为什么需要多模态信息的结构化表达?采用图结构规范表达目标及其关联。如何实现多模态信息的结构化表达?任务2:多模态关系学习,任务1:多模态实体表征。原创 2023-08-27 16:12:35 · 326 阅读 · 0 评论 -
可插拔训练加速trick-Scaling PyTorch Model Training With Minimal Code Changes
可插拔训练加速trick-Scaling PyTorch Model Training With Minimal Code Changes。原创 2023-08-16 20:53:28 · 493 阅读 · 0 评论 -
大语言模型控制生成的过程Trick:自定义LogitsProcessor实践
在大模型的生成过程中,部分原生的大语言模型未经过特殊的对齐训练,往往会“胡说八道”的生成一些敏感词语等用户不想生成的词语,最简单粗暴的方式就是在大模型生成的文本之后,添加敏感词库等规则手段进行敏感词过滤,但是在生成过程中,生成敏感词仍然耗费了时间和算力成本。本文以chatglm2-6B为例,通过自定义,实践大模型在生成过程中控制一些词语的生成。回到正题,如何自定义LogitsProcessor控制大模型生成的过程呢?原创 2023-08-13 14:17:54 · 2201 阅读 · 0 评论 -
浅谈LLAMA2核心函数generate源码
本文介绍了Temperature以及sample_top_p的原理,并且阅读了LLAMA2的核心生成函数的源码。关于更多细节实现,请关注llama源码。原创 2023-08-12 13:55:49 · 1583 阅读 · 0 评论 -
LLaMA长度外推高性价比trick:线性插值法及相关改进源码阅读及相关记录
最近,开源了可商用的llama2,支持长度相比llama1的1024,拓展到了4096长度,然而,相比GPT-4、Claude-2等支持的长度,llama的长度外推显得尤为重要,本文记录了三种网络开源的RoPE改进方式及相关源码的阅读。关于长度外推性:https://kexue.fm/archives/9431关于RoPE:https://kexue.fm/archives/8265。原创 2023-08-10 21:32:49 · 2116 阅读 · 2 评论 -
CCF大数据与计算智能大赛-基于人工智能的漏洞数据分类冠军方案
本文提出一种多任务文本分类算法,通过共享BERT embedding,设计多任务的损失函数,端到端的解决漏洞数据分类问题。最后通过大量的实验及相关模型优化,最终获得本次大赛冠军。原创 2023-05-17 12:09:38 · 1080 阅读 · 0 评论 -
文本分类(朴素贝叶斯算法)
一、贝叶斯定理引入1、朴素贝叶斯: 朴素贝叶斯中的朴素一词的来源就是假设各特征之间相互独立。这一假设使得朴素贝叶斯算法变得简单,但有时会牺牲一定的分类准确率。2、贝叶斯公式:3、换成分类任务的表达式 那么我们最终求的p(类别|特征)即可!就相当于完成了我们的任务。二、数据集介绍1、原始数据集2、测试数据集 为了减少任务量,测试数据集为自己在原始数据集上打乱后所得。三、文本分类步骤四、TF-IDF逆文本频率指数概念 TF-IDF(term frequency–inv原创 2020-08-28 17:58:05 · 4035 阅读 · 1 评论 -
中文分词并字典化
一、数据集准备二、代码实现import csvimport fnmatchimport osimport refrom collections import OrderedDictimport jiebatext_list = []def word_frequency_analysis(path): # print("111") files = os.listdir(path) # files为列表,存储的是path里面的所有文件名 for filena原创 2020-08-29 17:34:23 · 543 阅读 · 0 评论 -
HMM(隐马尔可夫)中文分词
一、隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model,HMM)是用来描述一个含有隐含未知参数的马尔可夫过程。1、举例理解 假设我手里有三个不同的骰子。第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6。第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4。第三个骰子有八个面(称这个骰子为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。 假设我们开始掷骰子,我们先原创 2020-09-19 10:52:39 · 5932 阅读 · 3 评论 -
TF-IDF算法和余弦相似度算法计算文本相似度(纯手撕)
一、TF-IDF算法 TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。 TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。 TF-IDF的主要思想是:如果某个单词在一篇文章中原创 2020-09-06 12:05:26 · 8499 阅读 · 4 评论 -
正向最大匹配算法(中文分词)
一、最大匹配法 最大匹配是指以词典为依据,取词典中最长单词为第一个次取字数量的扫描串,在词典中进行扫描(为提升扫描效率,还可以跟据字数多少设计多个字典,然后根据字数分别从不同字典中进行扫描)。最大匹配算法有三种: 1、正向最大匹配 2、逆向最大匹配 3、双向匹配 三种算法原理都一样,以正向为例,是从前向后扫描的过程。如下:二、使用北大训练集实现正向最大匹配1、数据集(从中选取北大的训练集)2、代码实现# -*- coding: utf-8 -*-"""@au原创 2020-08-30 17:49:42 · 13670 阅读 · 1 评论 -
中文文本时间抽取、解析及标准化工具
中文文本时间抽取、解析及标准化工具。原创 2022-10-28 15:05:09 · 541 阅读 · 0 评论 -
KBQA的主要流程及部分Top竞赛方案总结
给定自然语言问题,通过对问题进行语义理解和解析,进而利用知识库进行查询、推理得出答案主要是面向开放领域的知识图谱的问答。通过分词、主题实体提及识别、实体连接关系识别、语义匹配、启发式答案选择的Pipeline方式构建问答系统,该系统最多能解决两跳(two-hop)的问题。原创 2022-09-28 21:46:21 · 1878 阅读 · 0 评论 -
浅尝KBQA中使用语义角色标注进行约束挂载
语义角色标注是一种浅层语义分析技术,以句子为单位,分析句子的谓词-论元结构,其理论基础来源于Fillmore(1968)年提出的格语法,不对句子所包含的语义信息进行深入分析。具体来说,语义角色标注的任务就是以句子的谓词为中心,研究句子中各成分与谓词之间的关系,并且用语义角色来描述他们之间的关系。例如如下所示:A0:施事者、主体、触发者A1:受事者PSR:持有者PSE:被持有者。原创 2022-09-19 15:04:27 · 243 阅读 · 0 评论 -
浅尝prompt咒语设计:one-shot微调chatglm-6b实践信息抽取
近期以chatgpt等文生成LLMS爆火,国内也逐渐开源了中文版的chatgpt,本文以清华大学开源的6b的chatglm为例,实践one-shot微调,设计prompt咒语在信息抽取领域的实验效果。本文通过one-shot微调chatglm-6b在信息抽取领域上的实验,输出效果还可以,当然如果有资源微调更大参数量的LLMS。原创 2023-03-26 20:01:17 · 6137 阅读 · 4 评论 -
Path-Ranking:KBQA中path生成、召回、粗排与精排
通过实体链接获取到了问题中的实体,路径生成则是从实体出发,遍历KG,生成所有可能的答案路径,在过程中对路径进行剪枝。原创 2022-09-27 11:54:16 · 524 阅读 · 0 评论 -
基于深度学习的KBQA方法(Joint)pipline改进思考(二)
在span片段识别的ner模型时,模型的span是枚举query产生的,如:姚明的老婆是谁?此时,可以将所有的候选属性当作是训练RE网络的样本,训练仍然是。这样的优势就是只需训练一个BERT模型即可,也能减少推理速度。在知识库中查询答案时返回top1的属性对应的答案即可。在成功识别出“姚明”这个实体后,我们可以通过。因此,端到端的联合模型显得就很有必要了。:“1”或“0”,将所有候选输入经过“”损失函数即可拿到所有候选属性的。公众号:自然语言处理及深度学习。中召回所有与“姚明”相关的。原创 2022-09-28 21:40:16 · 383 阅读 · 0 评论 -
第四届“中国法研杯”司法人工智能挑战赛-刑期预测赛道三等奖方案
本文将回顾第四届“中国法研杯”司法人工智能挑战赛-刑期预测算法赛道比赛。使用多任务预训练、然后进行微调的形式最终在比赛中取得了三等奖的成绩。原创 2023-05-18 14:50:03 · 1068 阅读 · 1 评论 -
基于深度学习的KBQA方法(pipline)的一些思考(一)
介绍:链式:SPARQL 多个三元组呈递进关系,x->y->z,非交集关系。分类模型:BERT+Linear,使用分类模对query中的关系做预测。因此,针对不同的问题类型在逻辑上进行处理也是回答问句的方向。获得问句中的实体:姚明。问句的答案对应三元组里面的主语,spo=0。问句的答案对应三元组里面的谓语,spo=1。问句的答案对应三元组里面的宾语,spo=2。模型:BERT+Linear对query。作用:判断问句是单挑问题还是多跳问题。模型:BERT+Linear。模型:BERT+Linear。原创 2022-09-17 14:58:28 · 609 阅读 · 0 评论 -
给BERT补充其他特征的编码器实践
特征工程是传统的机器学习基石,然而,随着BERT等预训练语言模型的发展,文本语义表示得到了极大的改善,本文将实践一种多特征编码器。原创 2023-03-01 10:18:29 · 419 阅读 · 0 评论