Back to Annotated Deep Learning Paper Implementations

ධූරාවලි ට්රාන්ස්ෆෝමර් වඩාත් කාර්යක්ෂම භාෂා ආකෘති අත්හදා බැලීම

docs/si/transformers/hour_glass/experiment.html

latest7.6 KB
Original Source

hometransformershour_glass

View code on Github

#

ධූරාවලි ට්රාන්ස්ෆෝමර් වඩාත් කාර්යක්ෂම භාෂා ආකෘති අත්හදා බැලීම

මෙය පැය වීදුරුවක්පුහුණු කිරීම සඳහා කරන ලද පයිටෝර්ච් අත්හදා බැලීමකි.

මෙයපදනම් වී ඇත්තේ සරල ට්රාන්ස්ෆෝමර් ස්වයංක්රීය-ප්රතිගාමී එන්එල්පී කාර්යයක් සඳහා පුහුණු ලූප සහ වින්යාසයන්මත ය.

16importmath17fromtypingimportList1819importtorch20fromtorchimportnn2122fromlabmlimportexperiment23fromlabml.configsimportoption24fromlabml\_helpers.moduleimportModule25fromlabml\_nn.experiments.nlp\_autoregressionimportNLPAutoRegressionConfigs26fromlabml\_nn.transformers.hour\_glassimportHourGlass27fromlabml\_nn.transformers.positional\_encodingimportPositionalEncoding

#

ස්වයංප්රතිගාමී භාෂා ආකෘතිය

30classAutoregressiveTransformer(Module):

#

  • n_tokens යනු වචන මාලාවේ ප්රමාණයයි
  • d_model ටෝකන් කාවැද්දීම් වල ප්රමාණයයි
  • dropout අතහැර දැමීමේ සම්භාවිතාව
  • hour_glassපැය ග්ලාස් ආකෘතියයි
35def\_\_init\_\_(self,n\_tokens:int,d\_model:int,dropout:float,hour\_glass:HourGlass):

#

42super().\_\_init\_\_()

#

ටෝකන්කාවැද්දීම්

44self.embedding=nn.Embedding(n\_tokens,d\_model)

#

ස්ථාවර ස්ථානීය කාවැද්දීම්.

📝 නිල කඩදාසි ක්රියාත්මක කිරීම සාපේක්ෂ අවධානය භාවිතා කරයි

50self.pos\_embedding=PositionalEncoding(d\_model,dropout)

#

පැය වීදුරු ආකෘතිය

52self.hour\_glass=hour\_glass

#

අවසානකාවැද්දීම් සාමාන්යකරණය කිරීම

54self.norm=nn.LayerNorm([d\_model])

#

කාවැද්දීමප්රමාණය

56self.d\_model=d\_model

#

පිවිසුම්අනාවැකි පළ කිරීමට අවසාන රේඛීය ස්ථරය

58self.output=nn.Linear(d\_model,n\_tokens)

#

  • x හැඩයේ ටෝකන් දර්ශක සහිත ටෙන්සරයයි [seq_len, batch_size]
60def\_\_call\_\_(self,x:torch.Tensor):

#

කාවැද්දීම්ලබා ගන්න

65x=self.embedding(x)

#

ස්ථානීය කාවැද්දීම් එකතු කරන්න

68ifself.pos\_embeddingisnotNone:69x=self.pos\_embedding(x\*math.sqrt(self.d\_model))

#

Hourglass

72x=self.hour\_glass(x)

#

පිවිසුම්ලබා ගන්න

75output=self.output(self.norm(x))

#

පිවිසුම්ආපසු එවන්න

78returnoutput,None

#

වින්යාසකිරීම්

මෙය සරල ට්රාන්ස්ෆෝමර් ස්වයංක්රීය-ප්රතිගාමී එන්එල්පී කර්තව්යයක් සඳහා පුහුණු ලූප සහ වින්යාසයන්වලින් උරුම වේ.

81classConfigs(NLPAutoRegressionConfigs):

#

ආකෘතිය

89model:AutoregressiveTransformer

#

අවධානයයොමු ප්රධානීන් ගණන

91n\_heads:int=8

#

අතහැරදැමීමේ සම්භාවිතාව

93dropout:float=0.1

#

පෝෂකඉදිරි සැඟවුණු ස්ථරයේ ප්රමාණය

95d\_ff:int=512

#

ටෝකන්කාවැද්දීමේ ප්රමාණය

97d\_model:int=256

#

කෙටිකිරීමේ සාධක

99shortening\_factors:List[int]=[8,4]

#

ආකෘතියසාදන්න

102@option(Configs.model)103def\_model(c:Configs):

#

පැයවීදුරු ආකෘතිය සාදන්න

109hour\_glass=HourGlass(c.n\_heads,c.d\_model,c.dropout,c.d\_ff,c.shortening\_factors)

#

ස්වයංක්රීයප්රතිගාමී දවටනය සාදන්න

111m=AutoregressiveTransformer(c.n\_tokens,c.d\_model,c.dropout,hour\_glass).to(c.device)

#

114returnm

#

117defmain():

#

අත්හදාබැලීම සාදන්න

119experiment.create(name="hour\_glass")

#

වින්යාසසාදන්න

121conf=Configs()

#

වින්යාසයන්අභිබවා යන්න

123experiment.configs(conf,{

#

අක්ෂරමට්ටමේ ටෝකනයිසර් භාවිතා කරන්න

125'tokenizer':'character',

#

කඩිනම්බෙදුම්කරු හිස් ය

127'prompt\_separator':'',

#

නියැදීමසඳහා විමසුමක් ආරම්භ කිරීම

129'prompt':'It is ',

#

කුඩාෂේක්ස්පියර් දත්ත කට්ටලය භාවිතා කරන්න

131'text':'tiny\_shakespeare',

#

කසන්දර්භය ප්රමාණය භාවිතා 256

134'seq\_len':256,

#

128 Epochs සඳහා දුම්රිය

136'epochs':128,

#

කණ්ඩායම්ප්රමාණය 32

138'batch\_size':32,

#

එක් 10 යුගයකට වරක් පුහුණුව සහ වලංගු කිරීම අතර මාරු වන්න

141'inner\_iterations':10,

#

නෝම් ප්රශස්තකරණය භාවිතා කරන්න

144'optimizer.optimizer':'Noam',145'optimizer.learning\_rate':1.,

#

147})

#

ඉතිරිකිරීම සහ පැටවීම සඳහා ආකෘති සකසන්න

150experiment.add\_pytorch\_models({'model':conf.model})

#

අත්හදාබැලීම ආරම්භ කරන්න

153withexperiment.start():

#

පුහුණුධාවනය

155conf.run()

#

159if\_\_name\_\_=='\_\_main\_\_':160main()

Trending Research Paperslabml.ai