- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 Embedding及其数据库
我们知道,向量数据库是指用来在进行LLM问答时进行上下文检索的,一个好的向量数据库应该可以将LLM所需的信息提取出来精准匹配,但是由于算法的缺点,embedding数据库通过LLM的向量匹配是比较困难进行提取的,各种各样的距离算法也是效果各不相同,因此后面出现了各式各样的多次RAG来提高准确度,在实际应用场景中,还是有很多需要精度而对时间要求不那么高的场景的。因为,探究RAG的原理及其背后技术成为我们改进的基础。首先,
2024-08-29 16:02:02
1329
1
原创 RAG流程应用
上下文压缩:1.query→检索→长的有噪声的语句→大模型(利用合适的prompt:1.提取有关信息 2.删除无关信息)→去除无效信息,提取有关信息。一般RAG中可能会出现的问题有:内容缺失,排序问题,整合策略限制,提取不到有用信息,格式不符,错误的具体度,不完整性。将一片大文档分为几个父文档,再分为子文档,根据不同的需求,返回不同长度的信息,并选择合适的划分方式。可使用的方法:多查询检索器,上下文压缩,集成检索器,长上下文重排,父文档检索器。2.相似度得分阈值检索:query→检索→阈值过滤。
2024-03-01 14:18:55
500
原创 RAG模型选取
将模型对数据集进行embedding并进行可视化,如果数据集比较专,那么就能看到各个embedding对数据集抽样的embedding情况,作为其中一个参考标准。根据语义丰富性进行选择,如果各种数据都有,那么高维的embedding会更适合。但如果是面向业务,信息精而专,那么小一些维度的embedding效果可能会更好。根据实际使用时,一般的输出句子长度大小进行判断,如果检索到的一条完整的信息长度较长,则需要能输入长度更长的embedding。根据个人的设备情况以及运行速度进行选取,一般不作为参考标准。
2024-03-01 11:18:58
389
原创 embedding的原理和结构
(向量化)是一个将数据转化为向量矩阵的过程,作用是:将高维稀疏向量转化为稠密向量,从而方便下游模型处理简单的概念大家应该都知道了,以LLM为例输入:文字模型:embedding输出:向量我疑惑的难点主要为以下:1.embedding的结构√2.embedding的训练(根据不同的目标进行数据不同的组织形式,进行相对应任务的训练,可以看结构想到)3.embedding的难点以及各种模型的优势(未解决)
2024-02-29 17:56:16
2112
原创 langgraph开发入门初稿——简稿
整体还是很清晰的,整体的思路就是1.先定义agent的一些基础概念:模型,prompt模板还有用到的工具,最后创建function call格式的对话工具2.然后定义graph图中间可表示运行状态的东西:有输入,对话历史,中间步骤(工具使用情况),最后还有工具的输出3.接着定义agent:定义一个要是用什么工具的判断器,定义一个执行工具的函数,最后定义在条件边缘时的判断方法。
2024-02-26 17:19:20
1616
原创 OLMo系列——预训练part1(olmo/train.py)
CLASS 1@dataclassclass SpeedMonitor: cfg: SpeedMonitorConfig start_times: Deque[float] = field(default_factory=lambda: deque([])) global_total_tokens: int = 0 device_interval_tokens: Deque[int] = field(default_factory=lambda: deque([]))
2024-02-18 22:43:27
1198
原创 OlMo--doc文件阅读
kempner是一种计算机集群的概念,这边暂时不太阐述。剩下的就是虚拟环境——运行环境配置。跟着文件中一步步来就好。
2024-02-16 17:53:45
392
1
原创 OLMo论文里的模型结构的小白解析
传统的位置嵌入是通过为不同位置的元素分配固定的嵌入向量来实现的,而 RoPE 通过引入旋转操作,使得模型能够更灵活地学习和表示序列中元素的相对位置。在文中提到使用SwiGLU激活函数,可能是因为作者发现在他们的任务和模型结构中,SwiGLU相对于传统的激活函数(如ReLU)或GLU具有更好的性能或更好的适应性。与损失峰值不同,缓慢发散是指模型性能的渐进性恶化,而不是突然的、剧烈的增加。:在神经网络中,层归一化是一种常用的技术,用于在网络的每一层中对输入进行归一化处理,以加速训练和提高模型的泛化能力。
2024-02-14 23:24:39
1547
1
原创 基于langgraph的开发入门(初稿)
由于langgraph是较新的multi-agent框架,资料较少,官方文档又晦涩难懂,且自己只有一点点langchain的经验,所以准备精读langgraph的框架,特此记录,以供查阅。
2024-02-06 18:04:01
2655
1
原创 Transformer源代码搭建逐类逐行逐句阅读分析
3.计算qkv矩阵:q = self.w_qs(q).view(sz_b, len_q, n_head, d_k) k = self.w_ks(k).view(sz_b, len_k, n_head, d_k) v = self.w_vs(v).view(sz_b, len_v, n_head, d_v)对于每个样本,对其每个特征维度进行标准化,使得每个特征的均值为零,方差为一,使得输出的张量在每个样本的每个特征维度上都满足标准正态分布。被设置为 False。来计算目标序列的 logits。
2024-01-31 17:06:35
1265
原创 BLIP论文学习笔记
重点:模型为视觉语言预训练模型以往的模型:提升精度主要靠数据集本研究:新的视觉语言预训练框架,可以利用图像理解来进行文本生成模型特点:BLIP 通过对描述进行引导,有效地利用了嘈杂的网络数据。描述生成器生成合成描述,过滤器再进行过滤。应用:图像文本检索,图像描述,图像问答,在视频语言领域也有很好的泛化能力最主要的是提出了一个框架,这个框架可变性较强,适用于各种下游人物并且这个引导式的方法能够对数据集有一个好的清洗和增强效果。
2024-01-15 16:53:10
1019
原创 pytorch与xformers版本关系对应
其他的可以从github里xformers发布的版本中写的pytorch版本推断。xformers 0.0.22对应pytorch 2.0.1。pytorch与xformers版本关系对应。0.0.23对应2.1.1。
2024-01-12 14:42:51
16211
1
原创 langchain-Chatchat api客户发送端格式
返回的json的内容修改在api.py 文件里的mount_knowledge_routes函数里每个api功能对应的函数里可以修改json,yield json即为返回的respons结果。(python中yield的作用:和return的功能一样,可以返回函数的输出,但是用法不一样,具体去看yield的用法)在设定的api端口http://localhost:xxxx/docs中可以点击查看。tests/api文件夹下的文件为调用api的格式文件。
2024-01-02 17:40:59
1261
原创 langchain-Chatchat 项目小记 agent运行程序的位置
运行程序并不在langchain-Chatchat本身项目中,关键位置在于建立glm3agent时最后的返回executor。而在langchain库中。
2023-12-21 16:57:00
907
3
原创 langchain构建本地应用以及调用api流程
(1)embedding模型,如果不改则不需要改代码,改的话就要把读取代码一起改掉,具体的就要改掉之后等报错代码,在init_database函数里进行修改,建议用原模型,改起来很麻烦。(2)LLMs,更改model列表里的模型,写你本地或者api需要的模型(例如"mymodel")。更改configs/model_config.py.example里。然后在下面的路径json里定义你模型的绝对路径或者api设置。hugging face 下载对应模型。(1)embedding模型。根据github程序。
2023-12-13 15:23:17
3711
2
原创 利用大模型实现调用不同的功能api
function call examplefunction callopenai社区openai社区案例其他实现路径备选一文学会functioncall吴恩达课程第七节langchain本地入门
2023-12-13 15:05:41
696
1
原创 声音学入门及资料整理——0
音色的不同是因为许多不同频率大小的震动同时发生时,人耳无法分辨所得到的,但是有一个基准音高。?驻波是一种能够让波更好传播的波现象,简单来说,是相同波能够互相抵消并存在。
2023-12-13 15:05:23
427
1
原创 omegaconf.errors.MissingMandatoryValue: Missing mandatory value: datasource.evaluate
在OmegaConf中,如果键值的value是missing的状态,访问此键对应的值会报错;dora开始训练时需要读取yaml文件,如果文件有训练阶段使用的值,但是没有定义,就会报错。omegaconf的config格式中,所使用的config文件有缺失value。找到命令行或者文件中引入的配置文件,找到对应的key,添加value即可。我这里是evaluate未定义,yaml配置为?yaml配置文件对应值未定义。
2023-10-16 10:41:18
2339
1
原创 NotImplementedError: Cannot copy out of meta tensor; no data!
最大的问题还是我太相信transformers自带的bitsandbytes库了。主要还是从CPU和GPU上TENSOR的相互转换的时候遇到的问题。然后在pytorch上有人问了在tensor转移时遇到的问题。参考了一些答案,需要先确保自己的库是对的。发现和我遇到的问题报错很相似。重新加载模型时出现的问题。
2023-08-29 15:45:51
8727
5
原创 pyinstaller打包geopandas全流程记录
1、原因是因为,pyinstaller不会去专门的dll文件夹里寻找所需要的插件,故出现这种找不到模块的错误,可以看看是否是有同名文件夹,只是后缀不一样,如果是,复制过来即可。2、解决方法多种多样,此方法只适合一次打包任务,如果有很多打包任务,建议还是从环境和pyinstaller的设置入手。2、仔细阅读pyinstaller打包时的warning,实际上那就是ERROR!将后缀为.dll的文件夹里的内容拷贝到没有.dll的后缀文件夹里,将原来打包的程序删除后重新打包。注意,打包可能不会出现错误。
2023-07-25 17:21:53
494
1
原创 计算两幅影像之间的显著性数值
写论文时有一个意见叫做加入显著性在网上找了一圈,因为计算了两幅影像之间的相关性,计算tif之间的显著性的却没有。因为自己在统计上基础薄弱,一直不知道显著性是什么之前计算的都是时序性的,这次第一次计算两张之间研究了一天,才知道只要有两组数据就可以自己写了一个代码,基于python加入了重塑tif和读取矩阵其中P值越小,证明显著性越高。
2023-05-27 19:37:05
287
1
原创 geopandas读取文件错误记录:Access violation - no RTTI data
底部错误为OSError: exception: access violation writing 0x0000000000000000。运行 读取shp文件时出现Access violation - no RTTI data!可能只需卸载掉就可以了,因为重复安装库。错误是由于geopandas库造成的。
2023-03-23 21:10:33
1273
1
python自动识别并安装程序依赖的库
2024-02-16
用python做回归分析程序
2020-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅