මෙය ප්රයිමර් EZ ට්රාන්ස්ෆෝමරයක්පුහුණු කිරීම සඳහා කරන ලද පයිටෝර්ච් අත්හදා බැලීමකි.
මෙයඅපගේ වැනිලා ට්රාන්ස්ෆෝමර් අත්හදා බැලීමමත පදනම් වේ. අපි එකම අත්හදා බැලීම භාවිතා කරන අතර ප්රයිමර් EZ වෙනස් කිරීම් එකතු කරමු.
15from labml import experiment
16from labml.configs import option
17from labml_nn.transformers import TransformerConfigs
18from labml_nn.transformers.basic.autoregressive_experiment import Configs
19from labml_nn.transformers.configs import FeedForwardConfigs
20from labml_nn.transformers.primer_ez import SquaredReLUවින්යාසගත කළ හැකි ආහාර ඉදිරි මොඩියුලයට කොටු කළ හැකි RelU විකල්පය එක් කරන්න.
23@option(FeedForwardConfigs.activation, 'SquaredReLU')
24def _squared_relu():30 return SquaredReLU()වින්යාසගත කළ හැකි ට්රාන්ස්ෆෝමරයට බහු-DCONV-හිස අවධානය යොමු කිරීමේ විකල්පය එක් කරන්න
33@option(TransformerConfigs.encoder_attn, 'MultiDConvHeadAttention')
34def _d_conv_mha(c: TransformerConfigs):40 from labml_nn.transformers.primer_ez import MultiDConvHeadAttention
41 return MultiDConvHeadAttention(c.n_heads, c.d_model, dropout_prob=c.dropout)වින්යාසගත කළ හැකි ට්රාන්ස්ෆෝමරයට බහු ගැඹුරු-නැණවත් හවුල් කොන්වී ප්රධාන අවධානය විකල්පය එක් කරන්න
📝 මෙය අප උත්සාහ කළ විචලනයකි
44@option(TransformerConfigs.encoder_attn, 'MultiDSharedConvHeadAttention')
45def _d_shared_conv_mha(c: TransformerConfigs):53 from labml_nn.transformers.primer_ez.variations import MultiDSharedConvHeadAttention
54 return MultiDSharedConvHeadAttention(c.n_heads, c.d_model, dropout_prob=c.dropout)වින්යාසගත කළ හැකි ට්රාන්ස්ෆෝමරයට බහු ගැඹුරු-නැණවත් එක් ශීර්ෂයක් Conv හිස අවධානය යොමු කිරීමේ විකල්පය එක් කරන්න
📝 මෙය අප උත්සාහ කළ විචලනයකි
57@option(TransformerConfigs.encoder_attn, 'MultiDPHConvHeadAttention')
58def _d_per_head_conv_mha(c: TransformerConfigs):66 from labml_nn.transformers.primer_ez.variations import MultiDPHConvHeadAttention
67 return MultiDPHConvHeadAttention(c.n_heads, c.d_model, dropout_prob=c.dropout)70def main():අත්හදාබැලීම සාදන්න
72 experiment.create(name="primer_ez")වින්යාසසාදන්න
74 conf = Configs()වින්යාසයන්අභිබවා යන්න
76 experiment.configs(conf, {අක්ෂරමට්ටමේ ටෝකනයිසර් භාවිතා කරන්න
78 'tokenizer': 'character',කඩිනම්බෙදුම්කරු හිස් ය
80 'prompt_separator': '',නියැදීමසඳහා විමසුමක් ආරම්භ කිරීම
82 'prompt': 'It is ',කුඩාෂේක්ස්පියර් දත්ත කට්ටලය භාවිතා කරන්න
84 'text': 'tiny_shakespeare',කසන්දර්භය ප්රමාණය භාවිතා
87 'seq_len': 256,Epochs සඳහා දුම්රිය
89 'epochs': 128,කණ්ඩායම්ප්රමාණය
91 'batch_size': 32,එක් යුගයකට වරක් පුහුණුව සහ වලංගු කිරීම අතර මාරු වන්න
94 'inner_iterations': 10,ආදර්ශප්රමාණය
97 'd_model': 512,
98 'transformer.ffn.d_ff': 2048,ආදම්ප්රශස්තකරණය භාවිතා
101 'optimizer.optimizer': 'Adam',
102 'optimizer.learning_rate': 2.5e-4,107 'transformer.ffn.activation': 'SquaredReLU',⭐️ආකේතකය අවධානය සඳහා බහු-Dconv-හිස අවධානය භාවිතා කරන්න.
මුල්බහු-හිස අවධානය mha
සඳහා මෙය ප්රතිස්ථාපනය කරන්න.
112 'transformer.encoder_attn': 'MultiDConvHeadAttention',
113 })ඉතිරිකිරීම සහ පැටවීම සඳහා ආකෘති සකසන්න
116 experiment.add_pytorch_models({'model': conf.model})අත්හදාබැලීම ආරම්භ කරන්න
119 with experiment.start():පුහුණුධාවනය
121 conf.run()125if __name__ == '__main__':
126 main()