首页 > 其他分享 >使用Ollama本地离线体验SimpleRAG(手把手教程)

使用Ollama本地离线体验SimpleRAG(手把手教程)

时间:2024-08-23 10:19:22浏览次数:12  
标签:RAG 模型 离线 生成 SimpleRAG 文本 Ollama

Ollama介绍

Ollama是一个开源项目,专注于开发和部署大语言模型,特别是像LLaMA这样的模型,用于生成高质量的文本和进行复杂的自然语言处理任务。Ollama的目标是让大语言模型的运行和使用变得更加容易和普及,而无需复杂的基础设施或深度的机器学习知识。

image-20240822110024317

GitHub地址:https://github.com/ollama/ollama

RAG是什么?

检索生成增强(Retrieval-Augmented Generation,RAG)是一种结合了检索(Retrieval)和生成(Generation)两种技术的自然语言处理方法,主要用于改进文本生成任务的性能,如问答系统、对话系统、文本摘要和文档生成等。RAG模型通过在生成模型的基础上,引入一个检索模块,来增强生成模型的准确性和丰富性。

在传统的生成模型中,模型完全依赖于训练数据中学习到的模式和统计信息来生成文本,这可能导致生成的内容缺乏新颖性或准确性。而检索模块则可以从外部知识库或文档中检索相关的信息,将这些信息作为额外的输入,提供给生成模型,从而帮助生成更准确、更丰富和更具体的文本。

具体来说,RAG模型的工作流程如下:

  1. 检索阶段:模型首先根据输入的查询或上下文,从外部知识库中检索出与之最相关的文档或片段。
  2. 融合阶段:检索到的信息与输入的查询或上下文进行融合,形成增强的输入。
  3. 生成阶段:增强后的输入被送入生成模型,生成模型根据这些信息生成最终的文本输出。

通过这种方式,RAG模型能够在生成过程中利用到外部知识,提高了生成文本的准确性和丰富性,同时也增强了模型的可解释性,因为生成的文本可以追溯到具体的来源。RAG模型在处理需要大量领域知识或具体事实信息的任务时,表现出了显著的优势。

SimpleRAG介绍

A simple RAG demo based on WPF and Semantic Kernel.

SimpleRAG是基于WPF与Semantic Kernel实现的一个简单的RAG应用,可用于学习与理解如何使用Semantic Kernel构建一个简单的RAG应用。

image-20240822100239041

GitHub地址:https://github.com/Ming-jiayou/SimpleRAG

主要功能

AI聊天

支持所有兼容OpenAI格式的大语言模型:

image-20240819163701855

文本嵌入

支持所有兼容OpenAI格式的嵌入模型:

image-20240819163900106

简单的RAG回答

简单的RAG回答效果:

image-20240819164221306

对比不使用RAG的回答:

image-20240819164322893

使用Ollama本地离线体验SimpleRAG

来到SimpleRAG的GitHub参考,注意到这里有个Releases:

image-20240822100649148

点击SimpleRAG-v0.0.1,有两个压缩包,一个依赖net8.0-windows框架,一个独立:

image-20240822100817138

依赖框架的包会小一些,独立的包会大一些,如果你的电脑已经装了net8.0-windows框架可以选择依赖框架的包,考虑到可能大部分人不一定装了net8.0-windows框架,我以独立的包做演示,点击压缩包,就在下载了:

image-20240822101244281

解压该压缩包:

image-20240822101450182

打开appsettings.json文件:

image-20240822101600329

appsettings.json文件如下所示:

image-20240822101740892

在你的电脑上启动Ollama,在命令行中输入ollama list 查看已经下载的模型:

image-20240822113619155

由于我电脑的配置不是很好,对话模型以gemma2:2b为例,嵌入模型以bge-m3:latest为例,appsettings.json文件这样写:

image-20240822113903239

Endpoint输入Ollama的地址,默认是http://localhost:11434,Ollama不需要Api Key随便写。

现在点击SimpleRAG.exe即可运行程序:

image-20240822102117959

程序运行之后,如下所示:

image-20240822102215516

先通过AI聊天测试配置是否成功:

image-20240822114300380

配置已经成功。

现在来测试一下嵌入。

先拿一个简单的文本进行测试:

小k最喜欢的编程语言是C#。

image-20240822114549483

嵌入成功:

image-20240822114618014

这个Demo程序为了方便存储文本向量使用的是Sqlite数据库,在这里可以看到:

image-20240822102554159

如果你有数据库管理软件的话,打开该数据库,会发现文本已经以向量的形式存入Sqlite数据库中:

image-20240822114904572

现在开始测试RAG回答效果:

image-20240822115055457

对比不使用RAG的回答效果:

image-20240822115204218

可以发现大语言模型根本不知道我们想问的私有数据的事情。

现在我们可以来测试一下更复杂一点的文本了,一样的嵌入文本之后,测试RAG效果:

image-20240822115513523

RAG回答失败了,这是因为我使用的模型参数太少了,还不够强大。如果你的电脑配置好,可以改用更智能的模型,如果你的电脑配置不好,可以选择混合使用的方式,即使用在线的对话模型Api,使用本地Ollama中的嵌入模型。

使用在线对话Api+本地Ollama嵌入模型体验SimpleRAG

appsettings.json可以这样写:

image-20240822120347160

测试RAG效果:

image-20240822120526269

RAG还是失败了。

模型换成meta-llama/Meta-Llama-3.1-8B-Instruct:

image-20240822120706462

模型换成google/gemma-2-9b-it:

image-20240822121018509

模型换成Qwen/Qwen2-72B-Instruct:

image-20240822121616949

通过源码找原因:

image-20240822122700793

将相关度调成0.3就可以找到相关文本了,但是感觉这样也会出问题,文档一多很容易找到不相关的文档,后面appsettings.json中会增加相关度的配置:

image-20240822122749303

现在再测试一下Qwen/Qwen2-7B-Instruct:

image-20240822123253249

也可以了。

对比不使用RAG的回答效果:

image-20240822123617132

最后

如果对你有所帮助,点个Star✨,就是最大的支持

标签:RAG,模型,离线,生成,SimpleRAG,文本,Ollama
From: https://www.cnblogs.com/mingupupu/p/18375424

相关文章

  • 使用SiliconCloud快速体验SimpleRAG(手把手教程)
    SiliconCloud介绍SiliconCloud基于优秀的开源基础模型,提供高性价比的GenAI服务。不同于多数大模型云服务平台只提供自家大模型API,SiliconCloud上架了包括Qwen、DeepSeek、GLM、Yi、Mistral、LLaMA3、SDXL、InstantID在内的多种开源大语言模型及图片生成模型,用户可自由切......
  • 【乐吾乐大屏可视化组态编辑器】下载离线部署包
    下载离线部署包/组件包在线使用:https://v.le5le.com/ 导出为Zip文件Zip包主要用于大屏可视化平台快捷导入导出项目。如图下图所示,Zip包仅包含数据文件和图片文件,不包含js等依赖库。需要有一定开发能力者参考官方文档补充依赖库才能运行。官方下载需要开通vip。推荐下载......
  • SourceTree离线安装
    需求:要求在内网环境开发,连不上外网,安装sourceTree又是需要联网的,这就是尴尬了又不想用命令,已经习惯了sourceTree.不说废话,上干货:注意!!!一定按照步骤来,否则不会生效的。注意!!!一定按照步骤来,否则不会生效的。注意!!!一定按照步骤来,否则不会生效的。【第一步】先去官网下载sourceTree......
  • ollama搭建本地ai大模型并应用调用
    1、下载ollama1)https://ollama.com 进入网址,点击download下载2)下载后直接安装即可。2、启动配置模型默认是启动cmd窗口直接输入1ollamarunllama3启动llama3大模型 或者启动千问大模型1ollamarunqwen2启动输入你需要输入的问题即可 3、配置UI界面安装......
  • SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用
    SimpleRAG介绍SimpleRAG是基于WPF与SemanticKernel实现的一个简单的RAG应用,可用于学习与理解如何使用SemanticKernel构建RAG应用。GitHub地址:https://github.com/Ming-jiayou/SimpleRAG主要功能AI聊天支持所有兼容OpenAI格式的大语言模型:文本嵌入支持所有兼容OpenAI格式......
  • 国产操作系统 离线部署MYSQL、NGINX、redis、JDK1.8
    目录1.1、龙蜥操作系统8.4【AnolisOS8.4GA】1.2、安装关键步骤说明2.1、安装必要的系统组件2.2、配置JDK2.3、安装redis2.4、安装nginx2.5、安装mysql3.1、启用防火墙3.2、开放业务端口3.3、修改SSH端口号为100223.4、配置特定端口指定IP访问4.1、网络设置4.2......
  • vue3 - 详细实现内网使用离线百度地图功能,在vue3中无需网络离线使用百度地图相关功能,
    效果图在vue3、nuxt3项目开发中,完成内网离线使用百度地图详细教程,让vue3网站无需网络就能加载百度地图及相关功能,完整的百度地图离线使用及地图瓦片的下载教程、更新教程等,vue3百度地图内网离线使用显示地图及各种功能,无论js/ts语法都可以使用,详解百度地图离线加载机制及整......
  • 离线算法 莫队算法进阶
    前算是把之前的坑填一填吧。这篇文章主要包含带修莫队,二维莫队等莫队算法的进阶应用,观看前请确保您已经熟练掌握了基本的莫队算法,不会的可以戳这里。带修莫队众所周知,普通莫队是不支持修改的,因为我们为了得到更优的时间复杂度,需要将每次询问离线下来,打乱顺序。不过我们也......
  • Ollama
    BiliBili视频官网:https://ollama.com/GitHub:https://github.com/ollama/ollama官方文档(GitHub):https://github.com/ollama/ollama/tree/main/docs标签:对话型,客户端,开源大模型网络部分需要访问GitHub,可以使用WattToolkit免费工具访问容器镜像,国内镜像被禁用,下载可查看......
  • 使用 Ollama 集成 GraphRag.Net:一步步教你如何实现
            在当今的技术世界,人工智能(AI)正在以惊人的速度发展。对于开发者来说,使用最新的工具和框架来提升工作效率至关重要。而在AI领域,GraphRag.Net作为一个强大的图算法框架,允许我们以高效的方式进行数据处理。同样,Ollama作为一个开源的、简单易用的AI模型部......