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

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

View Run

14from labml import experiment
15from labml.configs import calculate
16from labml_nn.transformers import TransformerConfigs
17from labml_nn.transformers.rope.experiment import Configs as RoPEConfigs

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

22class Configs(RoPEConfigs):  # , ArithmeticAutoregression):
23    pass
26def _rotary_value_pe_mha(c: TransformerConfigs):
27    from labml_nn.transformers.rope.value_pe import RotaryValuePEMultiHeadAttention
28    return RotaryValuePEMultiHeadAttention(c.n_heads, c.d_model, 1., 1.)

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

32calculate(TransformerConfigs.encoder_attn, 'rotary_value', _rotary_value_pe_mha)
33calculate(TransformerConfigs.decoder_attn, 'rotary_value', _rotary_value_pe_mha)
34calculate(TransformerConfigs.decoder_mem_attn, 'rotary_value', _rotary_value_pe_mha)
37def main():

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

39    experiment.create(name="rotary_shakespeare", comment="rotary value", writers={'screen', 'labml'})

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

41    conf = Configs()

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

43    experiment.configs(conf, {

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

45        'transformer.src_embed': 'no_pos',
46        'transformer.tgt_embed': 'no_pos',

කඹයසමග ආකේත

49        'transformer.encoder_attn': 'rotary_value',

'ට්රාන්ස්ෆෝමර්.encoder_attn':' භ්රමක ',

53        'model': 'rotary_pe_transformer',

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

56        'tokenizer': 'character',

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

58        'prompt_separator': '',

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

60        'prompt': 'It is ',

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

62        'text': 'tiny_shakespeare',

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

65        'seq_len': 512,

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

67        'epochs': 24,

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

69        'batch_size': 16,

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

72        'inner_iterations': 4,

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

75        'd_model': 128,
76        'transformer.ffn.d_ff': 512,
77        'transformer.n_heads': 4,
78        'transformer.dropout': 0.0,
81        'optimizer.optimizer': 'Adam',
82        'optimizer.learning_rate': 2.5e-4,
83
84        'dataloader_shuffle_with_replacement': True
85    })

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

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

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

91    with experiment.start():

පුහුණුධාවනය

93        conf.run()

97if __name__ == '__main__':
98    main()