Skip to content

feat(korean_pos): add companion stream 256-byte fallback, OOV benchmark suite, and evaluation improvements - #891

Open
kahye wants to merge 4 commits into
ReaLLMASIC:masterfrom
kahye:byte-fallback-pos-tokenizer
Open

feat(korean_pos): add companion stream 256-byte fallback, OOV benchmark suite, and evaluation improvements#891
kahye wants to merge 4 commits into
ReaLLMASIC:masterfrom
kahye:byte-fallback-pos-tokenizer

Conversation

@kahye

@kahye kahye commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator
  1. 256-Byte Fallback & POS Tagsets:

    • Implemented HangulFullPosFactorizedTokenizer (46 Sejong tags) and HangulCoarsePosFactorizedTokenizer (17 mapped macro tags) in hangul_factorizer. py.
    • Added make_byte_fallback_meta() companion character stream supporting 256-byte fallback without dropping OOV tokens.
  2. OOV & Unicode Stress-Test Suite:
    - Added curated 20-prompt test suite in benchmarks/prompts/ across 6 categories (Middle Korean archaic Hangul, rare Hanja, ancient SMP scripts, complex
    ZWJ/flag emojis, calculus notation, and internet slang).
    - Created benchmarks/run_oov_evaluations.py to evaluate loss, perplexity, and generation across baselines and multicontext models.

  3. Tokenizer & Benchmark Optimizations:
    - Optimized CharBPETokenizerWithByteFallback encoding loop with token length bucketing and batch progress updates.
    - Updated benchmark encoders (run_four_capability_evals.py, run_ko_hellaswag.py, run_phonetic_slang_eval.py, run_vocab_tail_perplexity.py) to
    properly resolve get_tokenizer_functions.
    - Added milestone checkpoint save intervals in train.py.

kahye added 4 commits August 11, 2026 19:18
…ility evaluation suite

- Expand Korean POS dataset in get_dataset.sh with OPUS-100 and KLUE task splits (DP, NER, MRC, NLI, RE, STS, YNAT) and update lane_metadata.json
- Add --pos_loss_weight argument in train_args.py and handle POS loss weighting and milestone checkpoint saving in train.py
- Add --mc_ckpt and --base_ckpt path override support to benchmarks/run_phonetic_slang_eval.py and benchmarks/run_vocab_tail_perplexity.py
- Add 4-capability evaluation benchmark suite (benchmarks/run_four_capability_evals.py) covering KLUE-NER, KLUE-DP, noisy text resilience (NSMC/UnSmile), and rare vocabulary/OOV (KorMedMCQA)
- Add evaluation runner demos/run_all_epoch_evals.sh, Option 1 sweep runner run_option1_sweep.py, and 10-epoch experiment runner run_opt1_10ep_experiment.py
… POS tagsets, and benchmark support

- Implement HangulFullPosFactorizedTokenizer (46 Sejong tags) and HangulCoarsePosFactorizedTokenizer (17 mapped macro tags) in hangul_factorizer.py
- Add make_byte_fallback_meta() to support 256-byte companion character stream without OOV drop
- Update POS lane metadata and unit tests in test_hangul_factorizer.py
- Add 59.5M token milestone checkpoint saves (3ep: 10899, 5ep: 18165, 10ep: 36330) in train.py
- Add prepare_pos_and_byte_lanes.py to prepare Full POS and 256-Byte Fallback companion stream
- Add run_pos_byte_experiments.py automation runner for training and evaluating Full vs Coarse POS under Weighted and Unweighted loss
- Update evaluation benchmarks (run_four_capability_evals.py, run_ko_hellaswag.py, run_vocab_tail_perplexity.py, run_phonetic_slang_eval.py) to support byte fallback and full/coarse POS models
… and tokenizer byte-fallback improvements

- Add curated 20-prompt OOV and Unicode benchmark suite in benchmarks/prompts/ covering archaic Hangul, rare Hanja, ancient scripts, complex emojis, and mathematical notation
- Add benchmarks/run_oov_evaluations.py to evaluate baseline and multicontext models on OOV prompts
- Optimize CharBPETokenizerWithByteFallback encoding loop with length bucketing and interval progress updates
- Update benchmark encoders across capability tests to properly use get_tokenizer_functions
- Update milestone checkpoint save iterations in train.py
- Update .gitignore to track benchmark prompt files
@kahye kahye changed the title Byte fallback Hangul POS Tokenizer feat(korean_pos): add companion stream 256-byte fallback, OOV benchmark suite, and evaluation improvements Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant