Machine Learning
TODO
监督学习,无监督学习和强化学习的区别
监督学习(Supervised Learning):通过人类标注数据(问答对),学习如何生成回答
Unsupervised Learning:
奖励模型(Reward Model):根据人类反馈(评分或排名),建立模型评估回答的质量
强化学习(Performance Learning):通过PRO算法(Proximal Policy Optimization),在与用户交互中,不断优化策略,选择最好回答
人类反馈(Human Feedback):训练核心动力,帮助理解什么是好的、差的回答
More Learning Paradims

向量数据库和其他数据库的差别及对比
向量数据库是一种专门设计用于存储、索引和查询向量嵌入(Vector Embeddings)的数据库。
- 向量嵌入:一段数据(如文本、图像、音频、视频)通过机器学习模型(如 OpenAI 的 Embedding 模型、BERT 等)转换后得到的一长串数字(通常是数百到数千维)。这个向量在高维空间中代表了原始数据的语义和上下文信息。语义相近的数据,其向量在空间中的距离也更近。
- 核心操作:向量数据库的核心查询操作是相似性搜索(Similarity Search),即给定一个查询向量,在数据库中快速找到与之最相似的 K 个向量(K-Nearest Neighbors, KNN)。
与传统数据库的核心差别
传统数据库(包括关系型 SQL 和 NoSQL)是为处理结构化数据和精确匹配而设计的,而向量数据库是为处理高维向量和近似匹配(相似性)而优化的。
它们最根本的差别在于 “如何查询数据”和 “数据代表了什么”。
特性维度 向量数据库 传统数据库 (SQL/NoSQL) 数据模型 向量: 存储高维向量作为核心数据。元数据可以附加到向量上。 结构化数据: 行/列(SQL)、文档、键值对、图等。 主要查询方式 相似性搜索 / 近似最近邻 (ANN) 搜索: “找到与这个图片最相似的10张图片”。 精确匹配 / 范围查询: “找到 WHERE user_id = 123的所有订单” 或 “找到WHERE price > 100的商品”。索引结构 专为高维向量优化: 使用 HNSW (分层导航小世界)、IVF (倒排文件)、PQ (乘积量化) 、LSH (局部敏感哈希) 等算法来加速相似性搜索。 为标量数据优化: 使用 B-Tree(用于范围查询)、Hash索引(用于精确匹配)、倒排索引(用于全文搜索)等。 查询语言 通常提供专有的 API/SDK,以及扩展的 SQL 语法(如 ORDER BY vector_distance(...))。SQL(用于关系型)或特定的 查询 API(用于 NoSQL,如 MongoDB 的查询文档)。 核心能力 关联查询: 根据数据的含义或内容进行检索。善于处理“像这样的东西有哪些?”这类问题。 精确查询: 根据数据的确切值进行检索。善于处理“某某的具体数据是什么?”这类问题。 典型应用场景 AI 应用:语义搜索、推荐系统、图像/音频检索、欺诈检测、大语言模型(LLM)长期记忆等。 业务应用:交易系统、用户管理、内容管理系统(CMS)、库存管理等。 性能考量 追求高 QPS(每秒查询次数)下的低延迟相似性搜索。牺牲100%精确度以换取极快的速度(使用 ANN)。 追求事务的 ACID 属性(原子性、一致性、隔离性、持久性)、查询的准确性和一致性。
一个生动的类比
想象一下你要在图书馆找书:
传统数据库(SQL):
- 你知道书的精确书名或ISBN号。图书管理员(数据库)通过精确的索引卡片系统直接走到确切的书架,拿到你要的那本书。
- 查询: “请给我 ISBN 为
978-3-16-148410-0的书。”
全文搜索引擎(如 Elasticsearch):
- 你想找包含某些关键词的书。图书管理员扫描所有书的索引,找到包含这些词的所有书,然后根据相关度排序返回给你。
- 查询: “请给我包含‘机器学习’和‘神经网络’的书。”
向量数据库:
- 你想找一本感觉类似于《三体》的书。你不知道书名或作者,也无法用准确的关键词描述。图书管理员(向量数据库)理解《三体》的主题、风格和情感基调(即它的“嵌入向量”),然后在书库中寻找在“概念空间”里与它最接近的书。
- 查询: “请给我类似于《三体》的书。” -> 数据库可能会返回《基地》、《与拉玛相会》等科幻经典。
技术架构对比(简化)
传统数据库查询:
SELECT * FROM products WHERE category = 'electronics' AND price < 1000;- 解析 SQL 语句。
- 可能使用
category和price上的索引来快速定位精确匹配的行。 - 返回结果。
向量数据库查询:
找到与查询向量 [0.12, 0.45, ..., 0.89] 最相似的 10 个向量- 接收查询向量。
- 使用 HNSW 或其他 ANN 索引,在向量空间中进行快速导航和搜索,寻找近邻。它不会比较每一个向量,那样成本太高(暴力计算)。
- 返回最相似向量对应的原始数据(如图片、文本片段)。
为什么现在越来越重要?
向量数据库的兴起直接源于 AI 的爆发,尤其是大语言模型(LLM)和生成式 AI。
- 大语言模型(LLM)的长期记忆: LLM 本身有上下文窗口限制。向量数据库可以作为其“外部大脑”,存储海量知识库。用户提问时,先从向量数据库中检索最相关的信息,再连同问题和信息一起发给 LLM,从而生成更准确、更相关的答案。这就是 RAG(检索增强生成) 的核心架构。
- 多模态AI: 一切(文本、图像、视频、音频)都可以被编码成向量。向量数据库提供了一个统一的方式来处理和关联所有这些不同类型的数据。
- 高效的相似性搜索: 在亿级数据中做暴力相似性搜索(逐一遍历)是极其缓慢的。向量数据库的专用索引使其变得实时可行。
总结与选型建议
使用向量数据库当… 使用传统数据库当… 核心需求 你需要根据语义相似性或内容来搜索数据。 你需要根据精确值(ID、名称、日期、价格)来查询、更新和删除数据。 数据形式 你的数据可以被机器学习模型转换为向量嵌入(如文本、图像、音频)。 你的数据是结构化的(用户信息、交易记录、产品库存)。 查询类型 你的问题是:“找到像这样的东西”或“推荐相关的内容”。 你的问题是:“找到用户 123 的订单”或“计算上个月的总销售额”。 重要提示:现代应用常常同时使用两者!这种模式称为 “多模态” 或 “混合” 数据库架构。
- 例如:一个电商推荐系统。
- 使用 传统数据库(如 PostgreSQL)来存储用户信息、订单、商品库存和价格。
- 使用 向量数据库(如 Weaviate, Qdrant)来存储商品描述、图片的向量,用于实现“找相似商品”和“个性化推荐”。
- 应用服务器协调两者,提供完整的服务。
主流向量数据库示例:Pinecone, Weaviate, Qdrant, Milvus/Zilliz, Chroma, Vespa 等。许多传统数据库(如 PostgreSQL with
pgvector, Redis with RedisVL)也通过扩展添加了向量搜索能力。MoE(Mixture of Experts,专家混合模型)
AI-3-核函数/熵/激活函数
Summary of Core Mutimodal Challenges
