随笔分类 -  架构与选型

摘要:在处理大规模文本数据时,我们经常会遇到一些挑战,比如如何有效地表示和检索文档,当前主要有两个主要方法,传统的文本BM25检索,以及将文档映射到向量空间的向量检索。 BM25效果是有上限的,但是文本检索在一些场景仍具备较好的鲁棒性和可解释性,因此不可或缺,那么在NN模型一统天下的今天,是否能用NN模型来增强文本检索呢,答案是有的,也就是我们今天要说的sparse 稀疏检索。 传统的BM25文本检索其实就是典型的sparse稀疏检索,在BM25检索算法中,向量维度为整个词表,但是其中大部分为0,只有出现的关键词或子词(tokens)有值,其余的值都设为零。这种表示方法不仅节省了存储空间,而且提高了检索效率。 阅读全文
posted @ 2024-04-15 14:40 JadePeng 阅读(181) 评论(0) 推荐(1) 编辑
摘要:Agent是大模型的重要应用方向,而ReACT是学术界提出的重要方法,本文介绍ReACT论文,然后通过llama_index ReActAgent来分析ReACT的执行过程 阅读全文
posted @ 2024-03-13 14:09 JadePeng 阅读(317) 评论(0) 推荐(0) 编辑
摘要:我们从模型量化,模型推理,以及开发平台等三个层面来梳理分析LLM的推理和应用 阅读全文
posted @ 2024-03-12 10:55 JadePeng 阅读(1014) 评论(0) 推荐(1) 编辑
摘要:在文本索引构建这种需要大量占用磁盘IO的任务,如果正巧你的内存还有点余粮,是否可以先索引存储到内存,然后再顺序写入到磁盘呢?,需要大量占用磁盘IO,如果正巧你的内存还有点余粮,是否可以先索引存储到内存,然后再顺序写入到磁盘呢? 阅读全文
posted @ 2024-02-06 12:18 JadePeng 阅读(296) 评论(0) 推荐(3) 编辑
摘要:假设,你有一个C/C++库,需要提供给python和golang、java等调用,你或许会想,是不是要先学习下python扩展如何写 ?NO! 你只需要SWIG就行 阅读全文
posted @ 2024-01-18 20:09 JadePeng 阅读(179) 评论(0) 推荐(1) 编辑
摘要:[Xapian](https://xapian.org/) 是一个开源搜索引擎库,使用 C++ 编写,并提供绑定([bindings](https://xapian.org/docs/bindings/) )以允许从多种编程语言使用。它是一个高度适应性的工具包,允许开发人员轻松地将高级索引和搜索功能添加到自己的应用程序中。Xapian 支持多种加权模型和丰富的布尔查询运算符。最新稳定版本是 1.4.24,发布于 2023 年 11 月 6 日。 Xapian是20年前就开源的搜索引擎,整体比较稳定,功能层面较lucene有差距,但是足够成熟可用。唯一的缺憾是GPL V2协议。 阅读全文
posted @ 2024-01-18 13:25 JadePeng 阅读(319) 评论(0) 推荐(0) 编辑
摘要:`Hnswlib`是一个强大的近邻搜索(ANN)库, 官方介绍 `Header-only C++ HNSW implementation with python bindings, insertions and updates`. 热门的向量数据库Milvus底层的ANN库之一就是`Hnswlib`, 为milvus提供HNSW检索。 阅读全文
posted @ 2023-12-13 13:00 JadePeng 阅读(967) 评论(0) 推荐(0) 编辑
摘要:计算机网络通信中最重要两个衡量指标主要是 带宽 和 延迟。分布式训练中需要传输大量的网络模型参数,网络通信至关重要。 AI集群通信实现方式 AI集群是由多台包含CPU、内存、GPU的服务器组成,需要考虑机器内通信和机器间通信。 机器内通信通常包括共享内存、PCIe、NVLink等方式,机器间主要通过 阅读全文
posted @ 2023-02-15 18:06 JadePeng 阅读(360) 评论(0) 推荐(0) 编辑
摘要:ChatGPT的推出,人工智能正式进入大模型时代。要训练一个chatgpt这样的大模型,需要分布式AI集群的支持。 深度学习迎来大模型 Open AI的GPT-3模型,使用512张V100,需要训练7个月。现在的大模型训练,离不开分布式训练,通过分布式训练来加速训练过程,减少耗时。 分布式并行架构 阅读全文
posted @ 2023-02-15 18:05 JadePeng 阅读(471) 评论(0) 推荐(0) 编辑
摘要:基于golang开发wasm模块 阅读全文
posted @ 2022-05-12 11:02 JadePeng 阅读(1636) 评论(0) 推荐(0) 编辑
摘要:Sentry 是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。 本文介绍安装与使用 阅读全文
posted @ 2019-05-24 16:04 JadePeng 阅读(2743) 评论(0) 推荐(1) 编辑
摘要:随着微服务架构的流行,一次请求往往需要涉及到多个服务,因此服务性能监控和排查就变得更复杂,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这就是APM系统,全称是(Application Performance Monitor,当然也有叫 Application Performance Management tools),本文介绍APM的原理及如何选型。 阅读全文
posted @ 2018-08-27 15:59 JadePeng 阅读(35153) 评论(2) 推荐(7) 编辑
摘要:随着程序功能的日益复杂,程序的配置日益增多,比如各种功能的开关、参数的配置、服务器的地址…… 同时目前流行的微服务,分布式部署,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,需要引入统一配置中心进行服务治理。 本文横向对比了几款流行的开源配置中心,可以作为选型参考。 阅读全文
posted @ 2018-08-24 11:03 JadePeng 阅读(53462) 评论(5) 推荐(8) 编辑
摘要:当前是云计算和数据快速增长的时代,今天的应用程序正以PB级和ZB级的速度生产数据,但人们依然在不停的追求更高更快的性能需求。随着数据的堆积,如何快速有效的搜索这些数据,成为对后端服务的挑战。本文,我们将比较业界两个最流行的开源搜索引擎,Solr和ElasticSearch。两者都建立在Apache Lucene开源平台之上,它们的主要功能非常相似,但是在部署的易用性,可扩展性和其他功能方面也存在巨大差异。 阅读全文
posted @ 2017-03-13 22:01 JadePeng 阅读(37497) 评论(1) 推荐(13) 编辑