matilda-jev-fp4 / predict.py
yue-maincode's picture
Upload validated MATILDA JEV FP4 model and Decision Index scores
c69aaec verified
Raw History Blame Contribute Delete
1.18 kB
"""Read native JEV state/question JSON lines and write native decision answers."""
import argparse,json,sys
from pathlib import Path
from jev_fp4 import FP4DecisionModel
from kev.model import answer
from kev.decide import decide
def main():
parser=argparse.ArgumentParser()
parser.add_argument('--checkpoint',default=str(Path(__file__).resolve().parent))
parser.add_argument('--device',default='cuda:0')
args=parser.parse_args()
model=FP4DecisionModel(args.checkpoint,device=args.device)
for line in sys.stdin:
if not line.strip():continue
row=json.loads(line)
if 'questions' in row:
probabilities,tokens=decide(model,row['state'],row['questions'],temperature=model.temperature,
max_tokens=131072,token_budget=131072,batch_size=64,images=row.get('images',()))
result={'answers':{k:answer(row['questions'][k],v) for k,v in probabilities.items()},'usage':{'input_tokens':tokens}}
else:
result=answer(row['question'],model.predict([row],batch_size=1)[0])
print(json.dumps(result,ensure_ascii=False),flush=True)
if __name__=='__main__':main()