- 博客(61)
- 收藏
- 关注
原创 PIKIE-RAG 本地部署实践
开源的代码仓库存在很多缺陷,想要项目能够跑起来,需要完成以下的几个改造。注意,以下内容建立在你已经看过官方部署说的基础上。
2025-04-01 09:50:35
691
原创 知识图谱问答召回机制-llm-graph-builder
prompt中,实体和关系的形式,均是以实体名称、关系类型的形式召回并组合的,并未使用实体描述和关系描述。在获取到结构化的数据素材后,按照一定的格式和提示词,组装出问答的promt。模式下,依旧保持了RAG的思想,使用了向量作为语义召回的手段。以上就是 LGB 召回文档内容的过程。的模式下,如何进行知识的召回操作。
2024-08-26 17:48:49
613
原创 graphRAG原理解析——基于微软graphRAG+Neo4j llm-graph-builder
召回时,根据用户问题的embedding,在以下5个场景中检索素材,并最终将召回的素材和历史对话一起传给大模型,生成答案。召回时,根据用户问题的embedding,在以下5个场景中检索素材,并最终将召回的素材和历史对话一起传给大模型,生成答案。利用图数据库提供的快速检索能力,支持了向量 + 图检索的召回模式,也支持单纯的向量召回(传统的RAG模式)。利用图数据库提供的快速检索能力,支持了向量 + 图检索的召回模式,也支持单纯的向量召回(传统的RAG模式)。)有很多相似和同源之处,但也有很多的不同。
2024-08-26 17:47:26
2391
原创 python实现ASR能力实践
后续,可继续优化结果。定位到句子对于一个长视频来说意义不大,所以,最终还是需要将识别出来的内容,按照语义进行分段,然后概括段落概要,并记录段落的起止时间。该操作需要基于上述的处理结果,通过gpt大模型来实现。实际后续的检索,也是基于段落概要来进行的。
2024-04-29 11:24:14
1001
原创 [paper note]代码生成评估模型-CodeBLEU原理分析
评价指标对一个领域的发展起着至关重要的作用,因为它定义了区分模型好坏的标准。在代码综合领域,常用的评估指标是 BLEU 或 精确匹配,但它们是不太适合评估代码能力,因为BLEU最初是为了评估自然语言而设计的,忽略了代码的重要语法和语义;而精确匹配因太过严格,导致低估具有相同的语义逻辑的不同输出。为了解决这个问题,我们引入了一个新的自动评估指标,称为CodeBLEU。它吸收了BLEU在n-gram匹配中的优势,并进一步通过抽象语法树(AST)引入代码语法,通过数据流引入代码语义。
2024-04-29 10:24:30
3067
原创 [paper note]LoRA+: 原理分析
在本文中,我们表明,最初在论文《LoRA: Low-Rank Adaptation of Large Language Models》中引入的低秩适应(LoRA)会导致大宽度(嵌入维度)模型的次优微调。这是因为 LoRA 中的适配器矩阵 A 和 B 以相同的学习率更新。使用大宽度网络的缩放参数,我们证明对 A 和 B 使用相同的学习率并不能实现有效的特征学习。
2024-04-09 16:42:24
2220
原创 cudnn版本冲突异常。undefined symbol: _ZN11nvrtcHelper4loadEb, version libcudnn_ops_infer.so.8
最近做大模型集成,在一个容器中集成多个模型,以提供堆外服务。当容器只加载一个模型的时候,正常。当加载多个模型的时候,启动正常,但是在调用模型进行推理计算的时候,就会报异常。查询了众多资料后无果,在准备在容器中启多进程的时候,找到了一个解决方案。注意:命令是一个示例,实际操作时,请修改为实际的。感兴趣的,可以看看GitHub上大家的说法。如果不指定,会默认去系统目录下找。文件没找到,也可以用以下方式尝试解决。调用模型进行推理时,会报以下异常。,初步可以判断是版本冲突了。文件,即上述异常中提到的路径。
2024-01-25 14:51:21
2227
3
原创 python对象class转json异常AttributeError: ‘mappingproxy‘ object has no attribute ‘dict‘
这几天在写python脚本的时候,需要将class对象转化为json字符串,作为参数进行接口调用。的列表中,所有的对象都是同一个,且均为最后更新的那个。并且,class对象是不能被json格式化的,故报了以上的异常。经过一番幸苦查找,终于定位到原因,其实很低级的错误。在嵌套class的时候,我有一个地方声明对象实例时,漏掉了。的写法是创建一个对象实例,和Java的用法一样,这也就比较好理解。的写法,直接访问的是对象,而非对象实例,因此我最终组成的。python中,这两种写法都有,不带。
2023-11-01 10:55:58
698
原创 idea启动正常,打成jar包时,启动报错
启动命令中,参数不能放在jar包后面,或者说jar包路径要放在命令的最后面,否则命令读到了jar包路径后,后面的内容将会被忽略。其实和报错本身没有关系,被报错误导,检查了半天jar包内容和maven的打包命令,结果是jar包启动命令的问题。因为jar包路径后面的内容会被忽略,从而导致出现其他问题,这边记录一下,希望能帮到其他踩坑的人。因为这个原因,导致我的应用没有读到配置文件,从而一直报驱动不存在。自己写了个小程序,在idea中启动正常,达成jar包发布时,启动报错。将jar包路径放在命令的最后面。
2023-08-24 17:09:56
2263
原创 clickhouse数据库insert select语句报错Code: 44. DB::Exception: Array(Int32) cannot be inside Nullable column
clickhouse数据库中,如何使用insert select语句将Nullable字段写入非null的字段中报错,Code: 44. DB::Exception: Array(Int32) cannot be inside Nullable column.原因是源表中字段为Nullable的,插入到Array(Int32) 中,类型不匹配。Array类型只能接收非Nullable字段。对源字段进行Null判断,并设置默认值。如果你的条件中还包含其他提交,可以包含在。版本的ck,这个版本中,只能使用。
2023-08-03 14:58:04
775
原创 python连接clickhouse数据插入OSError: [Errno 22] Invalid argument异常
python连接clickhouse异常column = [int(x.timestamp()) if x else 0 for x in column]OSError: [Errno 22] Invalid argument
2023-05-31 16:23:14
515
1
原创 Idea连接clickhouse异常驱动类找不到Driver class ‘ru.yandex.clickhouse.ClickHouseDriver‘ not found.
maven仓库:https://mvnrepository.com/search?注意驱动地址,IDEA一个不好就是驱动地址不能自定义。所以下载驱动包时,要和IDEA中的驱动类地址对应。从这个页面可以看到,新版本的驱动包路径已经变更。由于IDEA的驱动类路径没更新,所以还是选择旧版驱动。如果切换驱动版本依旧无法解决,可以下载驱动,然后本地加载驱动。切换到驱动界面,选择其他版本驱动,依旧显示无法找到驱动类。Idea连接clickhouse时,报驱动类找不到。之后就是通过加载本地驱动包的形式,配置驱动。
2023-03-29 15:07:15
7788
原创 IDEA连接TiDB报字符集不匹配问题COLLATION ‘utf8_general_ci‘ is not valid for CHARACTER SET ‘utf8mb4‘.
TiDB连接异常,COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'.
2023-03-23 11:02:29
5486
3
原创 springbatch设置throttle-limit参数不生效
调整throttle-limit为10时,处理线程只有8,再次增大throttle-limit值为20,处理线程依旧为8,并未生效。即没有对线程池进行配置的情况下,一个任务到顶,撑死只能拿到8个线程。控制的是单个任务能够从线程池中获取的线程数的最大值,从这个值的注释说明可以看到,实际任务能够拿到的线程数量,不仅受。中配置可以看到,任务处理的线程池通过properties配置实体进行线程数设置。值为20,启动任务,可以看到并行处理的线程数达到了20个。的值的时候,就必须先把线程池的线程数配置调大。
2023-02-21 10:47:41
1572
原创 Linux主机下连接远程postgresql数据库、容器版postgresql数据库
命令,提示异常,但没有报出命令不存在,则说明安装成果,恭喜你,可以使用psql命令连接远程postgresql数据库了。其实这个解决方案,实在官网上找到的,在寻找源码安装部署的时候,发现安装包被拆分成了不同的小包,以应对不同的使用场合。这个是红帽子Linux,CentOS-7的安装地址,其他操作系统,请回退上级目录选择。以上两个方案,供大家参考,如果下面的方案不可行,以上两个方案希望可以提供一些借鉴。介绍,可以知道,libs是通用包,所有程序都需要安装。中查看介绍,可以知道,我们的想法是正确的。
2023-01-31 15:37:10
5752
原创 jasper ireporter 子数据集(sub dataset)与主数据(main dataset)集之间的参数传递
在使用ireporter写报表的时候,经常会用到新建一个子数据集,然后基于该数据集来创建图表。但是有一个问题,数据集之间的参数是基于数据集隔离的。也就是,在子数据集中,无法直接使用主数据集里面的参数。但是,只有主数据集的参数,才会暴露在对外接口中。或者当我们需要子数据集中的where条件,带上主数据集中查询到的参数,这个岂不是玩不转了?先吐槽,在某度上查了一下午,全是抄来抄去的答案,每一个管用的。我们在新建子数据集时,和新建主数据集一样,设置好sql查询语句需要的参数。下面把解决方案说一下,供大家参考。
2022-12-19 18:01:07
924
原创 Springboot 整合 ireporter 实践
使用ireporter的一个缺点是,模板文件需要提前准备,虽然可以通过提供上传页面来支持,但是导致的结果是需要在两个页面之间切换。如果只是少数几个人使用,可以保持这种模式没问题。如果使用的人数较多,可以考虑对ireporter进行二次开发,提供在线模式,并将生成的模板放到云服务器上。这样其他应用可以直接读取云服务上的模板文件,而免去在应用之间的跳转。
2022-12-16 17:25:50
1430
原创 grafana 时间函数
简单记录一下 grafana 的时间函数说明:- $__time(column) -> UNIX_TIMESTAMP(column) as time_sec- $__timeEpoch(column) -> UNIX_TIMESTAMP(column) as time_sec- $__timeFilter(column) -> column BETWEEN FROM_UNIXTIME(1492750877) AND FROM_UNIXTIME(1492750877)- $__uni
2022-03-17 16:04:53
6533
转载 Docker 容器退出状态码existed
今天在起容器的时候,发现容器出于existed状态,状态码为130,查找后发现,自己启动的时候使用了非后台启动。当手动 ctrl+C 退出命令行的时候,容器也就退出了。开始的时候,不知道状态码含义,纠结了很久,于是把一些状态码的含义搜罗了一下。首先状态码必须在 0-255 之间0 表示正常退出外界中断将程序退出的时候状态码区间在 129-255,(操作系统给程序发送中断信号,比如 kill -9 是 SIGKILL,ctrl+c 是 SIGINT)一般程序自身原因导致的异常退出状态区间在 1-12
2022-01-19 10:51:36
2358
原创 postman触发任务处理,长时间未响应时,自动retry,导致SFTP连接意外中断
背景今天写了一个数据处理任务,用于后端定时触发。并为这个定时任务提供了一个触发接口,用于手动触发。这个任务的处理逻辑,大概是从SFTP上拉取文件,并对文件进行解析。任务写完后,在测试时,数据量较少,并未发现问题。现象今天在正式环境手动触发任务时,由于处理时间较长,大概在30分钟左右。开始时,任务处理正常。处理了一段时间后,任务持续报异常,后台日志持续飘红。跟踪日志发现,SFTP连接被意外中断,导致任务处理失败。即使程序自动重新创建连接,仍然会被意外中断。重试多次,现象可以复现,且均是出现在任务执行
2021-11-20 01:30:27
3843
4
原创 MySQL 查询缓慢Using where; Using join buffer (Block Nested Loop)
今天在写sql时,发现了一个慢sql,在测试环境上没问题,但是在正式环境查询非常缓慢。几张万级数据量的表关联操作,查询时间居然长达两分多钟。查看执行计划,发现同样的语句,在测试环境走了索引,在正式环境上没有走索引,并且在执行计划中提示:Using where; Using join buffer (Block Nested Loop)查看MySQL版本发现,测试环境为5.6版本,正式环境为5.7版本。网上找了一圈,都说是索引没建,但是我的表索引没有问题,都建的好好的。折腾了一上午,终于发现了问题。M
2021-11-15 14:09:30
10162
4
原创 java不解压压缩包的前提下,解析压缩包内容
近期工作过程中,遇到了一个需要解析压缩包的功能开发。对于这个功能,如果频繁的解压压缩包,在性能上多少有些损耗,且解压文件,会产生大量中间文件,不适合后续管理。特别是现在都是基于容器化部署,如果文件操作处理不当,导致删除失败,将很快打满容器磁盘容量,引起容器崩溃重启。综合考虑之后,采用ArchiveInputStream,在不解压文件的前提下,解析压缩包。具体实践如下。整体流程从SFTP获取压缩包读取压缩包文件内容删除本地压缩包文件从SFTP获取压缩包文件添加项目依赖,使用jcraft包来
2021-10-26 16:07:35
1075
原创 使用SQLUtils快速解析sql字符串
最近在做项目的时候,遇到需要解析sql文件内容。里面包含了各种格式的注释,空行,换行,嵌套查询等。想要单纯的根据换行或者分号来拆分sql语句不现实。然而又不想花精力去做各种解析,因为这不是工作的主要目的。经过一翻查找之后,发现可以使用druid包里面的SQLUtils工具类,快速解析。代码很简单,只要引入阿里的druid包,其中就包含了SQLUtils工具类。// content为sql文件内容字符串// dbtype为数据库类型。需要注意的是,dbtype枚举为小写,即 mysql,oracle,
2021-10-21 18:24:29
3144
原创 jvm-sandbox-repeater在docker上的部署
repeater在单机上部署,很简单。但是在docker上部署,则有些问题。这里记录下部署过程:制作安装包如果对repeater代码有修改,则使用代码工程里的install-lcoal.sh脚本来生成安装包。如果没修改,本地有代码工程的情况下,也可以使用install-local.sh脚本安装,否则,使用install-repeater.sh来在线安装。安装完成后,用户目录下会生成sandbox和.sandbox-module两个文件夹,将两个文件夹打包成zip包,repeater的安装包就做好了。
2021-03-30 09:34:14
759
原创 jvm-sandbox-repeater部署实践
下载源码源码下载Github地址:https://github.com/alibaba/jvm-sandbox-repeater.git源码下载下来后,可以通过源码目录下 /bin中的install-local.sh来生成repeater文件。建议通过cmd命令执行,双击shell脚本执行,看不到报错信息。执行完成后,会在用户根目录生成两个文件夹/sandbox,/.sandbox-module,sandbox中放的是启动脚本和sandbox的默认jar包,repeater生成的jar包和配置文件
2021-03-29 15:30:05
2120
2
原创 sentinel指令扩展实践
如果需要扩展sentinel的指令集,需要从何入手?怎么样扩展才会显得优雅?下面介绍一个我在工作中的实践经验,供大家参考。以重写降级逻辑为例,我们重新定义降级逻辑控制台的增删查改逻辑就不做过多介绍,我们从扩展的降级规则发送到client端开始说起。server端发送规则首先,我们可以仿照sentinel原生的规则发送方法,写一个扩展的规则发送方法private boolean setExtendRules(String app, String ip, int port, String type,
2021-03-16 15:29:27
471
原创 sentinel心跳机制
sentinel心跳sentinel分为客户端client和监控面板dashboard。client端启动后,需要向dashboard上报心跳。基础概念就不做过多介绍,不清楚的,可以网上参考其他资料。整理主要介绍心跳是如何上报的,如何扩展心跳报文内容?心跳过程心跳入口心跳的入口,在HeartbeatSenderInitFunc.java中,这个类会被初始化方法加载,并执行init方法。过程可参照 sentinel框架基于SPI机制的二次开发 这篇文章。// SPI机制中的加载顺序@InitOrd
2021-03-16 13:30:33
2123
原创 sentinel框架基于SPI机制的二次开发
概述sentinel框架是一个优秀的开源流控应用。基于sentinel框架可以实现流控降级等一系列的系统保护机制。sentinel的使用,可以参照网上的一系列教程。今天讲讲,如何基于SPI机制,扩展sentinel的功能。sentinel虽然提供了丰富的降级限流功能,但是有时候,依旧不能满足实际的开发需要,这个时候就需要扩展sentinel框架的功能。前端页面的扩展,此处就不做过多讲解。通过实现sentinel提供的接口,可以实现规则的不同方式的持久化。此处主要讲解server管控端扩展了新的规则后,
2021-03-16 09:33:53
1631
原创 exchange partition中including indexes命令失效
including indexes索引失效今天在使用exchange partition做分区切换时,出现使用了including indexes后缀,索引依然失效的现象。通过反复实验后,总结出以下结论,共大家参考。1,分区表新建索引,并插入数据,索引生效。》使用including indexes后缀,转移分区,转移后目标表索引生效;分区表索引正常。》继续向分区表中插入数据,索引继续生效。》使用including indexes后缀再次转移,数据携带索引数据恢复到分区表,分区表索引生效,目标普通表
2021-01-04 16:30:18
583
原创 LocalDateTime格式化日期年份错误
今天(2020-12-28)在使用之前写的一个日期格式化的时候,发现了一个问题,年份不是2020,而是2021。查看了代码和调用之后,均没找到问题。最后只能看官方的使用说明。最后在DateTimeFormatter的说明里找到了原因。官网链接从上面的说明可以看出,y(小写)表示的是根据时区的来计算的年份,也就是日期的年份。而Y(大写)表示的是根据周来计算的年份。而今天(2020-12-28,周一)正好跨了2020和2021年,所以今天格式化出来的日期变成了2021 。这个问题在这种特殊情况下才会提现出
2020-12-28 14:54:50
1543
3
原创 高并发系统设计总结
设计方法Scale-out(横向扩展):分而治之是一种常见的高并发系统设计方法,采用分布式部署的方式把流量分流开,让每个服务器都承担一部分并发和流量。缓存:使用缓存来提高系统的性能,就好比用“拓宽河道”的方式抵抗高并发大流量的冲击。异步:在某些场景下,未处理完成之前我们可以让请求先返回,在数据准备好之后再通知请求方,这样可以在单位时间内处理更多的请求。如何实现高性能高并发系统设计的三大目标:高性能、高可用、可扩展提高性能提高系统的处理核心数减少单次任务的响应时间高可用评判标准
2020-11-30 16:48:02
278
原创 Java高级面试-面经
//评测题目: 无1,ThreadLocalSpring如果实现一个自定义的注解,比如@Log@Logpublic boolean xxxx(String xxxx){// TODO}@Pointcut(“excution(* com/test/service.*.*(*, *))”)构造器注入setter方法注入@Resouce@Autowiredxml线程池中的几种重要的参数额定线程数最大线程数饱和策略队列属性一致性hash算法1.8以后,HASHMap数据结构
2020-11-30 16:47:44
4744
原创 Java中的HashSet如何实现判重
要理解HashSet如何判重,首先要知道HashSet的数据结构。HashSet其实是用Hash Map实现的,内部维护了一个Hash Map来存放数值。HashSet的元素放在了key中,value则是生成了一个空对象作为占位。由于HashMap的key是可以接收null值的,所以自然而然,HashSet也是可以接收null值的。 // HashSet内部维护了一个 private transient HashMap<E,Object> map; // map中存储的虚拟
2020-11-05 23:01:14
758
原创 通信协议相关知识点
在java面试中频繁出现的高频通信相关问题,吃透以下几个知识点,以不变应万变。http与httpsHTTP协议是一种应用层协议,HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据。HTTP协议主要用于Web浏览器和 Web服务器之间的数据交换。我们在使用IE或Firefox浏览网页或下载Web资源时,通过在地址栏中输入,开头的4个字母http就相当于通知浏览 器使用HTTP协议来和host所确定的服
2020-11-02 22:01:56
508
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人