xref: /aosp_15_r20/external/executorch/examples/models/llama/TARGETS (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker# Any targets that should be shared between fbcode and xplat must be defined in
2*523fa7a6SAndroid Build Coastguard Worker# targets.bzl. This file can contain fbcode-only targets.
3*523fa7a6SAndroid Build Coastguard Worker
4*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
5*523fa7a6SAndroid Build Coastguard Workerload(":targets.bzl", "define_common_targets")
6*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/backends/qualcomm/qnn_version.bzl", "get_qnn_library_verision")
7*523fa7a6SAndroid Build Coastguard Worker
8*523fa7a6SAndroid Build Coastguard Workeroncall("executorch")
9*523fa7a6SAndroid Build Coastguard Worker
10*523fa7a6SAndroid Build Coastguard Workerdefine_common_targets()
11*523fa7a6SAndroid Build Coastguard Worker
12*523fa7a6SAndroid Build Coastguard Workerruntime.python_library(
13*523fa7a6SAndroid Build Coastguard Worker    name = "llama_transformer",
14*523fa7a6SAndroid Build Coastguard Worker    srcs = [
15*523fa7a6SAndroid Build Coastguard Worker        "llama_transformer.py",
16*523fa7a6SAndroid Build Coastguard Worker        "rope.py",
17*523fa7a6SAndroid Build Coastguard Worker    ],
18*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
19*523fa7a6SAndroid Build Coastguard Worker    base_module = "executorch.examples.models.llama",
20*523fa7a6SAndroid Build Coastguard Worker    visibility = [
21*523fa7a6SAndroid Build Coastguard Worker        "//executorch/...",
22*523fa7a6SAndroid Build Coastguard Worker        "@EXECUTORCH_CLIENTS",
23*523fa7a6SAndroid Build Coastguard Worker    ],
24*523fa7a6SAndroid Build Coastguard Worker    deps = [
25*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
26*523fa7a6SAndroid Build Coastguard Worker    ],
27*523fa7a6SAndroid Build Coastguard Worker)
28*523fa7a6SAndroid Build Coastguard Worker
29*523fa7a6SAndroid Build Coastguard Workerruntime.python_library(
30*523fa7a6SAndroid Build Coastguard Worker    name = "llama2_model",
31*523fa7a6SAndroid Build Coastguard Worker    srcs = [
32*523fa7a6SAndroid Build Coastguard Worker        "__init__.py",
33*523fa7a6SAndroid Build Coastguard Worker        "fairseq2.py",
34*523fa7a6SAndroid Build Coastguard Worker        "model.py",
35*523fa7a6SAndroid Build Coastguard Worker    ],
36*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
37*523fa7a6SAndroid Build Coastguard Worker    base_module = "executorch.examples.models.llama",
38*523fa7a6SAndroid Build Coastguard Worker    resources = {
39*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models/llama/params:params": "params",
40*523fa7a6SAndroid Build Coastguard Worker    },
41*523fa7a6SAndroid Build Coastguard Worker    visibility = [
42*523fa7a6SAndroid Build Coastguard Worker        "//bento/...",
43*523fa7a6SAndroid Build Coastguard Worker        "//bento_kernels/...",
44*523fa7a6SAndroid Build Coastguard Worker        "//executorch/...",
45*523fa7a6SAndroid Build Coastguard Worker    ],
46*523fa7a6SAndroid Build Coastguard Worker    deps = [
47*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
48*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models:model_base",
49*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models/llama:llama_transformer",
50*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models:checkpoint",
51*523fa7a6SAndroid Build Coastguard Worker    ],
52*523fa7a6SAndroid Build Coastguard Worker)
53*523fa7a6SAndroid Build Coastguard Worker
54*523fa7a6SAndroid Build Coastguard Workerruntime.python_binary(
55*523fa7a6SAndroid Build Coastguard Worker    name = "export_llama",
56*523fa7a6SAndroid Build Coastguard Worker    main_function = "executorch.examples.models.llama.export_llama.main",
57*523fa7a6SAndroid Build Coastguard Worker    # visibility = ["//executorch/examples/..."],
58*523fa7a6SAndroid Build Coastguard Worker    preload_deps = [
59*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/llm/custom_ops:model_sharding_py",
60*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/llm/custom_ops:custom_ops_aot_lib",
61*523fa7a6SAndroid Build Coastguard Worker        "//executorch/kernels/quantized:aot_lib",
62*523fa7a6SAndroid Build Coastguard Worker    ],
63*523fa7a6SAndroid Build Coastguard Worker    deps = [
64*523fa7a6SAndroid Build Coastguard Worker        ":export_library",
65*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
66*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/pybindings:aten_lib",
67*523fa7a6SAndroid Build Coastguard Worker    ],
68*523fa7a6SAndroid Build Coastguard Worker)
69*523fa7a6SAndroid Build Coastguard Worker
70*523fa7a6SAndroid Build Coastguard Workerruntime.command_alias(
71*523fa7a6SAndroid Build Coastguard Worker    name = "export_llama_qnn",
72*523fa7a6SAndroid Build Coastguard Worker    env = {
73*523fa7a6SAndroid Build Coastguard Worker        "LD_LIBRARY_PATH": "$(location fbsource//third-party/qualcomm/qnn/qnn-{0}:qnn_offline_compile_libs)".format(get_qnn_library_verision()),
74*523fa7a6SAndroid Build Coastguard Worker    },
75*523fa7a6SAndroid Build Coastguard Worker    exe = ":export_llama",
76*523fa7a6SAndroid Build Coastguard Worker)
77*523fa7a6SAndroid Build Coastguard Worker
78*523fa7a6SAndroid Build Coastguard Workerruntime.python_library(
79*523fa7a6SAndroid Build Coastguard Worker    name = "export_library",
80*523fa7a6SAndroid Build Coastguard Worker    srcs = [
81*523fa7a6SAndroid Build Coastguard Worker        "export_llama.py",
82*523fa7a6SAndroid Build Coastguard Worker        "export_llama_lib.py",
83*523fa7a6SAndroid Build Coastguard Worker        "model.py",
84*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/apply_spin_quant_r1_r2.py",
85*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/attention.py",
86*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/lora.py",
87*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/pre_quantization.py",
88*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/prune_vocab.py",
89*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/quantize.py",
90*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/quantized_kv_cache.py",
91*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/rms_norm.py",
92*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/rope.py",
93*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/sdpa.py",
94*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/spin_quant.py",
95*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/vulkan_rope.py",
96*523fa7a6SAndroid Build Coastguard Worker    ],
97*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
98*523fa7a6SAndroid Build Coastguard Worker    base_module = "executorch.examples.models.llama",
99*523fa7a6SAndroid Build Coastguard Worker    visibility = [
100*523fa7a6SAndroid Build Coastguard Worker        "//bento/...",
101*523fa7a6SAndroid Build Coastguard Worker        "//bento_kernels/...",
102*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/...",
103*523fa7a6SAndroid Build Coastguard Worker        "@EXECUTORCH_CLIENTS",
104*523fa7a6SAndroid Build Coastguard Worker    ],
105*523fa7a6SAndroid Build Coastguard Worker    deps = [
106*523fa7a6SAndroid Build Coastguard Worker        "//ai_codesign/gen_ai/fast_hadamard_transform:fast_hadamard_transform",
107*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
108*523fa7a6SAndroid Build Coastguard Worker        "//executorch/backends/vulkan/_passes:vulkan_passes",
109*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models:model_base",
110*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models:models",
111*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/llm/custom_ops:custom_ops_aot_py",
112*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/llm/export:export_lib",
113*523fa7a6SAndroid Build Coastguard Worker        # one definition has to be included in the user of the libarary
114*523fa7a6SAndroid Build Coastguard Worker        # depending on what library the client wants to use
115*523fa7a6SAndroid Build Coastguard Worker        # "//executorch/extension/pybindings:aten_lib",
116*523fa7a6SAndroid Build Coastguard Worker        # "//executorch/extension/pybindings:portable_lib",
117*523fa7a6SAndroid Build Coastguard Worker        # "//executorch/extension/pybindings:portable_lib_plus_custom",
118*523fa7a6SAndroid Build Coastguard Worker        "//executorch/devtools/etrecord:etrecord",
119*523fa7a6SAndroid Build Coastguard Worker        "//executorch/util:memory_profiler",
120*523fa7a6SAndroid Build Coastguard Worker        "//executorch/util:python_profiler",
121*523fa7a6SAndroid Build Coastguard Worker        "fbsource//third-party/pypi/coremltools:coremltools",
122*523fa7a6SAndroid Build Coastguard Worker        "fbsource//third-party/pypi/sentencepiece:sentencepiece",
123*523fa7a6SAndroid Build Coastguard Worker        "//pytorch/ao:torchao",
124*523fa7a6SAndroid Build Coastguard Worker    ],
125*523fa7a6SAndroid Build Coastguard Worker)
126*523fa7a6SAndroid Build Coastguard Worker
127*523fa7a6SAndroid Build Coastguard Workerruntime.python_binary(
128*523fa7a6SAndroid Build Coastguard Worker    name = "eval_llama",
129*523fa7a6SAndroid Build Coastguard Worker    main_function = "executorch.examples.models.llama.eval_llama.main",
130*523fa7a6SAndroid Build Coastguard Worker    deps = [
131*523fa7a6SAndroid Build Coastguard Worker        ":eval_library",
132*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
133*523fa7a6SAndroid Build Coastguard Worker    ],
134*523fa7a6SAndroid Build Coastguard Worker)
135*523fa7a6SAndroid Build Coastguard Worker
136*523fa7a6SAndroid Build Coastguard Workerruntime.python_library(
137*523fa7a6SAndroid Build Coastguard Worker    name = "eval_library",
138*523fa7a6SAndroid Build Coastguard Worker    srcs = [
139*523fa7a6SAndroid Build Coastguard Worker        "eval_llama.py",
140*523fa7a6SAndroid Build Coastguard Worker        "eval_llama_lib.py",
141*523fa7a6SAndroid Build Coastguard Worker        "evaluate/eager_eval.py",
142*523fa7a6SAndroid Build Coastguard Worker    ],
143*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
144*523fa7a6SAndroid Build Coastguard Worker    base_module = "executorch.examples.models.llama",
145*523fa7a6SAndroid Build Coastguard Worker    visibility = [
146*523fa7a6SAndroid Build Coastguard Worker        "//bento/...",
147*523fa7a6SAndroid Build Coastguard Worker        "//bento_kernels/...",
148*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/...",
149*523fa7a6SAndroid Build Coastguard Worker        "@EXECUTORCH_CLIENTS",
150*523fa7a6SAndroid Build Coastguard Worker    ],
151*523fa7a6SAndroid Build Coastguard Worker    deps = [
152*523fa7a6SAndroid Build Coastguard Worker        "fbsource//third-party/pypi/lm-eval:lm-eval",
153*523fa7a6SAndroid Build Coastguard Worker        "fbsource//third-party/pypi/tiktoken:tiktoken",
154*523fa7a6SAndroid Build Coastguard Worker        ":export_library",
155*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models/llama/tokenizer:tiktoken_py",
156*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/llm/export:export_lib",
157*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/llm/tokenizer:tokenizer_py_lib",
158*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/pybindings:portable_lib",
159*523fa7a6SAndroid Build Coastguard Worker    ],
160*523fa7a6SAndroid Build Coastguard Worker)
161*523fa7a6SAndroid Build Coastguard Worker
162*523fa7a6SAndroid Build Coastguard Workerruntime.python_library(
163*523fa7a6SAndroid Build Coastguard Worker    name = "quantized_kv_cache",
164*523fa7a6SAndroid Build Coastguard Worker    srcs = [
165*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/quantized_kv_cache.py",
166*523fa7a6SAndroid Build Coastguard Worker    ],
167*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
168*523fa7a6SAndroid Build Coastguard Worker    visibility = ["//executorch/..."],
169*523fa7a6SAndroid Build Coastguard Worker    deps = [
170*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
171*523fa7a6SAndroid Build Coastguard Worker    ],
172*523fa7a6SAndroid Build Coastguard Worker)
173*523fa7a6SAndroid Build Coastguard Worker
174*523fa7a6SAndroid Build Coastguard Workerruntime.python_library(
175*523fa7a6SAndroid Build Coastguard Worker    name = "sdpa",
176*523fa7a6SAndroid Build Coastguard Worker    srcs = [
177*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/sdpa.py",
178*523fa7a6SAndroid Build Coastguard Worker    ],
179*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
180*523fa7a6SAndroid Build Coastguard Worker    visibility = ["//executorch/..."],
181*523fa7a6SAndroid Build Coastguard Worker    deps = [
182*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
183*523fa7a6SAndroid Build Coastguard Worker    ],
184*523fa7a6SAndroid Build Coastguard Worker)
185*523fa7a6SAndroid Build Coastguard Worker
186*523fa7a6SAndroid Build Coastguard Workerruntime.python_test(
187*523fa7a6SAndroid Build Coastguard Worker    name = "quantized_kv_cache_test",
188*523fa7a6SAndroid Build Coastguard Worker    srcs = [
189*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/test_quantized_kv_cache.py",
190*523fa7a6SAndroid Build Coastguard Worker    ],
191*523fa7a6SAndroid Build Coastguard Worker    preload_deps = [
192*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/llm/custom_ops:custom_ops_aot_lib",
193*523fa7a6SAndroid Build Coastguard Worker    ],
194*523fa7a6SAndroid Build Coastguard Worker    deps = [
195*523fa7a6SAndroid Build Coastguard Worker        ":quantized_kv_cache",
196*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
197*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models/llama:llama_transformer",
198*523fa7a6SAndroid Build Coastguard Worker    ],
199*523fa7a6SAndroid Build Coastguard Worker)
200*523fa7a6SAndroid Build Coastguard Worker
201*523fa7a6SAndroid Build Coastguard Workerruntime.python_test(
202*523fa7a6SAndroid Build Coastguard Worker    name = "quantized_sdpa_with_kv_cache_test",
203*523fa7a6SAndroid Build Coastguard Worker    srcs = [
204*523fa7a6SAndroid Build Coastguard Worker        "source_transformation/test_sdpa_with_quantized_kv_cache.py",
205*523fa7a6SAndroid Build Coastguard Worker    ],
206*523fa7a6SAndroid Build Coastguard Worker    preload_deps = [
207*523fa7a6SAndroid Build Coastguard Worker        "//executorch/extension/llm/custom_ops:custom_ops_aot_lib",
208*523fa7a6SAndroid Build Coastguard Worker    ],
209*523fa7a6SAndroid Build Coastguard Worker    deps = [
210*523fa7a6SAndroid Build Coastguard Worker        ":quantized_kv_cache",
211*523fa7a6SAndroid Build Coastguard Worker        ":sdpa",
212*523fa7a6SAndroid Build Coastguard Worker        "//caffe2:torch",
213*523fa7a6SAndroid Build Coastguard Worker        "//executorch/examples/models/llama:llama_transformer",
214*523fa7a6SAndroid Build Coastguard Worker    ],
215*523fa7a6SAndroid Build Coastguard Worker)
216