(file)
| 283 | |
| 284 | |
| 285 | def parse_output(file): |
| 286 | with open(file, 'r', encoding='utf-8') as f: |
| 287 | content = json.load(f) |
| 288 | |
| 289 | name = content['name'] |
| 290 | group = content['group'] |
| 291 | cmd = content['cmd'] |
| 292 | requirements = content['requirements'] |
| 293 | args = content['args'] |
| 294 | create_time = float(content.get('create_time') or 0) |
| 295 | content = content['record'] |
| 296 | if cmd == 'export': |
| 297 | best_model_checkpoint = content['best_model_checkpoint'] |
| 298 | eval_tokens = 0 |
| 299 | eval_time = 0.0 |
| 300 | eval_result = None |
| 301 | if 'eval_result' in content: |
| 302 | eval_result = content['eval_result'] |
| 303 | eval_tokens = eval_result['generation_info']['tokens'] |
| 304 | eval_time = eval_result['generation_info']['time'] |
| 305 | eval_result = eval_result['report'] |
| 306 | return ModelOutput( |
| 307 | group=group, |
| 308 | name=name, |
| 309 | cmd=cmd, |
| 310 | requirements=requirements, |
| 311 | args=args, |
| 312 | best_model_checkpoint=best_model_checkpoint, |
| 313 | eval_time=eval_time, |
| 314 | eval_tokens=eval_tokens, |
| 315 | reports=eval_result, |
| 316 | ) |
| 317 | else: |
| 318 | memory = None |
| 319 | train_time = None |
| 320 | train_samples = None |
| 321 | train_samples_per_second = None |
| 322 | last_model_checkpoint = None |
| 323 | best_model_checkpoint = None |
| 324 | best_metric = None |
| 325 | global_step = None |
| 326 | train_dataset_info = None |
| 327 | val_dataset_info = None |
| 328 | num_trainable_parameters = None |
| 329 | num_buffers = None |
| 330 | trainable_parameters_percentage = None |
| 331 | num_total_parameters = None |
| 332 | train_loss = None |
| 333 | if 'memory' in content: |
| 334 | memory = content['memory'] |
| 335 | memory = '/'.join(memory.values()) |
| 336 | if 'train_time' in content: |
| 337 | train_time = content['train_time']['train_runtime'] |
| 338 | train_samples = content['train_time']['n_train_samples'] |
| 339 | train_samples_per_second = content['train_time']['train_samples_per_second'] |
| 340 | if 'last_model_checkpoint' in content: |
| 341 | last_model_checkpoint = content['last_model_checkpoint'] |
| 342 | if 'best_model_checkpoint' in content: |
no test coverage detected