论文阅读 | DeepSeek-VL: Towards Real-World Vision-Language Understanding

DeepSeek-VL: Towards Real-World Vision-Language Understanding 0. Abstract 本文的主要贡献: 数据集构建:构建了具有多样性和可扩展性,广泛覆盖真实世界场景的数据集。包括网页截图、PDF文档、OCR文本、图表以及知识型内容(如专家知识、教科书)等。此外,根据真实用户场景将数据进行分类,并据此创建了指令微调数据集。通过该数据集的微调,显著提升了模型在实际应用中的用户体验。 创新的模型架构:采用了混合视觉编码器(hybrid vision encoder),能在固定的token预算下高效处理高分辨率图像(1024*1024),同时保持较低的计算开销。该架构保证模型多种视觉任务中能捕捉到关键的语义和细节信息。 创新的训练策略:既使LLM学会新模态,也保证原有的的语言能力不退化。调控语言和视觉的竞争关系,实现两种模态的均衡融合。 1. Introduction 大语言模型的巨大成功引发了人们对多模态模型的追求。这些模型能同时理解语言和图像,在执行现实世界任务时展现出巨大的潜力。 目前出现了很多开源的VLM方案,在benchmark上表现优秀,但在现实世界中表现不佳。大都存在以下问题(本文的改进方案): 许多方案将重心放在指令微调阶段。作者认为应当使用大量的视觉-语言数据进行充分预训练。(深度预训练) 现有方案多使用学术上的数据集进行微调,缺乏现实世界经验。(精心构建数据集) 现有方案多采用vision transformer与预训练语言模型结合的方式,这类模型分辨率低,不能胜任OCR或微小物体识别任务。(高分辨率处理架构) 有些模型在长期的多模态训练中会出现语言能力的退化。应采用一种既保留语言能力,又掌握新模态能力的训练方式。(平衡多模态特征的训练策略) DeepSeek-VL具有通用的多模态理解能力,能够处理逻辑图、网页、公式识别、科学文献、自然图像等。 DeepSeek-VL的优势: Deepseek-VL的预训练数据涵盖了广泛的世界知识,包括网络爬虫、网页代码、电子书、教育资料、arxiv文章等等,全面覆盖现实世界中的场景,数据质量高,具有广泛性和实用性。同时作者团队还精心设计了指令调优数据集,具体来说,作者从网上收集了GPT-4V和Gemini的真实案例,并进行分类,为每个测试图像选择合适的prompt。该分类体系还用于构建评估数据集。 视觉模块采用混合视觉编码器架构,384$\times$384的文本对齐编码器用于粗粒度语义提取,1024$\times$1024的高分辨率编码器用于捕捉细节视觉信息。两者结合,可以将1024$\times$1024的图像压缩为576个token,在视觉表征和token开销间取得平衡,使视觉模块支持文-图交织处理和多轮推理场景。 为了使多模态模型不出现语言能力的退化:1.保持至少70%的语言数据,这对维护模型内部的语言知识完整性至关重要。2.作者提出了模态预热(modality warm-up)策略。该方法通过在训练过程中动态调整模态比例,逐步引入更多视觉-语言数据。 在迭代模型时,首先在小模型上进行实验。然而,形如1B的小模型在benchmark上难以展现理想性能,无法真实的反映模型的实际表现。因此,作者把评估措施从多选改为了各选项的困惑度(PPL)对比;此外,为避免指令跟随能力成为瓶颈,在预训练阶段我们混合了少量指令调优数据。通过这种方式,我们既能利用1B模型获得合理性能表现,又能更精准地量化实验中每次迭代的影响效果。 2. Data Construction 数据集包括两大模块:VL-Pretrain数据、VL-SFT数据 VL-Pretrain整合了多源视觉文本数据,旨在强化模型的基础跨模态理解能力。 VL-SFT相对较小,主要用于训练模型完成特定下游任务。 在stage1,VL-Pretrain用于预热VL adapter stage2,VL-Pretrain用于联合预训练VL adaptor和VL model stage3,使用VL-SFT微调整个模型 2.1 VL-Pretraining Data 分为以下7个类别: Interleaved image-text data(交错式图文数据,使模型对多模态输入具有更好的上下文学习能力),MMC4、Wiki等 Image caption data(图像描述,包含高质量图-文对),Capsfusion、TaiSu等 Table and chart data(图表数据),Chart2text、Unichart Web Code data(网页代码,使模型具有从图形界面或图表重建代码的能力。从Stack数据集中的jupyter notebook清洗出2million图像-代码对。最终选择1.1million作为是主要训练集,包括一张图像-至少5行代码) OCR data(文档光学字符识别数据,作者构建了一个中英混合的OCR数据集,包括两部分:1.arxiv文章 2.电子书和教育材料,来自Anna’s Archive) Scene text OCR(增强模型识别场景中文本的能力)ArT、MLT-17等。 Text-only corpus(纯文本,和DeepSeek LLM的一致) 2.2 VL-SFT Data 包括多个知名开源数据集ShareGPT4V、LAION-GPTV等。 ...

July 24, 2025

博客 | Stop Saying RAG Is Dead

这是一个系列博客,包括五篇文章。博客地址:Stop Saying RAG Is Dead – Hamel’s Blog 作者批驳了“RAG已死”的说法,认为真正被淘汰的是“Chuck documents into a vector database, do cosine similarity, call it a day. ”的过时的RAG。RAG技术仍在进化,在后面的的文章里可以看到在检索、评估等方面上的创新。很高兴看到有人对RAG持积极态度,毕竟在一个有希望的领域进行研究学习更有动力。 五篇文章的简介如下: 标题 内容简介 Part 1: I don’t use RAG, I just retrieve documents Ben Clavié 介绍了RAG的现状 Part 2: Modern IR Evals For RAG 评估是必不可少的步骤,高质量的benchmark有助于我们选择更好的方法。Nandan Thakur (BIER作者)认为传统的IR指标不适合评估RAG的表现,应该采用新的指标 Part 3: Optimizing Retrieval with Reasoning Models Orion Weller 提出了一种能遵循instruct的检索系统,在检索时就进行推理,优于传统的语义检索 Part 4: Late Interaction Models For RAG Antoine Chaffin 介绍了ColBERT这类迟交互、多向量模型 Part 5: RAG with Multiple Representations Bryan Bischof and Ayush Chaurasia 提出,我们需要对不同模态的问题智能化的选用不用的指标 P1: I don’t use RAG, I just retrieve documents 现在有一些说法,认为长上下文窗口的出现使得我们不再需要RAG了。 ...

July 17, 2025

BERT

参考:https://zhuanlan.zhihu.com/p/403495863 1.介绍 BERT(Bidirectional Encoder Representation from Transformers)是2018年10月由Google AI研究院提出的一种预训练模型,该模型在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩: 全部两个衡量指标上全面超越人类,并且在11种不同NLP测试中创出SOTA表现,包括将GLUE基准推高至80.4% (绝对改进7.6%),MultiNLI准确度达到86.7% (绝对改进5.6%),成为NLP发展史上的里程碑式的模型成就。 BERT的网络架构使用的是《Attention is all you need》中提出的多层Transformer结构。其最大的特点是抛弃了传统的RNN和CNN,通过Attention机制将任意位置的两个单词的距离转换成1,有效的解决了NLP中棘手的长期依赖问题。Transformer的结构在NLP领域中已经得到了广泛应用。 2.模型结构 下图展示的是BERT的总体结构图,多个Transformer Encoder一层一层地堆叠起来,就组装成了BERT了,在论文中,作者分别用12层和24层Transformer Encoder组装了两套BERT模型,两套模型的参数总数分别为110M和340M。 BERT是用了Transformer的encoder侧的网络,encoder中的Self-attention机制在编码一个token的时候同时利用了其上下文的token,其中‘同时利用上下文’即为双向的体现,而并非像Bi-LSTM那样把句子倒序输入一遍。在BERT之前是GPT,GPT使用的是Transformer的decoder侧的网络,GPT是一个单向语言模型的预训练过程,更适用于文本生成,通过前文去预测当前的字。 2.1Embedding Embedding由三种Embedding求和而成: token embedding 将输入的文本进行Word Piece分词,如playing切割成play,##ing,使用Word Piece是为了解决未登录词。tokenization后,在开头插入[CLS],在每句话的末尾插入[SEP]。[CLS]表示该特征用于分类模型,对非分类模型,该符号可以省去。[SEP]表示分句符号,用于断开输入语料中的两个句子。 Bert 在处理英文文本时只需要 30522 个词,Token Embeddings 层会将每个词转换成 768 维向量,如下图的例子中, 5 个Token 会被转换成一个 (5, 768) 的矩阵或 (1, 5, 768) 的张量。 segment embedding 用来区分两种句子。bert在训练时包括两种任务,其一是MLM(masked language model,掩码语言模型),就是遮住某个词让模型去预测;其二是NSP(next sentence prediction,下一句预测),输入两个句子,让模型判断是否相关。这时候就需要segment embedding对两个句子做区别。 进行问答等需要预测下一句的任务时,segment embedding层把0赋值给第一个句子的各token,把1赋值给第二个句子的各token。在文本分类任务时,segment embedding全部为0。 position embedding 和transformer的实现不同,不是固定的三角函数,而是可学习的参数。 Transformer 中通过植入关于 Token 的相对位置或者绝对位置信息来表示序列的顺序信息。作者测试用学习的方法来得到 Position Embeddings,最终发现固定位置和相对位置效果差不多,所以最后用的是固定位置的,而正弦可以处理更长的 Sequence,且可以用前面位置的值线性表示后面的位置。 ...

July 8, 2025

检索技术学习

简介:检索相关算法的学习 1.TF-IDF 1.1原理 TF:term frequency(词频) IDF:inverse document frequency(逆文档频率) 字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。 TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率高(TF高),并且在其他文章中很少出现(IDF高),则认为此词或者短语具有很好的类别区分能力,适合用来分类。 $TF=\frac{某个词在文章中出现的次数}{文章的总词数}$ 考虑到文章长短不同,除以总词数进行标准化 $IDF=log(\frac{语料库的文章总数}{包含该词的文章数量+1})$ 加1防止不存在包含该词的文档时分母为0 $TF-IDF=TF \times IDF$ 优点: 简单快速、易理解 缺点: 没考虑词语的语义 仅用词频考虑词语的重要性不够全面。按照传统TF-IDF,往往一些生僻词的IDF(反文档频率)会比较高、因此这些生僻词常会被误认为是文档关键词。 没有考虑特征词的位置因素对文本的区分度,词条出现在文档的不同位置时,对区分度的贡献大小是不一样的。 1.2自己实现 import math # 计算每句话的词频 def counter(word_list): wordcount = [] for doc in word_list: count = {} for word in doc: count[word] = count.get(word, 0) + 1 wordcount.append(count) return wordcount # 计算tf=某个词在文章中出现的总次数/文章的总词数 def tf(word, word_list): return word_list.get(word) / sum(word_list.values()) # 统计含有该单词的句子数 def count_sentence(word, wordcount): return sum(1 for i in wordcount if i.get(word)) # 计算idf=log(语料库中的文档总数/(包含该词的文档数+1)) def idf(word, wordcount): return math.log(len(wordcount) + 1 / count_sentence(word, wordcount) + 1) + 1 # tf-idf=tf*idf def tfidf(word, word_list, wordcount): return tf(word, word_list) * idf(word, wordcount) if __name__ == "__main__": docs = [ "what is the weather like today", "what is for dinner tonight", "this is a question worth pondering", "it is a beautiful day today" ] word_list = [] # 记录每个文档分词后的结果 for doc in docs: word_list.append(doc.split(" ")) # 使用停用词 # stopwords = ["is", "the"] # for i in docs: # all_words = i.split() # new_words = [] # for j in all_words: # if j not in stopwords: # new_words.append(j) # word_list.append(new_words) wordcount = counter(word_list) # 统计每个文档词的次数 for cnt, doc in enumerate(wordcount): print("doc{}".format(cnt)) for word, _ in doc.items(): print("word:{} --- TF-IDF:{}".format(word, tfidf(word, doc, wordcount))) 1.3使用sklearn库 from sklearn.feature_extraction.text import TfidfVectorizer if __name__ == "__main__": docs = [ "what is the weather like today", "what is for dinner tonight", "this is a question worth pondering", "it is a beautiful day today" ] tfidf_vec = TfidfVectorizer() # 利用fit_transform得到TFIDF矩阵 tfidf_matrix = tfidf_vec.fit_transform(docs) # 利用get_feature_names_out得到不重复的单词 print(tfidf_vec.get_feature_names_out()) # 利用vocabulary_得到各单次的编号 print(tfidf_vec.vocabulary_) # 输出TFIDF矩阵,即每个文档中每个词的tfidf值 print(tfidf_matrix) 2.BM25 2.1原理 BM25是一种基于概率检索框架的排序函数,用于计算查询(Query)与文档(Document)的相关性得分。 ...

July 7, 2025

Inference Scaling for Long-Context Retrieval Augmented Generation

ICLR2025,来自Google DeepMind团队的工作 https://arxiv.org/abs/2410.04343v2 0.目标 先前对于RAG推理扩展的研究主要集中于提供更多的知识,但只增加知识的数量是不够的。当前的LLM在处理长上下文时仍存在挑战。比如,在超长序列中定位有效信息的能力有限、最佳性能往往是在没有充分利用上下文的情况下实现的、超过一定阈值(文档数量)的检索会使性能停滞甚至下降。 目标是找到上下文长度与最优配置之间的关系,能够预测最佳推理参数,最大限度提高RAG性能。其中DRAG的参数为检索到的文档数量和示例数量。IterDRAG的参数为生成次数。 1.贡献 提出两种RAG方法:DRAG(基于演示的RAG,为LLM提供多个RAG示例)和IterDRAG(基于迭代演示的RAG,将输入查询分解为更简单的子查询,迭代检索)。并证明了这两种方法优于仅提供知识的RAG。 得到了RAG的推理缩放定律:在最佳配置下,RAG性能随有效上下文长度线性变化。 根据定律对RAG性能与不同推理参数建模,推导出计算分配模型,为长上下文RAG的优化提供了指导。 2.相关工作 2.1长上下文LLMs 早期采用稀疏/低秩核来减少内存需求。 I. Beltagy, M. E. Peters, and A. Cohan. Longformer: The long-document transformer. arXiv preprint arXiv:2004.05150, 2020. K. Choromanski, V. Likhosherstov, D. Dohan, X. Song, A. Gane, T. Sarlos, P. Hawkins, J. Davis, A. Mohiuddin, L. Kaiser, et al. Rethinking attention with performers. arXiv preprint arXiv:2009.14794,2020. N. Kitaev, L. Kaiser, and A. Levskaya. Reformer: The efficient transformer. In International Conference on Learning Representations, 2019. ...

May 7, 2025

RAGTruth: A Hallucination Corpus for Developing Trustworthy Retrieval-Augmented Language Models

1.Motivation 尽管有了RAG的帮助,LLM仍有可能给出与所提供知识不符的回答。因此需要构建一个数据集来检测幻觉。 2.Contributions 提出RAGTruth,一个大规模词级别的幻觉检测数据集,由LLM自然产生(作者认为故意触发的幻觉与自然产生的幻觉存在差异) 对现有幻觉检测方法进行比较 提出了微调LLM用于幻觉检测的基线。Llama-2-13B在RAGTruth training data上微调后比得上GPT4 证明了使用微调得到的幻觉检测器,能降低幻觉 3.Related Work 4.Methods 1.Hallucination Taxonomy幻觉类型 本文将幻觉类型分为: Evident Conflict明显冲突:与提供的文本明显相反,容易辨别,如事实错误、拼写错误、数字错误。 Subtle Conflict轻微冲突:生成的信息与提供的文本有歧义,比如术语的替换,需要结合上下文判断。 Evident Introduction of Baseless Information明显引入无根据知识:生成的内容不在提供的信息之内。 Subtle Introduction of Baseless Information轻微引入无根据知识:生成内容超出了提供的信息,比如主观的假设或推断。 2.Response Generation回答生成 选择三个任务: Question Answering,Data-to-text Writing, and News Summarization.(问题回答、数据到文本的写作、新闻摘要),生成回答并人工标注幻觉部分。 Question Answering:从MS MARCO选择与生活相关的QA,每个问题保留三段提取内容,然后使用LLM根据内容回答问题。 Data-to-text Writing:从Yelp数据集选择有关商家的结构化信息和用户的评论,用LLM生成对商家的描述。如果数据出现空值而大模型将其解释为“假”,认为这是出现了幻觉。 News Summarization:数据来自CNN/Daily Mail dataset+某新闻平台的新闻,使用LLM对每篇内容生成摘要。 使用的LLM:GPT-3.5-turbo-0613、GPT-4-0613、Mistral-7b-Instruct、Llama-2-7B-chat、 Llama-2-13B-chat、 Llama-2-70B-chat 每个任务都用6个模型跑一遍,得到6个回答。 5.Result 各项任务中幻觉类型的比例: 如图2所示,在上下文中无根据的信息生成显著多于与上下文冲突的信息生成,尤其是在问答任务中。在两大类无根据信息和冲突信息中,更严重的幻觉,即明显的无根据信息和明显的冲突信息,占据了相当大的比例。这一观察结果说明即使有RAG,还是存在严重幻觉。 数据转文本的任务幻觉率最高,可能与JSON格式有关。另外,较新的新闻的幻觉率不比过时新闻高,可能是由于较新的新闻的文本长度较短。 各模型出现幻觉的比例: (span、density什么意思) 表3显示,在我们收集的数据中,OpenAI的两个模型表现出显著较低的幻觉率。具体来说,GPT-4-0613的幻觉频率最低。为了更清晰地比较不同模型的幻觉率,我们计算了每个模型在三个任务中的幻觉密度。幻觉密度定义为每一百个单词响应中平均出现的幻觉跨度数。在Llama2系列中,除了数据总文本写作任务外,模型规模与幻觉密度之间存在明显的负相关关系。尽管Mistral-7B-Instruct模型在各种基准和排行榜上的表现强劲(Zheng等人,2023),但它生成的包含幻觉的回答数量最多。 幻觉与文本长度的关系: 对于上下文长度(CLB),只有新闻摘要呈现出上下文越长,越容易幻觉的特点。 对于回答长度(RLB),都有回答越长,越容易幻觉的特点。 幻觉与位置的关系: 在问答和新闻摘要任务中,幻觉更倾向于出现在回答的末尾。数据到文本写作任务在前半部分较易出现幻觉。

May 7, 2025

RAG,QA相关数据集及评价标准

RAG,QA常用的数据集和评价标准 多为知识密集型、问答型数据集 数据集 1.UltraDomain lightrag曾使用 使用MemoRAG提出的Benchmark。 在UltraDomain里,包含多个领域的数据,每个数据包括多本书。以cs为例,共含有100本书和100个对应的问题。该领域专注于计算机科学,涵盖数据科学和软件工程的关键领域。它特别强调机器学习和大数据处理,内容涉及推荐系统、分类算法以及使用Spark进行实时分析。: { } i a l c _ l m n n e o i a e p s c n n d b t u w o g t : e a t e n t e l : : r t h x b : s e : t 2 { H : x _ f c ' o t 1 i d s t w [ : 3 d 8 i ' 1 : d t d S " 6 9 l o p W 5 7 c e e a h 1 b 6 ' s r o c d : k l e 1 S e f 4 ' p S 8 9 M a t B 7 9 a r r o 1 d c k e o 4 5 h a k a 2 i S m . 4 1 n t i . 7 d e r n . 7 7 e g . f 7 L a . d 8 e m e . 6 c a i x " 1 e r n t f 3 n g e c d i n 8 6 n e d f d g n s b 0 a 0 6 W b d f i l 4 a t e 9 h 9 r b S e 2 p a c a l ' c r - ] 3 k t ' i , m e ' a d u a t t h a o r p s r ' o : c e ' s N s i i c n k g ? P e n t r e a t h ' } 数据集地址:TommyChien/UltraDomain · Datasets at Hugging Face ...

May 4, 2025

DAPR A Benchmark on Document-Aware Passage Retrieval

1.Motivation 现有的神经检索(neural retrieval)的方法主要集中在短文本排序,在长篇文章中做检索效果并不好(由于自注意力机制token数量的限制;或者返回的文档过长,不便于用户使用)。另外,作者发现在先进检索器的检索错误中,半数错误与缺少上下文有关。 比如:在A剧场中演出过的演员有哪些?如果只检索关键字“A剧场”,可能找不到答案,需要结合上下文找到“……在这里演出过……”的内容才是真正答案。 因此,作者针对上下文强关联的任务建立了一个数据集,使用两类方法(hybrid retrieval with BM25、 contextualized passage representations)进行实验,并详细解释了实验结果。 2.Related work Document Question Answering(DocQA):要求模型回答关于输入文档的问题,通常假设文档在提问前就已给出。本文提出的(Document-Awarepassage Retrieval, DAPR)与DocQA类似,区别在于DAPR希望用户提问时不知道目标文档,由模型来寻找目标文档。 Long-document retrieval(长文档检索):对于长文档检索有一些简单的方法:将文档中段落相关性的最大值作为文档的相关性(MaxP);仅编码文档中的第一个段落(FirstP)……与DAPR相比,所有这些先前的工作都没有研究如何在考虑文档上下文的情况下检索段落。 Hybrid retrieval(混合检索):对于一个查询使用多个检索系统(常常是BM25+神经检索) rank fusion(排名融合)——通过凸组合、互逆排名等方法将不同检索系统的个体排名合并为一个。 hierarchical retrieval(层次检索)——首先检索文档,然后从这些文档中检索段落。只适用于段落本身足以对查询做出响应的情况。 本文探讨了段落排名和文档排名结合的有效性。 Relation to pre-training tasks(和预训练任务的关系):有的研究在预训练中加入上下文。但推理时仍然只关注独立的段落。 补充: NQ:谷歌的一个问答数据集 NDCG:评价检索序列的相关性和位置 共指信息:描述文本中不同表达式指向同一实体或概念的语言现象,如*“玛丽打开了门,她随后拿起包。”* → “她”与“玛丽”共指同一人。 共指消解(Coreference Resolution):自动识别文本中所有指向同一实体的表达式并分组。 3.Method DAPR任务要求系统提取+排序。给出段落集合$C$,文档集合$D$,对于查询集合$q \in Q$,检索系统$s$应该提取出最好的$K$个段落集合$R$。 3.1NQ-Hard 对SOTA的检索器(DRAGON+,SPLADEv2, and ColBERTv2)使用NQ数据集,发现一半的错误来自于不了解上下文。将这些数据命名为NQ-hard,并分为4类: 共指消解(CR):关键的共指信息需要通过特定文档上下文来解析; 主要主题(MT):只有了解文档的背景主题(通常是标题),才能回答查询; 多跳推理(MHR):连接查询和查询相关段落中的实体的推理路径包括文档上下文中的其他节点; 缩写(AC):在相关段落(或查询)中出现一个缩写,该缩写对应于查询(或相关段落)中的全称,文档上下文解释了这种映射; 3.2Datasets MS MARCO、Natural Questions、MIRACL、Genomics 和 ConditionalQA(具体处理方式见附录A)有语料库的直接用,没有的把黄金段落文本收集起来当语料库。(也是很神奇) 3.3Evaluation 使用nDCG@10和recall@100做指标。 将binary/3-scale转换为0-1/0-1-2,然后使用pytrec_eval计算指标。 考虑到现实世界中的检索系统多用于零样本、跨领域的情景,本文进行了一项测试:在MS MARCO训练集训练,然后在MS MARCO测试集测试,作为域内评估;在其它四个数据集上测试,作为域外评估。 4.Experiments 4.1基础检索器 BM25(使用PySerini的默认配置) neural retrievers:DRAGON+、SPLADEv2、ColBERTv2(在MS MARCO上训练) 4.2两种将上下文引入神经检索器的方法 4.2.1加入BM25的混合检索 (1)Rank fusion融合检索 ...

May 2, 2025

从0开始建立Github个人博客(hugo&PaperMod)

github提供给每个用户一个网址,用户可以建立自己的静态网站。 一、Hugo hugo是一个快速搭建网站的工具,由go语言编写。 1.安装hugo 到hugo的github标签页Tags · gohugoio/hugo选择一个版本,下载对应的安装包。比如hugo_extended_withdeploy_0.147.0_windows-amd64.zip。 解压后,在根目录打开cmd,输入 hugo new site YourSiteName 为你的网站建立文件夹。YourSiteName更改为你的网站的名字。 根目录会出现YourSiteName文件夹。 3.将根目录的hugo.exe复制到YourSiteName里。 在YourSiteName文件夹里打开cmd,输入 hugo server -D 会返回如下信息: | EN -------------------+----- Pages | 11 Paginator pages | 0 Non-page files | 0 Static files | 0 Processed images | 0 Aliases | 2 Cleaned | 0 Built in 79 ms Environment: "development" Serving pages from disk Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender Web Server is available at http://localhost:1313/ (bind address 127.0.0.1) Press Ctrl+C to stop 在浏览器中输入http://localhost:1313/,显示Page Not Found,说明服务器正常运行,但是此时网站还没有页面。 ...

May 2, 2025

Neural-IR Models(博客)

原文:Neural-IR Models.. Neural IR(Information Retrieval) is a… | by Muhammad Hammad Khan | Medium 译文:【翻译】一文详解神经信息检索领域的最新进展 - 知乎 神经信息检索(Neural Information Retrieval, Neural IR)是信息检索领域的一个重要研究课题。自从谷歌在2018年发布BERT以来,它在11个NLP任务上获得了最先进的结果,一举改变了整个NLP领域的研究范式。2019年1月,Nogueira和Cho在MS MARCO Passage Ranking测试集上首次使用BERT。从那时起,人们开始研究神经信息检索的范式,也提出了许多基于BERT的文本排序方法。这些方法用于多阶段搜索架构的重排阶段(Re-Ranker)。如下图所示。 Figure1 展示了一个简化的多阶段搜索结构。第一步:倒排索引(Inverted Index)+BM25得分进行排序,得到topK文档,这一步也叫候选项生成(Candidates Generation)。第二步,通过基于BERT的上下文排序模型来确定前N个文档的最终排序。 神经重排模型(Neural re-ranking models)一般可以分为以下四种,如Figure2所示: 基于表征(representation-focused) 基于交互(interaction-focused) 全交互(也被称作交叉编码器,)(all-to-all interaction(cross encoder) ) 迟交互(late interaction) 1.基于表征——双塔模型(Bi-encoder Models) 双塔模型将Query和Doc分别表征为密集的向量嵌入,用向量相似度分数来估计Q和D的相关性。在训练时需要正负样本进行对比学习,因为如果只给模型看正样本,它会偷懒——把所有向量都变成一样的,这样“相似度”永远最高。负样本强迫模型学会区分相关和不相关的内容。 在将模型训练好后,doc和query的表征可以独立进行,不用像交叉编码器那样每次都要把Query和Doc拼在一起重新计算。 1.1密集段落检索器(Dense passage retriever, DPR) 论文:Dense Passage Retrieval for Open-Domain Question Answering EMNLP 2020, Facebook Research Code: github.com/facebookresearch/DPR 讲解博客:【IR 论文】DPR — 最早提出使用嵌入向量来检索文档的模型_dpr模型-CSDN博客 DPR是一个应用于问答领域的双塔模型,旨在最大限度地提高查询与相关文档的相似度,同时最小化与非相关文档的相似度。DPR是RAG中R的经典方案。 正样本往往数据集已给定,而负样本比较难选择。为此,DPR提出了一种Batch内负采样的技术,从同一批次的其他样本中选择样本作为负样本。这种方法是有效且高效的。 1.2最近邻负对比估计 (Approximate nearest neighbour Negative Contrastive Estimation, ANCE) 该论文证明了强负样本能够加速模型收敛,提升模型性能。负样本分为易区别的和不易区别的,显然不易区别(即强负样本)的对模型学习帮助更大。本文使用ANN寻找强负样本。 ...

May 2, 2025