自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(363)
  • 收藏
  • 关注

原创 langchain pdf链检索,提问式表单(实体命名识别)

通过用户输入的内容,识别需要填写的字段,有点实体命名识别的感觉,当需要从程序中识别特定实体时可以参考。stuff 链,重排链,RetrievalQA 链。

2024-04-21 12:44:46 242

原创 langchain 加载 csv,json

设置了引用字符为双引号(在CSV文件中,如果某个字段值本身包含逗号或其他特殊字符,或者整个字段需要被视为一个不可分割的整体,通常会使用双引号将其包围起来。这里的设定告诉解析器如何正确识别和处理被引号包裹的字段值。: 提供了列名列表。如果CSV文件的第一行没有列名(或者不希望使用第一行作为列名),可以在这里显式指定列名。在这个例子中,列名分别为“专业”和“描述”,对应到CSV文件中两列数据的实际含义。'专业'指定了一个特定的列名。这个参数的意义可能依赖于CSVLoader的具体实现细节。

2024-04-13 23:53:52 306

原创 langchain 文本向量化存储,并检索相似 topK,检索方法汇总

txt 有多行,我的这份数据有 67 行,样例如下:字段1\t值1\n字段2\t值2\n...

2024-04-13 22:22:43 386

原创 langchain txt 文档按字数分块,按指定字符分块

txt 有多行,我的这份数据有 67 行,样例如下:字段1\t值1\n字段2\t值2\n...

2024-04-13 20:31:34 212

原创 streamlit 大模型前段界面

会报错:ModuleNotFoundError: No module named ‘streamlit.cli‘streamlit run D:\Python_project\NLP\大模型学习\test.py。结合 langchain 一起使用的工具,可以显示 web 界面。部署雲端可以点击右上角,结合官网示例查看怎么部署。

2024-04-13 14:02:14 189

原创 langchain agent 使用外部工具示例

室外计算机器与天气搜索引擎,但在使用天气查询的时候好像不可以用了。

2024-04-13 13:16:43 322

原创 langchain callback 回调

当某个模型出问题,回调正常的模型,示例代码。

2024-04-13 13:14:01 105

原创 langchain RunableBranch 分类判断选择不同链

【代码】langchain RunableBranch 分类判断选择不同链。

2024-04-13 13:02:29 234

原创 langchain 链式写法-使用本地 embedding 模型,Faiss 检索

使用本地下载的 embedding 模型去做 embedding,然后从中查相似的。

2024-04-12 21:22:47 289

原创 langchain txt 文档加载,分割

每次只需要针对一个文档生成回答,避免过长 context;回答是逐步推理和完善的,而不是一次性塞入所有信息;可以自定义每轮的提示词模版,实现更精细的控制。但适合超大成千上万的文档量,因为是并行,map,reduce 需要不同提示词模版,多次调用问答模型,效率低。这里采用的是 stuff 策略,也就是将一大段文本。按字数分割成 N 个文本块,又合并成一个大的文本块。也是多轮,但每一轮输入都只包含一个文档,以及之前轮次的中间回答。对超大规模不友好,没有区分文档重要性,适合文档量较少场景。

2024-04-11 22:09:33 309

原创 langchain 使用本地通义千问,7B,14B

看了下是不支持这中模型,但看列表中有一个 Qwen 字样,想着应该是支持的,就去 hugging face 搜了下这个东西 “Qwen2”找到了对应的 qwen1.5-7B-Chat 模型。其实也就是一种公测版本,,所以总结来说目前直接导入本地 通义千问 langchaing 支持不是很好,可以使用 ollama,但这个下载非常慢,还会失败。qwen1.5-7B-Chat 我们用这个模型,是可以加载成功的,并输出的,但是非常非常慢。模型:qwen1.5-7B-Chat,qwen-7B-Chat。

2024-04-10 22:20:23 309

原创 langchain LCEL,prompt模块,outputparse输出模块

然后再代码目录创建一个 .env 文件,用来保存 api-key,例如这样就可以用了,就不需要官网默认示例的 openai 了,那个比较麻烦。

2024-04-09 23:11:36 758

原创 prompt 工程案例

而且评判的数据挺重要的,就像我这个需求应该是分类任务对吧,那结果应该有一个,对就对,不对就不对,我调了几版 prompt ,最好的准确率是 39%,就去数据及理由,有些数据光是人去判断都不太好判断,或是有歧义的,更别说模型了,例如。prompt 入门门槛我觉得比较低,网上随便找资料大概都知道编写模版套路,但效果得结合实际业务情况调优好几天,有些还得通过编程进行辅助,比如预处理工具,提取地名啥的,匹配标签啥的,再去输入给大模型。数据,专业描述的文本,还有对应的 label,

2024-04-04 16:22:24 1293

原创 大模型 web ui 界面 text-generation-webui

使用 text-generation-webui 生成大模型界面,这个是专门用于文本对话生成的 web ui 界面克隆或下载到本地,我是想试试这个怎么样,我的环境:win10, cpu所以在模型方面找了小模型来试试,messages,

2024-04-01 20:38:27 758

原创 bert 适合 embedding 的模型

直接使用 bert 先 embedding 然后找出相似的文本,效果都不太好,试过 bert-base-chinese,bert-wwm,robert-wwm 这些,都有一个问题,那就是明明不相似的文本却在结果中变成了相似,真正相似的有没有,例如:手机壳迷你版,与这条数据相似的应该都是跟手机壳有关的才合理,但结果不太好,明明不相关的,余弦相似度都能有有 0.9 以上的,所以问题出在 embedding 上,找了适合做 embedding 的模型,再去计算相似效果好了很多,合理很多。

2024-03-27 00:04:04 1037

原创 图片拼接,并显示文字

有一些图片,每张图片有对应的文本,需要一张一张拼接为 N 行 M 列的形式,每张图片的文本显示在它下方,文字没有换行,换行的一直有问题,不过一般文本也不会太长。如果只想拼接图片,把这几行注释掉就可以。

2024-03-24 00:36:41 210

原创 hanlp,pyhanlp 实现 NLP 任务

【代码】hanlp,pyhanlp 实现 NLP 任务。

2024-03-13 00:01:33 518

原创 bert 相似度任务训练完整版

相似度用的是 0,1,相当于分类任务,现在我们相似度有评分,不再是 0,1 了,分数为 0-5,数字越大代表两个句子越相似,这一次的比较完整,评估,验证集,相似度模型都有了。数据集链接:https://pan.baidu.com/s/1B1-PKAKNoT_JwMYJx_zT1g提取码:er1z原始数据好几千条,我训练数据用了部分 2500 条,验证,测试 300 左右,使用 cpu 也用了好几个小时。

2024-03-03 17:05:00 543

原创 bert 相似度任务训练简单版本,faiss 寻找相似 topk

但其实在相似度任务中,我们每一条数据都是【text1\ttext2\tlabel】的形式,其中 label 代表相似度,可以给两个文本打分表示相似度,也可以。可以看到还是较好的学习了我数据特征:只要两文本中有一个地址相似我就作为相似,标签为 1,否则 0。现在我搞了一个招聘数据,里面有办公区域列,处理过了,每一行代表【地址1\t地址2\t相似度】,0 代表不相似,1 代表相似,他这篇文章利用了这种思想,对新手还挺有用的。只要两文本中有一个地址相似我就作为相似,标签为 1,否则 0。,相当于二分类任务了。

2024-03-01 21:55:40 567

原创 OSError: libcusparse.so.11: cannot open shared object file: No such file or directory

在 linux 上使用 pycharm 远程连接创建虚拟环境后,使用此环境运行后报的错,按道理来说创建环境这些原始的包,文件都会有才对,但就是没有,搜了一圈,都没解决,最后用暴力解决了下面是没找到的情况。

2024-02-26 21:51:52 550

原创 LDA 关键词提取

LDA(Latent Dirichlet Allocation)确实是一个用于从大量文档中提取关键词的算法,但它并不是直接基于语义去提取关键词,而是通过建立文档主题的概率分布模型来间接揭示文档的关键词结构。LDA是一种统计模型,特别是一种主题模型,由David Blei、Andrew Ng和Michael Jordan在2003年提出。假设: 每篇文档是由多个潜在主题(latent topics)按照一定概率混合而成,每个主题又对应着一组关键词的概率分布。

2024-02-25 15:28:09 666

原创 gensim 实现 TF-IDF;textRank 关键词提取

含义:: 词频,是指一个词语在当前文档中出现的次数。它衡量的是词语在文档内部的重要性,直观上讲,一个词语在文档中出现越频繁,表明它对该文档内容描述的贡献越大。: 逆文档频率,是一个词语在整个文档集合中的稀有度度量。IDF值由所有文档的数量除以包含该词语的文档数量,然后取对数得出。一个词语在越多的文档中出现,其IDF值就越小,反之,出现在少数文档中的词语IDF值较大,表示这个词具有更高的鉴别力。TF-IDF计算公式其中,t是词语,d是文档。优点:突出重点。

2024-02-25 15:17:58 622

原创 excel标记文本中的关键词加红加粗

有这么一张表,关键词为 word,文本内容为 text,现在想把 text 中的 word 标红加粗,如果数据量少,文本段手动标还可以,多起来就不太方便了。

2024-02-24 00:42:41 624

原创 pycharm 远程运行报错 Failed to prepare environment

什么也没动的情况下,远程连接后运行是没问题的,突然在运行时就运行不了了,解决方案。全部勾上,我是全部勾上重启后就正常了。

2024-02-22 22:57:24 931 2

原创 gpu 运行 python 代码

用服务器(linux)去计算任务时,通过以下代码设置了使用 gpu 去跑,但去使用 nvidia-smi 查看没有任何进程,感觉还是用得 cpu 去跑的。只有当你的代码中包含了能够利用CUDA进行计算的库,并且明确将数据和计算任务转移到了GPU上时,才会真正启动GPU进行计算。如果你的程序中没有涉及任何GPU加速计算的库(如PyTorch、TensorFlow等),即便设置了。,程序本身也不会利用GPU进行计算,因为它并不具备访问和使用GPU的能力。因此,在你目前的普通Python程序中,设置。

2024-02-22 22:54:07 449

原创 vllm 库调用大模型

vllm 这个库目前只能在 linux 上用, win 是用不了的,pip 安装不了,这里弄了一个调用示例代码。

2024-02-17 22:47:35 709

原创 bert分类模型使用

使用 bert-bert-chinese 预训练模型去做分类任务,这里找了新闻分类数据,数据有 20w,来自数据 20w ,18w 训练数据,1w 验证数据, 1w 测试数据,10个类别我跑起来后,预测要7天7夜,于是吧数据都缩小了一些,每个类别抽一些,1800 训练数据,150 验证数据, 150 测试数据,都跑了 1.5 小时, cpu ,电脑 gpu 只有 2g 显存,带不起来。

2024-02-04 22:53:59 1123

原创 bert+np.memap+faiss文本相似度匹配 topN

使用 bert-base-chinese 预训练模型将文本数据向量化后,使用 np.memap 进行保存,再使用 faiss 进行相似度匹配出每个文本与它最相似的 topN此篇文章使用了地址数据,目的是为了跑通这个流程,数据可以自己构建np.memap :是NumPy库中的一种内存映射文件(Memory-Mapped File)对象,它允许你将硬盘上的大文件以类似数组的方式访问和操作,而不需要一次性将整个文件加载到内存中。当你创建一个对象时,实际上是创建了一个与磁盘文件对应的虚拟数组。

2024-02-03 13:38:44 1297

原创 bert提取词向量比较两文本相似度

使用 bert-base-chinese 预训练模型做词嵌入(文本转向量)embedding[:, 1:-1, :] 这一行的意是以下,数据类型张量。下面这段代码是一个传入句子转为词向量的函数。

2024-01-29 23:08:51 930

原创 bert新闻标题分类

代码输出结果会生成一个文件夹:myfinetun-bert_chinese 里面存放的是模型,最后会生成一个 best 模型,我这里没跑完哈,所以结果不全。使用 bert 完成文本分类任务,数据有 20w,来自。

2024-01-29 00:04:25 826

原创 bert实现完形填空简单案例

【代码】bert实现完形填空简单案例。

2024-01-28 19:40:00 656

原创 bert预训练模型下载

可以看到我们最需要的模型是又提供的,models 里面是提供的模型,mode_download.py 是提供的下载模型的脚本,我用了这个脚本下载的,点开可以看到里面的代码,复制一份到本地 py。旁边有提供下载命令,在你想保存的路径下打开 cmd,运行这个命令就会下载了,下好后会生成以个 dataroot 的文件夹,里面有我们要的东西。我下载 bert-base-chinese,但这个网站下载是要钱的,也不贵,点击下面购买流量包。但即使是翻出去了也访问不了,我遇到的情况,所以找到了其他网站。

2024-01-28 18:04:53 935

原创 RNN预测下一句文本简单示例

因此,发展出了更复杂的变体,如LSTM(Long Short-Term Memory)和GRU(Gated Recurrent Units),它们通过门控机制更好地保留长期依赖信息。与传统的前馈神经网络不同,RNN能够通过其循环结构捕获序列内部的时间依赖性或顺序信息。在RNN中,每个时间步(timestep)的隐藏状态不仅取决于当前输入,还与上一时间步的隐藏状态有关。根据句子前半句的内容推理出后半部分的内容,这样的任务可以使用循环的方式来实现。具体代码如下,写了注释。

2024-01-27 21:02:27 422

原创 bisect_right 内置库二分法查找插入

我们要从有序表中插入 3,会返回 2 为插入位置,插入后保证列表有序。python当中有标准库实现二分法查找插入:bisect。

2023-11-10 15:17:46 101

原创 setDaemon python守护进程,队列通信子线程

使用setDaemon()和守护线程这方面知识有关, 比如在启动线程前设置thread.setDaemon(True),就是设置该线程为守护线程,thread.setDaemon()设置为True, 则主线程执行完毕后会将子线程回收掉,设置为false,主进程执行结束时不会回收子线程。与队列一起使用,主进程需要一个子线程处理东西,共享一个变量,他们的通信就可以用队列,当主进程有元素塞入,子线程才会处理,这样做的意义在于:避免子线程无限死循环,导致退不出程序,也就是避免传说中的孤儿进程。

2023-01-20 14:08:47 1555 2

原创 mysql审计日志过滤sql功能

审计日志功能是一个插件,需要先安装插件才可以使用过滤 sql 语句,可以通过插件内核参数 audit_log_include_commands 与 audit_log_exclude_commands 参数设置,两参数互斥,功能相反。

2023-01-18 23:25:38 391

转载 mysql构造页损坏

构造页损坏 及修复方式可参考。也可通过 dd 命令进行构造。

2023-01-03 09:29:15 217

原创 subprocess 使用执行 cmd

上面这个链接主要说了一些用法。

2022-11-26 22:48:55 1310

转载 python logging 日志模块

第三种方式:dictConfig()

2022-11-26 16:40:06 737

原创 python 表级驱动,循环导入

在工作中遇到这么一个问题,有三个 py 模块,A ,B,C,C 需要调用 A ,B 中的东西使用,但 A 中导入 B,B 中也导入了 A,就会造成循环导入,需要改成表级驱动写法,先看循环导入具体样例。意思就是把字典的键对应的值为函数名,函数名为字符串格式,这样就可以避免在 B 中导入 A 了,A 中的函数必须加 @classmethod,C 从就可以通过 getattr(类,函数名) 进行调用。现在来改成表级驱动,在此之前先看一种正常写法。这里只是举个例子,什么是循环导入。一般有函数映射的场景使用。

2022-11-24 23:21:53 379

数据分析+pandas

pandas笔记,整合大部分场景,遇到问题直接搜索就可以找到对应答案,欢迎大家下载

2024-01-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除