Compare commits

..

1 Commits

Author SHA1 Message Date
Michael G. Inso
7a87bc2018
Merge f57a3e2619 into 7050ed204b 2024-03-21 22:09:52 +03:00

103
run.py
View File

@ -1,7 +1,7 @@
# Copyright 2024 X.AI Corp. # Copyright 2024 X.AI Corp.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
# You may obtain a copy of the License at # You may obtain a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
@ -30,59 +30,54 @@ def validate_checkpoint(path, expected_hash):
def main(): def main():
# Validate checkpoint integrity # Validate checkpoint integrity
validate_checkpoint(CKPT_PATH, CKPT_HASH) validate_checkpoint(CKPT_PATH, CKPT_HASH)
grok_1_model = LanguageModelConfig(
grok_1_model = LanguageModelConfig( vocab_size=128 * 1024,
vocab_size=128 * 1024, pad_token=0,
pad_token=0, eos_token=2,
eos_token=2, sequence_len=8192,
sequence_len=8192, embedding_init_scale=1.0,
embedding_init_scale=1.0, output_multiplier_scale=0.5773502691896257,
output_multiplier_scale=0.5773502691896257, embedding_multiplier_scale=78.38367176906169,
embedding_multiplier_scale=78.38367176906169, model=TransformerConfig(
model=TransformerConfig( emb_size=48 * 128,
emb_size=48 * 128, widening_factor=8,
widening_factor=8, key_size=128,
key_size=128, num_q_heads=48,
num_q_heads=48, num_kv_heads=8,
num_kv_heads=8, num_layers=64,
num_layers=64, attn_output_multiplier=0.08838834764831845,
attn_output_multiplier=0.08838834764831845, shard_activations=True,
shard_activations=True, # MoE.
# MoE. num_experts=8,
num_experts=8, num_selected_experts=2,
num_selected_experts=2, # Activation sharding.
# Activation sharding. data_axis="data",
data_axis="data", model_axis="model",
model_axis="model", ),
), )
) inference_runner = InferenceRunner(
pad_sizes=(1024,),
inference_runner = InferenceRunner( runner=ModelRunner(
pad_sizes=(1024,), model=grok_1_model,
runner=ModelRunner( bs_per_device=0.125,
model=grok_1_model, checkpoint_path=CKPT_PATH,
bs_per_device=0.125, # Limit inference rate
checkpoint_path=CKPT_PATH, inference_runner.rate_limit = 100
# Limit inference rate ),
inference_runner.rate_limit = 100
), name="local",
load=CKPT_PATH,
name="local", tokenizer_path="./tokenizer.model",
load=CKPT_PATH, local_mesh_config=(1, 8),
tokenizer_path="./tokenizer.model", between_hosts_config=(1, 1),
local_mesh_config=(1, 8), )
between_hosts_config=(1, 1), inference_runner.initialize()
) gen = inference_runner.run()
inference_runner.initialize()
gen = inference_runner.run()
inp = "The answer to life the universe and everything is of course"
print(f"Output for prompt: {inp}", sample_from_model(gen, inp, max_len=100, temperature=0.01))
inp = "The answer to life the universe and everything is of course"
print(f"Output for prompt: {inp}", sample_from_model(gen, inp, max_len=100, temperature=0.01))
# Add authentication # Add authentication
@app.route("/inference") @app.route("/inference")
@auth.login_required @auth.login_required
@ -92,7 +87,7 @@ def main():
gen = inference_runner.run() gen = inference_runner.run()
# Rest of inference code # Rest of inference code
if __name__ == "__main__": if __name__ == "__main__":
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
main() main()