ස්ථාවර විසරණය සඳහා කඩිනම් කාවැද්දීම් ලබා ගැනීමට මෙය භාවිතා කරයි. එය HuggingFace ට්රාන්ස්ෆෝමර් Clip ආකෘතිය භාවිතා කරයි.
14from typing import List
15
16from torch import nn
17from transformers import CLIPTokenizer, CLIPTextModel20class CLIPTextEmbedder(nn.Module):version
යනු ආදර්ශ අනුවාදයයිdevice
උපාංගය වේmax_length
ටෝකනීකෘත විමසුමේ උපරිම දිග වේ25 def __init__(self, version: str = "openai/clip-vit-large-patch14", device="cuda:0", max_length: int = 77):31 super().__init__()ටෝකනයිසර් පටවන්න
33 self.tokenizer = CLIPTokenizer.from_pretrained(version)ක්ලිප් ට්රාන්ස්ෆෝමරය පටවන්න
35 self.transformer = CLIPTextModel.from_pretrained(version).eval()
36
37 self.device = device
38 self.max_length = max_lengthprompts
කාවැද්දීමට විමසීම් ලැයිස්තුව40 def forward(self, prompts: List[str]):විමසීම් ටෝකන්ට් කරන්න
45 batch_encoding = self.tokenizer(prompts, truncation=True, max_length=self.max_length, return_length=True,
46 return_overflowing_tokens=False, padding="max_length", return_tensors="pt")ටෝකන් හැඳුනුම්පත් ලබා ගන්න
48 tokens = batch_encoding["input_ids"].to(self.device)ක්ලිප් කාවැද්දීම් ලබා ගන්න
50 return self.transformer(input_ids=tokens).last_hidden_state