Correlations氛围测试:文本或图像的相似度热图
1 项目概览:Correlations 是什么?
Correlations 是一个交互式 UI 工具,Jina AI 开源项目 Correlations
用于调试和可视化文本或图像向量之间的相似性关系,特别适合:快速把相关内容两两对照,比单纯数字报告更直观。Correlations 把这种快速、主观“氛围检视”做成了可视化工具,并允许继续深挖定量指标。在大模型时代,这种把“定性直觉”与“定量分析”无缝衔接的工具,会成为 Embedding / RAG / 多模态系统调试的常用武器。
典型使用场景
- ✅ 向量模型调试(如文本 embedding 模型)技术博客 vs 论文内容对齐 – 一条明显的对角线 = 两份材料块级对应复用高。
- ✅ RAG 引文核查 – 把“生成答案声明”与“检索段落”做二部矩阵,高分块应落在选区内,否则提示幻觉。
- ✅ 内容分块策略评估(如 Late Chunking)Late-Chunking 策略验证 – 同一文档不同分块法的自相关热图呈现不同“方格”纹理,可直观看出上下文破碎与否
- ✅ 多模态向量(图文检索)对齐分析。跨模态 (图-文) 关联 – 配合 jina-clip-v2,鼠标悬停即显示原图;可检查图片与 alt 文本、商品描述是否匹配。
- ✅ Embedding 的氛围测试(vibe-check)——可视化第一眼看相似与否
它的本质是将两个嵌入向量集合之间的**余弦相似度矩阵(Cosine Similarity Matrix)**渲染为一个热图,并提供丰富的交互功能让你“用肉眼判断”相似性结构。
1.1 核心原理
你已经有了一份或两份嵌入(embedding)向量文件 JSONL
格式:
{"chunk": "文本块1", "embedding": [0.12, 0.45, ...]}
{"chunk": "文本块2", "embedding": [0.33, 0.66, ...]}
...
这些向量一般由文本或图像编码器(如 BERT、GTE、CLIP)生成,维度通常是 384、768、1024 之类。
我们要做的事情是:
把所有内容块之间的相似度计算出来,并用热图呈现出来。
假设我们有两个 JSONL 文件:
A.jsonl
:原文内容 → 生成了m
个向量B.jsonl
:摘要或目标内容 → 生成了n
个向量
每个向量维度为 d
,则可以组成两个矩阵:
符号 | 维度 | 含义 |
---|---|---|
A | m × d | 原文块的向量矩阵,每行是一个向量 |
B | n × d | 摘要块的向量矩阵,每行是一个向量 |
如果只有一个文件(自相关热图),那就令 B = A
。
余弦相似度的定义
对于两个向量 a i , b j \mathbf{a}_i, \mathbf{b}_j ai,bj,它们的余弦相似度定义为:
S i j = a i ⋅ b j ∥ a i ∥ ⋅ ∥ b j ∥ S_{ij} = \frac{ \mathbf{a}_i \cdot \mathbf{b}_j }{ \|\mathbf{a}_i\| \cdot \|\mathbf{b}_j\| } Sij=∥ai∥⋅∥b