/
githubmirror
/
ColossalAI
Обзор
Документация
Войти
/
githubmirror
/
ColossalAI
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
examples/language/grok-1/inference_tp.py
63 строки
2 KB
Hongxin Liu
[misc] refactor launch API and tensor constructor (#5666)
29 апр 2024, 05:40
Не верифицирован
29 апр 2024, 05:40
7f8b166
Код
Авторство
О чём код?
import time import torch from grok1_policy import Grok1ForCausalLMPolicy from transformers import AutoModelForCausalLM, AutoTokenizer from utils import get_default_parser, inference, print_output import colossalai from colossalai.booster import Booster from colossalai.booster.plugin import HybridParallelPlugin from colossalai.cluster import DistCoordinator from colossalai.lazy import LazyInitContext from colossalai.utils import get_current_device if __name__ == "__main__": parser = get_default_parser() args = parser.parse_args() start = time.time() colossalai.launch_from_torch() coordinator = DistCoordinator() plugin = HybridParallelPlugin( tp_size=coordinator.world_size, pp_size=1, precision="bf16", parallel_output=False, custom_policy=Grok1ForCausalLMPolicy(), ) booster = Booster(plugin=plugin) torch.set_default_dtype(torch.bfloat16) tokenizer = AutoTokenizer.from_pretrained(args.pretrained, trust_remote_code=True) with LazyInitContext(default_device=get_current_device()): model = AutoModelForCausalLM.from_pretrained( args.pretrained, trust_remote_code=True, torch_dtype=torch.bfloat16 ) model, *_ = booster.boost(model) model.eval() init_time = time.time() - start for text in args.text: output = inference( model.unwrap(), tokenizer, text, max_new_tokens=args.max_new_tokens, do_sample=args.do_sample, temperature=args.temperature, top_k=args.top_k, top_p=args.top_p, ) if coordinator.is_master(): print_output(text, tokenizer.decode(output)) overall_time = time.time() - start gen_latency = overall_time - init_time avg_gen_latency = gen_latency / len(args.text) coordinator.print_on_master( f"Initializing time: {init_time:.2f} seconds.\n" f"Overall time: {overall_time:.2f} seconds. \n" f"Generation latency: {gen_latency:.2f} seconds. \n" f"Average generation latency: {avg_gen_latency:.2f} seconds. \n" )