Edit model card

phi-1_5-pl-v_0_1

This model is based on microsoft/phi-1_5. It was trained from scratch on the 20231201 Polish Wikipedia dump.

Model description

The model was trained for a context length of 1024 tokens. In addition, while the original model has a hidden size of 2048 (1.3B parameters), this model has a hidden size of 1024 (450.3M parameters).

The model used for training was as follows:

model_config = AutoConfig.from_pretrained(
    'microsoft/phi-1_5', vocab_size=len(trained_tokenizer), max_position_embeddings=1024,
    hidden_size=1024, attn_implementation="flash_attention_2", trust_remote_code=True
)
model = AutoModelForCausalLM.from_config(model_config, trust_remote_code=True)

Intended uses & limitations

The model is intended for research purposes only. It may generate fictitious, incorrect, unethical, or biased texts. At its current state, it is not suitable for production purposes.

Example:

tokenizer = AutoTokenizer.from_pretrained(
    model_name, trust_remote_code=True, use_fast=True
)
# to use flash_attention_2, may need to load the original microsoft phi-1.5 and load weights from this model
model = AutoModelForCausalLM.from_pretrained(
    model_name, vocab_size=len(tokenizer), # attn_implementation="flash_attention_2",
    trust_remote_code=True, torch_dtype=torch.bfloat16
).to(torch.device('cuda'))
model.eval()

generation_config = GenerationConfig.from_pretrained(
    model_name, do_sample=False, repetition_penalty=1.5,
    min_new_tokens=1, max_new_tokens=128
)

test_input = tokenizer("Wrocław to polski miasto. Wrocław jest ", return_tensors='pt').to(torch.device('cuda'))
test_output = model.generate(**test_input, generation_config=generation_config)
test_preds = tokenizer.batch_decode(sequences=test_output, skip_special_tokens=True, clean_up_tokenization_spaces=True)
print(test_preds)

Output:

['Wrocław to polski miasto. Wrocław jest  stolicą województwa dolnośląskiego, a także siedzibą władz powiatu wrocławskiego i gminy miejsko-wiejskiej Wrocław\n\nMiasto leży w południowo–zachodniej części Dolnego Śląska na Przedgórzu Sudeckim nad rzeką Odrą (odnoga Odry). Przez miasto przebiega droga krajowa nr 94 łącząca Berlin z Wrocławiem oraz linia kolejowa do Wrocławia Głównego przez Wrocław Główny – Kłodzko Główne/Szczecin Zachodni - Legnica. Miasto posiada połączenie kolejowe ze stacją kolejową Wrocław Gądów Mały lub Gądowem Małym poprzez węzeł kolejowy Wrocław Gądów Wielki. W mieście znajduje się stacja towarowa Wrocław Gądów Mały.\nW latach 1975−1998 miejscowość administracyjnie należała do woj. wałbrzyskiego. Od 1']

Training and evaluation data

The 20231201 Polish Wikipedia dump.

Training procedure

Training environment

  • GPU: 4 x RTX4090 (24GB per GPU, 96GB total)
  • CPU: AMD EPYC 75F3 32-core (128 virtual cores)
  • RAM: 258GB
  • Motherboard: ROME2D32GM PCLe 4.0, 16x
  • Storage: nvme 194.0GB

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 0.0002
  • distributed_type: multi-GPU (DDP)
  • num_devices: 4
  • train_batch_size: 2
  • gradient_accumulation_steps: 8
  • total_train_batch_size: 64
  • optimizer: Adam with betas=(0.9,0.98) and epsilon=1e-07
  • lr_scheduler_type: cosine
  • lr_scheduler_warmup_ratio: 0.1
  • num_epochs: 2
  • precision: bf16
  • seed: 42

Training results

  • runtime: 2d 21h 26m 36s
  • train_loss: 2.727

Average results on the first 8,000 rows of the training data:

  • rouge1: 0.25254847037792205
  • rouge2: 0.16880333936214448
  • rougeLsum: 0.24328783786296845
  • cosine_similarity: 0.9603840799331665

Framework versions

  • Transformers 4.36.2
  • Pytorch 2.1.2
  • Datasets 2.14.7
  • Tokenizers 0.15.0
Downloads last month
16
Safetensors
Model size
405M params
Tensor type
BF16
·
Inference API
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for teddy-f-47/phi-pl-400M-v_0_1

Base model

microsoft/phi-1_5
Finetuned
this model