花花聊编程
23成员置顶
|今天开始入住腾讯频道啦!以后会分享一些编程的经历,翻译的文档。大模型相关的也会弄一弄啦,生活杂谈也有,敬请期待吧!
12-10 Day6 《从零构建向量数据库》
# 第四章 实现单机向量数据库 其三
前两节实现了主要的读写能力,但实际使用上,还需要一定的抗异常能力,也就是日志、恢复的能力。
写入前,存入一条预写日志(WAL),版本升级到v0.1.2。这种日志,理论上就是一次数据再操作(回放),有时速度不太理想。这时“快照”功能出现了,全量备份+增量WSL解决以上痛点。至此,单机向量数据库便有了大概的摸样,最后版本为v0.2。
-----------------
本章全面的解开了向量数据库神秘的面纱。前面的查询修改接近后端开发的日常。快照是受益比较大的点,第一次感受他的魅力。整体得益于基础组件的开源,很多地方不用真的“从零”构建,还有罗云老师的逐行拆解,庖丁解牛,真是痛快。... 全部
12-09 Day05 《从零构建向量数据库》
# 第四章 实现单机向量数据库 其二
本节的目标是混合索引的实现。对于标量索引,引用了RocksDB。为了混合上节的向量和这节的标量,新增一个混合类型,并加上唯一ID关联他们。
实际使用中,只需要一个接口,而现在用了三种存储查询的结构。所以需要统一规范。这是个里程碑式的节点,统一入口会一直用到最后。所以版本号来到了v0.1.0。到这里并没有结束,前面有提到,混合的目的,需要一种基于标量的过滤能力,所以最后扩展能力提升到了v0.1.1版本。
----------------------
一个大版本更新,对于源码没有改变,只是入口变为了统一。这个实现方式很有意思,快速原型,然后追加功能,而不是一上来就是介绍架构。每一段都是完整的,都可以独立测试。... 全部
12-08 Day04 《从零构建向量数据库》
# 第四章 实现单机向量数据库 其一
现在进入本书的第二部分,代码实操环节。因为是从零开始,所以先去调查市面上存在的技术,或相关子技术。
PS:代码部分可以从异步图书下载,附赠的资源还有目录,试读,见P2
--------------------------------
从零开始,并不是直接开始写代码,而是先调研与学习。所以本篇开始就从Faiss的核心代码分析开始,案例都是C语言,但由于作者贴心的逐行注释,稍微有点代码基础都很好理解。随后基于此,开发出了v0.0.1版本,该版本实现了基础的查询,存入功能。没错,本书是渐进式的,如果让我为本书起名,可能会叫《手写向量数据库:渐进式实践》。
后面拆解另一个框架HNSWLib,实现了v0.0.2版本,追加了索引结构。
--------------------------------------------
书籍就是作者思想的映射,可以看出罗云老师对待一项新技术的思考方式。站在巨人的肩膀上,对各个行业都行之有效。尤其在软件行业上,前人成功的路大都是“公开”的。... 全部
12-07 Day03 《从零构建向量数据库》
# 第三章 向量数据库的核心能力
这一章算是对基础架构做一个了解。包括围绕云平台数据库的介绍,以及向量这一特殊类型的存储,检索方式。
以主键索引举例,将所有数据放在同一层级,就是扁平索引。多级非递归的方式创建HNSW索引。聚类加倒排,可以更好利用压缩的IVF 索引。三者也是各有使用场景,没有完全的优劣之分。
还有一个印象比较深的是,混合查询。向量数据库存储的是向量,传统数据库使用的是标量。有时需要指定标量来检索向量,比如日期。用在手机相册的 AI 检索上,保留语义检索的同时,还可带上其他像日期,地点等条件。实现这种能力的方式也比较好理解,就是加了一层过滤器。先进行向量检索,然后进行一层标量过滤处理,再返回。... 全部
12-06 Day02 《从零构建向量数据库》
# 第二章 向量数据库极简史
为什么说向量数据库的孕育期是从1980年开始的?这一时间点,差不多是深度神经网络探索的初期,而在这一领域又对向量比较有需求,算是为以后奠定基础。
17年是向量数据库的元年,因为FAISS 与 HNSWLib 两款产品开源,对深度学习,数据处理等框架无缝集成。产生了很大的影响。
如今,由于大模型的影响,传统的关系型数据库MySQL,PostgreSQL、非关系型数据库Radis,都具备了向量存储的能力(或插件)。各大云厂商也加入或加快了该产品的布局。
--------------
一开始并没有会凭空诞生一个技术,都是有了需求,有了量级才会有质变。向量数据库也是如此,从单计算到存储计算结果,最后再做成独立产品。... 全部
12-05 Day01 《从零构建向量数据库》
说实话,很少先从背景故事去了解一本书,尤其是技术图书。
距离 ChatGPT 发布已经过去了两年,这一波 AI 浪潮对生活的影响更为巨大。作为 Web业务开发者的我们,想要抓住机会,有两种技术非常值得推荐,一个是RAG(检索增强生成),一个是向量数据库(Vector Database)。
RAG 已经有很多文章和书籍了,但向量数据库无人问津。据我检索网络内容,成书的只有这一本。不过,这不是我买下它的首要原因。... 全部
#技术人夜谈 #FOMO
🌀话题 技术FOMO
深夜还在不断查看手机上各类App讯息,害怕错过各类新消息,你可能患上了错失恐惧症Fear of Missing Out。这是国外2011年的一个热词。
而对于技术人,也有一种焦虑。买了很多书,课,囤了大量的学习资料,对于各种新鲜技术保持跟进。这是一种技术FOMO,应该有,但请注意度,不要影响睡眠。... 全部
#Hack News
p1: PJ66 木星图像拼贴,夸张的颜色/对比度。苹果手机又有新壁纸了(bushi
p2:在网页上进行简单建模,使用体验非常顺滑。详情请打开playcanvas
p3:有趣的的技术,台词定位视频进度。titledrops
... 全部
🌀关于技术写作
为什么程序员需要技术写作?
➡️技术写作的好处
· 提升沟通能力:通过写作,可以更清晰地表 · 达自己的想法,提升与他人的沟通能力。
· 巩固学习成果:写作可以帮助整理和总结学到的知识,加深理解。
· 锻炼逻辑思维:写作需要有清晰的逻辑结构,有助于训练逻辑思维能力。
· 建立个人品牌:通过分享专业知识和见解,可以建立个人品牌,提升职业竞争力。
·分享与互动:发布文章可以与他人交流,获得反馈和启发,促进个人成长。... 全部
🌀你真的适合成为程序员吗?
让我们从客观和主观两方面来探讨一下。
1️⃣客观地说,尽管程序员职业并非适合每个人,但它确实是少数能够仅凭个人努力就能取得可观收入的职业之一。
2️⃣主观上,耐心、钻研精神、好奇心、深度思考以及持续学习的能力对于任何职业都是必要的。因此,你需要认真思考这些素质是否与你相符。
你是否对解决技术难题充满热情?当成功解决一个问题时,你是否感到特别的兴奋?此外,你对前端技术的未来发展有多大的信心?... 全部