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