自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图计算浅谈:主流图存储引擎/图搜索算法

图搜索算法是一类用来在图结构数据中检索特定模式、路径或连接性的算法。根据搜索过程中评估顶点和边的策略的不同,它们可以被划分为多种类别。

2024-04-30 11:46:39 1601 1

原创 若要码得好,轻松是首要

亲爱的键盘侠们,不论你是熟练的bug制造者,还是世界级的“Ctrl+C/V”技艺高手,我们都在这不眠之夜中拼搏。面对层出不穷的Bug和随时堵在喉咙的Deadline,放松一刻,保持酷爽,是码农得以生存、进化的不二法宝。以下是小编倾心为你准备的,笑对压力的缓解“秘籍”,让我们一起用行之有效且兼具幽默感的方式,化压力为动力,让生活再次充满二进制的浪漫。

2024-04-30 10:40:38 459

原创 Faiss:高效向量搜索引擎的原理与实践

Faiss是一个针对密集向量集合进行相似度搜索和聚类的库。它非常适合那些需要处理大数据集的应用场景,比如搜索相似图片、视频推荐或者文本检索。Faiss能够处理十亿级别的向量,并且提供了GPU加速的搜索算法,以此来加快搜索速度。选择合适的索引类型和参数对搜索性能有很大影响。在数据集很大的情况下,推荐使用量化索引来加速搜索。利用GPU加速可以显著提高大规模向量搜索的速度。在使用量化索引时,正确地训练量化器是获得高质量结果的关键。Faiss同时支持批量搜索和实时搜索,适用于不同需求。

2024-04-29 16:45:44 4031

原创 Spring AOP 面向切面编程通用化实现方案

Spring AOP(面向切面编程)是一种编程范例,它使开发人员可以将横切关注点(跨越整个应用程序的重复代码)从实现他们的业务逻辑代码中分离开来。这样,开发人员可以使他们的代码更容易理解、更易于维护,以及更易于重用。在 Spring AOP 中,面向切面编程的主要范型由通知(advices)、切入点(join points)和切面(aspects)组成。: AOP 可以在不修改业务代码的情况下,将企业处理的规则应用到业务组件。:这是实际要执行的代码片段。:这是在应用程序中的哪个特定点,一个通知应该被织入。

2024-04-28 14:34:35 546 1

原创 Debian 安装 python 3.9.6

【代码】Debain 安装 python 3.9.6。

2024-04-03 14:57:13 793

原创 Flink 反压问题处理

*增加资源**:如果处理任务的资源不足,可以考虑增加任务的资源配置,如CPU核心数、内存大小等。**网络优化**:如果网络延迟是问题的原因,可以考虑优化网络配置,比如使用更快的网络设备,或者将数据处理任务迁移到离数据源更近的位置。**优化处理逻辑**:分析下游任务的处理逻辑,看是否有优化空间。**下游处理能力不足**:可能是由于下游任务的资源配置不足(如CPU、内存不足),或者是算法效率低下导致的。**上游发送速度过快**:如果上游数据源产生数据的速度超过了下游处理单元的处理能力,就会产生反压。

2024-03-30 10:34:39 827

原创 Flink 架构深度解析

它通过高效的事件处理模型、强大的状态管理和灵活的部署选项,为实时数据分析提供了一个可靠和高效的平台。- **作业调度**:接收提交的作业,将作业的 JobGraph 转换为 ExecutionGraph,并调度任务到 TaskManager 上执行。- **高吞吐量和低延迟**:Flink 的事件驱动模型和优化的网络通信机制使其能够处理大规模数据流,同时保持低延迟。- **强大的状态管理**:Flink 的状态管理能力使其能够处理复杂的流处理场景,如事件时间处理和状态丰富的转换。

2024-03-22 20:10:02 1376

原创 检索增强型生成(RAG)技术的发展方向及趋势

RAG技术通过整合参数化知识与非参数化数据,显著提升了LLMs的能力。技术优化:提高检索效率、扩展上下文长度、增强鲁棒性,并探索混合方法的最优集成。多模态融合:将RAG原理应用于图像、音频、视频和代码等多样化数据,拓宽应用范围。生态系统完善:随着RAG技术栈的发展,将进一步推动RAG能力的提升,并为高级企业应用奠定基础。随着RAG技术的不断进步,其在AI领域的应用前景广阔,预计将在学术和工业界引起更多关注。同时,为了确保RAG技术的有效性和实用性,对其评估方法的完善也将成为未来研究的关键方向。

2024-03-19 21:27:30 1370

原创 LlamaIndex 调研报告

在 LlamaIndex 中,文档(Document)是最基本的数据结构,它是一个通用的数据源容器,能够包含多种形式的数据,如 PDF 文件、API 输出、数据库查询结果等。文档的设计目的是作为一个抽象层,将不同来源和格式的数据统一起来,便于后续的处理和索引。节点(Node)是 LlamaIndex 中的另一个核心概念,它代表了源文档中的一个“块”,这个“块”可以是文本段落、图像、视频片段或其他任何形式的数据。节点的设计使得 LlamaIndex 能够对文档内容进行更细致的管理和索引。

2024-03-17 10:21:41 1102

原创 LangChain: 调研报告

LangChain是一个强大的框架,它为开发者提供了构建和部署由语言模型驱动的应用程序所需的一切工具和资源。其模块化设计、丰富的集成选项和易于使用的接口使其成为开发者在自然语言处理领域的理想选择。通过LangChain,开发者可以快速从原型开发过渡到生产级应用程序的部署,同时确保应用程序的安全性和可维护性。

2024-03-16 19:26:28 1590

原创 Python chardet.detect 字符编码检测

它会统计字节串中每个字符或字符对出现的频率,并将这些统计结果与预先训练好的字符编码模型进行比较。:可以尝试使用多种可能的编码进行解码,然后根据解码后的结果来判断哪种编码是正确的。在 Python 中,没有一种方法可以完全准确地检测字节串的编码,因为字节串本身并不包含关于其编码的元信息。例如,如果字节串是从特定来源获取的,你可以根据该来源的编码做出假设。虽然这种方法在很多情况下表现良好,但并不是完美的,尤其是对于较短或包含特殊字符的字节串。是 Python 的一个库,用于检测给定字节串的字符编码。

2024-03-15 15:33:17 1028

原创 Clickhouse系列八:浅析ClickHouse中的物化视图机制

物化视图是ClickHouse中一种极具策略性的工具,特别适用于对查询效率有极高要求的OLAP场景。通过合理使用物化视图,你可以把更多的精力放在如何解读和利用数据上,而非消耗在复杂且重复的查询上。

2024-03-14 10:00:00 663

原创 大型语言模型RAG(检索增强生成):检索技术的应用与挑战

检索增强生成(RAG)系统通过结合传统的语言模型生成能力和结构化数据检索,为复杂的问题提供精确的答案。本文深入探讨了RAG系统中检索技术的工作原理、实现方式以及面临的挑战,并对未来的发展方向提出了展望。随着大型预训练语言模型(LLMs)如GPT-3和BERT的出现,自然语言处理(NLP)领域取得了显著进展。然而,这些模型在处理知识密集型任务时仍存在局限性,特别是在需要最新或特定领域知识的情况下。RAG系统通过引入检索机制,增强了模型的知识库,使其能够生成更准确、更丰富的回答。

2024-03-13 16:48:37 1002

原创 大型语言模型RAG(检索增强生成)随笔:增强技术

在RAG(检索增强生成)系统中,增强技术是指那些用于提升模型性能、改善生成文本质量的策略和技术。这些增强技术可以帮助模型更好地理解和利用检索到的信息,从而生成更加准确、相关和丰富的文本。

2024-03-11 21:12:08 1150

原创 RAG(检索增强生成): 上下文整合

上下文整合是RAG系统中的一个关键环节,它直接影响到生成文本的质量和相关性。通过上述技术和策略,RAG系统能够有效地利用检索到的信息,生成准确、丰富且用户友好的文本。随着技术的不断进步,我们可以期待RAG系统在上下文整合方面实现更高的效率和更好的性能。

2024-03-10 12:11:30 1518

原创 大型语言模型的智能助手:检索增强生成(RAG)

RAG是一种结合了外部数据库检索和模型生成的技术。它通过在用户提出问题时,先在外部数据库中检索相关信息,然后将这些信息作为上下文,辅助模型生成更准确、更可靠的回答。这种方法不仅提高了模型的输出质量,还允许模型不断更新知识库,整合特定领域的信息。RAG技术为大型语言模型提供了一种新的增强方式,使得模型不仅能够生成流畅的文本,还能够提供准确、可靠的信息。随着技术的不断进步,RAG有望在更多领域发挥作用,成为人工智能领域的重要突破。未来,我们期待RAG能够在处理更复杂的任务、提供更高质量的输出方面取得更大的进步。

2024-03-09 11:11:34 1957

原创 Clickhouse & Elasticsearch 选型对比

Clickhouse是俄罗斯搜索巨头Yandex开发的完全列式存储计算的分析型数据库。ClickHouse在这两年的OLAP领域中一直非常热门,国内互联网大厂都有大规模使用。Elasticsearch是一个近实时的分布式搜索分析引擎,它的底层存储完全构建在Lucene之上。简单来说是通过扩展Lucene的单机搜索能力,使其具有分布式的搜索和分析能力。今天很多用户在实际的业务场景中,常常面对ClickHouse和Elasticsearch技术选型的难题。

2024-03-08 09:11:58 3749 1

原创 Clickhouse: 随笔杂记

1、Clickhouse启动的时候会加载所有表的元数据信息,这部分会缓存在内存里面。这部分的内存没有办法知道并且也不走MemoryTracker。2、Clickhouse会缓存表的mark信息在内存里, 使用LRU算法来控制。缓存大小通过配置文件中config.xml里面的mark_cache_size属性来控制。默认是5G。每个Shard上面占用的内存。3、Clickhouse会缓存表的解压缩数据放到内存里面,使用LRU算法来控制。

2024-03-07 09:52:43 703 1

原创 Clickhouse: 数据基本知识

ClickHouse是一个开源的列式数据库管理系统,专门用于在线分析处理(OLAP)场景。它具有高性能、高可靠性、高可扩展性和低成本等优点,被广泛应用于大数据领域。以下是ClickHouse的主要特点:高性能:ClickHouse采用列式存储结构,能够快速处理大量数据。它支持高并发查询和复杂的分析操作,能够在秒级别内返回查询结果。高可靠性:ClickHouse具有强大的数据保护机制,支持数据备份、数据恢复和数据复制等功能,能够保证数据的安全性和可靠性。

2024-03-06 10:04:35 1022 1

原创 向量数据库短板及解决方案

索引的选择对于向量召回的性能至关重要,Milvus 支持了 Annoy,Faiss,HNSW等多种不同的索引,大部分索引必须加载进内存.用户可以根据对延迟、内存使用和召回率的需求进行选择。对于大数据量,内存不足的场景,提供磁盘索引解决方案:DiskANNDiskANN 依赖高性能的磁盘索引,借助 NVMe 磁盘缓存全量数据,在内存中只存储了量化后的数据。DiskANN 适用于对于查询 Recall 要求较高,QPS 不高的场景。

2024-03-05 10:20:35 1545

原创 Milvus 资料

Milvus Standalone 部署:一文带你入门向量数据库milvus:含docker安装、milvus安装使用、attu 可视化,完整指南启动 Milvus 进行了向量相似度搜索-优快云博客Milvus 可视化管理工具:https://github.com/zilliztech/attu/blob/main/doc/zh-CN/attu_install-docker.mdMilvus API:

2024-03-05 09:36:40 263

原创 向量数据库调研

随着行业内AI战略的铺开。 知识的存储跟表达也有了新的标准。对于向量数据产生了存储检索的需求。向量这个数学表达,在目前是人与AI交互的中间媒介。 所以我们有必要深入探讨向量数据库,并对当前主流的数据库做一些对比分析。

2024-03-04 10:57:00 1665 1

原创 Linux常用运维命令

xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。1. root 目录下执行 chown -R ukayne.users /run/user。“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

2024-03-03 11:10:54 252

原创 Clickhouse系列之七: BF索引过滤器原理

1.关键字通过一个或者多个hash函数,将关键字进行数字化。2.通过一个字节位图结构,将hash 后的结果保存下来。3.查询关键字时,通过位图标识,判断是否命中。1)、hash函数的数量。

2024-03-02 15:22:27 451 1

原创 Clickhouse系列六:源码解读GroupBy

单机Clickhouse GroupBy的功能是被业界津津乐道的。那么它又是怎么能达到这么好的性能的呢?优化点在哪里呢。这里我们来去探索下Clickhouse关于GroupBy的秘密。说到GroupBy那就不能不提聚合函数了,在Clickhouse里面关于GroupBy的设计是非常优秀的,Clickhouse计算引擎是通过火山模型来实现的,但是火山模型有一个非常大的性能损耗就是虚函数调用的开销

2024-03-01 09:54:29 2226 1

原创 Clickhouse 配置使用

​Clickhouse配置项主要在 config.xml 或 users.xml 中, 基本上都在 users.xml 里config.xml的配置项:Server Settings | ClickHouse Documentationusers.xml的配置项 :Settings | ClickHouse Documentation

2024-02-29 09:44:39 2076

原创 「猿区」ZSTD 压缩算法

总之,zstd 的实现逻辑是通过学习分析数据的重复模式,使用 FSE 算法和 Huffman 树对压缩后的数据进行编码,从而达到高压缩比和快速解压的目的。在解压缩时,解压缩程序需要先读取头部信息,根据头部信息中的元数据进行相应的解压操作,然后读取压缩数据部分,使用相同的算法进行解压缩,还原为原始数据。头部信息:用于描述压缩数据的元信息,包括压缩级别、字典 ID、压缩标志位等信息。分析数据:zstd 会对输入的数据进行分析,寻找其中的重复模式,并将其替换为一些较短的指针,指向之前已经压缩过的重复数据。

2024-02-28 11:41:48 3757 2

原创 Clickhouse 索引类型明细

inverted 索引以 index_granularity 为最小粒度,ClickHouse 还需要对的数据块执行实际扫描,而不是直接定位所有包含该字符串的行,所以 gin 的实际性能未达到极致。保证各个part内的数据相对来说独立,交集较少,如数据时间字段。可用于过滤大量不相管的数据分区。合理配置可几十上百倍提高性能。(N 为数据块内唯一值个数)适用于数据入库有序的字段。N * 索引表达式长度。

2024-02-28 08:53:14 873 1

原创 Clickhouse源码架构

Core:核心模块,包括Block、Field、ColumnWithNameAndType、Row定义,SQL标准、DB引擎、DB设置等等。AggregateFunctions & Functions & TableFunctions:聚合函数、普通函数、表函数的定义。Storages:存储管理,如分布式表数据分发、MergeTree分布式存储模块等等。Databases:数据库,包含数据库中的操作如表迭代器、库信息等等。Parsers:语句解析,构造AST,遍历AST元素。Common:公共库。

2024-02-27 11:09:00 242

原创 Clickhouse系列五:Select...Final数据一致性的实现方案

Clickhouse优秀的性能背后MergeTree系列的表引擎是功不可没的。MergeTree存储结构的设计思想其实和LSM-TREE是类似的。都是优化随机写磁盘的性能。LSM-TREE数据结构对于数据是采用顺序写的模式。所以对于之前数据的删除或者更新, 也是采用追加新数据的模式来做的。那么如何保证数据的有效性,这里就需要引入一个Compaction的机制来处理(Merge on write)。让新的数据块和老的数据块进行合再提供给外部使用。 那么Clickhouse是如何做的呢。

2024-02-27 09:51:37 3270

原创 Clickhouse系列四:二级稀疏索引的技术原理及使用

以minmax索引为例,它聚合了一个index_granularity区间内的最大和最小数据,假设index_granularity=8192且granularity=3,则数据按照index_granularity划分为n等份,MergeTree从第0段分区开始,依次获取聚合信息,当获取到第三个分区(granularity=3),则汇总并生成第一行minmax索引(前3段minmax汇总后取值为[1, 9]),如下图。如果不走索引的情况下,是没有这样的打印的。比如下面的例子,比如当我们执行下面的查询时。

2024-02-26 09:58:18 1930 1

原创 Clickhouse系列三:表引擎副本机制

Clickhouse通过表数据的冗余存储,来达到防止数据丢失的问题。这也就是常说的数据副本机制,但是副本数据和真实数据都存储了,服务器的容量就不够了,这时我们就需要实现数据的水平切分,来解决单个服务器容量不够的问题。这就是常说的数据分片机制数据副本机制ClickHouse依靠ReplicatedMergeTree引擎族与ZooKeeper实现了复制表机制, 成为其高可用的基础.ReplicatedMergeTree引擎族包含如下的表种类目前阶段只有上面这些表种类支持副本机制。

2024-02-25 13:42:51 1854 1

原创 ElasticSearch存储结构

ElasticSearch存储结构tim(TermDictionary)文件中存放了每一个term的TermStats,TermStats记录了包含该term的文档数量,term在这些文档中的词频总和;另外还存放了term的TermMetadata,TermMetadata记录了该term在.doc、.pos、.pay文件中的信息,这些信息即term在这些文件中的起始位置,即保存了指向这些文档的索引.

2024-02-23 10:52:30 477

原创 Clickhouse系列二:Join调优策略

优化策略SQL执行时间原始语句5.321 sec谓词下推0.874 sec0.874 sec(未生效)转Subquery0.874 sec(不满足条件)聚合下推0.641 secPreWhere优化0.611 sec小表作为广播表0.606 sec小表使用数据字典进行存储0.606 sec(不满足条件)使用物化视图0.001 sec通过上面的表格可以看到,SQL优化后性能提升是巨大的。因为Clickhouse不支持CBO, 所以一些优化手段只能手动处理。

2024-02-23 10:27:05 1551

原创 Clickhouse系列一:Clickhosue资源隔离

目前的版本Clickhouse对于资源管理不是一个细粒度的,通过上面的痛点问题也能够看到。如果想做细粒度的资源控制,还是需要一个全局的资源管理进行处理。

2024-02-23 09:50:51 1329

空空如也

空空如也

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

TA关注的人

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