import json, math, random, time, argparse, os, sys from pathlib import Path import torch, torch.nn.functional as F from torch.utils.data import Dataset, DataLoader from .model import EXLLM, EXLLMConfig from .tokenizer import HybridTokenizer class J(Dataset): def __init__(self,path,tok,maxlen): self.rows=[]; self.loss_tokens=0; self.processed_tokens=0 for line in open(path,encoding='utf-8'): r=json.loads(line); seq=tok.encode_example(r['prompt'],r['answer'],maxlen) k=seq.index(tok.ASSIST); x=seq[:-1]; y=seq[1:] y=[-100 if i