xref: /aosp_15_r20/external/executorch/examples/cadence/models/babyllama.py (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates.
2*523fa7a6SAndroid Build Coastguard Worker# All rights reserved.
3*523fa7a6SAndroid Build Coastguard Worker#
4*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the
5*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree.
6*523fa7a6SAndroid Build Coastguard Worker
7*523fa7a6SAndroid Build Coastguard Worker# Example script for exporting simple models to flatbuffer
8*523fa7a6SAndroid Build Coastguard Worker
9*523fa7a6SAndroid Build Coastguard Workerimport logging
10*523fa7a6SAndroid Build Coastguard Worker
11*523fa7a6SAndroid Build Coastguard Workerfrom executorch.backends.cadence.aot.ops_registrations import *  # noqa
12*523fa7a6SAndroid Build Coastguard Worker
13*523fa7a6SAndroid Build Coastguard Workerimport torch
14*523fa7a6SAndroid Build Coastguard Worker
15*523fa7a6SAndroid Build Coastguard Workerfrom executorch.backends.cadence.aot.export_example import export_model
16*523fa7a6SAndroid Build Coastguard Worker
17*523fa7a6SAndroid Build Coastguard Workerfrom executorch.examples.models.llama.llama_transformer import ModelArgs, Transformer
18*523fa7a6SAndroid Build Coastguard Worker
19*523fa7a6SAndroid Build Coastguard Worker
20*523fa7a6SAndroid Build Coastguard WorkerFORMAT = "[%(levelname)s %(asctime)s %(filename)s:%(lineno)s] %(message)s"
21*523fa7a6SAndroid Build Coastguard Workerlogging.basicConfig(level=logging.INFO, format=FORMAT)
22*523fa7a6SAndroid Build Coastguard Worker
23*523fa7a6SAndroid Build Coastguard Worker
24*523fa7a6SAndroid Build Coastguard Workerdef main() -> None:
25*523fa7a6SAndroid Build Coastguard Worker    args = ModelArgs(
26*523fa7a6SAndroid Build Coastguard Worker        dim=512,
27*523fa7a6SAndroid Build Coastguard Worker        vocab_size=512,
28*523fa7a6SAndroid Build Coastguard Worker        hidden_dim=1024,
29*523fa7a6SAndroid Build Coastguard Worker        n_heads=8,
30*523fa7a6SAndroid Build Coastguard Worker        # use_kv_cache=True,
31*523fa7a6SAndroid Build Coastguard Worker        n_layers=1,
32*523fa7a6SAndroid Build Coastguard Worker    )
33*523fa7a6SAndroid Build Coastguard Worker    seq = 64
34*523fa7a6SAndroid Build Coastguard Worker    b = 1
35*523fa7a6SAndroid Build Coastguard Worker    model = Transformer(args)
36*523fa7a6SAndroid Build Coastguard Worker    example_inputs = (torch.randint(0, 10, [b, seq], dtype=torch.int64),)
37*523fa7a6SAndroid Build Coastguard Worker
38*523fa7a6SAndroid Build Coastguard Worker    export_model(model, example_inputs)
39*523fa7a6SAndroid Build Coastguard Worker
40*523fa7a6SAndroid Build Coastguard Worker
41*523fa7a6SAndroid Build Coastguard Workerif __name__ == "__main__":
42*523fa7a6SAndroid Build Coastguard Worker    main()
43