• 数据库管理-第152期 Oracle Vector DB & AI-04(20240220)


    数据库管理-第152期 Oracle Vector DB & AI-04(20240220)

    作者:胖头鱼的鱼缸(尹海文)
    Oracle ACE Associate: Database(Oracle与MySQL)
    网思科技 DBA总监
    10年数据库行业经验,现主要从事数据库服务工作
    拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
    墨天轮MVP、认证技术专家,ITPUB认证专家,OCM讲师
    圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
    公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
    除授权转载并标明出处外,均为“非法”抄袭。

    由于上一篇的一些“误操作”,导致公众号发文删了,当天重发没有办法触发群发效果,所以可能有些人会发现没看过03。

    1 常用的向量检索方法

    聚类

    K-Means 和 Faiss
    image.png

    图搜索

    Hierarchical Navigable Small Worlds (HNSW)
    image.png

    哈希

    局部敏感哈希(Locality Sensitive Hashing)LSH

    量化

    Product Quantization (PQ):有损压缩

    2 Oracle Vector DB中的索引

    在Oracle Vector DB中,可以在Vector数据类型列上创建vector index来提升向量检索的性能:

    索引(默认)

    create vector index vector_idx on vector_table (data_vector)
    organization [inmemory neighbor graph | neighbor partition]
    
    • 1
    • 2

    距离计算:欧几里德
    向量索引的选择取决于organization子句:

    1. In-Memory Neighbor Graph organization:HNSW
    2. Neighbor Partition organization:IVF

    索引(高级)

    可以指定向量索引类型参数、距离函数、精度等:

    create vector index vector_idx on vector_table (data_vector) organization neighbor partition parameters (num_centroids 1024);
    
    • 1

    3 EMBEDDINGS

    在Oracle Vector DB除直接通过外部导入向量外,也内建支持多种向量生产方式:

    SQL EMBEDDINGS 函数

    原生支持生成向量数据:

    select id, image from cat_images order by VECTOR_DISTANCE(img_vec, EMBEDDING(resnet_50 USING :input_img)) fetch first 2 rows only;
    
    • 1

    image.png

    OONX

    Open Neural Network eXchange embedding 模型:

    DECLARE
      model_source BLOB := NULL;
    BEGIN
      model_source :=
      DBMS_CLOUD.get_object
      ( credential_name =>
      'OBJ_STORE_CRED',
      object_uri	=> 'https://objectstorage…bucketname/o/resnet50bundle.onnx’);
    
      DBMS_DATA_MINING.import_onnx_model
      ( model_name	=> "resnet50",
      model_data	=> model_source,
      metadata		=> JSON('{ function : "embedding" }')
    );
    END;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    总结

    本期简单讲解了一下,Oracle Vector索引以及内建向量EMBEDDING能力。
    老规矩,知道写了些啥。

  • 相关阅读:
    Re46:读论文 DAGNN Towards Deeper Graph Neural Networks
    2022.8.9考试排列变换--1200题解
    springboot如何使用自定义配置文件
    请求方式参数总结
    【RCNN系列】Mask RCNN
    java基本语法总结
    Python asynchat模块-异步套接字处理-服务器程序示例
    c++编写简易版2048小游戏
    构建知识库的核心要义,试试我的工具和方法吧!
    Unity 设置Inspect上问号的跳转链接
  • 原文地址:https://blog.csdn.net/yhw1809/article/details/136183386