Skip to content

Commit 595a665

Browse files
authored
Merge pull request #19 from atlasia-ma/feat/preprocessed-dataset
feat(train): load pre-processed dataset instead of processing at runtime
2 parents 2afd115 + a981b70 commit 595a665

4 files changed

Lines changed: 31 additions & 20 deletions

File tree

pyproject.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ eval = [
1414
"sacrebleu>=2.6.0",
1515
]
1616
train = [
17-
"datasets>=5.0.0",
18-
"trl>=1.7.1",
19-
"unsloth>=2026.7.2",
20-
"wandb>=0.28.0",
21-
"python-dotenv>=1.2.2",
17+
"datasets",
18+
"trl",
19+
"unsloth",
20+
"wandb",
21+
"python-dotenv",
2222
]
2323

2424
[project.scripts]

src/darija_translator/cli.py

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,23 @@
1313
from darija_translator.evaluate import compute_translation_metrics, generate_translations
1414
from darija_translator.model import attach_lora, load_model_and_tokenizer
1515
from darija_translator.train import build_trainer, save_model
16-
from dotenv import load_dotenv
16+
# from dotenv import load_dotenv
1717

1818

19-
def prepare_data(dataset_name: str, data_config: DataConfig, tokenizer):
19+
def prepare_data(dataset_name: str,
20+
data_config: DataConfig,
21+
tokenizer,
22+
remove_columns: bool = True) -> tuple:
2023
dataset = load_dataset(dataset_name, split="train")
21-
dataset = dataset.filter(is_darija_script)
22-
dataset = dataset.map(lambda b: to_conversations(b, data_config),
23-
batched=True)
24-
dataset = dataset.map(lambda b: format_conversations(b, tokenizer),
25-
batched=True)
26-
dataset = dataset.filter(lambda ex: is_within_length(ex, data_config))
24+
# dataset = dataset.filter(is_darija_script)
25+
# dataset = dataset.map(lambda b: to_conversations(b, data_config),
26+
# batched=True)
27+
# dataset = dataset.map(lambda b: format_conversations(b, tokenizer),
28+
# batched=True)
29+
# dataset = dataset.filter(lambda ex: is_within_length(ex, data_config))
30+
if remove_columns:
31+
dataset = dataset.remove_columns(
32+
[c for c in dataset.column_names if c != "text"])
2733
return split_dataset(dataset, data_config)
2834

2935

@@ -43,7 +49,10 @@ def run_train(args):
4349
def run_evaluate(args):
4450
model_config, data_config = ModelConfig(), DataConfig()
4551
model, tokenizer = load_model_and_tokenizer(model_config)
46-
_, eval_dataset = prepare_data(args.dataset, data_config, tokenizer)
52+
_, eval_dataset = prepare_data(args.dataset,
53+
data_config,
54+
tokenizer,
55+
remove_columns=False)
4756
predictions = generate_translations(
4857
model,
4958
tokenizer,
@@ -59,13 +68,15 @@ def main():
5968
subparsers = parser.add_subparsers(required=True)
6069

6170
train_parser = subparsers.add_parser("train")
62-
train_parser.add_argument("--dataset",
63-
default="atlasia/darija-english-combined")
71+
train_parser.add_argument(
72+
"--dataset",
73+
default="atlasia/english-to-darija-arabic-script-formatted")
6474
train_parser.set_defaults(func=run_train)
6575

6676
eval_parser = subparsers.add_parser("evaluate")
67-
eval_parser.add_argument("--dataset",
68-
default="atlasia/darija-english-combined")
77+
eval_parser.add_argument(
78+
"--dataset",
79+
default="atlasia/english-to-darija-arabic-script-formatted")
6980
eval_parser.set_defaults(func=run_evaluate)
7081

7182
args = parser.parse_args()

src/darija_translator/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class TrainConfig:
3636
gradient_accumulation_steps: int = 2
3737
per_device_eval_batch_size: int = 8
3838
num_train_epochs: int = 3
39-
warmup_steps: int = 5
39+
warmup_ratio: float = 0.1
4040
learning_rate: float = 2e-4
4141
logging_steps: int = 100
4242
weight_decay: float = 0.01

src/darija_translator/train.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def build_trainer(model, tokenizer, train_dataset, eval_dataset,
2323
gradient_accumulation_steps=config.gradient_accumulation_steps,
2424
packing=config.packing,
2525
max_seq_length=config.max_seq_length,
26-
warmup_steps=config.warmup_steps,
26+
warmup_ratio=config.warmup_ratio,
2727
num_train_epochs=config.num_train_epochs,
2828
per_device_eval_batch_size=config.per_device_eval_batch_size,
2929
eval_strategy="epoch",

0 commit comments

Comments
 (0)