docs/si/transformers/feedback/experiment.html
මෙයස්වයංක්රීයව ප්රතිගාමී කිරීම සඳහා ප්රතිපෝෂණ ට්රාන්ස්ෆෝමර් ආකෘතියක් පුහුණු කරයි. යතුරු සහ අගයන් පූර්ව ගණනය කරනු ලබන මුල් ප්රතිපෝෂණ ට්රාන්ස්ෆෝමරය හෝ නව අනුවාදය ඔබට තෝරා ගත හැකිය.
කුඩාෂේක්ස්පියර් දත්ත කට්ටලය පිළිබඳ ප්රතිපෝෂණ ට්රාන්ස්ෆෝමරයක් පුහුණු කිරීම සඳහා කොලබ් සටහන් පොතක් මෙන්න.
19importtorch20fromtorchimportnn2122fromlabmlimportexperiment23fromlabml.configsimportoption24fromlabml.utils.pytorchimportget\_modules25fromlabml\_helpers.moduleimportModule2627fromlabml\_nn.experiments.nlp\_autoregressionimportNLPAutoRegressionConfigs28fromlabml\_nn.transformersimportEncoder,Generator,TransformerConfigs29fromlabml\_nn.transformers.utilsimportsubsequent\_mask
32classAutoregressiveModel(Module):
37def\_\_init\_\_(self,n\_vocab:int,d\_model:int,transformer:Module):38super().\_\_init\_\_()
ටෝකන්කාවැද්දීම මොඩියුලය
40self.src\_embed=nn.Embedding(n\_vocab,d\_model)41self.transformer=transformer42self.generator=nn.Linear(d\_model,n\_vocab)
44defforward(self,x:torch.Tensor):
ටෝකනකාවැද්දීම
46x=self.src\_embed(x)
ට්රාන්ස්ෆෝමරයහරහා එය ධාවනය කරන්න
48res=self.transformer(x)
ඊළඟටෝකනයේ පිවිසුම් ජනනය කරන්න
50returnself.generator(res),None
අපිඅත්හදා බැලීම ආරම්භ කරන විට පෙරනිමි වින්යාස කළ හැකි අතර එය අධික ලෙස ධාවනය වනු ඇත
53classConfigs(NLPAutoRegressionConfigs):
60model:AutoregressiveModel6162d\_model:int=51263heads:int=864dropout:float=0.065d\_ff:int=204866n\_layers:int=6
මුල් ප්රතිපෝෂණ ට්රාන්ස්ෆෝමරයසාදන්න.
69@option(Configs.model)70deffeedback\_transformer(c:Configs):
74fromlabml\_nn.transformers.feedbackimportFeedbackTransformer,FeedbackTransformerLayer,\75FeedbackAttention,FeedForward7677returnAutoregressiveModel(78c.n\_tokens,c.d\_model,79FeedbackTransformer(80FeedbackTransformerLayer(d\_model=c.d\_model,81attn=FeedbackAttention(c.heads,c.d\_model,c.dropout),82feed\_forward=FeedForward(c.d\_model,c.d\_ff,c.dropout),83dropout\_prob=c.dropout),84c.n\_layers)).to(c.device)
පූර්වගණනය කළ යතුරු සහ අගයන් සමඟ යාවත්කාලීන කරන ලද ප්රතිපෝෂණ ට්රාන්ස්ෆෝමරයක්සාදන්න.
87@option(Configs.model)88deffeedback\_transformer\_kv(c:Configs):
92fromlabml\_nn.transformers.feedbackimportFeedbackTransformerKV,FeedbackTransformerLayer,\93FeedbackAttention,FeedForward9495returnAutoregressiveModel(96c.n\_tokens,c.d\_model,97FeedbackTransformerKV(98FeedbackTransformerLayer(d\_model=c.d\_model,99attn=FeedbackAttention(c.heads,c.d\_model,c.dropout,100is\_kv\_precomputed=True),101feed\_forward=FeedForward(c.d\_model,c.d\_ff,c.dropout),102dropout\_prob=c.dropout),103c.n\_layers,c.d\_model,c.heads)).to(c.device)
106defmain():
අත්හදාබැලීම සාදන්න
108experiment.create(name="feedback\_transformer")
වින්යාසසාදන්න
110conf=Configs()
වින්යාසයන්පූරණය කරන්න
112experiment.configs(conf,
අභිබවායාම සඳහා වින්යාසයන් පිළිබඳ ශබ්දකෝෂයක්
114{'tokenizer':'character',115'text':'tiny\_shakespeare',116'optimizer.learning\_rate':1.0,117'optimizer.optimizer':'Noam',118'prompt':'It is',119'prompt\_separator':'',
මුල්ප්රතිපෝෂණ ට්රාන්ස්ෆෝමර් feedback_transformer සඳහා භාවිතා කරන්න
122'model':'feedback\_transformer\_kv',123124'train\_loader':'shuffled\_train\_loader',125'valid\_loader':'shuffled\_valid\_loader',126127'seq\_len':128,128'epochs':128,129'batch\_size':64,130'inner\_iterations':25})
ඉතිරිකිරීම සහ පැටවීම සඳහා ආකෘති සකසන්න
133experiment.add\_pytorch\_models(get\_modules(conf))
අත්හදාබැලීම ආරම්භ කරන්න
136withexperiment.start():
පුහුණුලූපය ධාවනය කරන්න
138conf.run()139140141if\_\_name\_\_=='\_\_main\_\_':142main()