රොටරිස්ථානීය කාවැද්දීම් (කඹය) අත්හදා බැලීම

මෙයරොටරි ස්ථානීය කාවැද්දීම් (කඹය) සමඟ ට්රාන්ස්ෆෝමර් ආකෘතියක් පුහුණු කිරීම සඳහා කරන ලද පයිටෝච් අත්හදා බැලීමකි.

View Run

14from labml import experiment
15from labml.configs import option, calculate
16from labml_nn.transformers import TransformerConfigs
17from labml_nn.transformers.basic.autoregressive_experiment import AutoregressiveTransformer, Configs

රොටරිPE අවධානය

21def _rotary_pe_mha(c: TransformerConfigs):
22    from labml_nn.transformers.rope import RotaryPEMultiHeadAttention
23    return RotaryPEMultiHeadAttention(c.n_heads, c.d_model, 1.)

වින්යාසවිකල්ප

27calculate(TransformerConfigs.encoder_attn, 'rotary', _rotary_pe_mha)
28calculate(TransformerConfigs.decoder_attn, 'rotary', _rotary_pe_mha)
29calculate(TransformerConfigs.decoder_mem_attn, 'rotary', _rotary_pe_mha)

ස්වයංක්රීයප්රතිගාමී ආකෘතියක් සාදන්න සහ බර ආරම්භ කරන්න

32@option(Configs.model, 'rotary_pe_transformer')
33def _model(c: Configs):
37    m = AutoregressiveTransformer(c.transformer.encoder,
38                                  c.transformer.src_embed,
39                                  c.transformer.generator).to(c.device)
40
41    return m
44def main():

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

46    experiment.create(name="rotary_pe_transformer", writers={'screen'})

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

48    conf = Configs()

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

50    experiment.configs(conf, {

ස්ථාවරස්ථානීය කාවැද්දීම් නොමැත

52        'transformer.src_embed': 'no_pos',
53        'transformer.tgt_embed': 'no_pos',

කඹයසමග ආකේත

56        'transformer.encoder_attn': 'rotary',

59        'model': 'rotary_pe_transformer',

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

62        'tokenizer': 'character',

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

64        'prompt_separator': '',

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

66        'prompt': 'It is ',

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

68        'text': 'tiny_shakespeare',

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

71        'seq_len': 512,

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

73        'epochs': 32,

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

75        'batch_size': 4,

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

78        'inner_iterations': 10,

ආදර්ශප්රමාණය

81        'd_model': 128,
82        'transformer.ffn.d_ff': 512,
83        'transformer.n_heads': 16,
84        'transformer.dropout': 0.0,

නෝම් ප්රශස්තකරණය භාවිතා කරන්න

87        'optimizer.optimizer': 'Noam',
88        'optimizer.learning_rate': 1.,
89
90        'dataloader_shuffle_with_replacement': True
91    })

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

94    experiment.add_pytorch_models({'model': conf.model})

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

97    with experiment.start():

පුහුණුධාවනය

99        conf.run()

103if __name__ == '__main__':
104    main()