LangChain + llamaFactory + Qwen2-7b-VL 构建本地RAG问答系统

单纯仅靠LLM会产生误导性的 “幻觉”,训练数据会过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。

正是在这样的背景下,检索增强生成技术(Retrieval-Augmented Generation,RAG)应时而生,成为大模型时代的一大趋势。

RAG通过在语言模型生成答案之前,先从广泛的专业文档数据库中检索相关信息,然后利用这些专业信息来引导大模型生成的结果,极大地提升了内容的准确性和相关性。

RAG整体技术路线可分为3大块8个小点见图1,其中包含知识库构建、知识检索和知识问答。

参考连接:

langchain框架轻松实现本地RAG_langchain实现rag-优快云博客

https://www.zhihu.com/question/652674711/answer/3617998488

https://zhuanlan.zhihu.com/p/695287607

### Qwen2-7B与RAG的技术细节 Qwen2-VL-7B是一个多模态大模型,能够处理文本和视觉输入并生成相应的输出。对于Retrieval-Augmented Generation (RAG),该架构通过融合检索机制增强了传统的序列到序列(seq2seq)模型的能力[^1]。 在具体实现上: #### 数据集准备 为了训练和支持有效的检索增强功能,需要构建专门的数据集来支持跨不同领域的内容理解。这些数据集通常由大量文档组成,并经过预处理以便于快速索引和查询[^2]。 #### 编码器设计 编码器部分负责理解和表示来自多个模式的信息。它不仅接收原始文本作为输入,还可以接受图像或其他形式的非结构化数据。这种能力使得当面对复杂场景时,比如涉及图片说明的任务,可以更全面地捕捉上下文信息。 #### 检索模块集成 引入了一个强大的搜索引擎组件用于从外部资源库中查找最相关的片段或文件。此过程依赖于高效的向量相似度计算以及优化过的存储解决方案以确保实时响应性能。一旦找到匹配项,则会将其嵌入到解码阶段供后续利用。 #### 解码策略调整 最后,在生成最终答案之前,会对候选回复进行评分排序,优先考虑那些既忠实原文又富含额外有用资讯的选择。这一步骤有助于提高对话系统的实用性和准确性。 ```python from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration tokenizer = RagTokenizer.from_pretrained("facebook/rag-token-nq") retriever = RagRetriever.from_pretrained("facebook/rag-token-nq", index_name="exact", use_dummy_dataset=True) model = RagSequenceForGeneration.from_pretrained("facebook/rag-token-nq", retriever=retriever) input_dict = tokenizer.prepare_seq2seq_batch( ["What is the capital of France?", "Who was Nikola Tesla?"], return_tensors="pt" ) generated_ids = model.generate(input_ids=input_dict["input_ids"]) print(tokenizer.batch_decode(generated_ids, skip_special_tokens=True)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值