Back to Annotated Deep Learning Paper Implementations

ගේට්ටුරේඛීය ඒකක සහ ප්රභේද

docs/si/transformers/glu_variants/experiment.html

latest6.1 KB
Original Source

hometransformersglu_variants

View code on Github

#

ගේට්ටුරේඛීය ඒකක සහ ප්රභේද

මෙයස්වයංක්රීය ප්රතිගාමී සඳහා සරල ට්රාන්ස්ෆෝමර් ආකෘතියක් පුහුණු කරයි.ස්ථාන-නැණවත් පෝෂක ජාලයසඳහා අපි විවිධ ප්රභේද උත්සාහ කරමු. නැවත භාවිතා කළ හැකි සහ වින්යාසගත කළ හැකි අර්ථ දක්වා ඇත configs.py.

16importtorch17fromlabmlimportexperiment18fromlabml.configsimportoption19fromlabml.utils.pytorchimportget\_modules20fromlabml\_helpers.moduleimportModule2122fromlabml\_nn.experiments.nlp\_autoregressionimportNLPAutoRegressionConfigs23fromlabml\_nn.transformersimportEncoder,Generator,TransformerConfigs24fromlabml\_nn.transformers.utilsimportsubsequent\_mask

#

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

27classAutoregressiveModel(Module):

#

32def\_\_init\_\_(self,src\_embed:Module,encoder:Encoder,generator:Generator):33super().\_\_init\_\_()

#

ටෝකන්කාවැද්දීම මොඩියුලය

35self.src\_embed=src\_embed

#

ට්රාන්ස්ෆෝමර්පදනම් කරගත් එන්කෝඩරය

37self.encoder=encoder

#

ඊළඟටෝකන් උත්පාදන ස්තරය; මෙය ඊළඟ ටෝකනයේ පිවිසුම් ලබා දෙයි

40self.generator=generator

#

මෙයපළමු ඇමතුමෙන් ආරම්භ කෙරේ

42self.src\_mask=None

#

44defforward(self,src:torch.Tensor):

#

ට්රාන්ස්ෆෝමරයඅතීත ටෝකන කෙරෙහි පමණක් අවධානය යොමු කළ හැකි වන පරිදි පසුකාලීන වෙස්මුහුණක් සාදන්න.

46ifself.src\_maskisNoneorself.src\_mask.size(0)!=len(src):47self.src\_mask=subsequent\_mask(len(src)).to(src.device)

#

ටෝකනකාවැද්දීම (src ) සහ ට්රාන්ස්ෆෝමරය හරහා එය ක්රියාත්මක කරන්න

49res=self.encoder(self.src\_embed(src),self.src\_mask)

#

ඊළඟටෝකනයේ පිවිසුම් ජනනය කරන්න

51returnself.generator(res),None

#

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

අපිඅත්හදා බැලීම ආරම්භ කරන විට පෙරනිමි වින්යාස කළ හැකි අතර එය අධික ලෙස ධාවනය වනු ඇත

54classConfigs(NLPAutoRegressionConfigs):

#

61transformer:TransformerConfigs62model:AutoregressiveModel

#

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

65@option(Configs.model)66defautoregressive\_model(c:Configs):

#

70m=AutoregressiveModel(c.transformer.src\_embed,c.transformer.encoder,c.transformer.generator)71returnm.to(c.device)

#

අපගේස්වයංක්රීය ප්රතිගාමී ආකෘතිය සඳහා වින්යාසගත කළ හැකි ට්රාන්ස්ෆෝමර් එන්කෝඩරය ආරම්භ කරන්න.

74@option(Configs.transformer)75deftransformer\_c(c:Configs):

#

79tc=TransformerConfigs()80tc.n\_src\_vocab=c.n\_tokens81tc.n\_tgt\_vocab=c.n\_tokens8283returntc

#

86defmain():

#

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

88experiment.create(name="glu\_variants")

#

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

90conf=Configs()

#

වින්යාසයන්පූරණය කරන්න

92experiment.configs(conf,

#

අභිබවායාම සඳහා වින්යාසයන් පිළිබඳ ශබ්දකෝෂයක්

94{'tokenizer':'character',95'prompt\_separator':'',96'prompt':'It is ',97'text':'tiny\_shakespeare',9899'optimizer.optimizer':'Noam',100'optimizer.learning\_rate':1.,101'optimizer.d\_model':256,102103'seq\_len':1024,104'epochs':128,105'batch\_size':6,106'inner\_iterations':10,

#

GLUප්රභේදය, GLU, ද්විලීනියර්, රෙග්ලූ, GEGLU, ස්විග්ලූ වලින් එකක්

වින්යාසගත කළ හැකි FFN ක්රියාත්මක කිරීමේදී මේවා අර්ථ දක්වා ඇත

112'transformer.ffn.glu\_variant':'Bilinear',

#

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

115'transformer.d\_model':256,116'transformer.ffn.d\_ff':1024,117'transformer.n\_heads':8,118'transformer.n\_layers':6})

#

ආකෘතිආරම්භ කිරීම සඳහා මෙය අවශ්ය වේ

121conf.n\_tokens=conf.text.n\_tokens

#

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

124experiment.add\_pytorch\_models(get\_modules(conf))

#

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

127withexperiment.start():

#

TrainValidConfigs.run

129conf.run()130131132if\_\_name\_\_=='\_\_main\_\_':133main()

Trending Research Paperslabml.ai