国科网

2024-06-17 04:25:47  星期一
立足国科融媒,服务先进科技
可视化FAISS矢量空间并调整RAG参数提高结果精度

点赞

1
发布时间:2024年03月01日 浏览量:75次 所属栏目:人工智能 发布者:田佳恬

随着开源大型语言模型的性能不断提高,编写和分析代码、推荐、文本摘要和问答(QA)对的性能都有了很大的提高。但是当涉及到QA时,LLM通常会在未训练数据的相关的问题上有所欠缺,很多内部文件都保存在公司内部,以确保合规性、商业秘密或隐私。当查询这些文件时,会使得LLM产生幻觉,产生不相关、捏造或不一致的内容。

为了处理这一挑战的一种可用技术是检索增强生成(retrieve - augmented Generation, RAG)。它涉及通过在响应生成之前引用其训练数据源之外的权威知识库来增强响应的过程。RAG应用程序包括一个检索系统,用于从语料库中获取相关文档片段,以及一个LLM,用于使用检索到的片段作为上下文生成响应,所以语料库的质量及其在向量空间中的表示(称为嵌入)在RAG的准确性中发挥重要作用。

在本文中,我们将使用可视化库renumics-spotlight在2-D中可视化FAISS向量空间的多维嵌入,并通过改变某些关键的矢量化参数来寻找提高RAG响应精度的可能性。对于我们选择的LLM,将采用TinyLlama 1.1B Chat,这是一个紧凑的模型,与Llama 2相同的架构。它的优点是具有更小的资源占用和更快的运行时间,但其准确性没有成比例的下降,这使它成为快速实验的理想选择。

系统设计

QA系统有两个模块,如图所示。

LoadFVectorize模块加载pdf或web文档。对于最初的测试和可视化。第二个模块加载LLM并实例化FAISS检索,然后创建包含LLM、检索器和自定义查询提示的检索链。最后我们对它的向量空间进行可视化。

代码实现

1、安装必要的库

renumics-spotlight库使用类似umap的可视化,将高维嵌入减少到更易于管理的2D可视化,同时保留关键属性。我们在以前的文章中也介绍过umap的使用,但是只是功能性的简单介绍,这次我们作为完整的系统设计,将他整合到一个真正可用的实际项目中。首先是安装必要的库:

pip install langchain faiss-cpu sentence-transformers flask-sqlalchemy psutil unstructured pdf2image unstructured_inference pillow_heif opencv-python pikepdf pypdf
 pip install renumics-spotlight
 CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install --upgrade --force-reinstall llama-cpp-python --no-cache-dir

分享说明:转发分享请注明出处。

    热点图讯
    最新图讯
    相关图讯
    网站简介  |   联系我们  |   广告服务  |   监督电话
    本网站由国科网运营维护 国科网讯(北京)技术有限公司版权所有  咨询电话:010-88516927
    地址:北京市海淀区阜石路甲69号院1号楼1层一单元114
    ICP备案号:京ICP备15066964号-8   违法和不良信息举报电话:010-67196565
    12300电信用户申诉受理中心   网络违法犯罪举报网站   中国互联网举报中心   12321网络不良与垃圾信息举报中心   12318全国文化市场举报网站
    代理域名注册服务机构:阿里巴巴云计算(北京)有限公司