MCPcopy Create free account
hub / github.com/modelscope/modelscope / build_dataset_from_file

Function build_dataset_from_file

modelscope/trainers/training_args.py:501–563  ·  view source on GitHub ↗

The filename format: [ { "dataset": { "dataset_name": "xxx", ... }, "column_mapping": { "text1": "sequence1", "text2": "sequence2", "label": "label", }

(filename)

Source from the content-addressed store, hash-verified

499
500
501def build_dataset_from_file(filename):
502 """
503 The filename format:
504 [
505 {
506 "dataset": {
507 "dataset_name": "xxx",
508 ...
509 },
510 "column_mapping": {
511 "text1": "sequence1",
512 "text2": "sequence2",
513 "label": "label",
514 }
515 "usage": 0.8,
516 }
517 ]
518 """
519 from modelscope import MsDataset
520 train_set = []
521 eval_set = []
522
523 with open(filename, 'r') as f:
524 ds_json = json.load(f)
525 for ds in ds_json:
526 dataset = MsDataset.load(**ds['dataset']).to_hf_dataset()
527 all_columns = dataset.column_names
528 keep_columns = ds['column_mapping'].keys()
529 remove_columns = [
530 column for column in all_columns if column not in keep_columns
531 ]
532 from datasets import Features
533 from datasets import Value
534 from datasets import ClassLabel
535 features = [
536 f for f in dataset.features.items() if f[0] in keep_columns
537 ]
538 new_features = {}
539 for f in features:
540 if isinstance(f[1], ClassLabel):
541 new_features[f[0]] = Value(f[1].dtype)
542 else:
543 new_features[f[0]] = f[1]
544 new_features = Features(new_features)
545 dataset = dataset.map(
546 lambda x: x,
547 remove_columns=remove_columns,
548 features=new_features).rename_columns(ds['column_mapping'])
549 usage = ds['usage']
550 if isinstance(usage, str):
551 assert usage in ('train', 'val')
552 if usage == 'train':
553 train_set.append(dataset)
554 else:
555 eval_set.append(dataset)
556 else:
557 assert isinstance(usage, float) and 0 < usage < 1
558 ds_dict = dataset.train_test_split(train_size=usage)

Calls 5

to_hf_datasetMethod · 0.80
loadMethod · 0.45
keysMethod · 0.45
itemsMethod · 0.45
appendMethod · 0.45

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…