import os
import deepspeed
import torch
import transformers
from transformers import pipeline, AutoTokenizer
def init():
local_rank = int(os.getenv('LOCAL_RANK', '0'))
world_size = int(os.getenv('WORLD_SIZE', '1'))
generator = pipeline(
'text-generation', model='EleutherAI/gpt-neo-2.7B', device=local_rank)
generator.model = deepspeed.init_inference(generator.model,
mp_size=world_size,
dtype=torch.float,
replace_method='auto')
return generator
def predict(text, max_len):
top_k = 50
temperature = 1.0
top_p = 1.0
return_seq = 1
string = generator(text, do_sample=True, min_length=50, max_length=max_len, top_k=top_k, temperature=temperature, top_p=top_p, num_return_sequences=return_seq,
pad_token_id=3)
if torch.distributed.get_rank() == 0:
print(string)
if __name__ == '__main__':
generator = init()
text = 'a'
seq = 2023
for i in range(2, seq):
print(f'##### max_len: {i}')
predict(text, i)
--------------------------------------------------
DeepSpeed C++/CUDA extension op report
--------------------------------------------------
NOTE: Ops not installed will be just-in-time (JIT) compiled at
runtime if needed. Op compatibility means that your system
meet the required dependencies to JIT install the op.
--------------------------------------------------
JIT compiled ops requires ninja
ninja .................. [OKAY]
--------------------------------------------------
op name ................ installed .. compatible
--------------------------------------------------
cpu_adam ............... [NO] ....... [OKAY]
fused_adam ............. [NO] ....... [OKAY]
fused_lamb ............. [NO] ....... [OKAY]
sparse_attn ............ [NO] ....... [OKAY]
transformer ............ [NO] ....... [OKAY]
stochastic_transformer . [NO] ....... [OKAY]
async_io ............... [NO] ....... [OKAY]
transformer_inference .. [NO] ....... [OKAY]
utils .................. [NO] ....... [OKAY]
quantizer .............. [NO] ....... [OKAY]
--------------------------------------------------
DeepSpeed general environment info:
torch install path ............... ['/opt/conda/lib/python3.8/site-packages/torch']
torch version .................... 1.9.0a0+c3d40fd
torch cuda version ............... 11.3
nvcc version ..................... 11.3
deepspeed install path ........... ['/opt/conda/lib/python3.8/site-packages/deepspeed']
deepspeed info ................... 0.4.3, unknown, unknown
deepspeed wheel compiled w. ...... torch 1.9, cuda 11.3
issue is occur when input length is reached to 90 token. (may be it's randomly determined)
Description
Dear Deepspeed
I have some issue when using model parallel(inference engine)
sometimes gpu utilization is fixed to 100% and code is hanged
so i made test code and test deepspeed engine. here's my test code.
TestCode
DS_Report
ENV
issue is occur when input length is reached to 90 token. (may be it's randomly determined)
thank you