LLM Laboratory

Date: 18.08.2025

TensorFlow vs PyTorch GPT2

Test environment

My test environment: HP Z440

Steps

Get the GPT2

mkdir -p ~/llm && cd ~/llm
git lfs install
git clone https://huggingface.co/openai-community/gpt2 gpt2

Prepare TensorFlow test

mkdir -p ~/llm && cd ~/llm
python3 -m venv .venv_llm_tf
source ./.venv_llm_tf/bin/activate
python -m pip install --upgrade pip
pip install "tensorflow[and-cuda]==2.16.*" "tf-keras~=2.16" "transformers<5"
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
import tensorflow as tf
from transformers import AutoTokenizer, TFAutoModelForCausalLM, pipeline

print("TF GPUs:", tf.config.list_physical_devices("GPU"))

model_path = "/home/sysadmin/llm/gpt2"

tok = AutoTokenizer.from_pretrained(model_path)
tok.pad_token = tok.eos_token 
model = TFAutoModelForCausalLM.from_pretrained(model_path)

inputs = tok("The space stars is?", return_tensors="tf")
out = model.generate(**inputs, max_new_tokens=160)
print(tok.decode(out[0], skip_special_tokens=True))

rm ./gpt2/*.bin ./gpt2/*.safetensors
export TF_CPP_MIN_LOG_LEVEL=2
export TF_USE_LEGACY_KERAS=1
python ./test_tf_cuda_gpt2.py

Prepare PyTorch test

cd gpt2
git lfs pull
cd ..
mkdir -p ~/llm && cd ~/llm
python3 -m venv .venv_llm_torch
source ./.venv_llm_torch/bin/activate
python -m pip install --upgrade pip
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu124
pip install "transformers<5"
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available());print(torch.cuda.get_device_name(0));"
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
import torch

print("GPU available:", torch.cuda.is_available())
print("GPU name:", torch.cuda.get_device_name(0))

model_path = "/home/sysadmin/llm/gpt2"

tokenizer = AutoTokenizer.from_pretrained(model_path)
model     = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype=torch.float32
)

model.to("cuda")

generator = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer
)

print(generator("The space stars is?", max_new_tokens=160)[0]["generated_text"])

Enjoy the result!