#科大讯飞 #Datawhale #RAG #检索增强生成
优快云和datawhale的朋友们大家好呀!经过几日颠簸,小虢也是成功搬进了研究生的新宿舍!而datawhale夏令营也随着暑假的结束暂时告一段落了。暂时还不知道datawhale官方后续有没有其他的学习活动,但咱们对数据科学的探索不能断,本次为大家带来科大讯飞大模型RAG智能问答挑战赛的baseline精读!
声明:baseline代码版权归属datawhale社区、coggle社区所属,本文仅对baseline代码进行解读
coggle社区 baseline代码
RAG的定义与作用
(1)什么是RAG?
RAG(检索增强生成)是一种结合了检索模型和生成模型的技术,它通过检索大量外部知识来辅助文本生成,从而提高大型语言模型(LLMs)的准确度和可靠性。而要想了解RAG具体是怎么工作的,则要从一幅原理图说起。
引用:https://challenge.xfyun.cn/topic/info?type=RAG-quiz&option=ssgy
具体来说,RAG是这样一种“中间件”,它接受用户的语义搜索,通过由原始内容和新增内容产生的向量数据库,产生上下文数据(contextual data),再将上下文数据与Prompt结合作为大语言模型的输入,通过大语言模型输出到框架内,经过处理后再返回给用户!
(2)rag有什么意义与作用?
RAG特别适合于需要不断更新知识的知识密集型场景或特定领域应用,它通过引入外部信息源,有效缓解了大语言模型在领域知识缺乏、信息准确性问题以及生成虚假内容等方面的挑战。
可以说,RAG使得大模型向人类学习的能力迈上了一个新台阶,而步子能迈多大,则取决于你我设计出的RAG架构的性能。
baseline代码详解
1.导入第三方包
sentence_transformers是一个用于句子和文本嵌入的库,它提供了多种预训练模型,可以将文本转换为高维向量,这些向量可以用于各种NLP任务,如句子相似度计算、文本搜索等。
import pandas as pd
import numpy as np
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
from sentence_transformers import SentenceTransformer
sentences_1 = ["样例数据-1", "样例数据-2"]
model = SentenceTransformer('BAAI/bge-small-zh-v1.5')
embeddings_1 = model.encode(sentences_1, normalize_embeddings=True, show_progress_bar=True)
这里选用百度的一个embedding模型,