ModelScope这个如果要单独生成句子向量应该如何调用呢?

ModelScope这个如果要单独生成句子向量应该如何调用呢?
af436d61fe502d08a5ed554c958ec1e2.png

展开
收起
青城山下庄文杰 2023-08-12 10:07:45 116 分享 版权
2 条回答
写回答
取消 提交回答
  • 可以参考一下模型页面给出的参考代码e014b15020b382364cd4278eda49042e.png只传入source_sentence,不传sentences_to_compare就可以-此回答整理自钉群“魔搭ModelScope开发者联盟群 ①”

    2023-08-15 08:22:55
    赞同 展开评论
  • 北京阿里云ACE会长

    如果要使用ModelScope单独生成句子的向量表示,可以这样做:

    初始化ModelScope实例,指定要使用的模型:
    python
    Copy
    from transformers import ModelScope

    scope = ModelScope(model="bert-base-uncased")
    使用scope.encode()方法生成句子向量:
    python
    Copy
    sentence = "This is a test sentence"

    vector = scope.encode(sentence)
    encode方法会返回该句子在最后一层隐藏状态的向量表示:
    Copy
    vector.shape

    (1, 768) 对应BERT基模型最后层768维向量

    可以对多个句子进行批量编码:
    python
    Copy
    sentences = ["sentence 1", "sentence 2", "sentence 3"]

    vectors = scope.encode(sentences)

    vectors.shape

    (3, 768)

    也可以指定返回其他层的向量:
    python
    Copy
    vector = scope.encode(sentence, layer=-2) # 返回倒数第二层
    编码完成后可以根据需要进行后续处理,比如计算句子相似度等。

    2023-08-13 16:42:05
    赞同 展开评论

包含图像分类、图像生成、人体人脸识别、动作识别、目标分割、视频生成、卡通画、视觉评价、三维视觉等多个领域

热门讨论

热门文章

还有其他疑问?
咨询AI助理