docs/si/transformers/aft/experiment.html
මෙය AFT ආකෘතියක්පුහුණු කිරීම සඳහා කරන ලද PyTorch අත්හදා බැලීමකි.
මෙය ස්වයංක්රීය ප්රතිගාමී එන්එල්පී කාර්යය සඳහා සාමාන්ය පුහුණු ලූප සහ වින්යාසයන්මත පදනම් වේ.
16importtorch1718fromlabmlimportexperiment19fromlabml.configsimportoption20fromlabml\_helpers.moduleimportModule21fromlabml\_nn.experiments.nlp\_autoregressionimportNLPAutoRegressionConfigs22fromlabml\_nn.transformersimportTransformerConfigs,Encoder23fromlabml\_nn.transformers.utilsimportsubsequent\_mask
මෙයටෝකන් කාවැද්දීමේ ස්ථරයක්, ට්රාන්ස්ෆෝමර් එන්කෝඩරයක් සහ ටෝකන් පිවිසුම් ලබා දෙන අවසාන රේඛීය ස්ථරයකින් සමන්විත වේ.
26classAutoregressiveTransformer(Module):
encoder ට්රාන්ස්ෆෝමර් එන්කෝඩරයsrc_embed යනු ටෝකන් කාවැද්දීමේ මොඩියුලය (ස්ථානීය කේතීකරණ සමඟ)generator යනු පිවිසුම් ලබා දෙන අවසාන පූර්ණ සම්බන්ධිත ස්ථරයයි .34def\_\_init\_\_(self,encoder:Encoder,src\_embed:Module,generator:Module):
41super().\_\_init\_\_()42self.src\_embed=src\_embed43self.encoder=encoder44self.generator=generator
පළමුඇමතුමෙන් වෙස්මුහුණ ආරම්භ කරනු ඇත
47self.mask=None
49defforward(self,x:torch.Tensor):
වෙස්මුහුණආරම්භ කර නොමැති නම් හෝ වෙස් මුහුණෙහි ප්රමාණය වෙනස් නම් පසුකාලීන වෙස්මුහුණක් සාදන්න
52ifself.maskisNoneorself.mask.size(0)!=len(x):
පසුකාලීනවෙස්මුහුණ, අනාගත ටෝකන දැකීමෙන් ටෝකන වසං කරනු ඇත
54self.mask=subsequent\_mask(len(x)).to(x.device)
ස්ථානීයකේතන ක්රම සමඟ ටෝකන් කාවැද්දීම් ලබා ගන්න
57x=self.src\_embed(x)
ට්රාන්ස්ෆෝමර්එන්කෝඩරය
59x=self.encoder(x,self.mask)
පිවිසුම්ලබා ගන්න
61x=self.generator(x)
ප්රතිලාභප්රති results ල (දෙවන අගය රාජ්ය සඳහා වේ, මන්ද අපගේ පුහුණුකරු RNs සමඟ ද භාවිතා කරයි)
65returnx,None
මෙයඋරුම වන්නේ NLPAutoRegressionConfigs
68classConfigs(NLPAutoRegressionConfigs):
GPTආකෘතිය
77model:AutoregressiveTransformer
ට්රාන්ස්ෆෝමර්
79transformer:TransformerConfigs8081local\_window\_size:int=32
84@option(Configs.transformer,'Transformer')85def\_transformer\_configs(c:Configs):
අපගේ වින්යාසගත කළ හැකි ට්රාන්ස්ෆෝමර් ක්රියාත්මක කිරීම භාවිතා කරමු
92conf=TransformerConfigs()
කාවැද්දීම්සහ පිවිසුම් උත්පාදනය සඳහා වචන මාලාව ප්රමාණ සකසන්න
94conf.n\_src\_vocab=c.n\_tokens95conf.n\_tgt\_vocab=c.n\_tokens
කාවැද්දීමප්රමාණය සකසන්න
97conf.d\_model=c.d\_model
AFT දේශීය මොඩියුලයක් සමඟ ස්වයං අවධානය ප්රතිස්ථාපනය කරන්න
99fromlabml\_nn.transformers.aftimportAFTLocal100conf.encoder\_attn=AFTLocal(c.d\_model,c.seq\_len,c.local\_window\_size)
103returnconf
ස්වයංක්රීයප්රතිගාමී ආකෘතියක් සාදන්න
106@option(Configs.model)107def\_model(c:Configs):
111m=AutoregressiveTransformer(c.transformer.encoder,112c.transformer.src\_embed,113c.transformer.generator).to(c.device)114115returnm
118defmain():
අත්හදාබැලීම සාදන්න
120experiment.create(name="aft")
වින්යාසසාදන්න
122conf=Configs()
වින්යාසයන්අභිබවා යන්න
124experiment.configs(conf,{
අක්ෂරමට්ටමේ ටෝකනයිසර් භාවිතා කරන්න
126'tokenizer':'character',
කඩිනම්බෙදුම්කරු හිස් ය
128'prompt\_separator':'',
නියැදීමසඳහා විමසුමක් ආරම්භ කිරීම
130'prompt':'It is ',
කුඩාෂේක්ස්පියර් දත්ත කට්ටලය භාවිතා කරන්න
132'text':'tiny\_shakespeare',
කසන්දර්භය ප්රමාණය භාවිතා 128
135'seq\_len':256,
32 Epochs සඳහා දුම්රිය
137'epochs':128,
කණ්ඩායම්ප්රමාණය 128
139'batch\_size':32,
එක් 10 යුගයකට වරක් පුහුණුව සහ වලංගු කිරීම අතර මාරු වන්න
142'inner\_iterations':10,
කාවැද්දීමප්රමාණය
145'd\_model':128,
FFNසැඟවුණු මානයන් ප්රමාණය
147'transformer.ffn.d\_ff':256,
ප්රශස්තකරණය
150'optimizer.optimizer':'Noam',151'optimizer.learning\_rate':1.,152})
ඉතිරිකිරීම සහ පැටවීම සඳහා ආකෘති සකසන්න
155experiment.add\_pytorch\_models({'model':conf.model})
අත්හදාබැලීම ආරම්භ කරන්න
158withexperiment.start():
පුහුණුධාවනය
160conf.run()
164if\_\_name\_\_=='\_\_main\_\_':165main()