Back to Annotated Deep Learning Paper Implementations

ජීපීටී-නියෝක්ස්සඳහා පෙළ දත්ත කට්ටලය

docs/si/neox/utils/text_dataset.html

latest4.6 KB
Original Source

homeneoxutils

View code on Github

#

ජීපීටී-නියෝක්ස්සඳහා පෙළ දත්ත කට්ටලය

10frompathlibimportPurePath,Path11fromtypingimportOptional,List1213importtorch14importtorch.utils.data15fromlabmlimportlab16fromlabmlimportmonit17fromlabml.loggerimportinspect18fromlabml.utils.downloadimportdownload\_file1920fromlabml\_nn.neox.tokenizerimportget\_tokenizer

#

පෙළගොනුව පූරණය කරන්න

  • path පෙළ ගොනුවේ පිහිටීම
  • url ගොනුව බාගත කිරීම සඳහා URL එක
  • filter_subset යනු පෙරීමට අක්ෂර ගණනයයි. විශාල දත්ත කට්ටල උත්සාහ කිරීමේදී පරීක්ෂා කිරීමේදී මෙය භාවිතා කරන්න

පෙළඅන්තර්ගතය_නැවත ලබා දෙයි_

23defload\_text(path:PurePath,url:Optional[str]=None,\*,filter\_subset:Optional[int]=None):

#

34path=Path(path)

#

එයනොමැති නම් බාගන්න

37ifnotpath.exists():38ifnoturl:39raiseFileNotFoundError(str(path))40else:41download\_file(url,path)4243withmonit.section("Load data"):

#

දත්තපූරණය කරන්න

45withopen(str(path),'r')asf:46text=f.read()

#

පෙරහන්

48iffilter\_subset:49text=text[:filter\_subset]

#

52returntext

#

හොඳින්සුසර කිරීම සඳහා දත්ත කට්ටලය GPT-නියෝක්ස්

මෙයඉතා විශාල දත්ත කාණ්ඩ වලට ප්රශස්තිකරණය කර නොමැත.

55classNeoXDataset(torch.utils.data.Dataset):

#

  • tokens ටෝකන් හැඳුනුම්පත් ලැයිස්තුවයි
  • seq_len තනි පුහුණු නියැදියක අනුක්රමය දිග වේ
62def\_\_init\_\_(self,tokens:List[int],seq\_len:int):

#

68self.seq\_len=seq\_len

#

සාම්පලගණන

70n\_samples=len(tokens)//seq\_len71self.n\_samples=n\_samples

#

ට්රන්කේට්කරන්න

73tokens=tokens[:n\_samples\*seq\_len+1]

#

පයිටෝච්ටෙන්සරයක් සාදන්න

75self.tokens=torch.tensor(tokens)

#

77def\_\_len\_\_(self):78returnself.n\_samples

#

නියැදියක්ලබා ගන්න

  • idx නියැදියේ දර්ශකය වේ

ආදානයසහ ඉලක්කය_ආපසු ලබා දෙයි_

80def\_\_getitem\_\_(self,idx:int):

#

87offset=idx\*self.seq\_len88returnself.tokens[offset:offset+self.seq\_len],self.tokens[offset+1:offset+1+self.seq\_len]899091DATASETS={92'tiny\_shakespeare':{93'file':'tiny\_shakespeare.txt',94'url':'https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt'95}96}

#

දත්තකට්ටලය පූරණය කරන්න

  • seq_len තනි පුහුණු නියැදියක අනුක්රමය දිග වේ
  • dataset_name දත්ත සමුදාය නම

දත්තසමුදාය_ආපසු ලබා දෙයි_

99defget\_training\_data(seq\_len:int=32,dataset\_name:str='tiny\_shakespeare',truncate:int=-1):

#

108ds=DATASETS[dataset\_name]

#

අන්තර්ගතයපූරණය කරන්න

110text=load\_text(lab.get\_data\_path()/ds['file'],ds['url'])

#

ටෝකනයිස්කරන්න

112tokenizer=get\_tokenizer()113tokens=tokenizer.encode\_batch([text])[0]114115iftruncate\>0:116token\_ids=tokens.ids[:truncate\*seq\_len]117else:118token\_ids=tokens.ids

#

121returnNeoXDataset(token\_ids,seq\_len)

#

124def\_test():125dataset=get\_training\_data()126127inspect(tokens=len(dataset.tokens))

#

131if\_\_name\_\_=='\_\_main\_\_':132\_test()

Trending Research Paperslabml.ai