0


大模型获取embdding

以qwen为例:

要部署并使用 Qwen 模型并输出它的嵌入(embedding),需要经过几个主要步骤:

  1. 安装必要的库
  2. 加载模型
  3. 处理输入数据
  4. 获取嵌入(embedding)

本文将使用 Hugging Face 的

  1. transformers

库来完成这些步骤。这是一个非常流行且功能强大的库,用于处理各种预训练语言模型。

1. 安装必要的库

首先,需要安装一些必要的库,包括

  1. transformers

  1. torch

  1. pip install transformers torch
  1. 封装模型完整代码
  1. # 导入必要的库
  2. from transformers import AutoTokenizer, AutoModel
  3. import torch
  4. class QwenEmbeddingExtractor:
  5. def __init__(self, model_name: str):
  6. """
  7. 初始化模型和分词器
  8. Args:
  9. model_name (str): 预训练的Qwen模型名称
  10. """
  11. self.tokenizer = AutoTokenizer.from_pretrained(model_name)
  12. self.model = AutoModel.from_pretrained(model_name)
  13. def encode_text(self, text: str) -> torch.Tensor:
  14. """
  15. 将输入文本转换为嵌入
  16. Args:
  17. text (str): 输入文本
  18. Returns:
  19. torch.Tensor: 文本对应的嵌入
  20. """
  21. inputs = self.tokenizer(text, return_tensors="pt")
  22. with torch.no_grad():
  23. outputs = self.model(**inputs)
  24. embeddings = outputs.last_hidden_state
  25. return embeddings
  26. def encode_texts(self, texts: list) -> torch.Tensor:
  27. """
  28. 将多个输入文本转换为批量嵌入
  29. Args:
  30. texts (list): 输入文本列表
  31. Returns:
  32. torch.Tensor: 文本列表对应的嵌入
  33. """
  34. inputs = self.tokenizer(texts, return_tensors="pt", padding=True, truncation=True)
  35. with torch.no_grad():
  36. outputs = self.model(**inputs)
  37. embeddings = outputs.last_hidden_state
  38. return embeddings
  39. # 创建 QwenEmbeddingExtractor 实例
  40. model_name = "QwenName/QwenModel" # 替换成实际的模型名称
  41. extractor = QwenEmbeddingExtractor(model_name)
  42. # 单个文本示例
  43. text = "这是一个示例文本,用来生成嵌入。"
  44. embedding = extractor.encode_text(text)
  45. print(embedding)
  46. # 多个文本示例
  47. texts = ["文本1", "文本2", "文本3"]
  48. embeddings = extractor.encode_texts(texts)
  49. print(embeddings)

本文转载自: https://blog.csdn.net/u013069552/article/details/140641217
版权归原作者 frostjsy 所有, 如有侵权,请联系我们删除。

“大模型获取embdding”的评论:

还没有评论