- 博客(689)
- 资源 (2)
- 收藏
- 关注
原创 增强学习和蒙特卡洛树搜索算法详细解析
阿尔法狗(AlphaGo)是谷歌旗下DeepMind开发的一个著名的增强学习算法,它在围棋领域取得了显著的成就。本文主要探讨其中两个重要的算法:增强学习算法和蒙特卡洛树搜索算法。
2023-11-16 14:23:39
1314
原创 人工智能:CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的知识梳理
CNN 主要用于处理图像数据,RNN 用于处理序列数据,而 DNN 是一个通用的深度神经网络架构,可以应用于各种不同类型的数据。这些神经网络架构也可以结合使用,以解决复杂的多模态问题。
2023-10-24 17:58:05
9773
6
原创 Hadoop简介之望见数据湖
1 Hadoop概述随着信息化时代的来临,数据信息呈爆炸式增长。IBM的研究称,90%的人类文明数据是近两年产生的,而到了2020年,全球产生的数据量将是今天的44倍。传统的方法已难以应对越来越多的海量数据,因此海量数据的处理方法成为研究热点。大数据技术研究与应用推动互联网产业的快速发展,同时企业也促进了大数据技术的“新陈代谢”。在国外的计算机行业,Yahoo,Linkedin,Fackbook,eBay等企业都着手搭建Hadoop平台,努力推动Hadoop技术的发展并完善Hadoop项目。在国内,随着
2020-09-28 15:09:37
2812
2
原创 Greenplum安装时修改gpssh-exkeys中SSH免密登录端口
SSH免密登录的默认端口号为22,如果需要使用2226端口,可以修改如下地方298 def testAccess(hostname):299 '''300 Ensure the proper password-less access to the remote host.301 Using ssh here also allows discovery of remote host keys *not*302 reported by ssh-keyscan.303...
2020-09-08 14:13:29
3513
2
原创 每天学一个算法--缓存淘汰策略(LRU / LFU · 结构与复杂度)
本文系统介绍了缓存淘汰策略的核心算法LRU与LFU,重点分析了它们的数据结构设计与时间复杂度优化。LRU通过哈希表+双向链表实现O(1)操作,但存在扫描污染问题;LFU采用频率分桶机制,但实现更复杂。文章还探讨了工程改进方案如LRU-K、2Q、ARC和现代TinyLFU,并简要提及分布式环境下的分片处理。通过对比不同策略的优劣,为系统设计中的缓存选择提供了理论依据和工程实践参考。
2026-04-24 10:49:16
84
原创 每天学一个算法--向量检索
文章摘要: 本文系统讲解了向量检索技术的工程实现,从BM25的局限性引出语义检索需求,提出将文本映射为高维向量空间并通过近似最近邻搜索(ANN)实现高效检索。重点分析了HNSW、IVF和PQ三大核心算法原理,以及FAISS框架如何组合优化这些技术。文章还探讨了向量检索与传统搜索的融合策略(并行召回/重排序),并指出工程实践中需平衡召回率、延迟和内存三大指标。最终揭示向量检索本质是通过空间映射和近似算法实现语义级搜索,其性能依赖于空间划分、图结构设计和向量压缩技术。
2026-04-24 10:44:02
50
原创 每天学一个算法--BM25(Okapi BM25)
BM25模型是信息检索领域的经典排序算法,在TF-IDF基础上进行了关键改进。其核心思想包括:1)引入词频饱和机制,通过非线性转换避免高频词过度影响;2)加入文档长度归一化,防止长文档天然优势;3)保留IDF权重区分关键词重要性。BM25公式通过k1参数控制词频饱和速度,b参数调节长度惩罚强度。相比TF-IDF,BM25更符合实际文本分布特性,能稳定处理不同长度文档,成为搜索引擎排序的基础模型。该模型需配合倒排索引实现,通过Top-K机制高效返回最相关结果。虽然存在语义理解局限,但仍是现代检索系统的重要组成
2026-04-24 10:40:40
55
原创 每天学一个算法--Top-K 查询(Top-K Retrieval)
📝 文章摘要(148字) Top-K查询在亿级数据中高效检索最高分对象,核心挑战在于平衡计算复杂度与内存限制。主流解法包括:1)小顶堆在线处理(O(nlogK));2)Quickselect离线选择(O(n)期望);3)有序集合管理。工程实现需结合评分延迟计算、倒排索引耦合(DAAT/TAAT策略)及阈值算法提前终止。分布式场景采用分片计算与聚合,通过调整候选集大小权衡召回率与开销。关键优化点包括固定堆容量、评分函数单调分解、批量处理及稳定性控制,最终实现在亚线性时间内完成高精度检索。
2026-04-24 10:36:04
836
原创 每天学一个算法--倒排索引(Inverted Index)
📘 摘要:倒排索引工程实现 倒排索引通过建立词项到文档列表的映射(term→[docID]),将全文检索转化为集合运算。核心结构包括词典和排序的倒排列表,构建过程含分词、归一化、排序(类似外部排序)。查询时,单词语句直接返回列表,多词AND查询通过双指针求交集(复杂度O(|A|+|B|)),优化手段包括跳跃指针和TF-IDF排序(词频×逆文档频率)。工程实现依赖磁盘存储、LSM-Tree更新、差分压缩(如Varint编码),整体架构融合了排序、检索、过滤(如Bloom Filter)等关键技术,显著提升大
2026-04-24 10:33:58
65
原创 每天学一个算法--LSM-Tree(Log-Structured Merge Tree)
LSM-Tree摘要 LSM-Tree(日志结构合并树)是一种针对高吞吐写入场景优化的存储结构,通过"内存缓冲+磁盘顺序写"机制解决传统B-Tree随机I/O问题。其核心由内存MemTable和磁盘SSTable组成,写入时先缓存到内存,满时批量刷入磁盘形成有序文件。读取需多层查找,配合Bloom Filter优化查询效率。关键机制Compaction通过外部排序合并文件,存在Leveling(查询优)和Tiering(写入优)两种策略,在写放大、读放大和空间放大间权衡。LSM-Tree
2026-04-24 10:31:42
57
原创 每天学一个算法--外部排序(External Sorting)
本文系统介绍了外部排序的核心原理与工程实现。针对数据无法一次性装入内存的场景,重点分析了两阶段多路归并排序(TPMMS)算法,包括初始有序段生成和k路归并两个阶段。文章详细推导了I/O复杂度公式,探讨了归并路数选择、缓冲区设计等关键参数,并提出了替换选择等优化技术。此外,还对比了内存排序与外部排序的本质差异,总结了顺序I/O、并行化等工程优化要点。最终指出,外部排序通过分治策略和最小化I/O次数,有效解决了海量数据排序问题。
2026-04-24 10:20:02
50
原创 每天学一个算法--一致性哈希(Consistent Hashing)
一致性哈希技术解析 一致性哈希是解决分布式系统数据分布问题的核心算法。传统取模哈希在节点增减时会导致全局数据重映射,而一致性哈希通过构建哈希环结构,将节点和数据统一映射到环形空间,实现数据的局部迁移。当节点变化时,仅需调整相邻节点的数据,而非全局重排,大幅降低了系统维护成本。该算法具有三大特性:局部性(节点变化只影响相邻数据)、单调性(新增节点不破坏现有映射)和平衡性(数据均匀分布)。针对节点较少时的分布不均问题,可采用虚拟节点技术优化。一致性哈希广泛应用于Redis集群、Cassandra数据库等分布式系
2026-04-24 10:16:47
49
原创 每天学一个算法--PageRank
本文系统介绍了PageRank算法的核心原理与实现机制。首先提出网页重要性评估问题,分析传统链接计数法的缺陷,进而引入"被重要网页引用则更重要"的核心思想。通过有向图模型和随机游走理论,建立递推公式PR(v)=∑(PR(u)/L(u)),并针对Dead End和Spider Trap问题引入阻尼因子(d=0.85)改进公式。算法采用迭代法求解,每轮复杂度O(E),最终收敛于稳态分布。文章还探讨了稀疏矩阵优化、并行计算等工程实现要点,指出PageRank本质是结合概率模型与线性代数的全局迭
2026-04-24 10:11:40
64
原创 每天学一个算法--布隆过滤器(Bloom Filter)
布隆过滤器是一种空间高效的概率型数据结构,用于快速判断元素是否存在。它通过位数组和多个哈希函数实现:插入时将元素哈希后的位置置1,查询时检查所有哈希位是否都为1。其核心优势是极低的空间复杂度(O(k)),但存在误判可能(假阳性)。布隆过滤器广泛应用于数据库防穿透、网页爬虫去重、推荐系统等场景,特别适合需要快速存在性判断且能容忍少量误判的工程系统。相比传统集合,它能节省10-100倍内存,但无法删除元素且不支持准确查询,是工程实践中典型的空间换时间方案。
2026-04-24 10:03:32
28
原创 每天学一个算法--最短路径问题与三类基本算法
摘要 本文系统阐述了最短路径问题的三类基础算法:BFS、Dijkstra和Bellman-Ford算法。BFS适用于无权图或等权图,通过层级扩展实现O(V+E)时间复杂度;Dijkstra算法处理非负权图,采用贪心策略达到O((V+E)logV)复杂度;Bellman-Ford算法则适用于含负权边的情况,通过动态规划式迭代完成O(VE)时间复杂度的计算。三类算法的本质区别在于节点扩展策略:BFS按层扩展、Dijkstra优先最小距离节点、Bellman-Ford穷尽所有可能。文章还明确了负权边和负环对算法选
2026-04-24 09:58:41
74
原创 每天学一个算法--Aho–Corasick 自动机
设自动机状态集合为 Trie 上的节点集合 (V),根为 (root)。(goto(u, c)):从状态 (u) 读入字符 © 的转移(Trie 边)(fail(u)):失配指针,指向当前节点所表示字符串的最长“真后缀”,且该后缀是某个模式串前缀对应的节点(output(u)):在状态 (u) 结束的所有模式串(可能多个)Trie:组织多字符串的前缀结构KMP:单字符串的失配跳转AC:在 Trie 上引入 KMP 式失配 →多模式线性匹配。
2026-04-24 09:43:41
93
原创 每天学一个算法--Trie(字典树 / 前缀树)
Trie(字典树/前缀树)是一种高效管理字符串集合的树结构,通过共享前缀来优化存储和查询。它将字符串按字符路径组织,支持快速插入(O(L))、查找(O(L))和前缀查询(O(L))操作。相比普通结构,Trie在前缀查询方面具有显著优势(O(L) vs O(nL))。典型应用包括自动补全、搜索引擎提示和字典匹配。Trie节点包含子节点映射和结束标记,核心思想是将字符串集合压缩为共享前缀的树结构。与KMP(单模式匹配)不同,Trie专注于多字符串管理,可进一步扩展为Aho-Corasick多模式匹配算法。
2026-04-24 09:35:07
89
原创 每天学一个算法--KMP 算法(字符串匹配)
KMP算法是一种高效的字符串匹配算法,其核心思想是通过预处理模式串构建前缀函数(LPS数组),利用已匹配信息避免重复比较。当匹配失败时,根据LPS数组跳转到可能匹配的位置,而非从头开始。这种方法使时间复杂度优化至O(n),本质是利用模式串自身结构来加速匹配过程。关键步骤包括构建LPS数组和实现模式串的智能跳转,最终实现在文本串中快速定位模式串出现的位置。
2026-04-24 09:33:42
96
原创 每天学一个算法--拓扑排序(Topological Sort)
本文介绍了拓扑排序的概念及其应用。拓扑排序用于解决有向无环图(DAG)中的依赖关系问题,如课程学习顺序、任务调度等。主要内容包括:1)拓扑排序的定义,要求所有依赖关系必须满足;2)两种实现算法:基于BFS的Kahn算法和基于DFS的后序遍历方法;3)算法的时间复杂度为O(V+E);4)典型应用场景和常见错误。拓扑排序的本质是在依赖关系中寻找合法执行顺序,而非简单数值排序。文章通过代码示例和对比分析,清晰地阐述了这一重要算法。
2026-04-24 09:31:20
279
原创 每天学一个算法--回溯算法(Backtracking)
回溯算法精要总结 回溯算法是一种系统性的暴力搜索方法,通过递归枚举所有可能解,并在过程中通过剪枝优化效率。其核心思想是"尝试-回退"机制,适用于排列、组合、子集、棋盘类等问题。 关键要点: 算法框架包含三步:做选择→递归→撤销选择 通过树形结构理解搜索过程,每个节点代表一个状态 剪枝是重要优化手段,提前终止不可能路径 典型应用包括全排列、子集生成、N皇后等问题 时间复杂度通常为指数级,但剪枝可显著改善实际性能 注意事项:必须正确处理选择与撤销选择的对称性,避免状态污染;合理设计剪枝条件以
2026-04-24 09:29:19
174
原创 每天学一个算法--DFS / BFS
📘 搜索算法统一理解摘要 DFS与BFS本质是在状态空间中的两种遍历策略: DFS(深度优先)沿路径深入探索,适合枚举和构造解 BFS(广度优先)按层扩展,保证找到最短路径(无权图) 回溯是带剪枝的DFS,通过约束条件筛选合法解。关键区别: DFS仅遍历,回溯需记录/撤销状态 BFS首次到达即最优解 迷宫类问题用BFS求最短步数,排列组合用DFS+回溯 典型错误:DFS求最短路径效率低,BFS未记录访问会死循环。统一核心为在隐式状态图中系统搜索目标解。 (字数:149)
2026-04-24 09:27:08
325
原创 每天学一个算法--二分查找(Binary Search)
这篇教案深入讲解了二分查找的进阶应用,核心在于利用单调性在答案空间中寻找最优解。关键点包括: 二分查找的本质是通过check函数验证答案可行性,在单调区间内不断缩小范围 提供了标准模板代码,强调l/r边界更新的正确写法 展示了三类典型应用: 最小可行值问题(如数组分段) 数值计算(如开平方) 最优解问题(如吃香蕉速度) 特别指出常见错误:check函数设计不当、边界处理错误导致死循环 强调二分常与其他算法(贪心、DP)结合使用 教案通过具体示例说明如何将问题转化为二分查找模型,重点培养"答案空间二
2026-04-24 09:21:24
362
原创 每天学一个算法--单调队列(Monotonic Queue)、滑动窗口(Sliding Window)
进队一次出队一次OnO(n)On)]用一个有序结构维护“窗口中的最值”
2026-04-24 09:15:27
373
原创 每天学一个算法--单调栈(Monotonic Stack)
这篇教案深入浅出地讲解了单调栈的核心原理和应用。文章从"找右边第一个更大元素"的实际问题切入,通过分步演示栈的操作过程(如[2,1,2,4,3]的处理),生动展示了单调栈如何以O(n)时间复杂度解决问题。重点解析了单调递减栈和递增栈的区别、标准代码模板、常见应用场景(如柱状图最大矩形、股票问题等),并指出常见错误(弹栈时机、存储内容、处理方向)。最后强调单调栈本质是通过有序结构高效解决顺序比较问题,是处理"下一个更大/更小元素"类问题的利器。
2026-04-24 09:08:48
355
原创 docker部署ragflow代码后执行python代码报错sendbox
在ragflow/docker目录下的.env配置文件中解除注释。方案2(官方推荐方式 / docker内部通信)方案1(最简单,推荐你现在用)停止ragflow 的服务。👉 全部停掉 + 网络清掉。找出占用这个网络的容器。
2026-04-22 10:02:38
30
原创 每天学一个算法--图算法(Graph Algorithms)
本文摘要:图算法用于描述对象间的关系,核心内容包括图的基本概念(有向/无向图、权重、路径)和两种表示方法(邻接矩阵/邻接表)。重点讲解了图的遍历算法(DFS和BFS)以及最短路径问题中的Dijkstra算法(适用于非负权边)。此外还介绍了最小生成树(MST)的Kruskal和Prim算法。文章强调图算法的本质是在关系网络中寻找结构或最优路径,并指出了常见错误(如错误选择图表示方法、Dijkstra算法误用于负权图等)。最后总结出图算法的核心应用场景:关系建模、基础遍历、最短路径和最小连接问题。
2026-04-21 16:29:01
921
原创 每天学一个算法--贪心算法(Greedy Algorithm)
贪心算法核心摘要(149字) 贪心算法通过局部最优选择追求全局最优解,适用于具有贪心性质(局部最优可推导全局最优)和最优子结构的问题。典型应用包括活动选择(按结束时间排序)、区间覆盖(选延伸最远的区间)和最小生成树(Kruskal算法)。与动态规划相比,贪心算法不回溯、效率更高,但仅适用于特定问题。关键注意事项:必须验证贪心性质,警惕反例(如特定币值的零钱问题)。核心特点是每一步做出不可撤销的当前最优决策,时间复杂度通常为O(nlogn)。使用时需严格证明或构造反例测试,避免盲目应用。
2026-04-21 16:25:12
949
原创 每天学一个算法--动态规划(Dynamic Programming, DP)
摘要: 动态规划(DP)是一种通过分解问题为子问题并存储结果来优化求解的方法,适用于具有最优子结构和重叠子问题的问题。其核心在于定义状态(如dp[i])和状态转移方程(如dp[i] = dp[i-1] + dp[i-2]),并确定初始条件。DP与递归相比,通过自底向上计算避免重复。典型应用包括斐波那契数列、爬楼梯和背包问题(状态转移需考虑选/不选物品)。DP分类包括线性、区间、树形等,需注意状态定义、转移方程和计算顺序的常见错误。与贪心算法不同,DP保证全局最优但复杂度较高。关键结论:DP=状态+转移,核心
2026-04-21 16:22:43
439
原创 每天学一个算法--堆排序(Heap Sort)
堆排序摘要:堆排序利用最大堆数据结构实现排序,核心是堆化操作。首先将数组构建为最大堆(O(n)时间),然后反复取出堆顶最大值放入数组末尾,并调整剩余元素维持堆性质(O(n log n)时间)。该算法具有O(1)空间复杂度(原地排序),但不稳定。关键点包括:数组的完全二叉树表示、从n/2开始建堆、递归式heapify操作。相比快排和归并,堆排序以稳定时间复杂度著称,适合需要保证最坏情况性能的场景。
2026-04-16 16:56:44
373
1
原创 每天学一个算法-- 归并排序(Merge Sort)
归并排序是一种基于分治思想的稳定排序算法,通过递归地将数组拆分为最小单元后逐层合并来实现排序。其核心操作是合并两个有序数组,采用双指针扫描方式,时间复杂度稳定为O(n log n)。与快速排序相比,归并排序需要额外O(n)空间,但保证了最坏情况下的性能,并且具有稳定性。算法过程分为拆分和合并两个阶段:先将数组不断二分直到单个元素,再通过合并操作将有序子数组合并为更大的有序数组。这种"先拆解后合并"的特性使归并排序特别适合处理大规模数据,虽然空间开销较大,但在稳定性要求高的场景中具有优势。
2026-04-16 16:18:15
356
原创 每天学一个算法-快速排序(Quick Sort)
快速排序是一种基于分治思想的高效排序算法,其核心在于分区操作(partition)。算法通过选择枢轴元素将数组划分为左右两部分,左边元素≤枢轴,右边元素≥枢轴,然后递归处理子数组。平均时间复杂度为O(nlogn),最坏情况为O(n²)。快排是原地排序但不稳定,性能受枢轴选择影响显著。关键点包括:理解分区过程是定位枢轴元素的正确位置而非完全排序,掌握循环不变量的维护,以及正确处理递归边界。相比归并排序,快排省去了额外空间但牺牲了稳定性;相比堆排序,快排具有更好的缓存性能。
2026-04-16 16:00:51
397
原创 Hermes Agent的GitHub解析
Hermes Agent 是 Nous Research 在 2026 年 2 月下旬公开发布的一套“”的 AI Agent 系统:它通过 CLI 与消息网关(Telegram/Discord/Slack/WhatsApp 等)持续运行,并以内置的**技能(Skills)系统、持久会话与记忆(Memory/Session Search)**来累积长期价值。从架构上看,该项目的核心主张是:以单一的AIAgent。
2026-04-13 15:43:23
255
原创 Hermes Agent 的定义、能力边界与趋势判断
Hermes 具备 terminal、file、browser、web search/extract、代码执行等工具能力,并支持多种终端后端,包括 local、docker、ssh、singularity、modal、daytona。Hermes Agent 现在最值得重视的,不是它某个功能是否“比别家多一个”,而是它在极短时间内已经显现出一种相当完整的 agent runtime 轮廓:它有统一核心循环,有多入口接入面,有工具执行后端抽象,有技能与记忆层,有协议层兼容能力,也有初步成型的安全与治理体系。
2026-04-13 15:33:28
106
原创 论文:结构化接入与原生交互的二元张力- MCP 与 CLI 在 LLM 智能体系统中的架构权衡与融合路径
在实际开发中,决策并非黑白分明。社区实践给出了一个清晰的决策框架: 使用CLI当: 你处于“内部开发循环”,追求速度和迭代。 任务可以轻松地用一行或几行Shell命令完成。 你希望最大化Token效率,降低成本。 工具本身就是为终端设计的(如git, docker)。 使用MCP当: 你处于“外部循环”,需要与复杂的、结构化的外部系统交互。 你的团队有严格的安全和审计要求。 你需要为外部API提供
2026-04-13 14:24:32
902
原创 jina-reranker-v3模型部署
本文介绍了jina-reranker-v3模型的三种部署方案:1)使用FastAPI+transformers构建生产级服务;2)通过sentence-transformers进行简易调用;3)Docker容器化部署。重点强调了该模型作为cross-encoder不能通过vLLM部署,并提供了完整的API实现代码、调用示例及性能优化建议。同时给出了标准的RAG流程架构建议,将reranker作为独立服务嵌入向量召回和LLM之间,实现20条文本约80ms的推理延迟。
2026-04-10 10:18:55
45
原创 linux启动定时任务的简单方法
摘要:本文提供了两种在Linux系统定时执行一次性任务(如docker pull)的方案: at命令(推荐):安装at后,通过echo "命令" | at 时间设置任务,自动执行一次,支持atq查看和atrm删除。 cron方案:编辑crontab添加任务,但需手动或脚本删除避免重复执行。 复杂脚本场景(如conda环境下载大模型): 必须通过source加载conda或直接使用绝对路径,避免环境失效。 建议添加日志记录和错误处理,确保大文件下载稳定性。最终通过at定时触发脚本即可。 关
2026-04-08 16:15:13
21
原创 kinbana中无法在discover中显示在ES中创建的索引--解决方案
登陆kinbana平台后,在discover中进行搜索,却发现没有自己已经创建好的索引。在左上角找到stack Management。最后就可以在discover中查看了。然后找到kinbana 的索引模式。然后写入你的索引名称即可。
2026-03-19 11:26:35
63
seatunnel 支持hive jdbc
2023-07-28
dataCollection安装jar包0.07版本
2023-01-16
hbase-manager安装包,已编译
2022-11-14
大数据之湖仓一体,未来如何发展
2024-04-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅