- 博客(55)
- 问答 (17)
- 收藏
- 关注
原创 创新实训2024.04.24日志:RAG技术初探
现在我们知道了如何获取一个向量数据库的服务。但在哪里使用它,如何使用它呢?正如先前RAG的Working Pipeline中所说,用户在请求大模型进行任务时,先通过检索向量数据库获取相似知识优化Prompt,再进行提问。那么这样一套流程,是如何映射到代码中的,我们是如何使用向量数据库提供的检索功能的?
2024-04-25 18:56:28 864
原创 项目实训2024.04.12日志:Self-QA生成问答对
Self-QA(Self Question Answering)技术是一种自然语言处理(NLP)技术,它旨在通过生成问题并自行回答来增强机器对文本的理解。这种技术通常用于提升机器学习模型,尤其是深度学习模型在问答、文本理解和生成等领域的性能。Self-QA技术的核心思想是通过模型自身生成的问题来测试和提高其对文本的理解能力。在这个过程中,模型需要对给定的文本内容进行深入分析,生成相关的问题,然后使用文本内容来回答这些问题。通过这种方式,模型可以在没有额外标注数据的情况下进行自我训练和优化。
2024-04-12 23:25:27 924
原创 创新实训2024.04.11日志:self-instruct生成指令
例如,”写一篇有关校园安全的短文“可以是一个合法的、我们期望LM直接回答的问题,但当他变成”写一篇有关下述主题的短文“,就成了一个指令,随后”校园安全“可以作为一个实例的输入(也即问题)。之后,根据step1:Instruction Generation,从种子指令中挑选5条,迭代生成的指令中挑选5条(可能会重复,但不用担心,最后我们会去重的)。一开始的初始语料还是需要我们自己搜集的。简单来说,传统的NLP技术需要涉及两大不可或缺的步骤:大型的预训练好的大语言模型以及人工搜集的语料(指令数据)。
2024-04-11 19:40:04 839
原创 数学结论在dsa中的应用
然后枚举被删除的,从剩下的里面挑一个最大的,一个最小的,相减,更新答案。如下图,红色线段是欧式距离,深蓝色线段是曼哈顿距离,灰色射线是新坐标系x轴和y轴,黑色射线是原坐标系x轴和y轴,橙色线段是切比雪夫距离,就等于原坐标系的曼哈顿距离,也就是橙色线段的长度等于左边图中两条深蓝色线段的长度。当我们把操作后的坐标投影到原先坐标系的x轴或y轴上后,原先两个点之间的距离,就变成了投影在x/y轴上的距离,这是因为投影把线段缩小到原来的1/sqrt(2)倍,正好和扩大sqrt(2)倍兑掉了。这就引入了切比雪夫距离。
2024-04-04 16:05:50 404
原创 Binary Indexed Tree
比如你要查[1,7]的,你直接一看7的lowbit,1,那就算上c[7]=[7,7],然后跳到7-1=6去。再一看4的lowbit,4,那就算上c[4] = [1,4],然后跳到4-4=0去,到此跳出了树状数组,查询结束,返回和。例如你拆[1,13],那么递归到底部必然拆了[1,1] ⇒ [1,1],[1,2] ⇒ [2,2],[1,3] ⇒ [1,2] + [3,3]…那多出来的部分单算,比如[2:6],索引2上的1单独算就行了,复杂度O(n/B+B),由于B大概率比n小,那就是O(n/B))
2024-03-06 14:55:05 819
原创 Hash哈希
VP双周赛123T3。一直想在Hash表里存每种数字出现的索引,查询nums[i]±k的所有可能索引,前缀和相减得到子数组和维护最大值。最后不出意外的T了。既然要找之前的最小前缀和,为啥不在Hash表里直接维护每个数字对应的最小前缀和呢?注意子数组是闭区间,前缀和数组里加个哨兵即可。然后这道题实际上不需要前缀和数组,滚动一个前缀和就可以了,闭区间滞后一个元素即可。
2024-02-20 19:58:47 356
原创 分组循环A
对于每个分组,如果可以交换,则扩展分组的窗口,直至达到尽头或者不能交换为止。这样这个分组里的数都是可以任意交换的,因此就可以对这个分组进行排序。对每个分组排序后如果能使得整个数组有序,那么就成功。分组查询每段平滑下跌阶段。贡献是(l+1)*l/2(等差数列),累加即可。分组检查连续相同子串长度,超过2就缩减到2,拼到答案里即可。这题我比赛时用的并查集。看灵神视频学了个分组循环的做法。分组记录0/1子串长度,维护最大值,最后比较。分组查询交替子数组长度,维护最大值。分组记录每个连续字符子串长度,维护最大值。
2024-01-23 00:09:24 372
原创 QUEUE
维护一个单调增的单调队列。也就是如果队尾元素大于当前前缀和的话,就应该把队尾踢掉。这是因为:当后续前缀和查询队列中维护的前缀和时,如果当前前缀和与其之差≥k的话,那么与一个更小的前缀和之差也一定≥k。由于我们是正序的,所以踢走队尾的前缀和的索引一定更靠后。也就更接近日后查询时的索引。之所以不用单调栈而是一个单调的双端队列,是因为栈没办法查询或操作栈底元素。我们想要最短区间,是肯定要查看之前最早的检查点的,也就是踢人的时候不能从队尾踢,队尾的前缀和要留给更后面的位置查询。子数组元素和显然要算前缀和。
2024-01-20 16:45:51 364
原创 Union-Find
并查集判连通:由于我们想要的是最大安全系数,所以倒着搜各个安全距离对应的点集。如果发现它的邻居的安全距离大于等于它的,那么可以把它的邻居对应的等级类直接归到这个点对应的等级类。由于我们倒着搜答案,因此这个等价类的门槛会越来越低,直至把所有点都囊括进去,那个时候安全系数也就只能为0了。预计算写的暴力,判断写的深搜。这题预计算所有点的安全距离的方式应该是多源BFS。判断连通性的方式是DSU。所以不放在二分题单里,放在DSU。核心想法:如果这个元素的源头不是他自己 说明它被归到别的等价类去了,深搜它的源头(链)
2024-01-11 19:36:46 618
原创 STACK
如果当前元素位于这个应有的元素后方,那么需要补齐中间的;如果在前方,说明上一轮abc还有缺,需要补上;如果正好就是这个应有元素,那么看下一个字符即可。维护下一个需要使用到的元素。例如上一个是a,那么下一个就是b。如果上一个是c,那么下一个是a。这题模拟栈即可,不需要真的用,因为一直访问的都是栈顶元素,所以维护一个栈顶指针即可。时间O(n)空间O(1)
2024-01-11 11:43:26 364
原创 单调栈:General
题面:设计一个算法收集某些股票的每日报价,并返回该股票当日价格的。当日股票价格的被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。实现price思路分析:现在假设我们先要统计第5天(索引从0开始),也就是价格为75的那一天的跨度。然后统计第6天,也就是价格为85的那一天的跨度。观察一下,可以发现85重复统计了第2到第4天(60,70,60)的数据,但实际上,如果我们明确知道了85≥75时,就可以复用75的统计,也就是自动筛掉(60,70,60)这组数据了。
2024-01-05 09:53:37 927
原创 大大大模拟
简单来说就是答案就在题面上,题目怎么说就怎么做即可。听起来很简单,做起来很难,很考验码力。想做大模拟的可以去试试csp的T3(一般都是大模拟),非常折磨人,动不动WA了,考验细节。
2024-01-01 00:30:41 396
原创 位运算trick
位运算本质上不是一种算法,而是一种trick,用来节约时间/空间的trick。背后常常有集合论、状态压缩等思想的支撑。这里探讨的位运算指的是其背后的指导思想而不是trick本身。因此对trick本身的证明就略过了。如果想获取位运算的知识图谱,以及集合论的一些基础知识。我在子集状压DP篇收录了相关图片(搬运别人的),可以在该博客找到。
2023-12-31 23:56:25 414
原创 子集状压DP
本来应该放到DP篇。但由于这个部分灵神单列了题单,我就按题单刷题记录单列一篇。位运算状压应该算是我入门第一个接触到的算法级别的trick。知识图谱也列出来了:因此本篇会略过位运算,仅将其作为工具。主要还是子集DP。
2023-12-30 22:00:49 1560
原创 Sliding Windows
本质为同向双指针。大致来说就是当要统计符合某一性质的区间数量时,可以考虑左右指针选取一个窗口,不停地扩展窗口,边扩展边统计,直至窗口大小达到区间长度上限或窗口不再满足该性质为止。说的再玄没用,看题。
2023-12-29 12:36:44 367
原创 Greedy
贪心本质上是不可能反悔的,这和贪心算法的定义是矛盾的:贪心每次都选取当前的最优解,所以一旦反悔了,被反悔的那次选择就不叫贪心了。但有时候因为题目的特殊性质,在明确了一个贪心算法之后,我们使用数据结构记录下每次的贪心选择,在之后做出贪心选择时查询记录,如果不满足“全局贪心”的结论,就置换贪心选择,称为反悔贪心。
2023-12-25 20:10:28 323
原创 BS:最小化最大值
按照LC的尿性,最小/大化最大/小值,九成九的二分板子。暴搜一定是TLE的。这种题都有单调性质:参数值越xxx,结果越xxx。
2023-12-24 16:42:33 356
原创 Shortest Path
无/有向图,可带负边权。java比较笨,没inf这种标识符。我就用包装类作为边权了,含null。因此特判有点多。dp(k)(i,j)表示从i到j的最短路,这条路径上除了i,j这两个节点,序号最大为k。
2023-12-24 13:21:04 345
原创 Computer_Graphics SDU2023 Lab1 Spinning_Pinwheel
山东大学软件学院2023秋计算机图形学实验一
2023-10-20 10:32:08 105 1
空空如也
PTA 字符串读取不到最后一行
2022-05-13
PTA 括号匹配 递归写法 测试用例均不通过
2022-05-13
C++ 分数加法重载 浮点错误
2022-05-05
PTA天梯赛练习集 L1-006 连续因子
2022-03-31
PTA天梯赛练习集 L1-006 连续因子
2022-03-30
PAT乙级1085 PAT单位排行 测试点1、2答案错误 java
2022-02-12
PAT乙级 1065 单身狗 java 测试点34超时
2022-02-11
一道PAT1069 微博转发抽奖 答案错误
2022-02-06
一道PAT1100 校庆 运行超时
2022-02-05
一道PAT1066 图像过滤 内存超限
2022-02-01
一道PAT1059 C语言竞赛 运行超时
2022-02-01
一道PAT1071 小赌怡情 测试点错误
2022-01-30
一道PAT1062 最简分数 测试用例运行超时
2022-01-24
一道PAT1060 爱丁顿数 运行超时
2022-01-22
一道pat 1010 一元多项式求导 有一个测试点答案错误但是想不出为什么
2022-01-20
一道PAT 1049数列的片段和 运行超时
2022-01-16
一道PAT 1030完美数列 java实现 测试用例不通过
2022-01-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人