小智头像图片
AI教程 2025年01月17日
0 收藏 0 点赞 372 浏览 4977 个字
摘要 :

面向开发者的LLM入门教程-向量数据库与词向量(4): 失败的情况(Failure modes) 这看起来很好,基本的相似性搜索很容易就能让你完成80%的工作。但是,可能会出现一些相似……

哈喽!伙伴们,我是小智,你们的AI向导。欢迎来到每日的AI学习时间。今天,我们将一起深入AI的奇妙世界,探索“面向开发者的LLM入门教程-向量数据库与词向量(4)”,并学会本篇文章中所讲的全部知识点。还是那句话“不必远征未知,只需唤醒你的潜能!”跟着小智的步伐,我们终将学有所成,学以致用,并发现自身的更多可能性。话不多说,现在就让我们开始这场激发潜能的AI学习之旅吧。

面向开发者的LLM入门教程-向量数据库与词向量(4)

面向开发者的LLM入门教程-向量数据库与词向量(4):

失败的情况(Failure modes)

这看起来很好,基本的相似性搜索很容易就能让你完成80%的工作。但是,可能会出现一些相似性搜索失败的情况。这里有一些可能出现的边缘情况————我们将在下一章节中修复它们。

1.重复块

question_chinese = “Matplotlib是什么?”
docs_chinese = vectordb_chinese.similarity_search(question_chinese,k=5)

请注意,我们得到了重复的块(因为索引中有重复的 第一回:Matplotlib初相识.pdf )。

语义搜索获取所有相似的文档,但不强制多样性。

docs[0] 和 docs[1] 是完全相同的。

print(“docs[0]”)
print(docs_chinese[0])

print(“docs[1]”)
print(docs_chinese[1])

docs[0]
page_content=’第⼀回:Matplotlib 初相识n⼀、认识matplotlibnMatplotlib 是⼀个 Python
2D 绘图库,能够以多种硬拷⻉格式和跨平台的交互式环境⽣成出版物质量的图形,⽤来绘制各种静态,动态,
n交互式的图表。nMatplotlib 可⽤于 Python 脚本, Python 和 IPython Shell 、 Jupyter
notebook , Web 应⽤程序服务器和各种图形⽤户界⾯⼯具包等。nMatplotlib 是 Python 数据可视
化库中的泰⽃,它已经成为 python 中公认的数据可视化⼯具,我们所熟知的 pandas 和 seaborn 的绘
图接⼝n其实也是基于 matplotlib 所作的⾼级封装。n为了对matplotlib 有更好的理解,让我们从⼀
些最基本的概念开始认识它,再逐渐过渡到⼀些⾼级技巧中。n⼆、⼀个最简单的绘图例⼦nMatplotlib 的
图像是画在 figure (如 windows , jupyter 窗体)上的,每⼀个 figure ⼜包含了⼀个或多个
axes (⼀个可以指定坐标系的⼦区n域)。最简单的创建 figure 以及 axes 的⽅式是通过
pyplot.subplots命令,创建 axes 以后,可以使⽤ Axes.plot绘制最简易的折线图。nimport
matplotlib.pyplot as pltnimport matplotlib as mplnimport numpy as npnfig, ax =
plt.subplots() # 创建⼀个包含⼀个 axes 的 figurenax.plot([1, 2, 3, 4], [1, 4, 2,
3]); # 绘制图像nTrick: 在jupyter notebook 中使⽤ matplotlib 时会发现,代码运⾏后⾃动
打印出类似 n这样⼀段话,这是因为 matplotlib
的绘图代码默认打印出最后⼀个对象。如果不想显示这句话,有以下三种⽅法,在本章节的代码示例n中你能
找到这三种⽅法的使⽤。nx00. 在代码块最后加⼀个分号 ;nx00. 在代码块最后加⼀句
plt.show()nx00. 在绘图时将绘图对象显式赋值给⼀个变量,如将 plt.plot([1, 2, 3, 4]) 改成
line =plt.plot([1, 2, 3, 4])n和MATLAB 命令类似,你还可以通过⼀种更简单的⽅式绘制图像,
matplotlib.pyplot⽅法能够直接在当前 axes 上绘制图像,如果⽤户n未指定axes , matplotlib
会帮你⾃动创建⼀个。所以上⾯的例⼦也可以简化为以下这⼀⾏代码。nline =plt.plot([1, 2, 3,
4], [1, 4, 2, 3]) n三、Figure 的组成n现在我们来深⼊看⼀下 figure 的组成。通过⼀张
figure 解剖图,我们可以看到⼀个完整的 matplotlib 图像通常会包括以下四个层级,这些n层级也被称
为容器( container ),下⼀节会详细介绍。在 matplotlib 的世界中,我们将通过各种命令⽅法来操纵
图像中的每⼀个部分,n从⽽达到数据可视化的最终效果,⼀副完整的图像实际上是各类⼦元素的集合。
nFigure:顶层级,⽤来容纳所有绘图元素’ metadata={‘source’: ‘docs/matplotlib/第一回:
Matplotlib初相识.pdf’, ‘page’: 0}
docs[1]
page_content=’第⼀回:Matplotlib 初相识n⼀、认识matplotlibnMatplotlib 是⼀个 Python
2D 绘图库,能够以多种硬拷⻉格式和跨平台的交互式环境⽣成出版物质量的图形,⽤来绘制各种静态,动态,
n交互式的图表。nMatplotlib 可⽤于 Python 脚本, Python 和 IPython Shell 、 Jupyter
notebook , Web 应⽤程序服务器和各种图形⽤户界⾯⼯具包等。nMatplotlib 是 Python 数据可视
化库中的泰⽃,它已经成为 python 中公认的数据可视化⼯具,我们所熟知的 pandas 和 seaborn 的绘
图接⼝n其实也是基于 matplotlib 所作的⾼级封装。n为了对matplotlib 有更好的理解,让我们从⼀
些最基本的概念开始认识它,再逐渐过渡到⼀些⾼级技巧中。n⼆、⼀个最简单的绘图例⼦nMatplotlib 的
图像是画在 figure (如 windows , jupyter 窗体)上的,每⼀个 figure ⼜包含了⼀个或多个
axes (⼀个可以指定坐标系的⼦区n域)。最简单的创建 figure 以及 axes 的⽅式是通过
pyplot.subplots命令,创建 axes 以后,可以使⽤ Axes.plot绘制最简易的折线图。nimport
matplotlib.pyplot as pltnimport matplotlib as mplnimport numpy as npnfig, ax =
plt.subplots() # 创建⼀个包含⼀个 axes 的 figurenax.plot([1, 2, 3, 4], [1, 4, 2,
3]); # 绘制图像nTrick: 在jupyter notebook 中使⽤ matplotlib 时会发现,代码运⾏后⾃动
打印出类似 n这样⼀段话,这是因为 matplotlib
的绘图代码默认打印出最后⼀个对象。如果不想显示这句话,有以下三种⽅法,在本章节的代码示例n中你能
找到这三种⽅法的使⽤。nx00. 在代码块最后加⼀个分号 ;nx00. 在代码块最后加⼀句
plt.show()nx00. 在绘图时将绘图对象显式赋值给⼀个变量,如将 plt.plot([1, 2, 3, 4]) 改成
line =plt.plot([1, 2, 3, 4])n和MATLAB 命令类似,你还可以通过⼀种更简单的⽅式绘制图像,
matplotlib.pyplot⽅法能够直接在当前 axes 上绘制图像,如果⽤户n未指定axes , matplotlib
会帮你⾃动创建⼀个。所以上⾯的例⼦也可以简化为以下这⼀⾏代码。nline =plt.plot([1, 2, 3,
4], [1, 4, 2, 3]) n三、Figure 的组成n现在我们来深⼊看⼀下 figure 的组成。通过⼀张
figure 解剖图,我们可以看到⼀个完整的 matplotlib 图像通常会包括以下四个层级,这些n层级也被称
为容器( container ),下⼀节会详细介绍。在 matplotlib 的世界中,我们将通过各种命令⽅法来操纵
图像中的每⼀个部分,n从⽽达到数据可视化的最终效果,⼀副完整的图像实际上是各类⼦元素的集合。
nFigure:顶层级,⽤来容纳所有绘图元素’ metadata={‘source’: ‘docs/matplotlib/第一回:
Matplotlib初相识.pdf’, ‘page’: 0}

2.检索错误答案

我们可以看到一种新的失败的情况。

下面的问题询问了关于第二讲的问题,但也包括了来自其他讲的结果。

question_chinese = “他们在第二讲中对Figure说了些什么?”
docs_chinese = vectordb_chinese.similarity_search(question_chinese,k=5)

for doc_chinese in docs_chinese:
print(doc_chinese.metadata)

{‘source’: ‘docs/matplotlib/第一回:Matplotlib初相识.pdf’, ‘page’: 0}
{‘source’: ‘docs/matplotlib/第一回:Matplotlib初相识.pdf’, ‘page’: 0}
{‘source’: ‘docs/matplotlib/第二回:艺术画笔见乾坤.pdf’, ‘page’: 9}
{‘source’: ‘docs/matplotlib/第二回:艺术画笔见乾坤.pdf’, ‘page’: 10}
{‘source’: ‘docs/matplotlib/第一回:Matplotlib初相识.pdf’, ‘page’: 1}

可见,虽然我们询问的问题是第二讲,但第一个出现的答案却是第一讲的内容。而第三个答案才是我们想要的正确回答。

print(docs_chinese[2].page_content)

三、对象容器 – Object container
容器会包含⼀些 primitives,并且容器还有它⾃身的属性。
⽐如Axes Artist,它是⼀种容器,它包含了很多 primitives,⽐如Line2D,Text;同时,它也有⾃身
的属性,⽐如 xscal,⽤来控制
X轴是linear还是log的。
1. Figure容器
matplotlib.figure.Figure是Artist最顶层的 container对象容器,它包含了图表中的所有元素。⼀
张图表的背景就是在
Figure.patch的⼀个矩形 Rectangle。
当我们向图表添加 Figure.add_subplot()或者Figure.add_axes()元素时,这些都会被添加到
Figure.axes列表中。
fig = plt.figure()
ax1 = fig.add_subplot(211) # 作⼀幅2*1 的图,选择第 1 个⼦图
ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.3]) # 位置参数,四个数分别代表了
(left,bottom,width,height)
print(ax1)
print(fig.axes) # fig.axes 中包含了 subplot 和 axes 两个实例 , 刚刚添加的
AxesSubplot(0.125,0.536818;0.775×0.343182)
[, ]
由于Figure维持了current axes,因此你不应该⼿动的从 Figure.axes列表中添加删除元素,⽽是要通
过 Figure.add_subplot()、
Figure.add_axes()来添加元素,通过 Figure.delaxes()来删除元素。但是你可以迭代或者访问
Figure.axes中的Axes,然后修改这个
Axes的属性。
⽐如下⾯的遍历 axes ⾥的内容,并且添加⽹格线:
fig = plt.figure()
ax1 = fig.add_subplot(211)
for ax in fig.axes:
ax.grid(True)
Figure也有它⾃⼰的 text、line 、 patch 、 image。你可以直接通过 add primitive语句直接添
加。但是注意 Figure默认的坐标系是以像
素为单位,你可能需要转换成 figure 坐标系: (0,0) 表示左下点, (1,1) 表示右上点。
Figure容器的常⻅属性:
Figure.patch属性:Figure 的背景矩形
Figure.axes属性:⼀个 Axes 实例的列表(包括 Subplot)
Figure.images属性:⼀个 FigureImages patch 列表
Figure.lines属性:⼀个 Line2D 实例的列表(很少使⽤)
Figure.legends属性:⼀个 Figure Legend 实例列表(不同于 Axes.legends)
Figure.texts属性:⼀个 Figure Text 实例列表

在接下来的章节中,我们将探讨的方法能够有效地解答这两个问题!

面向开发者的LLM入门教程-向量数据库与词向量英文版
面向开发者的LLM入门教程-向量数据库与词向量英文版:英文版 1.读取文档 from langchain.document_loaders import PyPDFLoade...

嘿,伙伴们,今天我们的AI探索之旅已经圆满结束。关于“面向开发者的LLM入门教程-向量数据库与词向量(4)”的内容已经分享给大家了。感谢你们的陪伴,希望这次旅程让你对AI能够更了解、更喜欢。谨记,精准提问是解锁AI潜能的钥匙哦!如果有小伙伴想要了解学习更多的AI知识,请关注我们的官网“AI智研社”,保证让你收获满满呦!

微信打赏二维码 微信扫一扫

支付宝打赏二维码 支付宝扫一扫

版权: 转载请注明出处:https://www.ai-blog.cn/2804.html

相关推荐

AI写作-DeepSeek高阶提示词之自媒体爆款创作篇: 自媒体爆款创作篇 6.10W+标题生成器 “生成20个关…

小智头像图片
372

AI写作-DeepSeek高阶提示词之职场打工人必备篇: 职场打工人必备篇 1.会议纪要秒整理 “将以下会议…

小智头像图片
372

AI绘画-即梦3.0提示词示例之场景化种草型​: 场景化种草型​ 公式:产品+使用场景+氛围渲染+情感化…

小智头像图片
63

AI绘画-即梦3.0提示词示例之限时折扣型​: 限时折扣型​ 公式:产品+价格锚点+紧迫感元素+霓虹灯风…

小智头像图片
372

AI绘画-即梦3.0提示词示例之新品发布型: 新品发布型​ 公式:产品+核心卖点+高级质感+极简排版 ​ …

小智头像图片
372

AI绘画-即梦3.0提示词示例之节日促销型​: 节日促销型​ 公式:产品+节日主题+视觉元素+动态文字+风…

小智头像图片
372

AI绘画-即梦3.0提示词示例之暗黑哥特​: 暗黑哥特​ 提示词: 哥特体、烛光照明、高反差,荆棘十字…

小智头像图片
372

AI绘画-即梦3.0提示词示例之奶油治愈​: 奶油治愈​ 提示词: 奶乎乎、柔焦镜头、低对比,猫咪蜷缩…

小智头像图片
372
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力原创内容

快速提升站内名气成为大牛

扫描二维码

手机访问本站

二维码
vip弹窗图片