Back to Annotated Deep Learning Paper Implementations

ගැඹුරු සම්මතය අත්හදා බැලීම

docs/si/normalization/deep_norm/experiment.html

latest6.7 KB
Original Source

homenormalizationdeep_norm

View code on Github

#

ගැඹුරු සම්මතය අත්හදා බැලීම

13importcopy1415importtorch16importtorch.nnasnn1718fromlabmlimportexperiment19fromlabml.configsimportoption20fromlabml\_helpers.moduleimportModule21fromlabml\_nn.experiments.nlp\_autoregressionimportNLPAutoRegressionConfigs22fromlabml\_nn.normalization.deep\_normimportDeepNormTransformerLayer23fromlabml\_nn.transformersimportMultiHeadAttention24fromlabml\_nn.transformers.feed\_forwardimportFeedForward

#

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

මෙයDeepNorm භාවිතා කරන ස්වයංක්රීය ප්රතිගාමී ට්රාන්ස්ෆෝමර් ආකෘතියකි.

27classAutoregressiveTransformer(Module):

#

  • n_tokens යනු වචන මාලාවේ ටෝකන ගණන
  • d_model කාවැද්දීම ප්රමාණය වේ
  • n_layers ට්රාන්ස්ෆෝමර් ස්ථර ගණන
  • layer ස්තරය වේ. අපි ට්රාන්ෙපෝමර් සඳහා මෙහි n_layers පිටපත් භාවිතා කරමු.
34def\_\_init\_\_(self,n\_tokens:int,d\_model:int,n\_layers:int,layer:DeepNormTransformerLayer):

#

41super().\_\_init\_\_()

#

n_layers ස්ථර සහිත ට්රාන්ස්ෆෝමර්

43self.transformer=nn.Sequential(\*[copy.deepcopy(layer)for\_inrange(n\_layers)])

#

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

46self.emb=nn.Embedding(n\_tokens,d\_model)

#

කියවීමේස්ථරය

48self.readout=nn.Linear(d\_model,n\_tokens)

#

  • x හැඩයේ ආදාන ටෝකන වේ [seq_len, batch_size]
50defforward(self,x:torch.Tensor):

#

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

55x=self.emb(x)

#

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

57x=self.transformer(x)

#

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

59x=self.readout(x)

#

ආපසුප්රතිඵල

62returnx,None

#

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

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

65classConfigs(NLPAutoRegressionConfigs):

#

ආකෘතිය

74model:AutoregressiveTransformer

#

ස්ථරගණන

77n\_layers:int=32

#

α සහ ගැඹුරු සම්මතය β සඳහා

80deep\_norm\_alpha:float81deep\_norm\_beta:float

#

අවධානයයොමු කරන හිස් ගණන

84n\_heads:int=4

#

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

86d\_model:int=64

#

එක්එක් අවධානය හිස ප්රමාණය

88d\_k:int=16

#

ගණනයකරන්න α

α=(2M)41​

91@option(Configs.deep\_norm\_alpha)92def\_deep\_norm\_alpha(c:Configs):

#

98return(2.\*c.n\_layers)\*\*(1./4.)

#

ගණනයකරන්න β

β=(8M)−41​

101@option(Configs.deep\_norm\_beta)102def\_deep\_norm\_beta(c:Configs):

#

108return(8.\*c.n\_layers)\*\*-(1./4.)

#

ආකෘතියආරම්භ කරන්න

111@option(Configs.model)112def\_model(c:Configs):

#

116m=AutoregressiveTransformer(c.n\_tokens,c.d\_model,c.n\_layers,117DeepNormTransformerLayer(d\_model=c.d\_model,118deep\_norm\_alpha=c.deep\_norm\_alpha,119deep\_norm\_beta=c.deep\_norm\_beta,120feed\_forward=FeedForward(d\_model=c.d\_model,121d\_ff=c.d\_model\*4),122self\_attn=MultiHeadAttention(c.n\_heads,c.d\_model,123dropout\_prob=0.0)))124125returnm.to(c.device)

#

අත්හදාබැලීම නිර්මාණය කර ක්රියාත්මක කරන්න

128defmain():

#

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

133experiment.create(name="deep\_norm",writers={'screen','web\_api'})

#

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

135conf=Configs()

#

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

137experiment.configs(conf,{

#

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

139'tokenizer':'character',

#

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

141'prompt\_separator':'',

#

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

143'prompt':'It is ',

#

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

145'text':'tiny\_shakespeare',

#

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

148'seq\_len':256,

#

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

150'epochs':32,

#

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

152'batch\_size':16,

#

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

154'inner\_iterations':10,

#

ස්ථරගණන

157'n\_layers':50,

#

උනුසුම්වීමක් නොමැති ආදම් ප්රශස්තකරණය

161'optimizer.optimizer':'Adam',162'optimizer.learning\_rate':1.25e-4,163})

#

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

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

#

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

169withexperiment.start():

#

පුහුණුධාවනය

171conf.run()

#

175if\_\_name\_\_=='\_\_main\_\_':176main()

Trending Research Paperslabml.ai