mirror of
https://github.com/xai-org/grok-1.git
synced 2024-11-23 12:09:52 +03:00
Compare commits
1 Commits
d129df04a6
...
7a87bc2018
Author | SHA1 | Date | |
---|---|---|---|
|
7a87bc2018 |
103
run.py
103
run.py
@ -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()
|
||||||
|
Loading…
Reference in New Issue
Block a user