You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化图像语义向量搜索的结果准确性?

提升图像语义向量搜索准确性的优化方案
  • 优化GPT-4-mini的输出内容与格式
    目前用GPT-4-mini生成JSON再嵌入,可能因JSON结构冗余或未聚焦核心文本导致嵌入向量偏离关键信息。调整Prompt,让GPT直接提取图像中的纯文本内容,例如:

    提取这张图像中的所有可见文字,仅返回文字内容,不添加任何额外描述或结构。
    如果必须使用JSON,确保结构极简,仅保留核心文本字段,如{"text": "straight outta knee surgery"},避免无关字段稀释关键信息的嵌入权重。

  • 统一嵌入输入的格式与预处理
    存储向量时的输入格式必须与查询向量的输入格式完全一致:

    • 如果存储时是嵌入JSON字符串,查询时需将搜索词"straight outta"包装成相同结构的JSON(如{"text": "straight outta"})再生成嵌入;
    • 对所有文本做统一预处理:转为小写、去除多余空格、统一特殊字符格式,确保图像提取文本与搜索词的预处理逻辑一致,消除格式差异对嵌入结果的影响。
  • 替换嵌入模型或调整模型参数
    text-embedding-3-small虽轻量化,但短文本相似性捕捉能力可能弱于更大的模型。可尝试:

    • 切换至text-embedding-3-large或text-embedding-ada-002,这类模型对语义相似性的识别更精准;
    • 若坚持使用小模型,可调整嵌入时的dimensions参数(text-embedding-3系列支持自定义维度),选择更适合短文本的维度(如512),减少噪声干扰。
  • 修正向量相似度计算逻辑
    确认pgvector的距离算子含义:<=>是余弦距离,相似度计算公式1 - (向量 <=> 查询向量)是正确的,但如果相似文本的余弦距离仍偏大,可尝试改用点积(<#>)进行相似度计算,点积值越高表示越相似,调整查询函数为:

    CREATE OR REPLACE FUNCTION search_design_items (
      query_embedding vector (1536),
      match_threshold FLOAT,
      match_count INT
    ) RETURNS TABLE (id BIGINT) AS $$
    BEGIN
        RETURN QUERY
        SELECT id
        FROM public.design_management_items
        WHERE design_management_items.description_vector <#> query_embedding > match_threshold
        ORDER BY design_management_items.description_vector <#> query_embedding DESC
        LIMIT match_count;
    END;
    $$ LANGUAGE plpgsql;
    

    点积的阈值范围与余弦相似度不同,通常可设置为100+(根据模型输出调整)。

  • 优化pgvector索引配置
    确保已为description_vector创建合适的向量索引,例如HNSW索引(适合高维向量的近似最近邻搜索):

    CREATE INDEX idx_design_items_vector ON public.design_management_items USING hnsw (description_vector vector_cosine_ops);
    

    索引参数(如HNSW的m和ef_construction)会影响召回率,可根据数据集大小调整参数,提升相似结果的召回能力。

内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 22:20:54