| """Command line tokenizer trainer for Delta Ultra Mini.""" |
|
|
| from __future__ import annotations |
|
|
| import argparse |
| import logging |
| import os |
| import sys |
| from pathlib import Path |
|
|
| PROJECT_ROOT = Path(__file__).resolve().parents[1] |
| if str(PROJECT_ROOT) not in sys.path: |
| sys.path.insert(0, str(PROJECT_ROOT)) |
|
|
| from delta.tokenizer import train_tokenizer |
|
|
| logging.basicConfig(level=os.getenv("DELTA_LOG_LEVEL", "INFO").upper()) |
| logger = logging.getLogger(__name__) |
|
|
|
|
| def parse_args() -> argparse.Namespace: |
| """Parse command line arguments.""" |
|
|
| parser = argparse.ArgumentParser(description="Train Delta BPE tokenizer.") |
| parser.add_argument("--corpus_files", nargs="+", required=True, help="Input .txt corpus files.") |
| parser.add_argument("--output_path", required=True, help="Output tokenizer JSON path.") |
| return parser.parse_args() |
|
|
|
|
| def main() -> None: |
| """Train and save a tokenizer.""" |
|
|
| args = parse_args() |
| train_tokenizer([Path(path) for path in args.corpus_files], Path(args.output_path)) |
| logger.info("Tokenizer training complete.") |
|
|
|
|
| if __name__ == "__main__": |
| main() |
|
|