【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署

【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署

什么是RAG:

在这里插入图片描述
在这里插入图片描述
我能把这个过程理解为Kimi.ai每次都能列出的一大堆网页参考资料吗?Kimi学了这些资料以后,根据这里面的信息综合还生成的答案,而不是仅仅基于自己的现有知识库回答。在这里插入图片描述
Kimi本体认证:差不多就是这个意思!RAG=AI自己的知识库+现成输入/网上现找的,现学提炼信息回答在这里插入图片描述

一个完整的RAG链路:

在这里插入图片描述
有道截屏翻译一下:在这里插入图片描述
在这里插入图片描述
也就是说,我们传给AI解析的东西都会塞进数据库?那是不是机密的东西(比如未发表的自己的论文)就不能给AI纠错了?、

遗憾的是,确实是这样。

Kimi的后半段说的也很对,需要充分披露AI的使用情况。想之前我港硕在读的时候,我们有门课的老师就允许我们用AI,但是必须在作业开头声明使用的AI及其具体用途,比如翻译润色、资料收集等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
想起来之前一个很常见的例子:好像是词向量空间里面,男人到国王的距离与女人到女王的距离差不多。
在这里插入图片描述
之前在Youtube看推荐算法网课的时候,记得很对推荐的选项也是离线完成的。在这里插入图片描述
RAG的在线计算过程和推荐算法感觉有很多相似之处。
在这里插入图片描述
说到推荐系统,Youtube上有一个推荐系统网课挺不错,是基于小红书的技术路线做的剖析。B站上好像也有。
https://www.youtube.com/watch?v=5dTOPen28ts&list=PLvOO0btloRntAi-VnV06M1Bu0X1xljUUP
传送门(需要科学上网)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

现有的开源框架:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我猜这里是RAG的关键?让模型学到知识库里面的东西。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码当中这个get_similarity函数就是在算余弦相似度:
在这里插入图片描述在这里插入图片描述
这段RAG代码定义了两个主要的类,VectorStoreIndex 和 LLM。
VectorStoreIndex负责管理文档、找相似的。在这里插入图片描述
LLM类型要常见一些,之前其他大模型应用里面也有差不多的类,在这负责查询文档生成文本。在这里插入图片描述
那么,RAG的核心是否就依赖于这个额外输入的knowledge.txt呢?
在这里插入图片描述
知识库的文本数据被读取,生成向量表示,和模型的其他自有知识库里面的知识一起参与余弦相似度匹配(计算问题向量与知识库中每个文档向量之间的余弦相似度),如果最相似,知识库就发挥了作用,与模型现有的其他知识一起参与生成回答。

RAG模型的两个主要组件:检索组件用来管理和检索文档向量,生成组件用于生成回答。
在这里插入图片描述

项目开发遇到的BUG:

说回项目开发这块,我之前用的DeepSeek的模型,现在按照Task03的案例换回浪潮大模型,但是遇到一个很致命的问题——运行模型弹出的俩浏览器网页我的电脑都打不开。
在这里插入图片描述
在这里插入图片描述
一位群友提供了一个解决方案:
在这里插入图片描述
我尝试了但是还是不行。
在这里插入图片描述
然后另一位大佬说要做端口转发,但我完全没听过这是啥……
在这里插入图片描述
于是我又继续在群里厚脸皮请教,刚刚那位大佬表示:我没把命令形式写对。
在这里插入图片描述
以防万一,我这次直接让Kimi帮我写了一段规范的:
在这里插入图片描述

streamlit run app.py --server.address 127.0.0.1 --server.port 6006

这次就没问题啦!耶!!!
在这里插入图片描述
但是我的程序还是跑不起来,不知道为什么老找不到模型……
在这里插入图片描述
我看了一下被我模仿……哦不借鉴的Task03的AI科研助手,原来他这里专门定义的模型路径跟我那个不一样,有个“-”和“_”的区别,怪不得我打不开!!
在这里插入图片描述
我的代码:在这里插入图片描述
果然不报这个错误了!!
经过我的一番操作和通义千问不厌其烦地努力,手工删除了很多借鉴,咳咳,别人模型引入的一些莫名其妙不需要的多余变量,现在总算是迁移模型成功了!
在这里插入图片描述
人话:能跑了。
但是显而易见,这个迁移后的效果不怎么好……
在这里插入图片描述
增加了随机种子以后好了一些,但是显然回答的质量远不如之前DeepSeek的模型高。
在这里插入图片描述
而且整个【换一换】按钮老重复出现,我暂时还不知道该怎么改掉。在这里插入图片描述
效果不算太让我满意,但是就我目前水平来说感觉一下子也提不起来,而且确实这个夏令营的进度太!赶!了!我还同时参加了AIGC方向的夏令营,两边都在猛追进度。我决定先看看部署如何是好,之前看了Streamlit好像就有这个功能。
看起来还不算太难?
在这里插入图片描述
注意这个注册邮箱不能是QQ邮箱,否则显示不出校验码。
但是我换了港硕邮箱,发现他认不出我是真人……163邮箱也不行。
在这里插入图片描述
另一个部署平台也注册不了……
在这里插入图片描述
这就有点尴尬了……

创空间部署装环境

我试了AI给我建议的部署平台,俩都不行,后面我找到了ModelScope的疑似部署地址创空间,下面这个是教程:https://www.modelscope.cn/docs/%E5%88%9B%E7%A9%BA%E9%97%B4%E5%88%9B%E5%BB%BA%E4%B8%8E%E6%90%AD%E5%BB%BA
传送门
我创空间部署的时候遇到了一个奇葩问题:环境没对——No Module named ‘langchain’。
在这里插入图片描述
问了热心群友,终于搞明白了应该怎么给创空间装环境让他不要报错“缺少模块”。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
这个问题解决了以后,后面又遇到Torch和CUDA不配合的问题:
在这里插入图片描述
还是这位好心的大佬,教我把调用了GPU的代码让AI改CPU!

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
然后果然代码没再报错了。但我感觉CPU好像不太聪明的样子,看不到运行结果??
群里这位大佬摸索的这个部署逻辑基本对。
要有个app.py,requirements.txt库写上所有依赖的环境包,创空间会自动读取这俩运行装库,跑代码,没报错=部署成功一大半了(环境没挂),后续就是功能测试和代码内部逻辑问题。
在这里插入图片描述

Task03AI科研助手案例:

我第一次运行装环境也报错。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大佬说更新pip和改一下传参的写法。
在这里插入图片描述
我再跑了一次装环境的命令发现报错消失了,但是始终提示找不到他这代码文件。确实看只装了环境,也没有拉代码库下来的命令,我就自己建了个.py代码跑。
中间报错我问通义千问也是半懂不懂的,反正缺啥库就装,一顿操作猛如虎。
在这里插入图片描述
然后莫名其妙就跑起来了,AMAZING!
在这里插入图片描述
喂它一个之前实习公司讲座介绍的关于AI调参的论文试试:
北大巨佬的学术成果,瞻仰一下。
在这里插入图片描述
啊这……?????
在这里插入图片描述
整不会了,先放放。停机的时候都给网站卡出彩花了。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#发送邮件功能实现全面指南?有哪些方法?

C#发送邮件性能优化技巧?C#发信时如何设置邮件格式? 在现代应用程序开发中,发送电子邮件是一个常见的需求。无论是发送通知、警报,还是定期报告,邮件功能都是至关重要的。AokSend将详细探讨如何在C#中实现发送邮件的功…

SpringBoot教程(二十三) | SpringBoot实现分布式定时任务之xxl-job

SpringBoot教程(二十三) | SpringBoot实现分布式定时任务之xxl-job 简介一、前置条件:需要搭建调度中心1、先下载调度中心源码2、修改配置文件3、启动项目4、进行访问5、打包部署(上正式) 二、SpringBoot集成Xxl-Job1.…

stm32的UART重定向printf()

1配置好uart 2打开usart.c文件 3在此文件前面添加头文件 4在末尾添加重定向代码 添加的代码 /* USER CODE BEGIN 1 *///加入以下代码,支持printf函数,而不需要选择use MicroLIB //#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #if 1 //#pragma import(__use_n…

day01- Web开发介绍-HTML-CS

Web开发介绍 1 什么是web开发 Web:全球广域网,也称为万维网(www World Wide Web),能够通过浏览器访问的网站。 所以Web开发说白了,就是开发网站的,例如下图所示的网站:淘宝,京东等等 那么我们…

JavaEE过滤器的创建与使用过滤器的使用场景

过滤器 Filter也称之为过滤器,过滤器是javaEE规范肿定义的一种技术,可以让请求到达目标servlet之前,先进入到过滤器中,在过滤器中统一进行一些拦截处理,当处理完成后,可以继续向后执行,到达目标servlet,如果配置了多个过滤器,也可以进入下一个过滤器 创建过滤器 创…

asyncua模块实现OPC UA通讯

asyncua是OPCUA的python实现,使用起来非常方便,其github地址是https://github.com/FreeOpcUa/opcua-asyncio UaExpert是OPC UA Client的GUI工具,当编写好server代码后并运行,我们可以使用UaExpert去和server进行通信。UaExpert使…

小程序使用微信支付

接入小程序需要后端进行注册,前端只需要调用API即可。 大概流程如下: 本例使用一个购买商品的例子,前端点击微信支付,后端生成一个商品订单,然后向微信支付系统发起请求,生成一个微信的预支付订单&#xff…

windows上传的文本在linux执行不了,格式转换

在windows编辑的文件脚本上传到linux里面执行不了 1.现象描述 比如在windows编辑简单的文本 2.上传到linux后执行无结果 无响应 3.编码问题 比普通文件多了with CRLF line terminators结尾格式。 cat -v 可以让隐藏的转义字符也打印中显示 4.原因windows和linux的换行符不…

数字化办公OA系统是如何运作的——办公物品领用功能拆解

数字化办公 OA 系统究竟是如何运作的呢?它的核心功能又是如何发挥作用的呢?这篇就以行政 OA 系统为例,从产品视角来深入探讨它是如何运作的。 简道云行政OA管理系统模板,可以直接查看和使用:https://www.jiandaoyun.co…

springboot纹理生成图片系统--论文源码调试讲解

第2章 程序开发技术 2.1 MySQL数据库 开发的程序面向用户的只是程序的功能界面,让用户操作程序界面的各个功能,那么很多人就会问,用户使用程序功能生成的数据信息放在哪里的?这个就需要涉及到数据库的知识了,一般来说…

地平线旭日X3开发板--使用Opencv显示CSI摄像头例程

调试过程发现旭日派无法直接用opencv的VideoCapture()调用CSI摄像头, 需要使用libsrcampy库来获取CSI摄像头图像, 但是从libsrcampy获取的摄像头图像格式是NV12,无法直接在opencv上显示或者处理, 为了能够使用opencv的API来处理图像, 需要增加NV12转化成bgr像素格式的…

springboot项目配置https安装ssl证书教程

1.将下载的ssl证书文件中的jks后缀文件放在/src/main/resource文件夹里面 2.在配置文件中(yml后缀配置文件的格式不同)添加如下配置即可

ensp小实验(ospf+dhcp+防火墙)

前言 今天给大家分享一个ensp的小实验,里面包含了ospf、dhcp、防火墙的内容,如果需要文件的可以私我。 一、拓扑图 二、实训需求 某学校新建一个分校区网络,经过与校领导和网络管理员的沟通,现通过了设备选型和组网解决方案&…

运维学习————nginx-入门及反向代理搭建

目录 一、简介 二、正向代理和反向代理 1、正向代理 作用 2、反向代理 作用 三、单机版nginx部署 1、查看环境 2、环境安装以及nginx安装 2.1、安装pcre 2.2、安装gzip模块需要 zlib 库 2.3、安装Nginx 3、启动测试 四、反向代理配置 一、简介 nginx [engine x] 是…

计算机Java项目|基于SpringBoot的大学生一体化服务平台的设计与实现

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参…

C++入门——16C++11新特性

1.列表初始化 初始化列表时,可添加等号(),也可不添加。 struct Point {int _x;int _y; };int main() {int x1 1;int x2{ 2 };int array1[]{ 1, 2, 3, 4, 5 };int array2[5]{ 0 };Point p{ 1, 2 };// C11中列表初始化也可以适用于new表达式中int* pa …

POK´ELLMON:在宝可梦战斗中实现人类水平的人工智能

人工智能咨询培训老师叶梓 转载标明出处 最近,由美国乔治亚理工学院的Sihao Hu、Tiansheng Huang和Ling Liu发表的论文介绍了POKELLMON,这是一个开创性的基于大模型(LLM)的具身智能体,它在战术战斗游戏中,特…

海康VisionMaster使用学习笔记11-VisionMaster基本操作

VisionMaster基本操作 VM示例方案 1. 工具拖拽及使用方式 分别从采集和定位栏里拖拽图像源,快速匹配,Blob分析工具 2. 模块连线 依次连线 3.如何订阅 点击快速匹配,可以看到输入源已订阅了图像1的图像,Blob分析类似 4. 方案操作及全局触发 点击快速匹配,创建特征模版,框选…

【Hot100】LeetCode—2. 两数相加

目录 1- 思路思路 2- 实现⭐2. 两数相加——题解思路 3- ACM 实现 原题连接:2. 两数相加 1- 思路 思路 分为几个步骤 ①数据结构:遍历指针,进位符、②遍历两个链表、③处理最后的进位符 1- 数据结构 定义 curA 和 curB 用来遍历两个链表定义 carry 记…

慎投!4本SCI/SSCI期刊被剔,8月WOS已更新!

SCI/SSCI期刊目录8月份已更新!快来查收最新动态!如有相关领域作者有意投稿,可作为重点关注! ​ 期刊动态 ​ 2024年8月科睿唯安期刊目录更新 2024年8月20日,科睿唯安更新了WOS期刊目录,此次更新&#x…