ප්රයිමර් EZ අත්හදා බැලීම

මෙය ප්රයිමර් 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
23@option(FeedForwardConfigs.activation, 'SquaredReLU')
24def _squared_relu():
30    return SquaredReLU()
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)
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,

⭐️භාවිත ආහාර ඉදිරියට ජාලය තුළ RelU සක්රිය වර්ග .

මෙයප්රතිස්ථාපනය ReLU කරන්න .

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()