This commit is contained in:
2026-06-11 17:49:41 +02:00
parent f760e8fb85
commit 7d1a730d0b
5 changed files with 182 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
.venv/
.cache/

View File

@@ -1,3 +1,11 @@
# TFM
Test TFM remote execution on upc server
## TODO:
- Alguna cosa legal per carregar models i fer benchmarking potser
- Mirar de com implementar la cosa de busqueda de tensors
- Reemplaçarlos allà
- Fer posttraining
- Profit

6
benchmark.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
lm_eval
--model hf \
--model_args pretrained=~/Uni/tfm/qwen_random,dtype=bfloat16,device_mp=auto \
--tasks hellaswag,arc_easy,boolq \
--batch_size auto

101
requirements.txt Normal file
View File

@@ -0,0 +1,101 @@
absl-py==2.4.0
accelerate==1.13.0
aiohappyeyeballs==2.6.2
aiohttp==3.14.1
aiosignal==1.4.0
annotated-doc==0.0.4
anyio==4.13.0
attrs==26.1.0
certifi==2026.5.20
chardet==6.0.0.post1
charset-normalizer==3.4.7
click==8.4.1
colorama==0.4.6
cuda-bindings==13.3.1
cuda-pathfinder==1.5.5
cuda-toolkit==13.0.2
DataProperty==1.1.1
datasets==5.0.0
dill==0.4.1
evaluate==0.4.6
filelock==3.29.1
frozenlist==1.8.0
fsspec==2026.4.0
h11==0.16.0
hf-xet==1.5.1
httpcore==1.0.9
httpx==0.28.1
huggingface_hub==1.18.0
idna==3.18
Jinja2==3.1.6
joblib==1.5.3
lm_eval==0.4.12
lxml==6.1.1
markdown-it-py==4.2.0
MarkupSafe==3.0.3
mbstrdecoder==1.1.5
mdurl==0.1.2
more-itertools==11.1.0
mpmath==1.3.0
multidict==6.7.1
multiprocess==0.70.19
narwhals==2.22.1
networkx==3.6.1
nltk==3.9.4
numpy==2.4.6
nvidia-cublas==13.1.1.3
nvidia-cuda-cupti==13.0.85
nvidia-cuda-nvrtc==13.0.88
nvidia-cuda-runtime==13.0.96
nvidia-cudnn-cu13==9.20.0.48
nvidia-cufft==12.0.0.61
nvidia-cufile==1.15.1.6
nvidia-curand==10.4.0.35
nvidia-cusolver==12.0.4.66
nvidia-cusparse==12.6.3.3
nvidia-cusparselt-cu13==0.8.1
nvidia-nccl-cu13==2.29.7
nvidia-nvjitlink==13.0.88
nvidia-nvshmem-cu13==3.4.5
nvidia-nvtx==13.0.85
packaging==26.2
pandas==3.0.3
pathvalidate==3.3.1
portalocker==3.2.0
propcache==0.5.2
psutil==7.2.2
pyarrow==24.0.0
Pygments==2.20.0
pytablewriter==1.2.1
python-dateutil==2.9.0.post0
pytz==2026.2
PyYAML==6.0.3
regex==2026.5.9
requests==2.34.2
rich==15.0.0
rouge_score==0.1.2
sacrebleu==2.6.0
safetensors==0.8.0
scikit-learn==1.9.0
scipy==1.17.1
setuptools==81.0.0
shellingham==1.5.4
six==1.17.0
sqlitedict==2.1.0
sympy==1.14.0
tabledata==1.3.5
tabulate==0.10.0
tcolorpy==0.1.7
threadpoolctl==3.6.0
tokenizers==0.22.2
torch==2.12.0
tqdm==4.68.2
transformers==5.10.2
triton==3.7.0
typepy==1.3.5
typer==0.25.1
typing_extensions==4.15.0
urllib3==2.7.0
word2number==1.1
xxhash==3.7.0
yarl==1.24.2

65
test.py Normal file
View File

@@ -0,0 +1,65 @@
import torch
import torch.nn as nn
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "Qwen/Qwen3.5-0.8B"
cache_path = "./.cache"
# Load tokenizer + model
tokenizer = AutoTokenizer.from_pretrained(model_id, cache_dir=cache_path)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
cache_dir=cache_path,
)
model.eval()
print(model)
# -----------------------------
# 1. Replace ALL linear layers
# -----------------------------
def replace_weights_with_random(module):
for name, child in module.named_children():
# If it's a Linear layer, replace weights
if isinstance(child, nn.Linear):
with torch.no_grad():
child.weight.copy_(
torch.randn_like(child.weight)
)
if child.bias is not None:
child.bias.copy_(
torch.randn_like(child.bias)
)
else:
# recurse into submodules
replace_weights_with_random(child)
replace_weights_with_random(model)
print("All linear layer weights replaced with random tensors.")
# -----------------------------
# 2. Run inference
# -----------------------------
prompt = "Explain tensor networks in simple terms."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
**inputs,
max_new_tokens=500,
temperature=1.0,
do_sample=True
)
print("\n=== OUTPUT ===\n")
print(tokenizer.decode(output[0], skip_special_tokens=True))
model.save_pretrained("./.cache/qwen_random")
tokenizer.save_pretrained("./.cache/qwen_random")