使用 MTT GPU 搭建个人 RAG 推理服务

什么是 LLM RAG?​

LLM RAG(Retrieval-Augmented Generation with Large Language Models)是一种结合大语言模型(LLM)和信息检索(IR)技术的生成方法,专门用于增强语言模型的上下文感知和准确性。在这种方法中,检索模块从一个外部知识库(例如文档、数据库或向量数据库)中获取相关信息,然后将这些检索到的内容与 LLM 结合,使得生成结果更加精准和信息丰富。

什么是 Ollama?​

Ollama 是一个工具和平台,专注于简化和优化大语言模型(LLM)的管理和部署。它主要提供了一种方便的方式,在本地或边缘设备上运行、管理和调用大型语言模型,同时通过其特有的 Docker 集成和 API 接口,使得 LLM 的使用更加灵活、轻量且安全。

Ollama 因为其本地化、轻量级和灵活性,使其成为一种在多个环境中管理和部署 LLM 的理想工具。

什么是 Open WebUI?​

Open WebUI 是一个开源项目,致力于创建一个通用的用户界面(Web UI),用于本地化运行和管理大语言模型(LLM)以及其他生成式 AI 模型(例如图像生成模型)。Open WebUI 旨在简化 LLM 和生成式 AI 模型的操作,让用户可以通过一个网页界面快速上手并进行实验,无需复杂的编程或配置。

使用 Ollama + Open WebUI 搭建个人 RAG 服务​

准备工作​

以下代码运行在 x86 架构的 Ubuntu 20.04/22.04 系统。

配置容器运行时​

请参考以下链接安装和配置容器运行时。

  1. 安装 Docker: Docker 安装指南
  2. 安装 Docker Compose: Docker Compose 安装指南
  3. 安装 MTT S80/S3000/S4000 最新驱动 (当前为 rc3.1.0): MUSA SDK 下载
  4. 安装 MT Container Toolkit (当前为 v1.9.0): MT CloudNative Toolkits 下载

检查容器运行时配置是否正确,确认输出的默认运行时为 mthreads

$ (cd /usr/bin/musa && sudo ./docker setup $PWD)
$ docker info | grep mthreadsRuntimes: mthreads mthreads-experimental runcDefault Runtime: mthreads

准备 docker-compose.yml 配置文件​
$ export RAG_DIR=$HOME/rag
$ mkdir -p $RAG_DIR
$ cat > $RAG_DIR/docker-compose.yml << 'EOF'
services:ollama:image: mthreads/ollama:${OLLAMA_DOCKER_TAG-latest}pull_policy: alwayscontainer_name: ollamavolumes:- ollama:/root/.ollamaports:- ${OLLAMA_PORT-11434}:11434cap_add:- SYS_NICEtty: truerestart: unless-stoppedopen-webui:image: ghcr.io/open-webui/open-webui:${WEBUI_DOCKER_TAG-latest}pull_policy: alwayscontainer_name: open-webuivolumes:- open-webui:/app/backend/datadepends_on:- ollamaports:- ${OPEN_WEBUI_PORT-3001}:8080environment:- 'OLLAMA_BASE_URL=http://ollama:11434'- 'WEBUI_SECRET_KEY='extra_hosts:- host.docker.internal:host-gatewayrestart: unless-stoppedvolumes:ollama: {}open-webui: {}
EOF

通过 Docker Compose 启动 Ollama 和 Open WebUI 容器​
$ export RAG_DIR=$HOME/rag
$ docker-compose -f $RAG_DIR/docker-compose.yml up -d

通过上述步骤,您将运行一个 Ollama 容器和一个 Open WebUI 容器。Open WebUI 容器的 8080 端口将映射到主机的 3001 端口,您可以通过浏览器访问 http://localhost:3001 来查看 Open WebUI 的界面。

您可以通过 docker exec -it ollama bash 进入 Ollama 容器,然后使用 ollama 命令行工具来管理和运行大语言模型。 例如:

$ docker exec -it ollama bash
root@04b41108d2e4:/# ollama ls
NAME              ID              SIZE      MODIFIED
qwen2.5:latest    845dbda0ea48    4.7 GB    1 days ago
root@04b41108d2e4:/# ollama run qwen2.5

使用 Open WebUI 完成模型下载、知识库准备和推理​

下载 Qwen2.5 模型​

通过 http://localhost:3001 访问 Open WebUI 界面,完成首次的注册和登录操作。登录成功后,您将看到如下界面:

login

点击模型下拉框,输入 qwen2.5,然后点击 Pull "qwen2.5" from Ollama.com 列表项,等待模型下载完成。下载完成后,选择 qwen2.5 模型,您将看到如下界面:

model

此时,您可以通过 Open WebUI 界面与 Qwen2.5 模型进行对话。Open WebUI 会将您的问题发送给 Ollama 服务进行推理,并将结果返回给您。

准备知识库​

点击 WorkspaceKnowledge+ 按钮(在界面的右侧),您可以创建一个新的知识库。在弹出的对话框中,输入知识库的名称和描述,然后点击 Create Knowledge 按钮。

kb-create

点击搜索框右边的 + 按钮,您可以通过多种方式上传知识库的数据,包括添加文本、上传目录等。上传完成后,您可以在知识库中查看您上传的数据。

kb-upload

成功上传的内容会以文件形式排列在搜索框下方,如下图所示。

kb-uploaded

使用知识库进行 RAG 推理​

点击 New Chat 按钮开始一个新对话,从下拉列表中选择 qwen2.5 作为推理模型。在对话框中输入 # 符号,选择刚刚创建的知识库,然后输入您的问题。Open WebUI 会将问题发送到 Ollama 服务进行推理,并将结果返回给您。

chat

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15569.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 -- 环境变量的配置【项目集成3】

环境&#xff1a; 在项目开发过程中&#xff0c;至少会经历开发环境、测试环境和生产环境(即正式环境)三个阶段。 开发环境 .env.development测试环境 .env.test生产环境 .env.production 不同阶段请求的状态(如接口地址等)不一样&#xff0c;开发项目的时候要经常配置代理跨…

AI 大模型应用:AI开发的捷径工作流模式

一、引言 大部分人使用 AI&#xff0c;大概都跟我一样&#xff0c;停留在初级阶段。 平时&#xff0c;就是向 AI 提问&#xff08;又称聊天&#xff09;&#xff0c;偶尔也用一些现成的服务&#xff1a;生成图片、生成代码、翻译文章等等。 但是&#xff0c;时间久了&#x…

研究生被安排许多文献阅读,如何快速的阅读众多英文文献?

在科研的道路上&#xff0c;筛选文献就像是大海捞针&#xff0c;找对了方法&#xff0c;就能快速锁定那些有价值的信息。尤其是在实验方向尚未确定时&#xff0c;如何从海量文献中筛选出“金子”&#xff0c;就显得尤为重要。 关键的第一步&#xff1a;精准筛选 当你面对一堆…

信创迎来冲刺三年,国产项目管理软件跑出数智化“加速度”

信创发展是国家当前重要的战略布局&#xff0c;对国家发展具有长远的战略意义。国资委信创79号文件规定&#xff0c;2027年前按顺序完成“28N”的党政与八大重点行业100%信创替代&#xff0c;通过信创产业发展&#xff0c;国家能够提高自主创新能力&#xff0c;加速推进国产化转…

LSTM(长短期记忆网络)详解

1️⃣ LSTM介绍 标准的RNN存在梯度消失和梯度爆炸问题&#xff0c;无法捕捉长期依赖关系。那么如何理解这个长期依赖关系呢&#xff1f; 例如&#xff0c;有一个语言模型基于先前的词来预测下一个词&#xff0c;我们有一句话 “the clouds are in the sky”&#xff0c;基于&…

基于Java仓库管理系统

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、LayUI 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA 数据库&#xff1a;MySQL8.0 数据库管…

数量关系2_余数平方等差、整除和完工

目录 一、余数、平方数与等差数列1.等差数列2.平方数3.余数问题二、整除问题和合作完工问题1.利用倍数特性解决不定方程2.利用整除特性解决纯整除问题3.合作完工一、余数、平方数与等差数列 1.等差数列 ※等比数列不常考,或者考的时候比较复杂,可放弃。 补充1:常用的等差数…

cache中命中率和缺失率

这张图解释了缓存的三个关键指标&#xff1a;命中率、缺失率和缺失损失&#xff0c;并分析了它们在缓存访问中的重要性。 具体说明 命中&#xff08;Hit&#xff09;&#xff1a; 命中表示要访问的信息在缓存中已经存在&#xff0c;不需要从更慢的主存中读取。命中率&#xff…

Jmeter查看结果树之查看响应的13种详解方法

软件测试资料领取&#xff1a;[内部资源] 想拿年薪40W的软件测试人员&#xff0c;这份资料必须领取~ 软件测试面试刷题工具&#xff1a;软件测试面试刷题【800道面试题答案免费刷】 Jmeter查看结果树查看响应有哪几种方法&#xff0c;可通过左侧面板底部的下拉框选择: 01 Te…

<Project-23 Navigator Portal> Python flask web 网站导航应用 可编辑界面:添加图片、URL、描述、位置移动

目的&#xff1a; 浏览器的地址簿太厚&#xff0c;如下图&#xff1a; 开始&#xff0c;想给每个 Web 应用加 icon 来提高辨识度&#xff0c;发现很麻烦&#xff1a;create image, resize, 还要挑来挑去&#xff0c;重复性地添加代码。再看着这些密密麻麻的含有重复与有规则的…

文心一言 VS 讯飞星火 VS chatgpt (391)-- 算法导论25.1 5题

五、说明如何将单源最短路径问题表示为矩阵和向量的乘积&#xff0c;并解释该乘积的计算过程如何对应 Bellman-Ford 算法&#xff1f;(请参阅24.1节。)。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在解决单源最短路径问题时&#xff0c;我们可以将问题表示…

如何使用cx_Freeze打包编译python文件

1. 安装 cx_Freeze 首先&#xff0c;确保你已经安装了 cx_Freeze。你可以通过 pip 安装它&#xff1a; pip install cx_Freeze2.创建setup.py from cx_Freeze import setup, Executable import os# 确定包的文件和依赖 build_exe_options {"packages": ["os…

深度学习之其他常见的生成式模型

1.1 什么是自回归模型&#xff1a;pixelRNN与pixelCNN&#xff1f; ​ 自回归模型通过对图像数据的概率分布 p d a t a ( x ) p_{data}(x) pdata​(x)进行显式建模&#xff0c;并利用极大似然估计优化模型。具体如下&#xff1a; p d a t a ( x ) ∏ i 1 n p ( x i ∣ x 1 …

短期电力负荷(论文复现)

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

DBeaver如何设置自动刷新数据库表的数据,彻底解放双手!

前言 大家好&#xff0c;我是小徐啊。 DBeaver是一款常用的数据库连接工具&#xff0c;它的优点是免费使用&#xff0c;而且支持的数据库类型超级多&#xff0c;甚至可以直接安装数据库对应的驱动jar包来连接数据库。 比如达梦数据库&#xff0c;之前版本是可以通过jar包方式…

黄仁勋:AI革命将创百万亿美元价值!近屿智能带你入局AIGC

11月13日&#xff0c;NVIDIA在日本成功举办了2024年AI峰会。一场关于人工智能驱动的新工业革命的讨论热烈展开。英伟达创始人兼CEO黄仁勋与软银主席兼CEO孙正义共同探讨了当前技术革命的独特之处及其深远影响。 黄仁勋在会上表示&#xff0c;AI革命将创造的价值不是以万亿美元计…

知网翻译助手及其10款翻译工具使用体验大PK!!!

在这个信息爆炸的时代&#xff0c;翻译工具成了我们日常工作中不可或缺的得力助手。作为一个经常需要处理多语言文件的人&#xff0c;翻译工具对我来说简直是救命稻草。除了知网助手外&#xff0c;我还用过不少翻译软件&#xff0c;现在&#xff0c;我就来说说知网翻译助手和其…

Entity Framework的简单使用案例

需要引入的框架&#xff1a; 实体类&#xff1a; [Table("Users")] internal class User {[Key]public int Id { get; set; }[Required][StringLength(100)][Index(IsUnique true)]public string Username { get; set; }[Required][StringLength(100)]public strin…

Scroll 生态全面启动为 Pencils Protocol 赋能,DAPP 将迎强势腾飞

​Pencils Protocol 是 Scroll 生态最大的综合性 DeFi 平台&#xff0c;随着 DAPP 通证面向市场&#xff0c;Pencils Protocol 生态经济体系也将迎来全面运转。目前&#xff0c;DAPP 通证已经陆续上线了 Gate、Kucoin、Bitget、Coinone 等主流交易市场&#xff0c;全球用户能够…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-23

文件下载与邀请翻译者 学习英特尔开发手册&#xff0c;最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册&#xff0c;会是一件耗时费力的工作。如果有愿意和我一起来做这件事的&#xff0c;那么&#xff…