Back to Annotated Deep Learning Paper Implementations

ට්රාන්ස්ෆෝමර් ස්වයංක්රීය ප්රතිගාමී අත්හදා බැලීම

docs/si/transformers/basic/autoregressive_experiment.html

latest7.2 KB
Original Source

hometransformersbasic

View code on Github

#

ට්රාන්ස්ෆෝමර් ස්වයංක්රීය ප්රතිගාමී අත්හදා බැලීම

මෙය හඳුන්වා දී ඇති සරල ට්රාන්ස්ෆෝමරයක් පුහුණු කරයි අවධානය එන්එල්පී ස්වයංක්රීය-ප්රතිගාමී කාර්යයක් සඳහා ඔබට අවශ්ය සියල්ල (කුඩා ෂේක්ස්පියර් දත්ත කට්ටලය සමඟ).

16importtorch17fromtorchimportnn1819fromlabmlimportexperiment20fromlabml.configsimportoption21fromlabml\_nn.experiments.nlp\_autoregressionimportNLPAutoRegressionConfigs22fromlabml\_nn.transformersimportTransformerConfigs,Encoder23fromlabml\_nn.transformers.utilsimportsubsequent\_mask

#

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

26classAutoregressiveTransformer(nn.Module):

#

30def\_\_init\_\_(self,encoder:Encoder,src\_embed:nn.Module,generator:nn.Module):

#

37super().\_\_init\_\_()38self.src\_embed=src\_embed39self.encoder=encoder40self.generator=generator

#

පළමුඇමතුමෙන් වෙස්මුහුණ ආරම්භ කරනු ඇත

43self.mask=None

#

45defforward(self,x:torch.Tensor):

#

වෙස්මුහුණආරම්භ කර නොමැති නම් හෝ වෙස් මුහුණෙහි ප්රමාණය වෙනස් නම් පසුකාලීන වෙස්මුහුණක් සාදන්න

48ifself.maskisNoneorself.mask.size(0)!=len(x):

#

පසුකාලීනවෙස්මුහුණ, අනාගත ටෝකන දැකීමෙන් ටෝකන වසං කරනු ඇත

50self.mask=subsequent\_mask(len(x)).to(x.device)

#

ස්ථානීයකේතන ක්රම සමඟ ටෝකන් කාවැද්දීම් ලබා ගන්න

52x=self.src\_embed(x)

#

ට්රාන්ස්ෆෝමර්එන්කෝඩරය

54x=self.encoder(x,self.mask)

#

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

56x=self.generator(x)

#

ප්රතිලාභප්රති results ල (දෙවන අගය රාජ්ය සඳහා වේ, මන්ද අපගේ පුහුණුකරු RNs සමඟ ද භාවිතා කරයි)

60returnx,None

#

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

මෙයඋරුම වන්නේ NLPAutoRegressionConfigs

63classConfigs(NLPAutoRegressionConfigs):

#

GPTආකෘතිය

72model:AutoregressiveTransformer

#

ට්රාන්ස්ෆෝමර්

74transformer:TransformerConfigs

#

ට්රාන්ස්ෆෝමර්වින්යාසයන්

77@option(Configs.transformer,'Transformer')78def\_transformer\_configs(c:Configs):

#

අපගේ වින්යාසගත කළ හැකි ට්රාන්ස්ෆෝමර් ක්රියාත්මක කිරීම භාවිතා කරමු

85conf=TransformerConfigs()

#

කාවැද්දීම්සහ පිවිසුම් උත්පාදනය සඳහා වචන මාලාව ප්රමාණ සකසන්න

87conf.n\_src\_vocab=c.n\_tokens88conf.n\_tgt\_vocab=c.n\_tokens

#

90conf.d\_model=c.d\_model

#

93returnconf

#

GPTආකෘතිය සාදන්න සහ බර ආරම්භ කරන්න

96@option(Configs.model)97def\_model(c:Configs):

#

101m=AutoregressiveTransformer(c.transformer.encoder,102c.transformer.src\_embed,103c.transformer.generator).to(c.device)104105returnm

#

108defmain():

#

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

110experiment.create(name="transformer")

#

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

112conf=Configs()

#

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

114experiment.configs(conf,{

#

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

116'tokenizer':'character',

#

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

118'prompt\_separator':'',

#

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

120'prompt':'It is ',

#

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

122'text':'tiny\_shakespeare',

#

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

125'seq\_len':512,

#

32වයස අවුරුදු සඳහා දුම්රිය

127'epochs':32,

#

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

129'batch\_size':16,

#

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

132'inner\_iterations':10,

#

ආදර්ශප්රමාණය

135'd\_model':256,136'transformer.n\_heads':16,137'transformer.ffn.d\_ff':1024,

#

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

140'optimizer.optimizer':'Noam',141'optimizer.learning\_rate':1.,142})

#

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

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

#

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

148withexperiment.start():

#

පුහුණුධාවනය

150conf.run()

#

154if\_\_name\_\_=='\_\_main\_\_':155main()

Trending Research Paperslabml.ai