| """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 raw .txt/.md 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() | |