huggingface / transformers

🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.
https://huggingface.co/transformers
Apache License 2.0
132.13k stars 26.33k forks source link

GPT-NEO Incosistent inference TPU vs GPU #14710

Closed vvv-tech closed 2 years ago

vvv-tech commented 2 years ago

Problem: On GPU with huggingface library i'm getting much weaker results compared to inference on TPU Model: GPT-NEO 1.3B Steps: 20750 Dataset: Books crawl (file ".txt" 240 Gb)

Model on GPU initialization

configuration_xl = GPTNeoConfig(vocab_size=36384) model_xl_our = AutoModelForCausalLM.from_pretrained("/content/drive/MyDrive/gpt3_XL_weights/model.ckpt-20750", from_tf=True, config=configuration_xl) tokenizer_xl_our = Tokenizer.from_file("/content/byte-level-bpe.tokenizer.json")

Generation on GPU is done with this parameters

output = model.generate( input_ids=input_ids, min_length=adjusted_min_length, max_length=adjusted_max_length, return_full_text=False, do_sample=True,

do_sample=True,

                    early_stopping=True, 
                    num_beams=5,
                    top_k=5,
                    temperature=1.,
                    # temperature=0.7,
                    no_repeat_ngram_size=2,
                    # no_repeat_ngram_size=0,
                    top_p=0.98,
                    pad_token_id=1,
                    eos_token_id=0
                    )

example prompt: "Современное поколение"

TPU inference:

"Современное поколение «цивилизованных» стран вынесло на стартовые площадки фатального социального явления - «массовое жилищное строительство. Предпочтительным для индивидуально-дворовых жилищных кооперативов являются европейские жилищные районы, такие как Гаага, Манхэттен, Стамбул. В то время как в Европе, например, существовали многочисленные смешанные многоквартирные дома, владелец которых жил в гостевом домике, в России практически невозможно встретить квартиру в одноквартирном доме. Инфраструктура в данной ситуации являет зримый образ человека как социальной единицы."

GPU inference:

"Современное поколение. - А как же? - спросил он. - Я не понимаю, что это такое, - сказал он, и, как бы в шутку, но в голосе его голосе не было ни тени сомнения, ни малейшего сомнения в том, о чем-то, а не мог ли он сам по-другому? Помогло быть. Но я не могу понять, почему он не может быть, я, если бы он был я. И все-таки не я и все же, потому что я - это я? Или, может ли я в этом мире, где-нибудь, в каком-либо месте, или в другом месте? И если да, то как это может случиться, чтобы я это был? А что же это значит для меня? Как это могло случиться то, кто же все это сделал? Что же в таком случае? Кто же ты такой, ты? Почему ты не можешь быть не ты, когда ты это сделать? Если бы ты был ты. Кто ты есть? Ты кто? Где ты и кто такой и что ты такое. Что ты делаешь? Зачем ты так говоришь. Как же так? Я же не такой ты говоришь, не так ли ты что ли. Ты? Не так же ли это ты кто ты такая. А ААА- - - не не же такой же как ты ты... И если если так и если же если и так то что- то- это не то же. Так же и не потому, так. .. ?"

If you know little russian, you can see that on GPU GPT outputs infinite existential questions and gibberish. For your convenience i'll leave link on google translate :) https://translate.google.ru/ Thanks in advance!

LysandreJik commented 2 years ago

cc @patil-suraj and @patrickvonplaten

patrickvonplaten commented 2 years ago

Hey @sjeffry-o,

I'm not really sure what we can do here to help. Did you train a model and then when you run the model on inference on TPU it works well and the same model does not work well on GPU? Could you give us a reproducible code snippet that we can just run to reproduce the error?

github-actions[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the contributing guidelines are likely to be ignored.