专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Oracle向量数据库中导入Embedding模型

ins518 2024-10-23 13:06:23 技术文章 11 ℃ 0 评论

向量化操作通常的做法是外部程序调用Embedding模型生成向量数据后,再将向量数据更新的数据库中。使用Oracle向量数据库也是一样,可以用这种方式。

Oracle数据库提供了另外一种方式:库内向量化。

库内向量化首先需要将Embedding模型导入到数据库中,Oracle支持的Embedding模型格式是ONNX标准。可以直接下载ONNX格式的模型,或者如果下载的模型不是ONNX格式,有很多的工具/方法可以将之转化为ONNX格式。

首先将模型上传到指定目录,然后创建目录对象:

-- grant create any directory to user.
create or replace directory MODELS_DIR as '/u01/hysun/models';

然后,从指定目录加载模型:

BEGIN
    DBMS_VECTOR.LOAD_ONNX_MODEL(
        directory => 'MODELS_DIR',
        file_name => 'bge-base-zh-v1.5.onnx',
        model_name => 'mydoc_model'
    );
END;
/
-- 上述加载方式等价于下面方式:
BEGIN
    DBMS_VECTOR.LOAD_ONNX_MODEL(
       directory => 'MODELS_DIR',
       file_name => 'bge-base-zh-v1.5.onnx',
       model_name => 'mydoc_model',
       metadata   => JSON('{"function" : "embedding", "embeddingOutput" : "embedding", "input":{"input": ["DATA"]}}')
   );
END;
/

最后,用SQL测试一下向量化过程:

SELECT vector_embedding(mydoc_model using '把这句话向量化' as data);

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表