ක්ලිප් පෙළ කාවැද්දන්නා

ස්ථාවර විසරණය සඳහා කඩිනම් කාවැද්දීම් ලබා ගැනීමට මෙය භාවිතා කරයි. එය HuggingFace ට්රාන්ස්ෆෝමර් Clip ආකෘතිය භාවිතා කරයි.

14from typing import List
15
16from torch import nn
17from transformers import CLIPTokenizer, CLIPTextModel

ක්ලිප් පෙළ කාවැද්දන්නා

20class 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_length
  • prompts කාවැද්දීමට විමසීම් ලැයිස්තුව
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