在Snowflake:如何从UDF访问内部阶段的预训练模型,语法困境



从UDF引用暂存zip文件的语法是什么?具体来说,我在Snowpark中创建了UDF,它需要加载s-bert sentence_transformers预训练的模型(我下载了模型,压缩了它,并将其上传到内部阶段(。

";句子转换器;方法(见下面的代码行(采用一个参数,该参数可以是模型的名称——在这种情况下,预先训练的模型将从web上下载;或者它可以采用一个目录路径,指向包含已经下载的预训练模型文件的文件夹。

在Snowflake中,使用UDF从Web下载文件不是一个选项
那么,内部暂存文件的目录路径是什么?我可以将其用作PenceTransformer方法的参数,以便它可以访问已经下载的zip模型"stagename/filename.zip";不起作用。

@udf(....)
def create_embedding()..:
....
model = SentenceTransformer('all-MiniLM-L6-v2')   #THIS IS THE LINE IN THE QUESTION
....
....

UDF在创建特定文件时需要指定特定文件(目前(:

  • https://docs.snowflake.com/en/developer-guide/udf/python/udf-python-creating.html#loading-从舞台到蟒蛇的文件

检查文档中的示例,该示例使用importssnowflake_import_directoryopen(import_dir + 'file.txt'):

create or replace function my_udf()
returns string
language python
runtime_version=3.8
imports=('@my_stage/file.txt')
handler='compute'
as
$$
import sys
IMPORT_DIRECTORY_NAME = "snowflake_import_directory"
import_dir = sys._xoptions[IMPORT_DIRECTORY_NAME]
def compute():
with open(import_dir + 'file.txt', 'r') as file:
return file.read()
$$;

相关内容

  • 没有找到相关文章

最新更新