Datasets documentation

주요 클래스

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

주요 클래스

DatasetInfo

class datasets.DatasetInfo

< >

( description: str = <factory>citation: str = <factory>homepage: str = <factory>license: str = <factory>features: typing.Optional[datasets.features.features.Features] = Nonepost_processed: typing.Optional[datasets.info.PostProcessedInfo] = Nonesupervised_keys: typing.Optional[datasets.info.SupervisedKeysData] = Nonebuilder_name: typing.Optional[str] = Nonedataset_name: typing.Optional[str] = Noneconfig_name: typing.Optional[str] = Noneversion: typing.Union[str, datasets.utils.version.Version, NoneType] = Nonesplits: typing.Optional[datasets.splits.SplitDict] = Nonedownload_checksums: typing.Optional[dict] = Nonedownload_size: typing.Optional[int] = Nonepost_processing_size: typing.Optional[int] = Nonedataset_size: typing.Optional[int] = Nonesize_in_bytes: typing.Optional[int] = None )

매개변수

  • description (str) — 데이터셋에 대한 설명입니다.
  • citation (str) — 데이터셋의 BibTeX 인용문입니다.
  • homepage (str) — 데이터셋의 공식 홈페이지 URL입니다.
  • license (str) — 데이터셋의 라이선스입니다. 라이선스 이름이거나 라이선스 조항을 포함하는 문단이 될 수 있습니다.
  • features (Features, 선택 사항) — 데이터셋의 열 유형을 지정하는 데 사용되는 features입니다.
  • post_processed (PostProcessedInfo, 선택 사항) — 비추천. 데이터셋의 가능한 후처리 리소스에 대한 정보입니다. 예를 들어, 인덱스에 대한 정보를 포함할 수 있습니다.
  • supervised_keys (SupervisedKeysData, 선택 사항) — 데이터셋에 해당되는 경우, 지도 학습을 위한 입력 특징과 라벨을 지정합니다. (TFDS에서 이관된 레거시 항목)
  • builder_name (str, 선택 사항) — 데이터셋을 생성하는 데 사용되는 GeneratorBasedBuilder 하위 클래스의 이름입니다. 또한 데이터셋 빌더 클래스 이름의 snake_case 버전이기도 합니다.
  • config_name (str, 선택 사항) — BuilderConfig에서 파생된 구성의 이름입니다.
  • version (str 또는 Version, 선택 사항) — 데이터셋의 버전입니다.
  • splits (dict, 선택) — 스플릿 이름과 메타데이터 간의 매핑입니다.
  • download_checksums (dict, 선택 사항) — 데이터셋의 체크섬을 다운로드할 URL과 해당 메타데이터 간의 매핑입니다.
  • download_size (int, 선택 사항) — 데이터셋 생성을 위해 다운로드할 파일의 크기(바이트 단위).
  • post_processing_size (int, 선택 사항) — 비추천. 후처리(있다면) 후 데이터셋의 바이트 단위 크기입니다.
  • dataset_size (int, 선택 사항) — 모든 split에 대한 Arrow 테이블의 바이트 단위 합계 크기입니다.
  • size_in_bytes (int, 선택 사항) — 데이터셋과 관련된 모든 파일(다운로드된 파일 + Arrow 파일)의 바이트 단위 합계 크기입니다.
  • **config_kwargs (추가 키워드 인자) — BuilderConfig에 전달되고 DatasetBuilder에서 사용되는 키워드 인자입니다.

데이터셋에 대한 정보.

DatasetInfo는 데이터셋의 이름, 버전, 특징을 포함하여 데이터셋을 문서화합니다. 전체 목록은 생성자 인수와 속성을 참조하세요.

생성 시 모든 필드가 알려진 것은 아니며, 나중에 업데이트될 수 있습니다.

from_directory

< >

( dataset_info_dir: strstorage_options: typing.Optional[dict] = None )

매개변수

  • dataset_info_dir (str) — 메타데이터 파일이 포함된 디렉터리입니다. 이는 특정 데이터셋 버전의 루트 디렉터리여야 합니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.9.0에 추가

dataset_info_dir의 JSON 파일에서 DatasetInfo를 생성합니다.

이 함수는 DatasetInfo의 동적으로 생성된 모든 필드(num_examples, hash, 생성 시각, …)를 업데이트합니다.

이 작업은 이전 메타데이터를 모두 덮어씁니다.

예:

>>> from datasets import DatasetInfo
>>> ds_info = DatasetInfo.from_directory("/path/to/directory/")

write_to_directory

< >

( dataset_info_dirpretty_print = Falsestorage_options: typing.Optional[dict] = None )

매개변수

  • dataset_info_dir (str) — 대상 디렉터리.
  • pretty_print (bool, 기본값 False) — True인 경우, 들여쓰기 수준 4로 JSON을 pretty-print합니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.9.0에 추가

DatasetInfo와 라이선스(있는 경우)를 JSON 파일로 dataset_info_dir에 작성합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.info.write_to_directory("/path/to/directory/")

데이터셋

기본 클래스 Dataset은 Apache Arrow 테이블에 기반한 Dataset을 구현합니다.

클래스 datasets.Dataset

< >

( arrow_table: Tableinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_table: typing.Optional[datasets.table.Table] = Nonefingerprint: typing.Optional[str] = None )

Arrow 테이블에 기반한 Dataset입니다.

add_column

< >

( name: strcolumn: typing.Union[list, numpy.ndarray]new_fingerprint: typing.Optional[str] = Nonefeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure, NoneType] = None )

매개변수

  • name (str) — 열 이름.
  • column (list 또는 np.array) — 추가할 열 데이터.
  • feature (FeatureType 또는 None, 기본값 None) — 컬럼의 데이터 타입입니다.

Dataset에 열을 추가합니다.

1.7에 추가

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> more_text = ds["text"]
>>> ds = ds.add_column(name="text_2", column=more_text)
>>> ds
Dataset({
    features: ['text', 'label', 'text_2'],
    num_rows: 1066
})

add_item

< >

( item: dictnew_fingerprint: typing.Optional[str] = None )

매개변수

  • item (dict) — 추가할 항목 데이터.

Dataset에 항목을 추가합니다.

1.7에 추가

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> new_review = {'label': 0, 'text': 'this movie is the absolute worst thing I have ever seen'}
>>> ds = ds.add_item(new_review)
>>> ds[-1]
{'label': 0, 'text': 'this movie is the absolute worst thing I have ever seen'}

from_file

< >

( filename: strinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_filename: typing.Optional[str] = Nonein_memory: bool = False )

매개변수

  • filename (str) — 데이터셋의 파일 이름.
  • info (DatasetInfo, 선택 사항) — 설명, 인용 문헌 등 데이터셋 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • indices_filename (str, 선택 사항) — 인덱스의 파일 이름.
  • in_memory (bool, 기본값 False) — 데이터를 메모리에 복사할지 여부입니다.

filename에 있는 Arrow 테이블을 기반으로 Dataset을 초기화합니다.

from_buffer

< >

( buffer: Bufferinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneindices_buffer: typing.Optional[pyarrow.lib.Buffer] = None )

매개변수

  • buffer (pyarrow.Buffer) — Arrow 버퍼.
  • info (DatasetInfo, 선택 사항) — 설명, 인용 문헌 등 데이터셋 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • indices_buffer (pyarrow.Buffer, 선택 사항) — Indices Arrow 버퍼입니다.

Arrow 버퍼 기반의 Dataset을 인스턴스화합니다.

from_pandas

< >

( df: DataFramefeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonepreserve_index: typing.Optional[bool] = None )

매개변수

  • df (pandas.DataFrame) — 데이터셋을 포함하는 데이터프레임.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • info (DatasetInfo, 선택 사항) — 설명, 인용 문헌 등 데이터셋 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • preserve_index (bool, 선택 사항) — 결과 Dataset에 인덱스를 추가 열로 저장할지 여부입니다. 기본값인 None은 RangeIndex를 제외하고 인덱스를 열로 저장합니다. RangeIndex는 메타데이터로만 저장됩니다. 인덱스를 반드시 열로 저장하려면 preserve_index=True를 사용하세요.

pandas.DataFrame를 pyarrow.Table로 변환하여 Dataset을 생성합니다.

결과 Arrow Table의 열 유형은 DataFrame의 pandas.Series dtype에서 추론됩니다. object가 아닌 Series의 경우, NumPy dtype이 해당 Arrow 유형으로 변환됩니다. object의 경우, 이 Series에 포함된 Python 객체를 살펴서 데이터 유형을 추측해야 합니다.

object dtype의 Series는 항상 의미 있는 Arrow 타입으로 이어질 만큼 충분한 정보를 담고 있지 않을 수 있습니다. DataFrame의 길이가 0이거나 Series에 None/nan 객체만 포함된 경우와 같이 타입을 추론할 수 없는 경우, 타입은 null로 설정됩니다. 이 동작은 명시적인 features를 구성하여 이 함수에 전달함으로써 방지할 수 있습니다.

Important: a dataset created with from_pandas() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

예:

>>> ds = Dataset.from_pandas(df)

from_dict

< >

( mapping: dictfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

매개변수

  • mapping (Mapping) — 문자열에서 Array 또는 Python 리스트로의 매핑.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • info (DatasetInfo, 선택 사항) — 설명, 인용 문헌 등 데이터셋 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • on_mixed_types (Literal["use_json"], 선택 사항, 기본값은 None) — “use_json”인 경우, 미리 정의된 스키마 없이 데이터를 포함하는 비정형 필드인 혼합 타입 필드에 대해 Json() 타입을 사용합니다. 이 경우 혼합 타입 필드는 Json()으로 설정됩니다.

    … 문자열/정수/부동소수점 숫자의 혼합 목록이나, 임의의 값 유형을 가진 사전과 같은 목록을 로드할 수 있습니다.

    4.7.0에 추가됨

dict를 pyarrow.Table로 변환하여 Dataset을 생성합니다.

Important: a dataset created with from_dict() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

예:

각 열에 하나의 리스트를 포함하는 사전에서 Dataset을 가져오기:

>>> ds = Dataset.from_dict({"text": ["hello there !", "general kenobi !"]})

features를 전달하여 컬럼 유형을 설정합니다. 이미지 데이터셋의 경우:

>>> features = Features({"image": Image()})
>>> ds = Dataset.from_dict({"image": ["path/to/image.png"]}, features=features)

Datasets는 컬럼형 포맷인 Arrow를 기반으로 하므로, 모든 예시가 동일한 타입과 서브타입을 가지며, 사전은 동일한 키와 값 타입을 가져야 한다고 가정합니다. 데이터셋을 로드할 때 필드의 타입이 일치하지 않으면 오류가 발생하며, 사전에서 누락된 필드는 None으로 채워져 모든 사전이 동일한 키와 값 타입을 갖도록 합니다.

이 문제를 피하고 오류 없이 혼합된 유형을 허용하려면 on_mixed_types="use_json"을 사용하거나 Json 유형으로 features=를 지정할 수 있습니다:

>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]})
Traceback (most recent call last):
  ...
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64

>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, on_mixed_types="use_json")
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

>>> features = Features({"a": Json()})
>>> ds = Dataset.from_dict({"a": [0, "foo", {"subfield": "bar"}]}, features=features)
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

임의의 키와 값을 가진 딕셔너리 목록에서도 누락된 필드를 None으로 채우는 것을 방지하기 위해 유용합니다:

>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]})
>>> ds.features
{'a': List({'b': Value('int64'), 'c': Value('int64')})}
>>> list(ds["a"])
[[{'b': 0, 'c': None}, {'b': None, 'c': 0}]]  # missing fields are filled with None

>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features)
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

도구 호출 데이터가 포함된 또 다른 예시:

>>> messages = [
...     {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."},
...     {"role": "assistant", "tool_calls": [
...         {"type": "function", "function": {
...             "name": "control_light",
...             "arguments": {"room": "living room", "state": "on"}
...         }},
...         {"type": "function", "function": {
...             "name": "play_music",
...             "arguments": {"playlist": "electronic"}  # mixed-type here since keys ["playlist"] and ["room", "state"] are different
...         }}]
...     },
...     {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."},
...     {"role": "tool", "name": "play_music", "content": "The music is now playing."},
...     {"role": "assistant", "content": "Done!"}
... ]
>>> ds = Dataset.from_dict({"messages": [messages]}, on_mixed_types="use_json")
>>> ds.features
{'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})}
>>> ds[0]["messages"][1]["tool_calls"][0]["function"]["arguments"]
{"room": "living room", "state": "on"}

from_list

< >

( mapping: listfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

매개변수

  • mapping (List[dict]) — 문자열에서 행 값으로의 매핑 목록.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • info (DatasetInfo, optional) — 설명, 인용 정보 등 데이터셋에 대한 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • on_mixed_types (Literal["use_json"], 선택 사항, 기본값은 None) — “use_json”인 경우, 미리 정의된 스키마 없이 데이터를 포함하는 비정형 필드인 혼합 타입 필드에 대해 Json() 타입을 사용합니다. 이 경우 혼합 타입 필드는 Json()으로 설정됩니다.

    … 문자열/정수/부동소수점 숫자의 혼합 목록이나, 임의의 값 유형을 가진 사전과 같은 목록을 로드할 수 있습니다.

    4.7.0에 추가됨

dict 목록을 pyarrow.Table로 변환하여 Dataset을 생성합니다.

features에 전달된 값과 관계없이, 첫 번째 항목의 키가 데이터셋 열을 결정하는 데 사용됩니다.

Important: a dataset created with from_list() lives in memory and therefore doesn’t have an associated cache directory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. save_to_disk / load_from_disk.

예:

예제가 포함된 리스트에서 Dataset을 가져오기:

>>> ds = Dataset.from_list([{"text": "hello there !"}, {"text": "general kenobi !"}]})

features를 전달하여 컬럼 유형을 설정합니다. 이미지 데이터셋의 경우:

>>> features = Features({"image": Image()})
>>> ds = Dataset.from_list([{"image": "path/to/image.png"}], features=features)

Datasets는 컬럼형 포맷인 Arrow를 기반으로 하므로, 모든 예시가 동일한 타입과 서브타입을 가지며, 사전은 동일한 키와 값 타입을 가져야 한다고 가정합니다. 데이터셋을 로드할 때 필드의 타입이 일치하지 않으면 오류가 발생하며, 사전에서 누락된 필드는 None으로 채워져 모든 사전이 동일한 키와 값 타입을 갖도록 합니다.

이 문제를 피하고 오류 없이 혼합된 유형을 허용하려면 on_mixed_types="use_json"을 사용하거나 Json 유형으로 features=를 지정할 수 있습니다:

>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}])
Traceback (most recent call last):
  ...
  File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Could not convert 'foo' with type str: tried to convert to int64

>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}], on_mixed_types="use_json")
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

>>> features = Features({"a": Json()})
>>> ds = Dataset.from_list([{"a": 0}, {"a": "foo"}, {"a": {"subfield": "bar"}}], features=features)
>>> ds.features
{'a': Json()}
>>> list(ds["a"])
[0, "foo", {"subfield": "bar"}]

임의의 키와 값을 가진 딕셔너리 목록에서도 누락된 필드를 None으로 채우는 것을 방지하기 위해 유용합니다:

>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}])
>>> ds.features
{'a': List({'b': Value('int64'), 'c': Value('int64')})}
>>> list(ds["a"])
[[{'b': 0, 'c': None}, {'b': None, 'c': 0}]]  # missing fields are filled with None

>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}], features=features)
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

>>> ds = Dataset.from_list([{"a": [{"b": 0}, {"c": 0}]}], on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> list(ds["a"])
[[{'b': 0}, {'c': 0}]]  # OK

도구 호출 데이터가 포함된 또 다른 예시:

>>> messages = [
...     {"role": "user", "content": "Turn on the living room lights and play my electronic music playlist."},
...     {"role": "assistant", "tool_calls": [
...         {"type": "function", "function": {
...             "name": "control_light",
...             "arguments": {"room": "living room", "state": "on"}
...         }},
...         {"type": "function", "function": {
...             "name": "play_music",
...             "arguments": {"playlist": "electronic"}  # mixed-type here since keys ["playlist"] and ["room", "state"] are different
...         }}]
...     },
...     {"role": "tool", "name": "control_light", "content": "The lights in the living room are now on."},
...     {"role": "tool", "name": "play_music", "content": "The music is now playing."},
...     {"role": "assistant", "content": "Done!"}
... ]
>>> ds = Dataset.from_list([{"messages": messages}], on_mixed_types="use_json")
>>> ds.features
{'messages': List({'role': Value('string'), 'content': Value('string'), 'tool_calls': List(Json()), 'name': Value('string')})}
>>> ds[0]["messages"][1]["tool_calls"][0]["function"]["arguments"]
{"room": "living room", "state": "on"}

from_generator

< >

( generator: typing.Callablefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsegen_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesplit: NamedSplit = NamedSplit('train')fingerprint: typing.Optional[str] = None**kwargs )

매개변수

  • generator ( —Callable): 예시를 yields하는 생성기 함수.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • gen_kwargs(dict, 선택 사항) — generator 콜러블에 전달할 키워드 인수입니다. gen_kwargs에 샤드 목록을 전달하고 num_proc를 1보다 큰 값으로 설정하여 샤드화된 데이터셋을 정의할 수 있습니다.
  • num_proc (int, 선택 사항, 기본값은 None) — 데이터셋을 다운로드하고 로컬에서 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다. num_proc 이 1보다 크면, gen_kwargs 의 모든 리스트 값은 동일한 길이를 가져야 합니다. 이 값들은 생성기 호출 사이에 분할됩니다. 샤드 수는 gen_kwargs 와 num_proc.

    2.7.0에 추가

  • split (NamedSplit, 기본값은 Split.TRAIN) — 데이터셋에 할당할 Split 이름입니다.

    2.21.0에 추가됨

  • fingerprint (str, 선택 사항) — 데이터셋 ID를 생성하는 데 사용되는 Fingerprint입니다. 기본적으로 fingerprint 은 생성기 함수와 모든 인수를 해시하여 생성되므로, AI 모델과 같은 대형 객체를 사용하는 경우 느릴 수 있습니다.

    4.3.0에 추가

  • **kwargs (추가 키워드 인자) — :GeneratorConfig에 전달할 키워드 인자입니다.

생성기에서 Dataset을 생성합니다.

generator에서 데이터를 로드하고, 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

>>> def gen():
...     yield {"text": "Good", "label": 0}
...     yield {"text": "Bad", "label": 1}
...
>>> ds = Dataset.from_generator(gen)
>>> def gen(shards):
...     for shard in shards:
...         with open(shard) as f:
...             for line in f:
...                 yield {"line": line}
...
>>> shards = [f"data{i}.txt" for i in range(32)]
>>> ds = Dataset.from_generator(gen, gen_kwargs={"shards": shards})

데이터

< >

( )

데이터셋을 뒷받침하는 Apache Arrow 테이블.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.data
MemoryMappedTable
text: string
label: int64
----
text: [["compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .","the soundtrack alone is worth the price of admission .","rodriguez does a splendid job of racial profiling hollywood style--casting excellent latin actors of all ages--a trend long overdue .","beneath the film's obvious determination to shock at any cost lies considerable skill and determination , backed by sheer nerve .","bielinsky is a filmmaker of impressive talent .","so beautifully acted and directed , it's clear that washington most certainly has a new career ahead of him if he so chooses .","a visual spectacle full of stunning images and effects .","a gentle and engrossing character study .","it's enough to watch huppert scheming , with her small , intelligent eyes as steady as any noir villain , and to enjoy the perfectly pitched web of tension that chabrol spins .","an engrossing portrait of uncompromising artists trying to create something original against the backdrop of a corporate music industry that only seems to care about the bottom line .",...,"ultimately , jane learns her place as a girl , softens up and loses some of the intensity that made her an interesting character to begin with .","ah-nuld's action hero days might be over .","it's clear why deuces wild , which was shot two years ago , has been gathering dust on mgm's shelf .","feels like nothing quite so much as a middle-aged moviemaker's attempt to surround himself with beautiful , half-naked women .","when the precise nature of matthew's predicament finally comes into sharp focus , the revelation fails to justify the build-up .","this picture is murder by numbers , and as easy to be bored by as your abc's , despite a few whopping shootouts .","hilarious musical comedy though stymied by accents thick as mud .","if you are into splatter movies , then you will probably have a reasonably good time with the salton sea .","a dull , simple-minded and stereotypical tale of drugs , death and mind-numbing indifference on the inner-city streets .","the feature-length stretch . . . strains the show's concept ."]]
label: [[1,1,1,1,1,1,1,1,1,1,...,0,0,0,0,0,0,0,0,0,0]]

cache_files

< >

( )

데이터셋을 뒷받침하는 Apache Arrow 테이블을 포함하는 캐시 파일.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.cache_files
[{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-validation.arrow'}]

num_columns

< >

( )

데이터셋의 열 수.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.num_columns
2

num_rows

< >

( )

데이터셋의 행 수(Dataset.len()와 동일).

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.num_rows
1066

column_names

< >

( )

데이터셋의 열 이름.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.column_names
['text', 'label']

형상

< >

( )

데이터셋의 형태(열 수, 행 수).

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.shape
(1066, 2)

unique

< >

( column: str ) → list

매개변수

  • column (str) — 컬럼 이름(column_names로 모든 컬럼 이름을 나열할 수 있습니다).

반환값

list

주어진 열의 고유 요소 목록.

열의 고유 요소 목록을 반환합니다.

이것은 저수준 백엔드에서 구현되어 있어 매우 빠릅니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.unique('label')
[1, 0]

flatten

< >

( new_fingerprint: typing.Optional[str] = Nonemax_depth = 16 ) → Dataset

매개변수

  • new_fingerprint (str, 선택 사항) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

반환값

데이터셋

열이 평탄화(flattened)된 데이터셋의 복사본입니다.

Flatten the table. struct 타입인 각 열은 struct 필드별로 하나의 열로 평탄화됩니다. 다른 열은 변경되지 않습니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad", split="train")
>>> ds.features
{'id': Value('string'),
 'title': Value('string'),
 'context': Value('string'),
 'question': Value('string'),
 'answers': {'text': List(Value('string')),
 'answer_start': List(Value('int32'))}}
>>> ds = ds.flatten()
>>> ds
Dataset({
    features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
    num_rows: 87599
})

캐스트

< >

( features: Featuresbatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000num_proc: typing.Optional[int] = None ) → Dataset

매개변수

  • features (Features) — 데이터셋을 변환할 새 features입니다. features의 필드 이름은 현재 열 이름과 일치해야 합니다. 데이터의 유형도 서로 변환 가능해야 합니다. 예를 들어 str <-> ClassLabel와 같이 단순하지 않은 변환의 경우 map()을 사용하여 Dataset을 업데이트해야 합니다.
  • batch_size (int, 기본값 1000) — cast에 전달되는 배치당 예시 수입니다. batch_size <= 0 또는 batch_size == None인 경우, 전체 데이터셋을 단일 배치로 cast에 전달합니다.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • load_from_cache_file (bool, 캐싱이 활성화된 경우 기본값은 True) — function의 현재 계산을 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • cache_file_name (str, 선택 사항, 기본값 None) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회(lookup) 횟수가 줄고, 값이 낮을수록 map() 실행 중 임시 메모리 사용량이 줄어듭니다.
  • num_proc (int, 선택 사항, 기본값 None) — 멀티프로세싱에 사용할 프로세스 수입니다. 기본적으로 멀티프로세싱을 사용하지 않습니다.

반환값

데이터셋

캐스팅된 기능이 포함된 데이터셋의 복사본입니다.

데이터셋을 새로운 기능 집합으로 캐스팅합니다.

예:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds.features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure]new_fingerprint: typing.Optional[str] = None )

매개변수

  • column (str) — 열 이름.
  • feature (FeatureType) — 대상 feature입니다.
  • new_fingerprint (str, 선택 사항) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

디코딩을 위해 컬럼을 feature로 캐스팅합니다.

예:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]]new_fingerprint: typing.Optional[str] = None ) → Dataset

매개변수

  • column_names (Union[str, List[str]]) — 제거할 열의 이름입니다.
  • new_fingerprint (str, 선택 사항) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

반환값

데이터셋

제거할 열이 없는 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 컬럼과 해당 컬럼에 연결된 features를 제거합니다.

remove_columns을 사용하여 map()으로 컬럼을 제거할 수도 있지만, 현재 메서드는 나머지 컬럼의 데이터를 복사하지 않으므로 더 빠릅니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.remove_columns('label')
Dataset({
    features: ['text'],
    num_rows: 1066
})
>>> ds = ds.remove_columns(column_names=ds.column_names) # Removing all the columns returns an empty dataset with the `num_rows` property set to 0
Dataset({
    features: [],
    num_rows: 0
})

rename_column

< >

( original_column_name: strnew_column_name: strnew_fingerprint: typing.Optional[str] = None ) → Dataset

매개변수

  • original_column_name (str) — 이름을 변경할 열의 이름.
  • new_column_name (str) — 열의 새 이름.
  • new_fingerprint (str, 선택 사항) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

반환값

데이터셋

열 이름이 변경된 데이터셋의 복사본.

데이터셋의 컬럼 이름을 변경하고, 원래 컬럼에 연결된 특징을 새 컬럼 이름 아래로 이동합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.rename_column('label', 'label_new')
Dataset({
    features: ['text', 'label_new'],
    num_rows: 1066
})

rename_columns

< >

( column_mapping: dictnew_fingerprint: typing.Optional[str] = None ) → Dataset

매개변수

  • column_mapping (Dict[str, str]) — 새 이름으로 변경할 열의 매핑
  • new_fingerprint (str, 선택 사항) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

반환값

데이터셋

열 이름이 변경된 데이터셋의 복사본

데이터셋의 여러 열 이름을 변경하고, 원래 열에 연결된 기능을 새 열 이름 아래로 이동합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.rename_columns({'text': 'text_new', 'label': 'label_new'})
Dataset({
    features: ['text_new', 'label_new'],
    num_rows: 1066
})

select_columns

< >

( column_names: typing.Union[str, list[str]]new_fingerprint: typing.Optional[str] = None ) → Dataset

매개변수

  • column_names (Union[str, List[str]]) — 유지할 열의 이름입니다.
  • new_fingerprint (str, 선택 사항) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

반환값

데이터셋

선택된 열로만 구성된 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 컬럼과 해당 컬럼에 연관된 features를 선택합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.select_columns(['text'])
>>> ds
Dataset({
    features: ['text'],
    num_rows: 1066
})

class_encode_column

< >

( column: strinclude_nulls: bool = False )

매개변수

  • column (str) — 캐스트할 열의 이름 (column_names로 모든 열 이름 나열)
  • include_nulls (bool, 기본값은 False) — 클래스 라벨에 null 값을 포함할지 여부입니다. True, 인 경우, null 값은 "None" 클래스 라벨로 인코딩됩니다.

    1.14.2에 추가됨

주어진 컬럼을 ClassLabel으로 캐스팅하고 테이블을 업데이트합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("google/boolq", split="validation")
>>> ds.features
{'answer': Value('bool'),
 'passage': Value('string'),
 'question': Value('string')}
>>> ds = ds.class_encode_column('answer')
>>> ds.features
{'answer': ClassLabel(num_classes=2, names=['False', 'True']),
 'passage': Value('string'),
 'question': Value('string')}

__len__

< >

( )

데이터셋의 행 수.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.__len__
<bound method Dataset.__len__ of Dataset({
    features: ['text', 'label'],
    num_rows: 1066
})>

__iter__

< >

( )

예제를 반복합니다.

Dataset.set_format()로 포맷이 설정된 경우, 선택된 포맷으로 행이 반환됩니다.

iter

< >

( batch_size: intdrop_last_batch: bool = False )

매개변수

  • batch_size (int) — yield할 각 배치의 크기.
  • drop_last_batch (bool, 기본값 False) — batch_size보다 작은 마지막 배치를 삭제할지 여부

크기 batch_size의 배치들을 순회합니다.

[~datasets.Dataset.set_format]로 포맷이 설정된 경우, 선택된 포맷으로 행이 반환됩니다.

formatted_as

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

매개변수

  • type (str, 선택 사항) — [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']에서 선택한 출력 유형입니다. None은 getitem이 Python 객체를 반환함을 의미합니다(기본값).
  • columns (List[str], 선택 사항) — 출력에서 포맷할 열. None은 __getitem__가 모든 열을 반환함을 의미합니다(기본값).
  • output_all_columns (bool, 기본값 False) — 출력에서 포맷되지 않은 컬럼도 (python 객체로) 유지합니다.
  • **format_kwargs (추가 키워드 인자) — np.array, torch.tensor 또는 tensorflow.ragged.constant와 같은 변환 함수에 전달되는 키워드 인자입니다.

with 문장에서 사용됩니다. __getitem__ 반환 형식(타입 및 열)을 설정합니다.

set_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

매개변수

  • type (str, 선택 사항) — [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']에서 선택한 출력 유형입니다. None은 __getitem__가 python 객체를 반환함을 의미합니다(기본값).
  • columns (List[str], 선택 사항) — 출력에서 포맷할 열. None은 __getitem__가 모든 열을 반환함을 의미합니다(기본값).
  • output_all_columns (bool, 기본값 False) — 출력에서 포맷되지 않은 컬럼도 (python 객체로) 유지합니다.
  • **format_kwargs (추가 키워드 인자) — np.array, torch.tensor 또는 tensorflow.ragged.constant와 같은 변환 함수에 전달되는 키워드 인자입니다.

__getitem__ 반환 형식(타입 및 열)을 설정합니다. 데이터 포맷팅은 온더플라이로 적용됩니다. type 형식(예: “numpy”)은 __getitem__를 사용할 때 배치 포맷팅에 사용됩니다. 또한 set_transform()을 사용하여 사용자 정의 변환으로 포맷팅하는 것도 가능합니다.

set_format를 호출한 후 map()을 호출할 수 있습니다. map이 새로운 열을 추가할 수 있으므로, 포맷된 열 목록

업데이트됩니다. 이 경우, 데이터셋에 map을 적용하여 새 컬럼을 추가하면 이 컬럼은 다음과 같이 포맷됩니다:

new formatted columns = (all columns - previously unformatted columns)

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.set_format(type='numpy', columns=['text', 'label'])
>>> ds.format
{'type': 'numpy',
'format_kwargs': {},
'columns': ['text', 'label'],
'output_all_columns': False}

set_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

매개변수

  • transform (Callable, 선택 사항) — 사용자가 정의한 포맷 변환으로, set_format()으로 정의된 포맷을 대체합니다. 포맷 함수는 배치(dict 형식)를 입력으로 받아 배치를 반환하는 콜러블입니다. 이 함수는 __getitem__에서 객체를 반환하기 직전에 적용됩니다.
  • columns (List[str], 선택 사항) — 출력에서 포맷할 열입니다. 지정한 경우, 변환의 입력 배치에는 해당 열만 포함됩니다.
  • output_all_columns (bool, 기본값 False) — 출력에 포맷되지 않은 컬럼도 포함합니다 (python 객체로). True로 설정하면, transform의 출력과 함께 다른 포맷되지 않은 컬럼도 유지됩니다.

이 변환을 사용하여 __getitem__의 반환 형식을 설정합니다. __getitem__이 호출될 때 배치에 대해 이 변환이 즉시 적용됩니다. set_format()와 마찬가지로, reset_format()을 사용하여 초기화할 수 있습니다.

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
>>> def encode(batch):
...     return tokenizer(batch['text'], padding=True, truncation=True, return_tensors='pt')
>>> ds.set_transform(encode)
>>> ds[0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1]),
 'input_ids': tensor([  101, 29353,  2135, 15102,  1996,  9428, 20868,  2890,  8663,  6895,
         20470,  2571,  3663,  2090,  4603,  3017,  3008,  1998,  2037, 24211,
         5637,  1998, 11690,  2336,  1012,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0])}

reset_format

< >

( )

__getitem__ 반환 형식을 Python 객체 및 모든 컬럼으로 재설정합니다.

self.set_format()와 동일합니다

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.set_format(type='numpy', columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds.format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
>>> ds.reset_format()
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}

with_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

매개변수

  • type (str, 선택 사항) — [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']에서 선택한 출력 유형입니다. None은 __getitem__가 python 객체를 반환함을 의미합니다(기본값).
  • columns (List[str], 선택 사항) — 출력에서 포맷할 열. None은 __getitem__가 모든 열을 반환함을 의미합니다(기본값).
  • output_all_columns (bool, 기본값 False) — 출력에서 포맷되지 않은 컬럼도 (python 객체로) 유지합니다.
  • **format_kwargs (추가 키워드 인자) — np.array, torch.tensor 또는 tensorflow.ragged.constant와 같은 변환 함수에 전달되는 키워드 인자입니다.

__getitem__ 반환 형식(타입 및 열)을 설정합니다. 데이터 포맷팅은 온더플라이로 적용됩니다. type 형식(예: “numpy”)은 __getitem__를 사용할 때 배치 포맷팅에 사용됩니다.

with_transform()를 사용하여 포맷팅에 커스텀 트랜스포메이션을 사용하는 것도 가능합니다.

set_format()과 달리, with_format은 새로운 Dataset 객체를 반환합니다.

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
>>> ds = ds.with_format("torch")
>>> ds.format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'torch'}
>>> ds[0]
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

with_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

매개변수

  • transform (Callable, optional) — 사용자가 정의한 포맷 변환으로, set_format()으로 정의된 포맷을 대체합니다. 포맷 함수는 배치(dict 형태)를 입력으로 받아 배치를 반환하는 콜러블입니다. 이 함수는 __getitem__에서 객체를 반환하기 직전에 적용됩니다.
  • columns (List[str], optional) — 출력에서 포맷할 열입니다. 지정한 경우, transform의 입력 배치에는 해당 열만 포함됩니다.
  • output_all_columns (bool, 기본값 False) — 출력에 포맷되지 않은 컬럼도 포함합니다 (python 객체로). True로 설정하면, 변환 결과와 함께 다른 포맷되지 않은 컬럼도 유지됩니다.

이 변환을 사용하여 __getitem__의 반환 형식을 설정합니다. __getitem__이 호출될 때 배치에 대해 이 변환이 즉시 적용됩니다.

set_format()와 마찬가지로, reset_format()을 사용하여 초기화할 수 있습니다.

set_transform()과 달리, with_transform은 새로운 Dataset 객체를 반환합니다.

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> def encode(example):
...     return tokenizer(example["text"], padding=True, truncation=True, return_tensors='pt')
>>> ds = ds.with_transform(encode)
>>> ds[0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1]),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
         1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
         1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0])}

__getitem__

< >

( key )

열(문자열 이름) 또는 행(정수 인덱스, 인덱스 또는 불리언의 반복 가능 객체)을 인덱싱하는 데 사용할 수 있습니다.

cleanup_cache_files

< >

( ) → int

반환값

int

삭제된 파일의 수.

현재 사용 중인 캐시 파일이 있는 경우를 제외하고, 데이터셋 캐시 디렉터리의 모든 캐시 파일을 정리합니다.

이 명령을 실행할 때 다른 프로세스가 다른 캐시 파일을 사용 중이지 않은지 주의하세요.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds.cleanup_cache_files()
10

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsefn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesuffix_template: str = '_{rank:05d}_of_{num_proc:05d}'new_fingerprint: typing.Optional[str] = Nonedesc: typing.Optional[str] = Nonetry_original_type: typing.Optional[bool] = Trueon_mixed_types: typing.Optional[typing.Literal['use_json']] = 'use_json' )

매개변수

  • function (Callable) — 다음 중 하나의 시그니처를 가진 함수:
    • batched=False이고 with_indices=False이며 with_rank=False인 경우 function(example: Dict[str, Any]) -> Dict[str, Any]
    • function(example: Dict[str, Any], *extra_args) -> Dict[str, Any] batched=False이고 with_indices=True 및/또는 with_rank=True인 경우 (각각 추가 인자 하나씩)
    • batched=True이고 with_indices=False이고 with_rank=False인 경우 function(batch: Dict[str, List]) -> Dict[str, List]
    • function(batch: Dict[str, List], *extra_args) -> Dict[str, List] batched=True이고 with_indices=True이고/또는 with_rank=True인 경우 (각각 추가 인자 하나씩)

    고급 사용의 경우, 이 함수는 pyarrow.Table를 반환할 수도 있습니다. 함수가 비동기(asynchronous)인 경우, map는 사용자의 함수를 병렬로 실행합니다. 또한 함수가 아무것도 반환하지 않는 경우(None), map는 사용자의 함수를 실행하고 데이터셋을 변경하지 않은 상태로 반환합니다. 함수가 제공되지 않으면, 항등 함수(identity function)인 lambda x: x를 기본값으로 사용합니다.

  • with_indices (bool, 기본값 False) — function에 예시 인덱스를 제공합니다. 이 경우 function의 시그니처는 def function(example, idx[, rank]): ...여야 합니다.
  • with_rank (bool, 기본값 False) — function에 프로세스 랭크를 전달합니다. 이 경우 function의 시그니처는 def function(example[, idx], rank): ...여야 합니다.
  • input_columns (Optional[Union[str, List[str]]], 기본값 None) — function에 위치 인수로 전달할 열입니다. None인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.
  • batched (bool, 기본값 False) — function에 예시 배치(batch)를 제공합니다.
  • batch_size (int, 선택 사항, 기본값 1000) — batched=True인 경우 function에 배치별로 제공되는 예시 수입니다. batch_size <= 0 또는 batch_size == None인 경우, 전체 데이터셋을 단일 배치로 function에 제공합니다.
  • drop_last_batch (bool, 기본값 False) — batch_size보다 작은 마지막 배치에 대해 함수로 처리하는 대신 버릴지 여부입니다.
  • remove_columns (Optional[Union[str, List[str]]], 기본값 None) — 매핑을 수행하는 동안 선택된 컬럼을 제거합니다. 컬럼은 function의 출력으로 예시를 업데이트하기 전에 제거되므로, function이 remove_columns에 포함된 이름의 컬럼을 추가하는 경우 해당 컬럼은 유지됩니다.
  • keep_in_memory (bool, 기본값 False) — 데이터셋을 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — function의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • cache_file_name (str, 선택 사항, 기본값 None) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.
  • features (Optional[datasets.Features], 기본값 None) — 자동 생성되는 대신 특정 Features를 사용하여 캐시 파일을 저장합니다.
  • disable_nullable (bool, 기본값 False) — 테이블에서 null 값을 허용하지 않습니다.
  • fn_kwargs (Dict, 선택 사항, 기본값 None) — function에 전달할 키워드 인자입니다.
  • num_proc (int, 선택 사항, 기본값은 None) — 멀티프로세싱에 사용할 프로세스 수입니다.
    • None 또는 0인 경우, 멀티프로세싱을 사용하지 않고 작업이 메인 프로세스에서 실행됩니다.
    • If greater than 1, one or multiple worker processes are used to process data in parallel. Note: The function passed to map() must be picklable for multiprocessing to work correctly (i.e., prefer functions defined at the top level of a module, not inside another function or class). suffixtemplate (str): If cache_file_name is specified, then this suffix will be added at the end of the base name of each. Defaults to `”{rank:05d}of{num_proc:05d}”. For example, if cache_file_nameis "processed.arrow", then forrank=1andnum_proc=4, the resulting file would be “processed_00001_of_00004.arrow”` for the default suffix.
  • new_fingerprint (str, 선택 사항, 기본값 None) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.
  • desc (str, 선택 사항, 기본값 None) — 예제를 매핑하는 동안 진행률 바와 함께 표시할 의미 있는 설명입니다.
  • try_original_type (Optional[bool], 기본값 True) — 원래 열의 타입을 유지하려고 시도합니다(예: int32 -> int32). 항상 새로운 타입을 추론하려면 False로 설정하세요.
  • on_mixed_types (Literal["use_json"], 선택 사항, 기본값은 None) — “use_json”인 경우, 미리 정의된 스키마 없이 데이터를 포함하는 비정형 필드인 혼합 타입 필드에 대해 Json() 타입을 사용합니다. 이 경우 혼합 타입 필드는 Json()으로 설정됩니다.

    … 문자열/정수/부동소수점 숫자의 혼합 목록이나, 임의의 값 유형을 가진 사전과 같은 목록을 로드할 수 있습니다.

    4.7.0에 추가됨

map 메서드를 사용하여 테이블의 모든 예시(개별 또는 배치 단위)에 함수를 적용하고 테이블을 업데이트합니다. 함수가 이미 존재하는 컬럼을 반환하면 해당 컬럼을 덮어씁니다.

batched 매개변수를 사용하여 함수가 배치 처리되어야 하는지 여부를 지정할 수 있습니다:

  • False인 경우, 이 함수는 1개의 예시를 입력으로 받아 1개의 예시를 반환해야 합니다. 예시는 사전(dictionary)이며, 예를 들어 {"text": "Hello there !"}과 같습니다.
  • True이고 batch_size가 1인 경우, 이 함수는 1개의 예시로 구성된 배치로 입력을 받아 1개 이상의 예시로 구성된 배치를 반환할 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 1개의 예시로 구성된 배치는 {"text": ["Hello there !"]}입니다.
  • True이고 batch_size가 n > 1인 경우, 이 함수는 n개의 예시로 구성된 배치(batch)를 입력으로 받아 n개의 예시로 구성된 배치 또는 임의의 개수의 예시로 구성된 배치를 반환할 수 있습니다. 마지막 배치에는 n개보다 적은 예시가 포함될 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 n개의 예시로 구성된 배치는 {"text": ["Hello there !"] * n}입니다.

함수가 비동기(asynchronous)인 경우, map은 최대 1,000개의 동시 호출을 허용하면서 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 asyncio.Semaphore를 사용하는 것이 권장됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> ds[0:3]["text"]
['Review: compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'Review: the soundtrack alone is worth the price of admission .',
 'Review: rodriguez does a splendid job of racial profiling hollywood style--casting excellent latin actors of all ages--a trend long overdue .']

# process a batch of examples
>>> ds = ds.map(lambda example: tokenizer(example["text"]), batched=True)
# set number of processors
>>> ds = ds.map(add_prefix, num_proc=4)

필터

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonesuffix_template: str = '_{rank:05d}_of_{num_proc:05d}'new_fingerprint: typing.Optional[str] = Nonedesc: typing.Optional[str] = None )

매개변수

  • function (Callable) — 다음 중 하나의 시그니처를 가진 Callable입니다:
    • function(example: Dict[str, Any]) -> bool if batched=False and with_indices=False and with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool batched=False이고 with_indices=True 및/또는 with_rank=True인 경우 (각각 추가 인자 하나씩)
    • batched=True이고 with_indices=False이고 with_rank=False인 경우 function(batch: Dict[str, List]) -> List[bool]
    • batched=True이고 with_indices=True 및/또는 with_rank=True인 경우 (각각 하나의 추가 인자) function(batch: Dict[str, List], *extra_args) -> List[bool]

    함수가 비동기(asynchronous)인 경우, filter는 해당 함수를 병렬로 실행합니다. 함수가 제공되지 않으면 항상 True를 반환하는 함수, 즉 lambda x: True가 기본값으로 사용됩니다.

  • with_indices (bool, 기본값 False) — function에 예시 인덱스를 제공합니다. 이 경우 function의 시그니처는 def function(example, idx[, rank]): ...여야 합니다.
  • with_rank (bool, 기본값 False) — function에 프로세스 랭크를 전달합니다. 이 경우 function의 시그니처는 def function(example[, idx], rank): ...여야 합니다.
  • input_columns (str 또는 List[str], 선택 사항) — function에 위치 인수로 전달할 열입니다. None인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.
  • batched (bool, 기본값 False) — function에 예시 배치(batch)를 제공합니다.
  • batch_size (int, 선택 사항, 기본값 1000) — batched = True인 경우 function에 배치별로 전달할 예시 수입니다. batched = False인 경우 function에 배치별로 하나의 예시가 전달됩니다. batch_size <= 0 또는 batch_size == None인 경우 전체 데이터셋을 단일 배치로 function에 제공합니다.
  • keep_in_memory (bool, 기본값 False) — 데이터셋을 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — function의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • cache_file_name (str, 선택 사항) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.
  • fn_kwargs (dict, 선택 사항) — function에 전달할 키워드 인자.
  • num_proc (int, 선택 사항, 기본값은 None) — 멀티프로세싱에 사용할 프로세스 수입니다. None 또는 0이면 멀티프로세싱을 사용하지 않고 메인 프로세스에서 작업을 실행합니다. 1보다 크면 하나 이상의 워커 프로세스를 사용하여 데이터를 병렬로 처리합니다. 참고: 멀티프로세싱이 올바르게 작동하려면 map()에 전달되는 함수는 picklable이어야 합니다(즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).
    • None 또는 0인 경우, 멀티프로세싱을 사용하지 않고 작업이 메인 프로세스에서 실행됩니다.
    • 1보다 크면, 데이터를 병렬로 처리하기 위해 하나 이상의 워커 프로세스가 사용됩니다. 참고: map()에 전달되는 함수는 멀티프로세싱이 올바르게 작동하려면 picklable이어야 합니다 (즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).
  • suffix_template (str) — cache_file_name이 지정된 경우, 각 파일의 기본 이름 끝에 이 접미사가 추가됩니다. 예를 들어, cache_file_name이 "processed.arrow"이고 rank = 1, num_proc = 4인 경우, 기본 접미사(_{rank:05d}_of_{num_proc:05d})를 사용할 때 생성되는 파일은 "processed_00001_of_00004.arrow"가 됩니다.
  • new_fingerprint (str, 선택 사항) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.
  • desc (str, 선택 사항, 기본값 None) — 예제를 필터링하는 동안 진행률 바와 함께 표시할 의미 있는 설명입니다.

… 테이블의 모든 요소에 필터 함수를 배치별로 적용하고, 필터 함수에 따라 예제가 포함된 경우에만 유지되도록 테이블을 업데이트합니다.

함수가 비동기(asynchronous)인 경우, filter는 최대 1,000개의 동시 호출(구성 가능)로 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 asyncio.Semaphore를 사용하는 것이 권장됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.filter(lambda x: x["label"] == 1)
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 533
})

선택

< >

( indices: Iterablekeep_in_memory: bool = Falseindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

매개변수

  • indices (range, list, iterable, ndarray 또는 Series) — 인덱싱을 위한 정수 인덱스의 범위, 리스트 또는 1차원 배열입니다. 인덱스가 연속된 범위에 해당하면 Arrow 테이블은 단순히 슬라이싱됩니다. 그러나 연속되지 않은 인덱스 리스트를 전달하면 인덱스 매핑이 생성되는데, 이는 훨씬 비효율적이지만 요청된 행으로 구성된 Arrow 테이블을 다시 생성하는 것보다는 여전히 빠릅니다.
  • keep_in_memory (bool, 기본값 False) — 인덱스 매핑을 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • indices_cache_file_name (str, 선택 사항, 기본값 None) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 인덱스 매핑을 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.
  • new_fingerprint (str, 선택 사항, 기본값 None) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

인덱스의 목록/배열에 따라 선택된 행을 포함하는 새로운 데이터셋을 생성합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.select(range(4))
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 4
})

sort

< >

( column_names: typing.Union[str, collections.abc.Sequence[str]]reverse: typing.Union[bool, collections.abc.Sequence[bool]] = Falsenull_placement: str = 'at_end'keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

매개변수

  • column_names (Union[str, Sequence[str]]) — 정렬할 열 이름입니다.
  • reverse (Union[bool, Sequence[bool]], 기본값 False) — True인 경우, 오름차순 대신 내림차순으로 정렬합니다. 단일 bool 값을 제공하는 경우, 해당 값은 모든 열 이름의 정렬에 적용됩니다. 그렇지 않으면 column_names와 동일한 길이와 순서를 가진 bool 목록을 제공해야 합니다.
  • null_placement (str, 기본값은 at_end) — 를 None 값을 앞에 배치하려면 at_start 또는 first 또는 끝에 배치하려면 at_end 또는 last

    1.14.2에 추가됨

  • keep_in_memory (bool, 기본값 False) — 정렬된 인덱스를 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — 정렬된 인덱스를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • indices_cache_file_name (str, 선택 사항, 기본값 None) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 정렬된 인덱스를 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성자(write operation)의 한 번에 기록할 행 수입니다. 값이 높을수록 캐시 파일 크기가 작아지고, 값이 낮을수록 임시 메모리 사용량이 줄어듭니다.
  • new_fingerprint (str, 선택 사항, 기본값 None) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

하나 또는 여러 열에 따라 정렬된 새로운 데이터셋을 생성합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset('cornell-movie-review-data/rotten_tomatoes', split='validation')
>>> ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> sorted_ds = ds.sort('label')
>>> sorted_ds['label'][:10]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> another_sorted_ds = ds.sort(['label', 'text'], reverse=[True, False])
>>> another_sorted_ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

shuffle

< >

( seed: typing.Optional[int] = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000new_fingerprint: typing.Optional[str] = None )

매개변수

  • seed (int, 선택 사항) — generator=None인 경우 기본 BitGenerator를 초기화하는 데 사용할 시드입니다. None인 경우, OS에서 새로운 예측 불가능한 엔트로피를 가져옵니다. int 또는 array_like[ints]가 전달되면, SeedSequence에 전달되어 초기 BitGenerator 상태를 유도합니다.
  • generator (numpy.random.Generator, 선택 사항) — 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. generator=None(기본값)인 경우, np.random.default_rng(NumPy의 기본 BitGenerator(PCG64))를 사용합니다.
  • keep_in_memory (bool, 기본값 False) — 캐시 파일에 쓰는 대신 셔플된 인덱스를 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — 셔플된 인덱스를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • indices_cache_file_name (str, 선택 사항) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 섞인 인덱스를 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.
  • new_fingerprint (str, 선택 사항, 기본값 None) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

행이 섞인 새로운 Dataset을 생성합니다.

현재 shuffling은 numpy 랜덤 생성기를 사용합니다. NumPy BitGenerator를 제공하거나, NumPy의 기본 랜덤 생성기(PCG64)를 초기화할 시드를 지정할 수 있습니다.

Shuffling은 인덱스 목록 [0:len(my_dataset)]을 섞어 인덱스 매핑을 생성합니다. 하지만 Dataset에 인덱스 매핑이 있는 순간 속도가 10배까지 느려질 수 있습니다. 이유는 인덱스 매핑을 사용해 읽을 행 인덱스를 가져오는 추가 단계가 발생하고, 무엇보다 더 이상 연속된 데이터 청크를 읽지 않기 때문입니다. 속도를 회복하려면 인덱스 매핑을 제거하는 Dataset.flatten_indices()를 사용해 디스크에 전체 데이터셋을 다시 작성해야 합니다.

데이터셋의 크기에 따라 상당한 시간이 소요될 수 있습니다:

my_dataset[0]  # fast
my_dataset = my_dataset.shuffle(seed=42)
my_dataset[0]  # up to 10x slower
my_dataset = my_dataset.flatten_indices()  # rewrite the shuffled dataset on disk as contiguous chunks of data
my_dataset[0]  # fast again

이 경우 IterableDataset으로 전환하고, 그 빠른 근사 셔플링 방법인 IterableDataset.shuffle()을 활용하는 것을 권장합니다.

shards의 순서만 섞고 데이터셋에 shuffle 버퍼를 추가할 뿐이므로, 데이터셋의 속도가 최적 상태로 유지됩니다:

my_iterable_dataset = my_dataset.to_iterable_dataset(num_shards=128)
for example in enumerate(my_iterable_dataset):  # fast
    pass

shuffled_iterable_dataset = my_iterable_dataset.shuffle(seed=42, buffer_size=100)

for example in enumerate(shuffled_iterable_dataset):  # as fast as before
    pass

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# set a seed
>>> shuffled_ds = ds.shuffle(seed=42)
>>> shuffled_ds['label'][:10]
[1, 0, 1, 1, 0, 0, 0, 0, 0, 0]

건너뛰기

< >

( n: int )

매개변수

  • n (int) — 건너뛸 요소의 개수.

첫 n개 요소를 건너뛰는 새로운 Dataset을 생성합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.skip(1)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'if you sometimes like to go to the movies to have fun , wasabi is a good place to start .'}]

take

< >

( n: int )

매개변수

  • n (int) — 가져올 요소의 개수.

첫 번째 n개 요소만 포함된 새로운 Dataset을 생성합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> small_ds = ds.take(2)
>>> list(small_ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'}]

train_test_split

< >

( test_size: typing.Union[float, int, NoneType] = Nonetrain_size: typing.Union[float, int, NoneType] = Noneshuffle: bool = Truestratify_by_column: typing.Optional[str] = Noneseed: typing.Optional[int] = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonetrain_indices_cache_file_name: typing.Optional[str] = Nonetest_indices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000train_new_fingerprint: typing.Optional[str] = Nonetest_new_fingerprint: typing.Optional[str] = None )

매개변수

  • test_size (Union[float, int, None], 선택 사항) — 테스트 분할의 크기 float인 경우, 0.0과 1.0 사이여야 하며 데이터셋 중 테스트 분할에 포함할 비율을 나타냅니다. int인 경우, 테스트 샘플의 절대 개수를 나타냅니다. None인 경우, 값은 train size의 보수로 설정됩니다. train_size도 None인 경우, 0.25로 설정됩니다.
  • train_size (Union[float, int, None], 선택) — train split의 크기 float인 경우, 0.0과 1.0 사이여야 하며 train split에 포함할 데이터셋의 비율을 나타냅니다. int인 경우, train 샘플의 절대 개수를 나타냅니다. None인 경우, 값은 test 크기의 보수로 자동 설정됩니다.
  • shuffle (bool, 선택 사항, 기본값 True) — 데이터를 분할하기 전에 섞을지 여부.
  • stratify_by_column (str, 선택 사항, 기본값 None) — 데이터의 층화 분할을 수행하는 데 사용할 레이블의 열 이름입니다.
  • seed (int, 선택 사항) — generator=None인 경우 기본 BitGenerator를 초기화하는 데 사용할 시드입니다. None인 경우, OS에서 새로운 예측 불가능한 엔트로피를 가져옵니다. int 또는 array_like[ints]가 전달되면, SeedSequence에 전달되어 초기 BitGenerator 상태를 유도합니다.
  • generator (numpy.random.Generator, 선택 사항) — 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. generator=None(기본값)인 경우, np.random.default_rng(NumPy의 기본 BitGenerator(PCG64))를 사용합니다.
  • keep_in_memory (bool, 기본값 False) — 캐시 파일에 쓰는 대신 분할 인덱스를 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — 스플릿 인덱스를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • train_cache_file_name (str, 선택 사항) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 학습 분할 인덱스를 저장하는 데 사용됩니다.
  • test_cache_file_name (str, 선택 사항) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 테스트 분할 인덱스를 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.
  • train_new_fingerprint (str, 선택 사항, 기본값 None) — 변환 후 학습 세트의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.
  • test_new_fingerprint (str, 선택 사항, 기본값 None) — 변환 후 테스트 세트의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다

두 개의 무작위 train 및 test 부분집합(train과 test Dataset 스플릿)을 포함하는 사전(datasets.DatasetDict)을 반환합니다. 스플릿은 test_size, train_size 및 shuffle에 따라 데이터셋에서 생성됩니다.

이 메서드는 scikit-learn의 train_test_split와 유사합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds = ds.train_test_split(test_size=0.2, shuffle=True)
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 852
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 214
    })
})

# set a seed
>>> ds = ds.train_test_split(test_size=0.2, seed=42)

# stratified split
>>> ds = load_dataset("stanfordnlp/imdb",split="train")
Dataset({
    features: ['text', 'label'],
    num_rows: 25000
})
>>> ds = ds.train_test_split(test_size=0.2, stratify_by_column="label")
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 20000
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 5000
    })
})

shard

< >

( num_shards: intindex: intcontiguous: bool = Truekeep_in_memory: bool = Falseindices_cache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

매개변수

  • num_shards (int) — 데이터셋을 몇 개의 샤드로 분할할지 지정합니다.
  • index (int) — 선택하고 반환할 샤드입니다.
  • contiguous — (bool, 기본값 True): shards에 사용할 인덱스 블록을 연속적으로 선택할지 여부.
  • keep_in_memory (bool, 기본값 False) — 데이터셋을 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • indices_cache_file_name (str, 선택 사항) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 각 샤드의 인덱스를 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 이것은 인덱스 매핑에만 관련됩니다. 캐시 파일 작성자에서 쓰기 작업당 인덱스 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회가 적게 발생하고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.

데이터셋을 num_shards개의 조각으로 나누고 index번째 샤드를 반환합니다.

이것은 결정적으로 샤딩됩니다. dataset.shard(n, i)는 데이터셋을 연속된 청크로 나누므로, 처리 후 쉽게 다시 연결할 수 있습니다. len(dataset) % n == l인 경우, 처음 l개의 데이터셋은 길이가 (len(dataset) // n) + 1이고, 나머지 데이터셋은 길이가 (len(dataset) // n)입니다. datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)])는 원래와 동일한 순서를 가진 데이터셋을 반환합니다.

참고: len(dataset)의 요소 수보다 n이 작거나 같아야 합니다.

반면, dataset.shard(n, i, contiguous=False)는 인덱스가 n = i인 데이터셋의 모든 요소를 포함합니다.

shuffle와 같은 무작위화 연산자를 사용하기 전에 반드시 샤딩을 수행해야 합니다. 샤딩 연산자는 데이터셋 파이프라인의 초기 단계에서 사용하는 것이 가장 좋습니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation")
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 1066
})
>>> ds = ds.shard(num_shards=2, index=0)
>>> ds
Dataset({
    features: ['text', 'label'],
    num_rows: 533
})

반복

< >

( num_times: int )

매개변수

  • num_times (int) — 데이터셋을 반복할 횟수.

num_times회 반복되는 기본 데이터셋을 포함하는 새로운 Dataset을 생성합니다.

itertools.repeat과 마찬가지로, 한 번만 반복하면 전체 데이터셋을 반환합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds = ds.take(2).repeat(2)
>>> list(ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]

to_tf_dataset

< >

( batch_size: typing.Optional[int] = Nonecolumns: typing.Union[str, list[str], NoneType] = Noneshuffle: bool = Falsecollate_fn: typing.Optional[typing.Callable] = Nonedrop_remainder: bool = Falsecollate_fn_args: typing.Optional[dict[str, typing.Any]] = Nonelabel_cols: typing.Union[str, list[str], NoneType] = Noneprefetch: bool = Truenum_workers: int = 0num_test_batches: int = 20 )

매개변수

  • batch_size (int, 선택 사항) — 데이터셋에서 로드할 배치의 크기입니다. 기본값은 None이며, 이는 데이터셋이 배치되지 않음을 의미합니다. 반환된 데이터셋은 나중에 tf_dataset.batch(batch_size)를 사용하여 배치할 수 있습니다.
  • columns (List[str] 또는 str, 선택 사항) — tf.data.Dataset에 로드할 Dataset 컬럼입니다. collate_fn에 의해 생성되고 원래 dataset에 존재하지 않는 컬럼 이름도 사용할 수 있습니다.
  • shuffle(bool, 기본값은 False) — 데이터셋을 로드할 때 순서를 섞습니다. 학습에는 True, 검증/평가에는 False를 권장합니다.
  • drop_remainder(bool, 기본값은 False) — 로딩 시 마지막 불완전한 배치(dropped)를 제거합니다. 데이터셋이 생성하는 모든 배치의 배치 차원 길이가 동일하도록 보장합니다.
  • collate_fn(Callable, 선택 사항) — 샘플 목록을 배치로 collate하는 함수 또는 callable 객체(예: DataCollator).
  • collate_fn_args (Dict, 선택 사항) — collate_fn에 전달할 키워드 인수를 포함하는 선택적 dict입니다.
  • label_cols (List[str] 또는 str, 기본값 None) — 레이블로 로드할 Dataset 컬럼입니다. 많은 모델은 Keras에 위임하지 않고 내부적으로 손실을 계산하므로, 이 경우 columns 입력에 레이블이 포함되어 있다면 여기에서 레이블을 전달하는 것은 선택 사항입니다.
  • prefetch (bool, 기본값 True) — dataloader를 별도의 스레드에서 실행하고 학습을 위한 작은 배치 버퍼를 유지할지 여부입니다. 모델이 학습하는 동안 백그라운드에서 데이터를 로드할 수 있어 성능을 향상시킵니다.
  • num_workers (int, 기본값 0) — 데이터셋 로딩에 사용할 워커 수.
  • num_test_batches (int, 기본값 20) — 데이터셋의 출력 시그니처를 추론하는 데 사용할 배치 수입니다. 이 값이 클수록 시그니처가 더 정확해지지만, 데이터셋 생성에 더 오랜 시간이 걸립니다.

Create a tf.data.Dataset from the underlying Dataset. This tf.data.Dataset will load and collate batches from the Dataset, and is suitable for passing to methods like model.fit() or model.predict(). The dataset will yield dicts for both inputs and labels unless the dict would contain only a single key, in which case a raw tf.Tensor is yielded instead.

예:

>>> ds_train = ds["train"].to_tf_dataset(
...    columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'],
...    shuffle=True,
...    batch_size=16,
...    collate_fn=data_collator,
... )

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonesplit: typing.Optional[str] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

매개변수

  • repo_id (str) — 다음 형식으로 push할 저장소의 ID입니다: <user>/<dataset_name> 또는 <org>/<dataset_name>. 또한 <dataset_name>, 도 허용되며, 이 경우 로그인한 사용자의 namespace가 기본값으로 사용됩니다.

    또한 버킷 내부의 위치일 수도 있습니다. 예: buckets/<user_or_org>/<bucket_name>/...

  • config_name (str, 기본값 “default”) — 데이터셋의 구성 이름(또는 부분 집합)입니다. 기본값은 “default”입니다.
  • set_default (bool, 선택 사항) — 이 구성을 기본 구성으로 설정할지 여부입니다. 그렇지 않으면 기본 구성은 “default”로 지정된 구성입니다.
  • split (str, 선택 사항) — 해당 데이터셋에 할당될 split의 이름입니다. 기본값은 self.split입니다.
  • data_dir (str, 선택 사항) — 업로드된 데이터 파일을 포함할 디렉터리 이름. 기본값은 config_name 이 “default”와 다르면 해당 값, 아니면 “data”입니다.

    2.17.0에 추가

  • commit_message (str, 선택 사항) — push할 때 사용할 커밋 메시지입니다. 기본값은 "Upload dataset"입니다.
  • commit_description (str, 선택 사항) — 생성될 커밋에 대한 설명입니다. PR이 생성되는 경우 PR에 대한 설명이기도 합니다(create_pr True인 경우).

    2.16.0에 추가

  • private (bool, 선택 사항) — 리포지토리를 비공개로 만들지 여부를 지정합니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 리포지토리는 공개됩니다. 이미 리포지토리가 존재하면 이 값은 무시됩니다.
  • token (str, 선택) — Hugging Face Hub에 대한 선택적 인증 토큰입니다. 토큰이 전달되지 않으면 hf auth login으로 로그인할 때 로컬에 저장된 토큰을 기본값으로 사용합니다. 토큰이 전달되지 않고 사용자가 로그인되지 않은 경우 오류가 발생합니다.
  • revision (str, 선택 사항) — 업로드한 파일을 푸시할 브랜치입니다. 기본값은 "main" 브랜치입니다.

    2.15.0에 추가

  • create_pr (bool, 선택 사항, 기본값은 False) — 업로드된 파일로 PR을 생성할지, 아니면 직접 커밋할지 여부.

    2.15.0에 추가

  • max_shard_size (int 또는 str, 선택 사항, 기본값 "500MB") — hub에 업로드할 dataset shard의 최대 크기입니다. 문자열로 표현하는 경우 숫자 뒤에 단위(예: "5MB")가 따라와야 합니다.
  • num_shards (int, 선택 사항) — 쓰기 위한 샤드 수. 기본적으로 샤드 수는 max_shard_size.

    2.8.0에 추가

  • embed_external_files (bool, 기본값은 True) — shards에 파일 바이트를 임베드할지 여부입니다. 구체적으로, push를 수행하기 전에 다음 유형의 필드에 대해 다음 작업을 수행합니다:
    • Audio 및 Image: 로컬 경로 정보를 제거하고 파일 내용을 Parquet 파일에 임베드합니다.
  • num_proc (int, 선택 사항, 기본값은 None) — 데이터셋을 준비하고 업로드할 때 사용할 프로세스 수입니다. 데이터셋에 샘플이나 임베드할 미디어 파일이 많을 때 유용합니다. HF로의 빠른 업로드를 위한 Rust 클라이언트인 hf_xet과 함께 작동하도록 “spawn” 컨텍스트를 사용합니다. 기본적으로 멀티프로세싱이 비활성화되어 있습니다.

    4.0.0에 추가

Parquet 데이터셋으로 Hub에 데이터셋을 업로드합니다. 데이터셋은 HTTP 요청을 통해 업로드되며, git 또는 git-lfs가 설치되어 있지 않아도 됩니다.

생성된 Parquet 파일은 기본적으로 자체 포함(self-contained)됩니다. 데이터셋에 Image, Audio 또는 Video 데이터가 포함된 경우, Parquet 파일에는 이미지 또는 오디오 파일의 바이트가 저장됩니다. embed_external_files를 False로 설정하여 이 기능을 비활성화할 수 있습니다.

예:

>>> dataset.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset.push_to_hub("<organization>/<dataset_id>", num_shards=1024)

데이터셋에 여러 스플릿(예: train/validation/test)이 있는 경우:

>>> train_dataset.push_to_hub("<organization>/<dataset_id>", split="train")
>>> val_dataset.push_to_hub("<organization>/<dataset_id>", split="validation")
>>> # later
>>> dataset = load_dataset("<organization>/<dataset_id>")
>>> train_dataset = dataset["train"]
>>> val_dataset = dataset["validation"]

데이터셋에 새로운 구성(또는 부분 집합)을 추가하려면(예: 데이터셋에 여러 작업/버전/언어가 있는 경우):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

save_to_disk

< >

( dataset_path: typing.Union[str, bytes, os.PathLike]max_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None )

매개변수

  • dataset_path (path-like) — 데이터셋이 저장될 데이터셋 디렉터리의 경로(예: dataset/train) 또는 원격 URI(예: s3://my-bucket/dataset/train)
  • max_shard_size (int 또는 str, 선택 사항, 기본값 "500MB") — 파일시스템에 저장할 데이터셋 샤드의 최대 크기입니다. 문자열로 표현할 경우, 숫자 뒤에 단위(예: "50MB")가 따라와야 합니다.
  • num_shards (int, 선택 사항) — 쓰기 위한 샤드 수. 기본적으로 샤드 수는 max_shard_size 및 num_proc.

    2.8.0에 추가

  • num_proc (int, 선택 사항) — 데이터셋을 로컬에 다운로드하고 생성할 때 사용할 프로세스 수입니다. 기본적으로 멀티프로세싱이 비활성화되어 있습니다.

    2.8.0에 추가

  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.8.0에 추가

데이터셋을 데이터셋 디렉터리에 저장하거나, fsspec.spec.AbstractFileSystem의 어떤 구현을 사용하여 파일 시스템에 저장합니다.

Image, Audio, Video 데이터의 경우:

Image(), Audio() 및 Video() 데이터는 모두 arrow 파일에 저장됩니다. 경로나 URL을 저장하려면 Value(“string”) 타입을 사용하세요.

예:

>>> ds.save_to_disk("path/to/dataset/directory")
>>> ds.save_to_disk("path/to/dataset/directory", max_shard_size="1GB")
>>> ds.save_to_disk("path/to/dataset/directory", num_shards=1024)

load_from_disk

< >

( dataset_path: typing.Union[str, bytes, os.PathLike]keep_in_memory: typing.Optional[bool] = Nonestorage_options: typing.Optional[dict] = None ) → Dataset or DatasetDict

매개변수

  • dataset_path (path-like) — 데이터셋이 로드될 데이터셋 디렉터리의 경로(예: "dataset/train") 또는 원격 URI(예: "s3//my-bucket/dataset/train")
  • keep_in_memory (bool, 기본값 None) — 데이터셋을 메모리에 복사할지 여부입니다. None인 경우, datasets.config.IN_MEMORY_MAX_SIZE를 0이 아닌 값으로 설정하여 명시적으로 활성화하지 않는 한 데이터셋은 메모리에 복사되지 않습니다. 자세한 내용은 성능 개선 섹션을 참고하세요.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.8.0에 추가

반환값

Dataset 또는 DatasetDict

  • dataset_path가 데이터셋 디렉터리의 경로인 경우, 요청한 데이터셋입니다.
  • dataset_path가 데이터셋 딕토리의 경로인 경우, 각 스플릿을 가진 datasets.DatasetDict입니다.

이전에는 save_to_disk를 사용하여 저장된 데이터셋을 데이터셋 디렉터리 또는 fsspec.spec.AbstractFileSystem의 어떤 구현을 사용하여 파일시스템에서 로드합니다.

예:

>>> ds = load_from_disk("path/to/dataset/directory")

flatten_indices

< >

( keep_in_memory: bool = Falsecache_file_name: typing.Optional[str] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsenum_proc: typing.Optional[int] = Nonenew_fingerprint: typing.Optional[str] = None )

매개변수

  • keep_in_memory (bool, 기본값 False) — 데이터셋을 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • cache_file_name (str, 선택 사항, 기본값 None) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.
  • features (Optional[datasets.Features], 기본값 None) — 자동 생성되는 캐시 파일 대신 특정 Features를 사용하여 캐시 파일을 저장합니다.
  • disable_nullable (bool, 기본값 False) — 테이블에 null 값을 허용합니다.
  • num_proc (int, 선택 사항, 기본값 None) — 캐시를 생성할 때 사용할 최대 프로세스 수입니다. 이미 캐시된 샤드는 순차적으로 로드됩니다.
  • new_fingerprint (str, 선택 사항, 기본값 None) — 변환 후 데이터셋의 새로운 지문입니다. None인 경우, 이전 지문의 해시와 변환 인수를 사용하여 새로운 지문을 계산합니다.

인덱스 매핑을 평탄화하여 새로운 Dataset을 생성하고 캐시합니다.

to_csv

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_csv_kwargs ) → int

매개변수

  • path_or_buf (PathLike 또는 FileOrBuffer) — 파일 경로(예: file.csv), 원격 URI(예: hf://datasets/username/my_dataset_name/data.csv), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.
  • batch_size (int, 선택 사항) — 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • num_proc (int, 선택 사항) — 멀티프로세싱에 사용할 프로세스 수입니다. 기본적으로 멀티프로세싱을 사용하지 않습니다. 이 경우 batch_size의 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE이지만, 충분한 컴퓨팅 자원이 있다면 기본값의 5배 또는 10배로 설정할 수 있습니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.19.0에 추가

  • **to_csv_kwargs (추가 키워드 인수) — pandas의 pandas.DataFrame.to_csv.

    2.10.0에서 변경

    이제 index는 지정되지 않으면 기본적으로 False입니다.

    인덱스를 작성하려면 index=True를 전달하고, index_label을 전달하여 인덱스 열 이름을 설정하세요.

반환값

int

쓰인 문자 또는 바이트 수.

데이터셋을 csv로 내보냅니다

예:

>>> ds.to_csv("path/to/dataset/directory")

to_pandas

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

매개변수

  • batch_size (int, 선택 사항) — batched가 True인 경우 배치의 크기(행 수)입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • batched (bool) — True로 설정하면 batch_size 행의 배치로 데이터셋을 반환하는 생성자를 반환합니다. 기본값은 False입니다(데이터셋 전체를 한 번에 반환).

pandas.DataFrame로 데이터셋을 반환합니다. 대규모 데이터셋의 경우 생성기도 반환할 수 있습니다.

예:

>>> ds.to_pandas()

to_dict

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

매개변수

  • batch_size (int, 선택 사항) — batched가 True인 경우 배치의 크기(행 수)입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • batched (bool) — True로 설정하면 batch_size 행의 배치로 데이터셋을 반환하는 생성자를 반환합니다. 기본값은 False입니다(데이터셋 전체를 한 번에 반환).

Python dict으로 데이터셋을 반환합니다. 대규모 데이터셋의 경우 생성자(generator)를 반환할 수도 있습니다.

예:

>>> ds.to_dict()

to_json

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_json_kwargs ) → int

매개변수

  • path_or_buf (PathLike 또는 FileOrBuffer) — 파일 경로(예: file.json), 원격 URI(예: hf://datasets/username/my_dataset_name/data.json), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.
  • batch_size (int, 선택 사항) — 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • num_proc (int, 선택 사항) — 멀티프로세싱에 사용할 프로세스 수입니다. 기본적으로 멀티프로세싱을 사용하지 않습니다. 이 경우 batch_size의 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE이지만, 충분한 컴퓨팅 자원이 있다면 기본값의 5배 또는 10배로 설정할 수 있습니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.19.0에 추가

  • **to_json_kwargs (추가 키워드 인수) — pandas의 pandas.DataFrame.to_json. 기본 인수는 lines=True 입니다. `orient`가 "split" 또는 "table"인 경우 `index`의 기본값은 `False`입니다. 인덱스를 기록하려면 `index=True`를 전달하세요.

    2.11.0에서 변경

    orient이 "split" 또는 "table"인 경우, index 파라미터의 기본값은 False입니다.

    인덱스를 작성하려면 index=True를 전달하세요.

반환값

int

쓰인 문자 또는 바이트 수.

데이터셋을 JSON Lines 또는 JSON으로 내보냅니다.

기본 출력 형식은 JSON Lines입니다. JSON으로 내보내려면 lines=False 인자와 원하는 orient를 전달하세요.

예:

>>> ds.to_json("path/to/dataset/directory/filename.jsonl")

to_parquet

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**parquet_writer_kwargs ) → int

매개변수

  • path_or_buf (PathLike 또는 FileOrBuffer) — 파일 경로(예: file.parquet), 원격 URI(예: hf://datasets/username/my_dataset_name/data.parquet), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.
  • batch_size (int, 선택 사항) — 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본값은 datasets.config.MAX_ROW_GROUP_SIZE로 정의된 “100MB”의 최대 압축 해제 바이트 크기를 가진 row group을 목표로 합니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.19.0에 추가

  • **parquet_writer_kwargs (추가 키워드 인자) — PyArrow의 pyarrow.parquet.ParquetWriter에 전달할 매개변수.

반환값

int

쓰인 문자 또는 바이트 수.

데이터셋을 parquet로 내보냅니다

예:

>>> ds.to_parquet("path/to/dataset/directory")

to_sql

< >

( name: strcon: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]batch_size: typing.Optional[int] = Nonenum_proc: typing.Optional[int] = None**sql_writer_kwargs ) → int

매개변수

  • name (str) — SQL 테이블 이름.
  • con (str 또는 sqlite3.Connection 또는 sqlalchemy.engine.Connection 또는 sqlalchemy.engine.Connection) — 데이터베이스에 쓰기 위해 사용되는 URI 문자열 또는 SQLite3/SQLAlchemy 연결 객체입니다.
  • batch_size (int, 선택 사항) — 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • num_proc (int, 선택 사항) — 멀티프로세싱에 사용할 프로세스 수입니다. 기본적으로 멀티프로세싱을 사용하지 않습니다. 이 경우 batch_size의 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE이지만, 충분한 컴퓨팅 자원이 있다면 기본값의 5배 또는 10배로 설정할 수 있습니다.
  • **sql_writer_kwargs (추가 키워드 인수) — pandas의 pandas.DataFrame.to_sql.

    2.11.0에서 변경

    이제 index는 지정되지 않으면 기본적으로 False입니다.

    인덱스를 작성하려면 index=True를 전달하고, index_label을 전달하여 인덱스 열 이름을 설정하세요.

반환값

int

기록된 레코드 수입니다.

데이터셋을 SQL 데이터베이스로 내보냅니다.

예:

>>> # con provided as a connection URI string
>>> ds.to_sql("data", "sqlite:///my_own_db.sql")
>>> # con provided as a sqlite3 connection object
>>> import sqlite3
>>> con = sqlite3.connect("my_own_db.sql")
>>> with con:
...     ds.to_sql("data", con)

to_iterable_dataset

< >

( num_shards: typing.Optional[int] = 1 )

매개변수

  • num_shards (int, 기본값 1) — iterable dataset을 인스턴스화할 때 정의할 shard의 수입니다. 이는 특히 큰 dataset에서 데이터를 올바르게 shuffle할 수 있도록 하는 데 유용하며, PyTorch DataLoader를 사용하여 빠른 병렬 로딩을 하거나 분산 환경에서 사용하는 경우에도 유용합니다. Shard는 datasets.Dataset.shard()를 사용하여 정의됩니다. 이는 디스크에 아무것도 작성하지 않고 단순히 데이터를 슬라이스합니다.

맵 스타일 datasets.Dataset에서 datasets.IterableDataset를 가져옵니다. 이는 datasets.load_dataset()로 스트리밍 모드에서 데이터셋을 로드하는 것과 동일하지만, 데이터가 로컬 파일에서 스트리밍되므로 훨씬 빠릅니다.

map-style dataset과 달리 iterable dataset은 지연 평가(lazy) 방식이며, 반복(iteration)만 가능합니다(예: for 루프 사용). 학습 루프에서 순차적으로 읽히기 때문에 iterable dataset은 map-style dataset보다 훨씬 빠릅니다. 필터링이나 처리와 같은 iterable dataset에 적용되는 모든 변환은 dataset의 반복을 시작할 때 실시간으로 수행됩니다.

그럼에도 불구하고 datasets.IterableDataset.shuffle()를 사용하여 반복 가능한 데이터셋을 섞을 수 있습니다. 이는 여러 샤드가 있고 버퍼 크기가 충분히 크도록 지정된 경우 가장 잘 작동하는 빠른 근사 셔플링입니다.

최고의 속도 성능을 얻으려면 데이터셋에 인덱스 매핑이 없는지 확인하세요. 인덱스 매핑이 있는 경우 데이터가 연속적으로 읽히지 않아 속도가 느려질 수 있습니다. 반복 가능 데이터셋으로 전환하기 전에 ds = ds.flatten_indices()를 사용하여 데이터셋을 연속된 데이터 청크로 작성하고 최적의 속도를 확보할 수 있습니다.

예:

기본 사용법:

>>> ids = ds.to_iterable_dataset()
>>> for example in ids:
...     pass

지연 필터링 및 처리를 사용하여:

>>> ids = ds.to_iterable_dataset()
>>> ids = ids.filter(filter_fn).map(process_fn)  # will filter and process on-the-fly when you start iterating over the iterable dataset
>>> for example in ids:
...     pass

효율적인 셔플링을 가능하게 하는 샤딩:

>>> ids = ds.to_iterable_dataset(num_shards=64)  # the dataset is split into 64 shards to be iterated over
>>> ids = ids.shuffle(buffer_size=10_000)  # will shuffle the shards order and use a shuffle buffer for fast approximate shuffling when you start iterating
>>> for example in ids:
...     pass

PyTorch DataLoader를 사용하는 경우:

>>> import torch
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.filter(filter_fn).map(process_fn)
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards to each worker to load, filter and process when you start iterating
>>> for example in ids:
...     pass

PyTorch DataLoader와 shuffling을 사용하여:

>>> import torch
>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.shuffle(buffer_size=10_000)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards from the shuffled list of shards to each worker when you start iterating
>>> for example in ids:
...     pass

PyTorch DataLoader와 shuffling을 사용하는 PyTorch DDP와 같은 분산 설정에서

>>> from datasets.distributed import split_dataset_by_node
>>> ids = ds.to_iterable_dataset(num_shards=512)
>>> ids = ids.shuffle(buffer_size=10_000, seed=42)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> ids = split_dataset_by_node(ds, world_size=8, rank=0)  # will keep only 512 / 8 = 64 shards from the shuffled lists of shards when you start iterating
>>> dataloader = torch.utils.data.DataLoader(ids, num_workers=4)  # will assign 64 / 4 = 16 shards from this node's list of shards to each worker when you start iterating
>>> for example in ids:
...     pass

와 여러 epoch:

>>> ids = ds.to_iterable_dataset(num_shards=64)
>>> ids = ids.shuffle(buffer_size=10_000, seed=42)  # will shuffle the shards order and use a shuffle buffer when you start iterating
>>> for epoch in range(n_epochs):
...     ids.set_epoch(epoch)  # will use effective_seed = seed + epoch to shuffle the shards and for the shuffle buffer when you start iterating
...     for example in ids:
...         pass
Feel free to also use `IterableDataset.set_epoch()` when using a PyTorch DataLoader or in distributed setups.

add_faiss_index

< >

( column: strindex_name: typing.Optional[str] = Nonedevice: typing.Optional[int] = Nonestring_factory: typing.Optional[str] = Nonemetric_type: typing.Optional[int] = Nonecustom_index: typing.Optional[ForwardRef('faiss.Index')] = Nonebatch_size: int = 1000train_size: typing.Optional[int] = Nonefaiss_verbose: bool = Falsedtype = <class 'numpy.float32'> )

매개변수

  • column (str) — 인덱스에 추가할 벡터의 열입니다.
  • index_name (str, 선택 사항) — 인덱스의 index_name/식별자입니다. 이것은 get_nearest_examples() 또는 search()를 호출할 때 사용되는 index_name입니다. 기본값은 column에 해당합니다.
  • device (Union[int, List[int]], 선택 사항) — 양의 정수인 경우, 사용할 GPU의 인덱스입니다. 음의 정수인 경우, 모든 GPU를 사용합니다. 양의 정수 목록이 전달되면 해당 GPU에서만 실행됩니다. 기본적으로 CPU를 사용합니다.
  • string_factory (str, 선택 사항) — Faiss의 인덱스 팩토리에 전달되어 인덱스를 생성합니다. 기본 인덱스 클래스는 IndexFlat입니다.
  • metric_type (int, 선택 사항) — 메트릭의 유형입니다. 예: faiss.METRIC_INNER_PRODUCT 또는 faiss.METRIC_L2.
  • custom_index (faiss.Index, 선택 사항) — 필요에 맞게 이미 인스턴스화하고 구성한 사용자 지정 Faiss 인덱스입니다.
  • batch_size (int) — 벡터를 추가할 때 사용할 배치 크기 FaissIndex. 기본값은 1000.

    2.4.0에 추가

  • train_size (int, 선택 사항) — 인덱스에 학습 단계가 필요한 경우, 인덱스 학습에 사용할 벡터의 수를 지정합니다.
  • faiss_verbose (bool, 기본값 False) — Faiss 인덱스의 상세 로그 출력을 활성화합니다.
  • dtype (data-type) — 인덱싱되는 numpy 배열의 dtype입니다. 기본값은 np.float32입니다.

Faiss를 사용하여 빠른 검색을 위한 dense 인덱스를 추가합니다. 기본적으로 지정된 컬럼의 벡터를 기준으로 인덱싱이 수행됩니다. GPU에서 실행하려면 device를 지정할 수 있습니다(device는 GPU 인덱스여야 합니다). Faiss에 대한 자세한 정보는 다음에서 확인할 수 있습니다:

예:

>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> ds_with_embeddings = ds.map(lambda example: {'embeddings': embed(example['line']}))
>>> ds_with_embeddings.add_faiss_index(column='embeddings')
>>> # query
>>> scores, retrieved_examples = ds_with_embeddings.get_nearest_examples('embeddings', embed('my new query'), k=10)
>>> # save index
>>> ds_with_embeddings.save_faiss_index('embeddings', 'my_index.faiss')

>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> # load index
>>> ds.load_faiss_index('embeddings', 'my_index.faiss')
>>> # query
>>> scores, retrieved_examples = ds.get_nearest_examples('embeddings', embed('my new query'), k=10)

add_faiss_index_from_external_arrays

< >

( external_arrays: arrayindex_name: strdevice: typing.Optional[int] = Nonestring_factory: typing.Optional[str] = Nonemetric_type: typing.Optional[int] = Nonecustom_index: typing.Optional[ForwardRef('faiss.Index')] = Nonebatch_size: int = 1000train_size: typing.Optional[int] = Nonefaiss_verbose: bool = Falsedtype = <class 'numpy.float32'> )

매개변수

  • external_arrays (np.array) — 인덱스에 라이브러리 외부의 배열을 사용하려면 external_arrays를 설정할 수 있습니다. 이 경우 주어진 column의 배열 대신 external_arrays를 사용하여 Faiss 인덱스를 생성합니다.
  • index_name (str) — 인덱스의 index_name/식별자입니다. 이것은 get_nearest_examples() 또는 search()를 호출할 때 사용되는 index_name입니다.
  • device (선택 사항 Union[int, List[int]], optional) — 양의 정수인 경우, 사용할 GPU의 인덱스입니다. 음의 정수인 경우, 모든 GPU를 사용합니다. 양의 정수 목록이 전달되면 해당 GPU에서만 실행됩니다. 기본적으로 CPU를 사용합니다.
  • string_factory (str, 선택 사항) — Faiss의 인덱스 팩토리에 전달되어 인덱스를 생성합니다. 기본 인덱스 클래스는 IndexFlat입니다.
  • metric_type (int, 선택 사항) — 메트릭의 유형입니다. 예: faiss.faiss.METRIC_INNER_PRODUCT 또는 faiss.METRIC_L2.
  • custom_index (faiss.Index, 선택 사항) — 필요에 맞게 이미 인스턴스화하고 구성한 사용자 지정 Faiss 인덱스입니다.
  • batch_size (int, 선택 사항) — FaissIndex에 벡터를 추가할 때 사용할 배치 크기. 기본값은 1000입니다.

    2.4.0에 추가

  • train_size (int, 선택 사항) — 인덱스에 학습 단계가 필요한 경우, 인덱스 학습에 사용할 벡터의 수를 지정합니다.
  • faiss_verbose (bool, 기본값 False) — Faiss 인덱스의 상세 로그 출력을 활성화합니다.
  • dtype (numpy.dtype) — 인덱싱되는 numpy 배열의 dtype입니다. 기본값은 np.float32입니다.

Faiss를 사용하여 빠른 검색을 위한 dense 인덱스를 추가합니다. 인덱스는 external_arrays의 벡터를 사용하여 생성됩니다. GPU에서 실행하려면 device를 지정할 수 있습니다(device는 GPU 인덱스여야 합니다). Faiss에 대한 자세한 정보는 다음에서 확인할 수 있습니다:

save_faiss_index

< >

( index_name: strfile: typing.Union[str, pathlib.PurePath]storage_options: typing.Optional[dict] = None )

매개변수

  • index_name (str) — 인덱스의 index_name/식별자입니다. .get_nearest 또는 .search를 호출할 때 사용되는 index_name입니다.
  • file (str) — 디스크 또는 원격 URI(예: "s3://my-bucket/index.faiss")에 있는 직렬화된 faiss 인덱스의 경로.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.11.0에 추가

FaissIndex를 디스크에 저장합니다.

load_faiss_index

< >

( index_name: strfile: typing.Union[str, pathlib.PurePath]device: typing.Union[int, list[int], NoneType] = Nonestorage_options: typing.Optional[dict] = None )

매개변수

  • index_name (str) — 인덱스의 index_name/식별자입니다. 이는 .get_nearest 또는 .search를 호출할 때 사용되는 index_name입니다.
  • file (str) — 디스크 또는 원격 URI(예: "s3://my-bucket/index.faiss")에 있는 직렬화된 faiss 인덱스의 경로.
  • device (선택 사항, Union[int, List[int]]) — 양의 정수인 경우 사용할 GPU의 인덱스입니다. 음의 정수인 경우 모든 GPU를 사용합니다. 양의 정수 목록을 전달하면 해당 GPU에서만 실행됩니다. 기본적으로 CPU를 사용합니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.11.0에 추가

Load a FaissIndex from disk.

추가 구성을 수행하려면 .get_index(index_name).faiss_index를 통해 faiss 인덱스 객체에 접근하여 필요에 맞게 조정할 수 있습니다.

add_elasticsearch_index

< >

( column: strindex_name: typing.Optional[str] = Nonehost: typing.Optional[str] = Noneport: typing.Optional[int] = Nonees_client: typing.Optional[ForwardRef('elasticsearch.Elasticsearch')] = Nonees_index_name: typing.Optional[str] = Nonees_index_config: typing.Optional[dict] = None )

매개변수

  • column (str) — 인덱스에 추가할 문서의 열입니다.
  • index_name (str, 선택 사항) — 인덱스의 index_name/식별자입니다. 이것은 get_nearest_examples() 또는 search()를 호출할 때 사용되는 인덱스 이름입니다. 기본값은 column에 해당합니다.
  • host (str, 선택 사항, 기본값 localhost) — ElasticSearch가 실행 중인 호스트입니다.
  • port (str, 선택 사항, 기본값 9200) — ElasticSearch가 실행 중인 포트입니다.
  • es_client (elasticsearch.Elasticsearch, 선택 사항) — None인 경우 인덱스를 생성하는 데 사용되는 elasticsearch 클라이언트입니다.
  • es_index_name (str, 선택 사항) — 인덱스를 생성하는 데 사용되는 elasticsearch 인덱스 이름입니다.
  • es_index_config (dict, 선택 사항) — elasticsearch 인덱스의 구성입니다. 기본 구성은 다음과 같습니다:

ElasticSearch를 사용하여 빠른 검색을 위한 텍스트 인덱스를 추가합니다. 이 작업은 원위치(in-place)로 수행됩니다.

예:

>>> es_client = elasticsearch.Elasticsearch()
>>> ds = datasets.load_dataset('community-datasets/crime_and_punish', split='train')
>>> ds.add_elasticsearch_index(column='line', es_client=es_client, es_index_name="my_es_index")
>>> scores, retrieved_examples = ds.get_nearest_examples('line', 'my new query', k=10)

load_elasticsearch_index

< >

( index_name: stres_index_name: strhost: typing.Optional[str] = Noneport: typing.Optional[int] = Nonees_client: typing.Optional[ForwardRef('Elasticsearch')] = Nonees_index_config: typing.Optional[dict] = None )

매개변수

  • index_name (str) — 인덱스의 index_name/식별자입니다. get_nearest 또는 search를 호출할 때 사용되는 인덱스 이름입니다.
  • es_index_name (str) — 로드할 elasticsearch 인덱스의 이름입니다.
  • host (str, 선택 사항, 기본값 localhost) — ElasticSearch가 실행 중인 호스트입니다.
  • port (str, 선택 사항, 기본값 9200) — ElasticSearch가 실행 중인 포트입니다.
  • es_client (elasticsearch.Elasticsearch, 선택 사항) — None인 경우 인덱스를 생성하는 데 사용되는 elasticsearch 클라이언트입니다.
  • es_index_config (dict, 선택 사항) — elasticsearch 인덱스의 구성입니다. 기본 구성은 다음과 같습니다:

ElasticSearch를 사용하여 기존 텍스트 인덱스를 로드하여 빠른 검색을 수행합니다.

list_indexes

< >

( )

연결된 모든 인덱스의 colindex_nameumns/식별자를 나열합니다.

get_index

< >

( index_name: str )

매개변수

  • index_name (str) — 인덱스 이름.

연결된 모든 인덱스의 index_name/식별자를 나열합니다.

drop_index

< >

( index_name: str )

매개변수

  • index_name (str) — 인덱스의 index_name/식별자.

지정된 열을 가진 인덱스를 삭제합니다.

검색

< >

( index_name: strquery: typing.Union[str, <built-in function array>]k: int = 10**kwargs ) → (scores, indices)

매개변수

  • index_name (str) — 인덱스의 이름/식별자입니다.
  • query (Union[str, np.ndarray]) — index_name이 텍스트 인덱스인 경우 문자열로, index_name이 벡터 인덱스인 경우 numpy 배열로 제공되는 쿼리입니다.
  • k (int) — 검색할 예시의 수.

반환값

(scores, indices)

다음과 같은 (scores, indices)의 튜플입니다:

  • scores (List[List[float]): 검색된 예제에 대한 FAISS(기본값은 IndexFlatL2) 또는 ElasticSearch의 검색 점수
  • indices (List[List[int]]): 검색된 예시의 인덱스

dataset에서 쿼리에 가장 가까운 예시 인덱스를 찾습니다.

search_batch

< >

( index_name: strqueries: typing.Union[list[str], <built-in function array>]k: int = 10**kwargs ) → (total_scores, total_indices)

매개변수

  • index_name (str) — 인덱스의 index_name/식별자.
  • queries (Union[List[str], np.ndarray]) — index_name이 텍스트 인덱스인 경우 문자열 목록으로, index_name이 벡터 인덱스인 경우 numpy 배열로 제공되는 쿼리입니다.
  • k (int) — 쿼리당 검색할 예시의 수.

반환값

(total_scores, total_indices)

다음과 같은 (total_scores, total_indices)의 튜플입니다:

  • total_scores (List[List[float]): 쿼리별로 검색된 예시들의 FAISS(기본값은 IndexFlatL2) 또는 ElasticSearch 검색 점수
  • total_indices (List[List[int]]): 쿼리별 검색된 예시의 인덱스

dataset에서 쿼리에 가장 가까운 예시 인덱스를 찾습니다.

get_nearest_examples

< >

( index_name: strquery: typing.Union[str, <built-in function array>]k: int = 10**kwargs ) → (scores, examples)

매개변수

  • index_name (str) — 인덱스의 index_name/식별자입니다.
  • query (Union[str, np.ndarray]) — index_name이 텍스트 인덱스인 경우 문자열로, index_name이 벡터 인덱스인 경우 numpy 배열로 제공되는 쿼리입니다.
  • k (int) — 검색할 예시의 수.

반환값

(scores, examples)

다음과 같은 (scores, examples) 튜플입니다:

  • scores (List[float]): 검색된 예제에 대한 FAISS(기본적으로 IndexFlatL2) 또는 ElasticSearch의 검색 점수
  • examples (dict): 검색된 예시

데이터셋에서 쿼리에 가장 가까운 예시를 찾습니다.

get_nearest_examples_batch

< >

( index_name: strqueries: typing.Union[list[str], <built-in function array>]k: int = 10**kwargs ) → (total_scores, total_examples)

매개변수

  • index_name (str) — 인덱스의 index_name/식별자.
  • queries (Union[List[str], np.ndarray]) — index_name이 텍스트 인덱스인 경우 문자열 목록으로, index_name이 벡터 인덱스인 경우 numpy 배열로 제공되는 쿼리입니다.
  • k (int) — 쿼리당 검색할 예시의 수.

반환값

(total_scores, total_examples)

다음과 같은 (total_scores, total_examples) 튜플입니다:

  • total_scores (List[List[float]): 쿼리별로 검색된 예시들의 FAISS(기본값은 IndexFlatL2) 또는 ElasticSearch 검색 점수
  • total_examples (List[dict]): 쿼리별로 검색된 예시

데이터셋에서 쿼리에 가장 가까운 예시를 찾습니다.

정보

< >

( )

데이터셋의 모든 메타데이터를 포함하는 DatasetInfo 객체.

분할

< >

( )

명명된 데이터셋 분할에 해당하는 NamedSplit 객체.

builder_name

< >

( )

인용

< >

( )

config_name

< >

( )

dataset_size

< >

( )

설명

< >

( )

download_checksums

< >

( )

download_size

< >

( )

기능

< >

( )

홈페이지

< >

( )

라이선스

< >

( )

size_in_bytes

< >

( )

supervised_keys

< >

( )

버전

< >

( )

from_csv

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsenum_proc: typing.Optional[int] = None**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — CSV 파일의 경로입니다.
  • split (NamedSplit, 선택 사항) — 데이터셋에 할당할 분할 이름.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • num_proc (int, 선택 사항, 기본값은 None) — 데이터셋을 로컬로 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

    2.8.0에 추가

  • **kwargs (추가 키워드 인자) — pandas.read_csv에 전달할 키워드 인자입니다.

CSV 파일에서 Dataset을 생성합니다.

CSV 파일을 읽고 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크에 있는 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

>>> ds = Dataset.from_csv('path/to/dataset.csv')

from_json

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsefield: typing.Optional[str] = Nonenum_proc: typing.Optional[int] = None**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — JSON 또는 JSON Lines 파일의 경로입니다.
  • split (NamedSplit, 선택 사항) — 데이터셋에 할당할 분할 이름.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • field (str, 선택 사항) — 데이터셋이 포함된 JSON 파일의 필드 이름입니다.
  • num_proc (int, 선택 사항 기본값은 None) — 데이터셋을 로컬로 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

    2.8.0에 추가

  • **kwargs (추가 키워드 인자) — JsonConfig에 전달할 키워드 인자입니다.

JSON 또는 JSON Lines 파일에서 Dataset을 생성합니다.

JSON 파일을 읽고 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

>>> ds = Dataset.from_json('path/to/dataset.json')

from_parquet

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = Nonenum_proc: typing.Optional[int] = Nonefilters: typing.Union[pyarrow._compute.Expression, list[tuple], list[list[tuple]], NoneType] = Nonefragment_scan_options: typing.Optional[pyarrow._dataset_parquet.ParquetFragmentScanOptions] = Noneon_bad_files: typing.Literal['error', 'warn', 'skip'] = 'error'**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — Parquet 파일의 경로입니다.
  • split (NamedSplit, 선택 사항) — 데이터셋에 할당할 분할 이름.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • columns (List[str], 선택 사항) — None이 아닌 경우, 파일에서 이 컬럼만 읽습니다. 컬럼 이름은 중첩 필드의 접두사일 수 있습니다. 예를 들어 ‘a’를 지정하면 ‘a.b’, ‘a.c’, ‘a.d.e’가 선택됩니다.
  • num_proc (int, 선택 사항, 기본값은 None) — 데이터셋을 로컬로 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

    2.8.0에 추가

  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], 선택 사항) — 필터와 일치하는 행만 반환합니다. 가능하면 데이터 소스에서 발견되는 파티션 정보나 내부 메타데이터(예: Parquet 통계)를 활용하기 위해 조건을 아래로 전달(push down)합니다. 그렇지 않으면 RecordBatches를 반환하기 전에 로드된 RecordBatches를 필터링합니다.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, 선택 사항) — Parquet 조각에 대한 스캔 전용 옵션입니다. 버퍼링 및 캐싱을 구성하는 데 특히 유용합니다.

    4.2.0에 추가

  • on_bad_files (Literal["error", "warn", "skip"], 선택 사항, 기본값은 “error”입니다) — 잘못된 파일(읽을 수 없는 파일)을 만나면 수행할 작업을 지정합니다. 허용되는 값은 다음과 같습니다:
    • ‘error’, 잘못된 파일이 발견되면 예외를 발생시킵니다.
    • ‘warn’은 잘못된 파일이 발견되면 경고를 표시하고 해당 파일을 건너뜁니다.
    • ‘skip’, 발견 시 경고나 예외를 발생시키지 않고 잘못된 파일을 건너뜁니다.

    4.2.0에 추가

  • **kwargs (추가 키워드 인자) — ParquetConfig에 전달할 키워드 인자입니다.

Parquet 파일에서 Dataset을 생성합니다.

Parquet 파일을 읽고, 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

>>> ds = Dataset.from_parquet('path/to/dataset.parquet')

일부 열을 로드합니다:

>>> ds = Dataset.from_parquet('path/to/dataset.parquet', columns=["col_0", "col_1"])

데이터를 효율적으로 필터링하고, 필요에 따라 파일 전체 또는 행 그룹을 건너뜁니다:

>>> filters = [("col_0", "==", 0)]
>>> ds = Dataset.from_parquet(parquet_files_list, filters=filters)

from_text

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsenum_proc: typing.Optional[int] = Nonekeep_linebreaks: bool = Falsesample_by: typing.Literal['line', 'paragraph', 'document'] = 'line'**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — 텍스트 파일의 경로입니다.
  • split (NamedSplit, 선택 사항) — 데이터셋에 할당할 분할 이름.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • num_proc (int, 선택 사항, 기본값은 None) — 데이터셋을 로컬로 다운로드하고 생성할 때 사용할 프로세스 수입니다. 데이터셋이 여러 파일로 구성되어 있는 경우 유용합니다. 기본적으로 멀티프로세싱은 비활성화되어 있습니다.

    2.8.0에 추가

  • keep_linebreaks — (bool, 기본값 False): 줄바꿈을 유지할지 여부.
  • sample_by (Literal["line", "paragraph", "document"], 기본값 “line”) — 데이터를 줄, 단락 또는 문서 단위로 로드할지 여부입니다. 기본적으로 데이터셋의 한 행 = 한 줄입니다.
  • **kwargs (추가 키워드 인자) — TextConfig에 전달할 키워드 인자입니다.

텍스트 파일에서 Dataset을 생성합니다.

텍스트 파일을 읽고 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

>>> ds = Dataset.from_text('path/to/dataset.txt')

from_sql

< >

( sql: typing.Union[str, ForwardRef('sqlalchemy.sql.Selectable')]con: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]features: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

매개변수

  • sql (str 또는 sqlalchemy.sql.Selectable) — 실행할 SQL 쿼리 또는 테이블 이름.
  • con (str 또는 sqlite3.Connection 또는 sqlalchemy.engine.Connection 또는 sqlalchemy.engine.Connection) — 데이터베이스 연결을 인스턴스화하는 데 사용되는 URI 문자열 또는 SQLite3/SQLAlchemy 연결 객체.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • **kwargs (추가 키워드 인자) — SqlConfig에 전달할 키워드 인자입니다.

SQL 쿼리 또는 데이터베이스 테이블에서 Dataset을 생성합니다.

SQL 데이터베이스를 쿼리하고, 데이터를 Arrow 형식으로 디스크에 캐시한 후, 디스크의 메모리 매핑된 Arrow 데이터에서 Dataset을 반환합니다.

예:

>>> # Fetch a database table
>>> ds = Dataset.from_sql("test_data", "postgres:///db_name")
>>> # Execute a SQL query on the table
>>> ds = Dataset.from_sql("SELECT sentence FROM test_data", "postgres:///db_name")
>>> # Use a Selectable object to specify the query
>>> from sqlalchemy import select, text
>>> stmt = select([text("sentence")]).select_from(text("test_data"))
>>> ds = Dataset.from_sql(stmt, "postgres:///db_name")

con이 URI 문자열로 지정된 경우에만 반환된 데이터셋을 캐시할 수 있습니다.

align_labels_with_mapping

< >

( label2id: dictlabel_column: str )

매개변수

  • label2id (dict) — 데이터셋과 정렬할 레이블 이름에서 ID로 매핑하는 딕셔너리입니다.
  • label_column (str) — 정렬할 라벨의 열 이름입니다.

데이터셋의 라벨 ID와 라벨 이름 매핑을 입력 label2id 매핑과 일치하도록 정렬합니다. 모델의 예측된 라벨이 데이터셋과 정렬되어 있는지 확인하려는 경우에 유용합니다. 정렬은 소문자 라벨 이름을 사용하여 수행됩니다.

예:

>>> # dataset with mapping {'entailment': 0, 'neutral': 1, 'contradiction': 2}
>>> ds = load_dataset("nyu-mll/glue", "mnli", split="train")
>>> # mapping to align with
>>> label2id = {'CONTRADICTION': 0, 'NEUTRAL': 1, 'ENTAILMENT': 2}
>>> ds_aligned = ds.align_labels_with_mapping(label2id, "label")

datasets.concatenate_datasets

< >

( dsets: listinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneaxis: int = 0 )

매개변수

  • dsets (List[datasets.Dataset] 또는 List[datasets.IterableDataset]) — 연결할 Datasets 목록.
  • info (DatasetInfo, 선택 사항) — 설명, 인용 문헌 등 데이터셋 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • axis ({0, 1}, 기본값은 0) — 연결할 축. 여기서 0 은 행(세로 방향)을 의미하고 1 은 열(가로 방향)을 의미합니다.

    1.6.0에 추가됨

여러 데이터셋(소스)을 하나의 데이터셋으로 연결합니다.

axis=0을 사용하면 세로로 연결하며(기본값), axis=1을 사용하면 가로로 연결합니다.

반복 가능 데이터셋에 대한 참고:

  • axis=0인 경우, 결과 데이터셋의 num_shards는 각 데이터셋의 num_shards 합계입니다.
  • axis=1인 경우, 데이터가 어긋나지 않도록 결과 데이터셋은 하나(1)의 샤드로 구성됩니다.
  • if the datasets were split with datasets.distributed.split_dataset_by_node(), they must all be split the same way, and the resulting dataset keeps that split.

예:

>>> ds3 = concatenate_datasets([ds1, ds2])

datasets.interleave_datasets

< >

( datasets: listprobabilities: typing.Optional[list[float]] = Noneseed: typing.Optional[int] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonestopping_strategy: typing.Literal['first_exhausted', 'all_exhausted', 'all_exhausted_without_replacement'] = 'first_exhausted' ) → Dataset or IterableDataset

매개변수

  • datasets (List[Dataset] 또는 List[IterableDataset]) — 교차(interleave)할 데이터셋 목록.
  • probabilities (List[float], 선택 사항, 기본값 None) — 지정된 경우, 이 확률에 따라 소스에서 한 번에 하나씩 예시를 샘플링하여 새로운 데이터셋이 구성됩니다.
  • seed (int, 선택 사항, 기본값 None) — 각 예시를 위한 소스를 선택하는 데 사용되는 무작위 시드입니다.
  • info (DatasetInfo, 선택 사항) — 설명, 인용 정보 등 Dataset에 대한 정보입니다.

    2.4.0에 추가

  • split (NamedSplit, 선택 사항) — 데이터셋 스플릿의 이름.

    2.4.0에 추가

  • stopping_strategy (str, 기본값은 first_exhausted) — 현재 세 가지 전략이 제안되어 있습니다. first_exhausted, all_exhausted 그리고 all_exhausted_without_replacement. 기본적으로 first_exhausted 는 언더샘플링 전략으로, 하나의 데이터셋에서 샘플이 모두 소진되는 즉시 데이터셋 구성이 중단됩니다. 전략이 all_exhausted, 인 경우 오버샘플링 전략을 사용하여, 모든 데이터셋의 모든 샘플이 최소 한 번씩 추가되는 즉시 데이터셋 구성이 중단됩니다. 전략이 all_exhausted_without_replacement 인 경우 각 데이터셋의 각 샘플이 오직 한 번만 샘플링되도록 보장합니다. 전략이 all_exhausted, 인 경우 인터리브 데이터셋의 크기가 매우 커질 수 있습니다:
    • 확률 없이 실행하면, 결과 데이터셋에는 max_length_datasets*nb_dataset개의 샘플이 포함됩니다.
    • with given probabilities가 주어지면, 일부 데이터셋의 방문 확률이 매우 낮은 경우 결과 데이터셋의 샘플 수가 더 많아질 수 있습니다.

반환값

Dataset 또는 IterableDataset

datasets 파라미터의 입력에 따라 반환 유형이 달라집니다. 입력이 Dataset 목록이면 Dataset, IterableDataset 목록이면 IterableDataset입니다.

여러 데이터셋(소스)을 하나의 데이터셋으로 번갈아 배치합니다. 새로운 데이터셋은 소스 간에 번갈아가며 예시를 가져오는 방식으로 구성됩니다.

이 함수는 Dataset 객체의 목록 또는 IterableDataset 객체의 목록에 사용할 수 있습니다.

  • probabilities가 None(기본값)인 경우, 각 소스에서 예시를 가져오도록 순환하며 새로운 데이터셋이 구성됩니다.
  • probabilities가 None이 아닌 경우, 제공된 확률에 따라 한 번에 무작위 소스에서 예시를 가져와서 새로운 데이터셋이 구성됩니다.

oversampling이 True인 경우를 제외하고, 생성된 데이터셋은 소스 데이터셋 중 하나가 예제를 모두 소진하면 종료됩니다. oversampling이 True인 경우, 생성된 데이터셋은 모든 데이터셋이 적어도 한 번씩 예제를 모두 소진하면 종료됩니다.

반복 가능 데이터셋에 대한 참고:

  • 결과 데이터셋의 num_shards는 각 데이터셋의 num_shards 중 최소값으로 설정되어 좋은 병렬성을 보장합니다. 일부 데이터셋의 샤드 수가 매우 적은 경우, IterableDataset.reshard()를 사용할 수 있습니다.
  • 분산 환경 또는 PyTorch DataLoader 워커에서 중단 전략은 프로세스별로 적용됩니다. 따라서 샤드된 반복 가능 데이터셋에 “first_exhausted” 전략을 적용하면 전체 샘플 수가 더 적게 생성될 수 있습니다(워커당 서브데이터셋당 최대 1개의 샘플 누락).

예:

일반 데이터셋(맵 스타일)의 경우:

>>> from datasets import Dataset, interleave_datasets
>>> d1 = Dataset.from_dict({"a": [0, 1, 2]})
>>> d2 = Dataset.from_dict({"a": [10, 11, 12]})
>>> d3 = Dataset.from_dict({"a": [20, 21, 22]})
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42, stopping_strategy="all_exhausted")
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12, 10, 0, 1, 2, 21, 0, 11, 1, 2, 0, 1, 12, 2, 10, 0, 22]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2]
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], stopping_strategy="all_exhausted")
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> d1 = Dataset.from_dict({"a": [0, 1, 2]})
>>> d2 = Dataset.from_dict({"a": [10, 11, 12, 13]})
>>> d3 = Dataset.from_dict({"a": [20, 21, 22, 23, 24]})
>>> dataset = interleave_datasets([d1, d2, d3])
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22]
>>> dataset = interleave_datasets([d1, d2, d3], stopping_strategy="all_exhausted")
>>> dataset["a"]
[0, 10, 20, 1, 11, 21, 2, 12, 22, 0, 13, 23, 1, 10, 24]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42)
>>> dataset["a"]
[10, 0, 11, 1, 2]
>>> dataset = interleave_datasets([d1, d2, d3], probabilities=[0.7, 0.2, 0.1], seed=42, stopping_strategy="all_exhausted")
>>> dataset["a"]
[10, 0, 11, 1, 2, 20, 12, 13, ..., 0, 1, 2, 0, 24]
For datasets in streaming mode (iterable):

>>> from datasets import interleave_datasets
>>> d1 = load_dataset('allenai/c4', 'es', split='train', streaming=True)
>>> d2 = load_dataset('allenai/c4', 'fr', split='train', streaming=True)
>>> dataset = interleave_datasets([d1, d2])
>>> iterator = iter(dataset)
>>> next(iterator)
{'text': 'Comprar Zapatillas para niña en chancla con goma por...'}
>>> next(iterator)
{'text': 'Le sacre de philippe ier, 23 mai 1059 - Compte Rendu...'

datasets.distributed.split_dataset_by_node

< >

( dataset: ~DatasetTyperank: intworld_size: intstrategy: typing.Literal['auto', 'shards', 'examples'] = 'auto' ) → Dataset or IterableDataset

매개변수

  • dataset (Dataset 또는 IterableDataset) — 노드별로 분할할 데이터셋입니다.
  • rank (int) — 현재 노드의 랭크.
  • world_size (int) — 노드의 총 개수.
  • strategy (str, 기본값 "auto") — 반복 가능(iterable) 데이터셋을 분할하는 방법입니다. "auto", "shards", "examples" 중 하나여야 합니다. Map 스타일 데이터셋은 "auto"만 지원합니다.

반환값

Dataset 또는 IterableDataset

rank 랭크의 노드에서 사용할 데이터셋.

world_size 크기의 노드 풀에서 rank 랭크의 노드를 위해 데이터셋을 분할합니다.

map 스타일 데이터셋의 경우:

각 노드는 데이터의 청크를 할당받습니다. 예를 들어, rank 0은 데이터셋의 첫 번째 청크를 받습니다. 데이터 로딩 처리량을 최대화하기 위해, 가능하면 디스크에 연속된 데이터로 청크를 구성합니다.

반복 가능한 데이터셋의 경우:

strategy 분할은 "auto", "shards", 또는 "examples"일 수 있습니다:

  • "shards": 샤드는 노드에 고르게 할당됩니다
  • "examples": 각 노드는 world_size개 중 1개의 예제를 유지하고, 나머지 예제는 건너뜁니다
  • "auto" (기본값): 데이터셋의 샤드 수가 world_size의 약수인 경우(즉, dataset.num_shards % world_size == 0인 경우) 가장 최적화된 "shards"를 사용합니다. 그렇지 않으면 "examples"를 사용합니다.

분산 환경에서 반복 가능(iterable) 데이터셋을 섞을 경우, 모든 노드에서 동일한 섞인 샤드 목록을 사용하여 각 노드가 건너뛰어야 할 샤드를 파악할 수 있도록 IterableDataset.shuffle()에서 고정된 seed를 설정해야 합니다.

datasets.enable_caching

< >

( )

데이터셋에 변환을 적용할 때 데이터는 캐시 파일에 저장됩니다. 캐싱 메커니즘은 이미 계산된 기존 캐시 파일을 다시 로드할 수 있게 합니다.

각 변환 후 업데이트되는 데이터셋 지문으로 캐시 파일이 이름이 지정되므로 데이터셋을 다시 로드할 수 있습니다.

비활성화된 경우, 라이브러리는 데이터셋에 변환을 적용할 때 캐시된 데이터셋 파일을 다시 로드하지 않습니다. 더 정확히 말하면, 캐싱이 비활성화된 경우:

  • cache 파일은 항상 다시 생성됩니다
  • cache 파일은 세션이 닫힐 때 삭제되는 임시 디렉토리에 기록됩니다
  • cache 파일은 데이터셋 지문 대신 무작위 해시를 사용하여 이름이 지정됩니다
  • 변환된 데이터셋을 저장하려면 save_to_disk()를 사용하세요. 세션이 닫히면 삭제됩니다.
  • caching은 load_dataset()에 영향을 주지 않습니다. 처음부터 데이터셋을 다시 생성하려면 load_dataset()의 download_mode 매개변수를 사용해야 합니다.

datasets.disable_caching

< >

( )

데이터셋에 변환을 적용할 때 데이터는 캐시 파일에 저장됩니다. 캐싱 메커니즘은 이미 계산된 기존 캐시 파일을 다시 로드할 수 있게 합니다.

각 변환 후 업데이트되는 데이터셋 지문으로 캐시 파일이 이름이 지정되므로 데이터셋을 다시 로드할 수 있습니다.

비활성화된 경우, 라이브러리는 데이터셋에 변환을 적용할 때 캐시된 데이터셋 파일을 다시 로드하지 않습니다. 더 정확히 말하면, 캐싱이 비활성화된 경우:

  • cache 파일은 항상 다시 생성됩니다
  • cache 파일은 세션이 닫힐 때 삭제되는 임시 디렉토리에 기록됩니다
  • cache 파일은 데이터셋 지문 대신 무작위 해시를 사용하여 이름이 지정됩니다
  • 변환된 데이터셋을 저장하려면 save_to_disk()를 사용하세요. 세션이 닫히면 삭제됩니다.
  • caching은 load_dataset()에 영향을 주지 않습니다. 처음부터 데이터셋을 다시 생성하려면 load_dataset()의 download_mode 매개변수를 사용해야 합니다.

datasets.is_caching_enabled

< >

( )

데이터셋에 변환을 적용할 때 데이터는 캐시 파일에 저장됩니다. 캐싱 메커니즘은 이미 계산된 기존 캐시 파일을 다시 로드할 수 있게 합니다.

각 변환 후 업데이트되는 데이터셋 지문으로 캐시 파일이 이름이 지정되므로 데이터셋을 다시 로드할 수 있습니다.

비활성화된 경우, 라이브러리는 데이터셋에 변환을 적용할 때 캐시된 데이터셋 파일을 다시 로드하지 않습니다. 더 정확히 말하면, 캐싱이 비활성화된 경우:

  • cache 파일은 항상 다시 생성됩니다
  • cache 파일은 세션이 닫힐 때 삭제되는 임시 디렉토리에 기록됩니다
  • cache 파일은 데이터셋 지문 대신 무작위 해시를 사용하여 이름이 지정됩니다
  • 변환된 데이터셋을 저장하려면 save_to_disk()를 사용하세요. 세션이 닫히면 삭제됩니다.
  • caching은 load_dataset()에 영향을 주지 않습니다. 처음부터 데이터셋을 다시 생성하려면 load_dataset()의 download_mode 매개변수를 사용해야 합니다.

class datasets.Column

< >

( source: typing.Union[ForwardRef('Dataset'), ForwardRef('Column')]column_name: str )

Dataset의 특정 열에 대한 반복 가능한 객체(iterable)입니다.

예:

데이터셋의 “text” 열의 텍스트를 반복합니다:

for text in dataset["text"]:
    ...

중첩된 컬럼에서도 작동합니다:

for source in dataset["metadata"]["source"]:
    ...

DatasetDict

키로 분할 이름(예: ‘train’, ‘test’)을, 값으로 Dataset 객체를 가지는 딕셔너리입니다. map 또는 filter와 같은 데이터셋 변환 메서드를 제공하여 모든 분할을 한 번에 처리할 수 있습니다.

class datasets.DatasetDict

< >

( )

데이터셋 변환 메서드(map, filter 등)를 가진 사전(str: datasets.Dataset의 dict)

데이터

< >

( )

각 split을 뒷받침하는 Apache Arrow 테이블.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.data

cache_files

< >

( )

각 split을 뒷받침하는 Apache Arrow 테이블을 포함하는 캐시 파일.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.cache_files
{'test': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-test.arrow'}],
 'train': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-train.arrow'}],
 'validation': [{'filename': '/root/.cache/huggingface/datasets/rotten_tomatoes_movie_review/default/1.0.0/40d411e45a6ce3484deed7cc15b82a53dad9a72aafd9f86f8f227134bec5ca46/rotten_tomatoes_movie_review-validation.arrow'}]}

num_columns

< >

( )

데이터셋의 각 분할에 대한 열의 수.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.num_columns
{'test': 2, 'train': 2, 'validation': 2}

num_rows

< >

( )

데이터셋의 각 분할에 포함된 행의 수.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.num_rows
{'test': 1066, 'train': 8530, 'validation': 1066}

column_names

< >

( )

데이터셋의 각 split에 포함된 열의 이름.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.column_names
{'test': ['text', 'label'],
 'train': ['text', 'label'],
 'validation': ['text', 'label']}

형상

< >

( )

데이터셋의 각 분할의 모양(행 수, 열 수).

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.shape
{'test': (1066, 2), 'train': (8530, 2), 'validation': (1066, 2)}

unique

< >

( column: str ) → Dict[str, list]

매개변수

  • column (str) — 컬럼 이름 (column_names로 모든 컬럼 이름을 나열할 수 있습니다)

반환값

Dict[str, list]

주어진 열의 고유 요소 사전.

각 split에 대해 컬럼의 고유 요소 목록을 반환합니다.

이것은 저수준 백엔드에서 구현되어 있어 매우 빠릅니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.unique("label")
{'test': [1, 0], 'train': [1, 0], 'validation': [1, 0]}

cleanup_cache_files

< >

( )

현재 사용 중인 캐시 파일이 있는 경우를 제외하고, 데이터셋 캐시 디렉터리의 모든 캐시 파일을 정리합니다. 이 명령을 실행할 때 다른 프로세스가 다른 캐시 파일을 사용 중이지 않은지 주의하세요.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.cleanup_cache_files()
{'test': 0, 'train': 0, 'validation': 0}

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falsewith_split: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000features: typing.Optional[datasets.features.features.Features] = Nonedisable_nullable: bool = Falsefn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonedesc: typing.Optional[str] = Nonetry_original_type: typing.Optional[bool] = Trueon_mixed_types: typing.Optional[typing.Literal['use_json']] = None )

매개변수

  • function (callable) — 다음 중 하나의 시그니처를 가진
    • batched=False이고 with_indices=False인 경우 function(example: Dict[str, Any]) -> Dict[str, Any]
    • batched=False이고 with_indices=True인 경우 function(example: Dict[str, Any], indices: int) -> Dict[str, Any]
    • batched=True이고 with_indices=False인 경우 function(batch: Dict[str, list]) -> Dict[str, list]
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list] (단, batched=True이고 with_indices=True인 경우)

    고급 사용의 경우, 이 함수는 pyarrow.Table를 반환할 수도 있습니다. 함수가 비동기(asynchronous)인 경우, map는 사용자의 함수를 병렬로 실행합니다. 또한 함수가 아무것도 반환하지 않는 경우(None), map는 사용자의 함수를 실행하고 데이터셋을 변경하지 않은 상태로 반환합니다. 함수가 제공되지 않으면, 항등 함수(identity function)인 lambda x: x를 기본값으로 사용합니다.

  • with_indices (bool, 기본값 False) — function에 예시 인덱스를 제공합니다. 이 경우 function의 시그니처는 def function(example, idx): ...여야 합니다.
  • with_rank (bool, 기본값 False) — function에 프로세스 랭크를 전달합니다. 이 경우 function의 시그니처는 def function(example[, idx], rank): ...여야 합니다.
  • with_split (bool, 기본값 False) — function에 프로세스 분할을 제공합니다. 이 경우 function의 시그니처는 def function(example[, idx], split): ...여야 합니다.
  • input_columns ([Union[str, list[str]]], 선택 사항, 기본값 None) — function에 위치 인수로 전달할 열입니다. None인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.
  • batched (bool, 기본값 False) — function에 예시 배치(batch)를 제공합니다.
  • batch_size (int, 선택 사항, 기본값 1000) — batched=True인 경우 function에 배치별로 제공되는 예시 수입니다. batch_size <= 0 또는 batch_size == None이면 전체 데이터셋을 단일 배치로 function에 제공합니다.
  • drop_last_batch (bool, 기본값 False) — batch_size보다 작은 마지막 배치에 대해 함수로 처리하는 대신 버릴지 여부입니다.
  • remove_columns ([Union[str, list[str]]], 선택 사항, 기본값 None) — 매핑을 수행하는 동안 선택된 컬럼을 제거합니다. 컬럼은 function의 출력으로 예시를 업데이트하기 전에 제거되므로, function이 remove_columns에 포함된 이름의 컬럼을 추가하는 경우 해당 컬럼은 유지됩니다.
  • keep_in_memory (bool, 기본값 False) — 데이터셋을 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — function의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • cache_file_names ([Dict[str, str]], 선택, 기본값 None) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다. 데이터셋 사전의 각 데이터셋마다 cache_file_name 하나를 제공해야 합니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회가 적게 발생하고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.
  • features ([datasets.Features], 선택 사항, 기본값 None) — 자동 생성되는 캐시 파일 대신 특정 Features를 사용하여 캐시 파일을 저장합니다.
  • disable_nullable (bool, 기본값 False) — 테이블에서 null 값을 허용하지 않습니다.
  • fn_kwargs (Dict, 선택 사항, 기본값 None) — function에 전달할 키워드 인자
  • num_proc (int, 선택 사항, 기본값은 None) — 멀티프로세싱에 사용할 프로세스 수입니다. None 또는 0이면 멀티프로세싱을 사용하지 않고 메인 프로세스에서 작업을 실행합니다. 1보다 크면 하나 이상의 워커 프로세스를 사용하여 데이터를 병렬로 처리합니다. 참고: 멀티프로세싱이 올바르게 작동하려면 map()에 전달되는 함수는 picklable이어야 합니다(즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).
    • None 또는 0인 경우, 멀티프로세싱을 사용하지 않고 작업이 메인 프로세스에서 실행됩니다.
    • 1보다 크면, 데이터를 병렬로 처리하기 위해 하나 이상의 워커 프로세스가 사용됩니다. 참고: map()에 전달되는 함수는 멀티프로세싱이 올바르게 작동하려면 picklable이어야 합니다 (즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).
  • desc (str, 선택 사항, 기본값 None) — 예제를 매핑하는 동안 진행률 바와 함께 표시할 의미 있는 설명입니다.
  • try_original_type (Optional[bool], 기본값 True) — 원래 열의 타입을 유지하려고 시도합니다(예: int32 -> int32). 항상 새로운 타입을 추론하려면 False로 설정하세요.
  • on_mixed_types (Literal["use_json"], 선택 사항, 기본값은 None) — “use_json”인 경우, 미리 정의된 스키마 없이 데이터를 포함하는 비정형 필드인 혼합 타입 필드에 대해 Json() 타입을 사용합니다. 이 경우 혼합 타입 필드는 Json()으로 설정됩니다.

    … 문자열/정수/부동소수점 숫자의 혼합 목록이나, 임의의 값 유형을 가진 사전과 같은 목록을 로드할 수 있습니다.

    4.7.0에 추가됨

map은 테이블의 모든 예시(개별 또는 배치)에 함수를 적용하여 테이블을 업데이트합니다. 함수가 이미 존재하는 컬럼을 반환하면 해당 컬럼을 덮어씁니다. 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

batched 매개변수를 사용하여 함수가 배치 처리되어야 하는지 여부를 지정할 수 있습니다:

  • False인 경우, 이 함수는 1개의 예시를 입력으로 받아 1개의 예시를 반환해야 합니다. 예시는 사전(dictionary)이며, 예를 들어 {"text": "Hello there !"}과 같습니다.
  • True이고 batch_size가 1인 경우, 이 함수는 1개의 예시로 구성된 배치로 입력을 받아 1개 이상의 예시로 구성된 배치를 반환할 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 1개의 예시로 구성된 배치는 {"text": ["Hello there !"]}입니다.
  • True이고 batch_size가 n > 1인 경우, 이 함수는 n개의 예시로 구성된 배치(batch)를 입력으로 받아 n개의 예시로 구성된 배치 또는 임의의 개수의 예시로 구성된 배치를 반환할 수 있습니다. 마지막 배치에는 n개보다 적은 예시가 포함될 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 n개의 예시로 구성된 배치는 {"text": ["Hello there !"] * n}입니다.

함수가 비동기(asynchronous)인 경우, map은 최대 1,000개의 동시 호출을 허용하면서 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 asyncio.Semaphore를 사용하는 것이 권장됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> ds["train"][0:3]["text"]
['Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'Review: the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .',
 'Review: effective but too-tepid biopic']

# process a batch of examples
>>> ds = ds.map(lambda example: tokenizer(example["text"]), batched=True)
# set number of processors
>>> ds = ds.map(add_prefix, num_proc=4)

필터

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_rank: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Nonecache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = Nonenum_proc: typing.Optional[int] = Nonedesc: typing.Optional[str] = None )

매개변수

  • function (Callable) — 다음 중 하나의 시그니처를 가진 Callable입니다:
    • function(example: Dict[str, Any]) -> bool if batched=False and with_indices=False and with_rank=False
    • function(example: Dict[str, Any], *extra_args) -> bool batched=False이고 with_indices=True 및/또는 with_rank=True인 경우 (각각 추가 인자 하나씩)
    • batched=True이고 with_indices=False이고 with_rank=False인 경우 function(batch: Dict[str, list]) -> list[bool]
    • batched=True이고 with_indices=True 및/또는 with_rank=True인 경우 (각각 추가 인자 하나씩) function(batch: Dict[str, list], *extra_args) -> list[bool]

    함수가 제공되지 않으면 항상 True를 반환하는 함수 lambda x: True가 기본값으로 사용됩니다.

  • with_indices (bool, 기본값 False) — function에 예시 인덱스를 제공합니다. 이 경우 function의 시그니처는 def function(example, idx[, rank]): ...여야 합니다.
  • with_rank (bool, 기본값 False) — function에 프로세스 랭크를 전달합니다. 이 경우 function의 시그니처는 def function(example[, idx], rank): ...여야 합니다.
  • input_columns ([Union[str, list[str]]], 선택 사항, 기본값 None) — function에 위치 인수로 전달할 열입니다. None인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.
  • batched (bool, 기본값 False) — function에 예시 배치(batch)를 제공합니다.
  • batch_size (int, 선택 사항, 기본값 1000) — batched=True인 경우 function에 배치별로 제공되는 예시 수입니다. batch_size <= 0 또는 batch_size == None이면 전체 데이터셋을 단일 배치로 function에 제공합니다.
  • keep_in_memory (bool, 기본값 False) — 데이터셋을 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — function의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • cache_file_names ([Dict[str, str]], 선택, 기본값 None) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 계산 결과를 저장하는 데 사용됩니다. 데이터셋 사전의 각 데이터셋마다 cache_file_name 하나를 제공해야 합니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.
  • fn_kwargs (Dict, 선택 사항, 기본값 None) — function에 전달할 키워드 인자
  • num_proc (int, 선택 사항, 기본값은 None) — 멀티프로세싱에 사용할 프로세스 수입니다. None 또는 0이면 멀티프로세싱을 사용하지 않고 메인 프로세스에서 작업을 실행합니다. 1보다 크면 하나 이상의 워커 프로세스를 사용하여 데이터를 병렬로 처리합니다. 참고: 멀티프로세싱이 올바르게 작동하려면 map()에 전달되는 함수는 picklable이어야 합니다(즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).
    • None 또는 0인 경우, 멀티프로세싱을 사용하지 않고 작업이 메인 프로세스에서 실행됩니다.
    • 1보다 크면, 데이터를 병렬로 처리하기 위해 하나 이상의 워커 프로세스가 사용됩니다. 참고: map()에 전달되는 함수는 멀티프로세싱이 올바르게 작동하려면 picklable이어야 합니다 (즉, 다른 함수나 클래스 내부가 아닌 모듈의 최상위 수준에서 정의된 함수를 사용하는 것이 좋습니다).
  • desc (str, 선택 사항, 기본값 None) — 예제를 필터링하는 동안 진행률 바와 함께 표시할 의미 있는 설명입니다.

filter 함수를 테이블의 모든 요소에 배치별로 적용하고, 필터 함수에 따라 예제가 포함되도록 테이블을 업데이트합니다. 이 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.filter(lambda x: x["label"] == 1)
DatasetDict({
    train: Dataset({
        features: ['text', 'label'],
        num_rows: 4265
    })
    validation: Dataset({
        features: ['text', 'label'],
        num_rows: 533
    })
    test: Dataset({
        features: ['text', 'label'],
        num_rows: 533
    })
})

sort

< >

( column_names: typing.Union[str, collections.abc.Sequence[str]]reverse: typing.Union[bool, collections.abc.Sequence[bool]] = Falsenull_placement: str = 'at_end'keep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

매개변수

  • column_names (Union[str, Sequence[str]]) — 정렬할 열 이름입니다.
  • reverse (Union[bool, Sequence[bool]], 기본값 False) — True인 경우, 오름차순 대신 내림차순으로 정렬합니다. 단일 bool 값을 제공하는 경우, 해당 값은 모든 열 이름의 정렬에 적용됩니다. 그렇지 않으면 column_names와 동일한 길이와 순서를 가진 bool 목록을 제공해야 합니다.
  • null_placement (str, 기본값 at_end) — at_start 또는 first인 경우 None 값을 앞에, at_end 또는 last인 경우 뒤에 배치합니다
  • keep_in_memory (bool, 기본값 False) — 정렬된 인덱스를 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — 정렬된 인덱스를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • indices_cache_file_names ([Dict[str, str]], 선택 사항, 기본값 None) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 인덱스 매핑을 저장하는 데 사용됩니다. 데이터셋 사전의 각 데이터셋마다 cache_file_name 하나를 제공해야 합니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성자(write operation)의 한 번에 기록할 행 수입니다. 값이 높을수록 캐시 파일 크기가 작아지고, 값이 낮을수록 임시 메모리 사용량이 줄어듭니다.

하나 또는 여러 열에 따라 정렬된 새로운 데이터셋을 생성합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset('cornell-movie-review-data/rotten_tomatoes')
>>> ds['train']['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> sorted_ds = ds.sort('label')
>>> sorted_ds['train']['label'][:10]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>>> another_sorted_ds = ds.sort(['label', 'text'], reverse=[True, False])
>>> another_sorted_ds['train']['label'][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

shuffle

< >

( seeds: typing.Union[int, dict[str, typing.Optional[int]], NoneType] = Noneseed: typing.Optional[int] = Nonegenerators: typing.Optional[dict[str, numpy.random._generator.Generator]] = Nonekeep_in_memory: bool = Falseload_from_cache_file: typing.Optional[bool] = Noneindices_cache_file_names: typing.Optional[dict[str, typing.Optional[str]]] = Nonewriter_batch_size: typing.Optional[int] = 1000 )

매개변수

  • seeds (Dict[str, int] 또는 int, 선택 사항) — generator=None인 경우 기본 BitGenerator를 초기화할 시드입니다. None인 경우, OS에서 새로운 예측 불가능한 엔트로피를 가져옵니다. int 또는 array_like[ints]가 전달되면, SeedSequence에 전달되어 초기 BitGenerator 상태를 유도합니다. 데이터셋 사전에 데이터셋별로 seed를 하나씩 제공할 수 있습니다.
  • seed (int, 선택 사항) — generator=None인 경우 기본 BitGenerator를 초기화하는 시드입니다. seeds의 별칭입니다(둘 다 제공되면 ValueError가 발생합니다).
  • generators (Dict[str, *optional*, np.random.Generator]) — 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. generator=None(기본값)인 경우, np.random.default_rng(NumPy의 기본 BitGenerator(PCG64))를 사용합니다. 데이터셋 사전에 포함된 각 데이터셋마다 generator 하나를 제공해야 합니다.
  • keep_in_memory (bool, 기본값 False) — 데이터셋을 캐시 파일에 쓰는 대신 메모리에 유지합니다.
  • load_from_cache_file (Optional[bool], 캐싱이 활성화된 경우 기본값은 True) — function의 현재 계산 결과를 저장하는 캐시 파일을 식별할 수 있는 경우, 다시 계산하는 대신 해당 파일을 사용합니다.
  • indices_cache_file_names (Dict[str, str], 선택 사항) — 캐시 파일의 경로 이름을 지정합니다. 자동으로 생성되는 캐시 파일 이름 대신 인덱스 매핑을 저장하는 데 사용됩니다. 데이터셋 사전의 각 데이터셋마다 cache_file_name 하나를 제공해야 합니다.
  • writer_batch_size (int, 기본값 1000) — 캐시 파일 작성기에서 쓰기 작업당 행 수입니다. 이 값은 처리 중 메모리 사용량과 처리 속도 사이의 좋은 균형점을 제공합니다. 값이 높을수록 처리 시 조회 횟수가 줄고, 값이 낮을수록 map 실행 중 임시 메모리 사용량이 줄어듭니다.

행이 섞인 새로운 Dataset을 생성합니다.

변환은 dataset dictionary의 모든 dataset에 적용됩니다.

현재 shuffling은 numpy 랜덤 생성기를 사용합니다. NumPy BitGenerator를 제공하거나, NumPy의 기본 랜덤 생성기(PCG64)를 초기화할 시드를 지정할 수 있습니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"]["label"][:10]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

# set a seed
>>> shuffled_ds = ds.shuffle(seed=42)
>>> shuffled_ds["train"]["label"][:10]
[0, 1, 0, 1, 0, 0, 0, 0, 0, 0]

set_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

매개변수

  • type (str, 선택 사항) — [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']에서 선택한 출력 유형입니다. None은 __getitem__가 python 객체를 반환함을 의미합니다(기본값).
  • columns (list[str], 선택 사항) — 출력에서 포맷할 열. None은 __getitem__가 모든 열을 반환함을 의미합니다(기본값).
  • output_all_columns (bool, 기본값 False) — 출력에서 포맷되지 않은 컬럼도 (python 객체로) 유지합니다.
  • **format_kwargs (추가 키워드 인자) — np.array, torch.tensor 또는 tensorflow.ragged.constant와 같은 변환 함수에 전달되는 키워드 인자입니다.

__getitem__ 반환 형식(타입 및 열)을 설정합니다. 이 형식은 데이터셋 사전의 모든 데이터셋에 대해 설정됩니다.

set_format 호출 후 map을 호출할 수 있습니다. map는 새로운 컬럼을 추가할 수 있으므로, 포맷된 컬럼 목록이 업데이트됩니다. 이 경우, 데이터셋에 map을 적용하여 새로운 컬럼을 추가하면 이 컬럼도 포맷됩니다:

new formatted columns = (all columns - previously unformatted columns)

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x["text"], truncation=True, padding=True), batched=True)
>>> ds.set_format(type="numpy", columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds["train"].format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}

reset_format

< >

( )

__getitem__의 반환 형식을 Python 객체 및 모든 열로 재설정합니다. 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

self.set_format()와 동일합니다

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x["text"], truncation=True, padding=True), batched=True)
>>> ds.set_format(type="numpy", columns=['input_ids', 'token_type_ids', 'attention_mask', 'label'])
>>> ds["train"].format
{'columns': ['input_ids', 'token_type_ids', 'attention_mask', 'label'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'numpy'}
>>> ds.reset_format()
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}

formatted_as

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

매개변수

  • type (str, 선택 사항) — [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']에서 선택한 출력 유형입니다. None은 __getitem__가 python 객체를 반환함을 의미합니다(기본값).
  • columns (list[str], 선택 사항) — 출력에서 포맷할 열. None은 __getitem__가 모든 열을 반환함을 의미합니다(기본값).
  • output_all_columns (bool, 기본값 False) — 출력에서 포맷되지 않은 컬럼도 유지합니다 (python 객체로).
  • **format_kwargs (추가 키워드 인자) — np.array, torch.tensor 또는 tensorflow.ragged.constant와 같은 변환 함수에 전달되는 키워드 인자입니다.

with 문장에서 사용됩니다. __getitem__ 반환 형식(타입 및 열)을 설정합니다. 변환은 dataset dictionary의 모든 dataset에 적용됩니다.

with_format

< >

( type: typing.Optional[str] = Nonecolumns: typing.Optional[list] = Noneoutput_all_columns: bool = False**format_kwargs )

매개변수

  • type (str, 선택 사항) — [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']에서 선택한 출력 유형입니다. None은 __getitem__가 python 객체를 반환함을 의미합니다(기본값).
  • columns (list[str], 선택 사항) — 출력에서 포맷할 열. None은 __getitem__가 모든 열을 반환함을 의미합니다(기본값).
  • output_all_columns (bool, 기본값 False) — 출력에서 포맷되지 않은 컬럼도 (python 객체로) 유지합니다.
  • **format_kwargs (추가 키워드 인자) — np.array, torch.tensor 또는 tensorflow.ragged.constant와 같은 변환 함수에 전달되는 키워드 인자입니다.

__getitem__ 반환 형식(타입 및 열)을 설정합니다. 데이터 포맷팅은 온더플라이로 적용됩니다. type 형식(예: “numpy”)은 __getitem__를 사용할 때 배치 포맷팅에 사용됩니다. 해당 형식은 데이터셋 사전의 모든 데이터셋에 대해 설정됩니다.

with_transform()를 사용하여 포맷팅에 커스텀 트랜스포메이션을 사용하는 것도 가능합니다.

set_format()과 달리, with_format은 새로운 Dataset 객체를 포함하는 새로운 DatasetDict 객체를 반환합니다.

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': None}
>>> ds = ds.with_format("torch")
>>> ds["train"].format
{'columns': ['text', 'label', 'input_ids', 'token_type_ids', 'attention_mask'],
 'format_kwargs': {},
 'output_all_columns': False,
 'type': 'torch'}
>>> ds["train"][0]
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

with_transform

< >

( transform: typing.Optional[typing.Callable]columns: typing.Optional[list] = Noneoutput_all_columns: bool = False )

매개변수

  • transform (Callable, 선택 사항) — 사용자가 정의한 포맷 변환으로, set_format()으로 정의된 포맷을 대체합니다. 포맷 함수는 배치(딕셔너리 형태)를 입력으로 받아 배치를 반환하는 콜러블입니다. 이 함수는 __getitem__에서 객체를 반환하기 직전에 적용됩니다.
  • columns (list[str], 선택 사항) — 출력에서 포맷할 열입니다. 지정한 경우, 변환의 입력 배치에는 해당 열만 포함됩니다.
  • output_all_columns (bool, 기본값 False) — 출력에 포맷되지 않은 컬럼도 포함합니다 (python 객체로). True로 설정하면, 변환 결과와 함께 다른 포맷되지 않은 컬럼도 유지됩니다.

이 변환을 사용하여 __getitem__의 반환 형식을 설정합니다. __getitem__이 호출될 때 배치에 대해 이 변환이 즉시 적용됩니다. 변환은 데이터셋 사전의 모든 데이터셋에 대해 설정됩니다.

set_format()와 마찬가지로, reset_format()을 사용하여 초기화할 수 있습니다.

set_transform()과 달리, with_transform은 새로운 Dataset 객체를 포함하는 새로운 DatasetDict 객체를 반환합니다.

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> def encode(example):
...     return tokenizer(example['text'], truncation=True, padding=True, return_tensors="pt")
>>> ds = ds.with_transform(encode)
>>> ds["train"][0]
{'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 1, 1, 1, 1, 1, 1, 1, 1, 1]),
 'input_ids': tensor([  101,  1103,  2067,  1110, 17348,  1106,  1129,  1103,  6880,  1432,
        112,   188,  1207,   107, 14255,  1389,   107,  1105,  1115,  1119,
        112,   188,  1280,  1106,  1294,   170, 24194,  1256,  3407,  1190,
        170, 11791,  5253,   188,  1732,  7200, 10947, 12606,  2895,   117,
        179,  7766,   118,   172, 15554,  1181,  3498,  6961,  3263,  1137,
        188,  1566,  7912, 14516,  6997,   119,   102]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0])}

flatten

< >

( max_depth = 16 )

각 split의 Apache Arrow Table을 flatten합니다(중첩된 feature는 flatten됩니다). struct 타입인 각 열은 struct 필드별로 하나의 열로 flatten됩니다. 다른 열은 변경되지 않습니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad")
>>> ds["train"].features
{'id': Value('string'),
 'title': Value('string'),
 'context': Value('string'),
 'question': Value('string'),
 'answers.text': List(Value('string')),
 'answers.answer_start': List(Value('int32'))}
>>> ds.flatten()
DatasetDict({
    train: Dataset({
        features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
        num_rows: 87599
    })
    validation: Dataset({
        features: ['id', 'title', 'context', 'question', 'answers.text', 'answers.answer_start'],
        num_rows: 10570
    })
})

캐스트

< >

( features: Features )

매개변수

  • features (Features) — 데이터셋을 변환할 새 features입니다. features의 필드 이름과 순서는 현재 컬럼 이름과 일치해야 합니다. 데이터의 유형도 서로 변환 가능해야 합니다. string <-> ClassLabel와 같이 단순하지 않은 변환의 경우, map()을 사용하여 데이터셋을 업데이트해야 합니다.

데이터셋을 새로운 기능 집합으로 캐스팅합니다. 변환은 데이터셋 사전의 모든 데이터셋에 적용됩니다.

예:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds["train"].features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature )

매개변수

  • column (str) — 열 이름.
  • feature (Feature) — 대상 feature입니다.

디코딩을 위해 컬럼을 feature로 캐스팅합니다.

예:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → DatasetDict

매개변수

  • column_names (Union[str, list[str]]) — 제거할 열의 이름입니다.

반환값

DatasetDict

제거할 열이 없는 dataset 객체의 복사본입니다.

dataset의 각 split에서 하나 이상의 컬럼 및 해당 컬럼과 연관된 features를 제거합니다.

변환은 데이터셋 사전의 모든 분할에 적용됩니다.

remove_columns을 사용하여 map()으로 컬럼을 제거할 수도 있지만, 현재 메서드는 나머지 컬럼의 데이터를 복사하지 않으므로 더 빠릅니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds = ds.remove_columns("label")
DatasetDict({
    train: Dataset({
        features: ['text'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text'],
        num_rows: 1066
    })
})

rename_column

< >

( original_column_name: strnew_column_name: str )

매개변수

  • original_column_name (str) — 이름을 변경할 열의 이름.
  • new_column_name (str) — 열의 새 이름.

데이터셋의 컬럼 이름을 변경하고, 원래 컬럼에 연결된 기능을 새 컬럼 이름 아래로 이동합니다. 변환은 데이터셋 사전의 모든 데이터셋에 적용됩니다.

remove_columns를 사용하여 map()으로 컬럼 이름을 변경할 수도 있지만, 현재 방법은 다음과 같습니다:

  • 원래 특징을 새 열 이름 아래로 이동하는 작업을 처리합니다.
  • 새 데이터셋으로 데이터를 복사하지 않으므로 훨씬 빠릅니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds = ds.rename_column("label", "label_new")
DatasetDict({
    train: Dataset({
        features: ['text', 'label_new'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text', 'label_new'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text', 'label_new'],
        num_rows: 1066
    })
})

rename_columns

< >

( column_mapping: dict ) → DatasetDict

매개변수

  • column_mapping (Dict[str, str]) — 새 이름으로 변경할 열의 매핑입니다.

반환값

DatasetDict

열 이름이 변경된 데이터셋의 복사본입니다.

dataset의 여러 열 이름을 변경하고, 원래 열에 연결된 기능을 새 열 이름 아래로 이동합니다. 변환은 dataset 사전의 모든 dataset에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.rename_columns({'text': 'text_new', 'label': 'label_new'})
DatasetDict({
    train: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text_new', 'label_new'],
        num_rows: 1066
    })
})

select_columns

< >

( column_names: typing.Union[str, list[str]] )

매개변수

  • column_names (Union[str, list[str]]) — 유지할 열의 이름입니다.

데이터셋의 각 split에서 하나 이상의 column을 선택하고 해당 column과 연관된 features를 지정합니다.

변환은 데이터셋 사전의 모든 분할에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")
>>> ds.select_columns("text")
DatasetDict({
    train: Dataset({
        features: ['text'],
        num_rows: 8530
    })
    validation: Dataset({
        features: ['text'],
        num_rows: 1066
    })
    test: Dataset({
        features: ['text'],
        num_rows: 1066
    })
})

class_encode_column

< >

( column: strinclude_nulls: bool = False )

매개변수

  • column (str) — 캐스트할 열의 이름.
  • include_nulls (bool, 기본값은 False) — 클래스 라벨에 null 값을 포함할지 여부입니다. True, 인 경우, null 값은 "None" 클래스 라벨로 인코딩됩니다.

    1.14.2에 추가됨

주어진 컬럼을 ClassLabel으로 캐스팅하고 테이블을 업데이트합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("google/boolq")
>>> ds["train"].features
{'answer': Value('bool'),
 'passage': Value('string'),
 'question': Value('string')}
>>> ds = ds.class_encode_column("answer")
>>> ds["train"].features
{'answer': ClassLabel(num_classes=2, names=['False', 'True']),
 'passage': Value('string'),
 'question': Value('string')}

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

매개변수

  • repo_id (str) — 다음 형식으로 push할 저장소의 ID입니다: <user>/<dataset_name> 또는 <org>/<dataset_name>. 또한 <dataset_name>, 도 허용되며, 이 경우 로그인한 사용자의 namespace가 기본값으로 사용됩니다.

    또한 버킷 내부의 위치일 수도 있습니다. 예: buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) — 데이터셋의 구성 이름입니다. 기본값은 “default”입니다.
  • set_default (bool, 선택 사항) — 이 구성을 기본 구성으로 설정할지 여부입니다. 그렇지 않으면 기본 구성은 “default”로 지정된 구성입니다.
  • data_dir (str, 선택 사항) — 업로드된 데이터 파일을 포함할 디렉터리 이름. 기본값은 config_name 이 “default”와 다르면 해당 값, 아니면 “data”입니다.

    2.17.0에 추가

  • commit_message (str, 선택 사항) — push할 때 사용할 커밋 메시지입니다. 기본값은 "Upload dataset"입니다.
  • commit_description (str, 선택 사항) — 생성될 커밋에 대한 설명입니다. PR이 생성되는 경우 PR에 대한 설명이기도 합니다(create_pr True인 경우).

    2.16.0에 추가

  • private (bool, 선택 사항) — 리포지토리를 비공개로 만들지 여부를 지정합니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 리포지토리는 공개됩니다. 이미 리포지토리가 존재하면 이 값은 무시됩니다.
  • token (str, 선택) — Hugging Face Hub에 대한 선택적 인증 토큰입니다. 토큰이 전달되지 않으면 hf auth login으로 로그인할 때 로컬에 저장된 토큰을 기본값으로 사용합니다. 토큰이 전달되지 않고 사용자가 로그인되지 않은 경우 오류가 발생합니다.
  • revision (str, 선택 사항) — 업로드한 파일을 푸시할 브랜치입니다. 기본값은 "main" 브랜치입니다.

    2.15.0에 추가

  • create_pr (bool, 선택 사항, 기본값은 False) — 업로드된 파일로 PR을 생성할지, 아니면 직접 커밋할지 여부.

    2.15.0에 추가

  • max_shard_size (int 또는 str, 선택 사항, 기본값 "500MB") — hub에 업로드할 데이터셋 샤드의 최대 크기입니다. 문자열로 표현할 경우 숫자 뒤에 단위(예: "500MB" 또는 "1GB")가 따라와야 합니다.
  • num_shards (Dict[str, int], 선택 사항) — 쓰기 위한 샤드 수. 기본적으로 샤드 수는 max_shard_size. 각 split에 대해 다른 num_shards를 정의하려면 딕셔너리를 사용하세요.

    2.8.0에 추가

  • embed_external_files (bool, 기본값은 True) — shards에 파일 바이트를 임베드할지 여부입니다. 구체적으로, push를 수행하기 전에 다음 유형의 필드에 대해 다음 작업을 수행합니다:
    • Audio 및 Image는 로컬 경로 정보를 제거하고 파일 내용을 Parquet 파일에 임베드합니다.
  • num_proc (int, 선택 사항, 기본값은 None) — 데이터셋을 준비하고 업로드할 때 사용할 프로세스 수입니다. 데이터셋에 샘플이나 임베드할 미디어 파일이 많을 때 유용합니다. HF로의 빠른 업로드를 위한 Rust 클라이언트인 hf_xet과 함께 작동하도록 “spawn” 컨텍스트를 사용합니다. 기본적으로 멀티프로세싱이 비활성화되어 있습니다.

    4.0.0에 추가

DatasetDict를 Parquet 데이터셋으로 hub에 업로드합니다. DatasetDict는 HTTP 요청을 통해 업로드되며, git 또는 git-lfs가 설치되어 있지 않아도 됩니다.

각 데이터셋 분할은 독립적으로 push됩니다. push된 데이터셋은 원래의 분할 이름을 유지합니다.

생성된 Parquet 파일은 기본적으로 자체 포함(self-contained)됩니다. 데이터셋에 Image 또는 Audio 데이터가 포함된 경우, Parquet 파일에 이미지 또는 오디오 파일의 바이트가 저장됩니다. embed_external_files를 False로 설정하여 이 기능을 비활성화할 수 있습니다.

예:

>>> dataset_dict.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", num_shards={"train": 1024, "test": 8})

데이터셋에 새로운 구성(또는 부분 집합)을 추가하려면(예: 데이터셋에 여러 작업/버전/언어가 있는 경우):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

save_to_disk

< >

( dataset_dict_path: typing.Union[str, bytes, os.PathLike]max_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Nonenum_proc: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None )

매개변수

  • dataset_dict_path (path-like) — dataset dict가 저장될 dataset dict 디렉터리의 경로(예: dataset/train) 또는 원격 URI(예: s3://my-bucket/dataset/train).
  • max_shard_size (int 또는 str, 선택 사항, 기본값 "500MB") — 파일시스템에 저장할 데이터셋 샤드의 최대 크기입니다. 문자열로 표현할 경우, 숫자 뒤에 단위(예: "50MB")가 따라와야 합니다.
  • num_shards (Dict[str, int], 선택 사항) — 쓰기 위한 샤드 수. 기본적으로 샤드 수는 max_shard_size 및 num_proc. 데이터셋 사전의 각 데이터셋에 대한 샤드 수를 제공해야 합니다. 사전(split)별로 다른 num_shards를 정의하려면 사전(dictionary)을 사용하세요.

    2.8.0에 추가

  • num_proc (int, 선택 사항, 기본값 None) — 데이터셋을 로컬로 다운로드하고 생성할 때 사용할 프로세스 수. 기본적으로 멀티프로세싱이 비활성화되어 있습니다.

    2.8.0에 추가

  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.8.0에 추가

fsspec.spec.AbstractFileSystem를 사용하여 데이터셋 딕셔너리를 파일 시스템에 저장합니다.

Image, Audio, Video 데이터의 경우:

Image(), Audio() 및 Video() 데이터는 모두 arrow 파일에 저장됩니다. 경로나 URL을 저장하려면 Value(“string”) 타입을 사용하세요.

예:

>>> dataset_dict.save_to_disk("path/to/dataset/directory")
>>> dataset_dict.save_to_disk("path/to/dataset/directory", max_shard_size="1GB")
>>> dataset_dict.save_to_disk("path/to/dataset/directory", num_shards={"train": 1024, "test": 8})

load_from_disk

< >

( dataset_dict_path: typing.Union[str, bytes, os.PathLike]keep_in_memory: typing.Optional[bool] = Nonestorage_options: typing.Optional[dict] = None )

매개변수

  • dataset_dict_path (path-like) — dataset dict가 로드될 dataset dict 디렉터리의 경로(예: "dataset/train") 또는 원격 URI(예: "s3//my-bucket/dataset/train")
  • keep_in_memory (bool, 기본값 None) — 데이터셋을 메모리에 복사할지 여부입니다. None인 경우, datasets.config.IN_MEMORY_MAX_SIZE를 0이 아닌 값으로 설정하여 명시적으로 활성화하지 않는 한 데이터셋은 메모리에 복사되지 않습니다. 자세한 내용은 성능 개선 섹션을 참고하세요.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.8.0에 추가

fsspec.spec.AbstractFileSystem를 사용하여 파일 시스템에서 이전에 save_to_disk로 저장된 데이터셋을 로드합니다.

예:

>>> ds = load_from_disk('path/to/dataset/directory')

from_csv

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

매개변수

  • path_or_paths (dict of path-like) — CSV 파일의 경로입니다.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • **kwargs (추가 키워드 인자) — pandas.read_csv에 전달할 키워드 인자입니다.

CSV 파일에서 DatasetDict를 생성합니다.

예:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_csv({'train': 'path/to/dataset.csv'})

from_json

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — JSON Lines 파일의 경로입니다.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • **kwargs (추가 키워드 인자) — JsonConfig에 전달할 키워드 인자입니다.

JSON Lines 파일에서 DatasetDict를 생성합니다.

예:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_json({'train': 'path/to/dataset.json'})

from_parquet

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = None**kwargs )

매개변수

  • path_or_paths (dict of path-like) — CSV 파일의 경로입니다.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • columns (list[str], 선택 사항) — None이 아닌 경우, 파일에서 이 컬럼만 읽습니다. 컬럼 이름은 중첩 필드의 접두사일 수 있습니다. 예를 들어 ‘a’를 지정하면 ‘a.b’, ‘a.c’, ‘a.d.e’가 선택됩니다.
  • **kwargs (추가 키워드 인자) — ParquetConfig에 전달할 키워드 인자입니다.

Parquet 파일에서 DatasetDict를 생성합니다.

예:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_parquet({'train': 'path/to/dataset/parquet'})

from_text

< >

( path_or_paths: dictfeatures: typing.Optional[datasets.features.features.Features] = Nonecache_dir: str = Nonekeep_in_memory: bool = False**kwargs )

매개변수

  • path_or_paths (dict of path-like) — 텍스트 파일의 경로입니다.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • cache_dir (str, 선택 사항, 기본값 "~/.cache/huggingface/datasets") — 데이터를 캐시할 디렉터리.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • **kwargs (추가 키워드 인자) — TextConfig에 전달할 키워드 인자입니다.

텍스트 파일에서 DatasetDict를 생성합니다.

예:

>>> from datasets import DatasetDict
>>> ds = DatasetDict.from_text({'train': 'path/to/dataset.txt'})

IterableDataset

기본 클래스 IterableDataset은 Python 생성기로 뒷받침되는 반복 가능한 Dataset을 구현합니다.

class datasets.IterableDataset

< >

( ex_iterable: _BaseExamplesIterableinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Noneformatting: typing.Optional[datasets.iterable_dataset.FormattingConfig] = Nonedistributed: typing.Optional[datasets.iterable_dataset.DistributedConfig] = Nonetoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

iterable에 기반한 Dataset입니다.

from_file

< >

( filename: str )

매개변수

  • filename (str) — 데이터셋의 파일 이름.

filename의 Arrow 테이블에서 IterableDataset을(를) 생성합니다.

from_pandas

< >

( df: DataFramefeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonepreserve_index: typing.Optional[bool] = Nonenum_shards: typing.Optional[int] = 1 )

매개변수

  • df (pandas.DataFrame) — 데이터셋을 포함하는 데이터프레임.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • info (DatasetInfo, 선택 사항) — 설명, 인용 문헌 등 데이터셋 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • preserve_index (bool, 선택 사항) — 결과 Dataset에 인덱스를 추가 열로 저장할지 여부입니다. 기본값인 None은 RangeIndex를 제외하고 인덱스를 열로 저장합니다. RangeIndex는 메타데이터로만 저장됩니다. 인덱스를 반드시 열로 저장하려면 preserve_index=True를 사용하세요.
  • num_shards (int, 기본값 1) — iterable dataset을 인스턴스화할 때 정의할 shard의 수입니다. 이는 특히 큰 dataset에서 올바르게 shuffle할 수 있도록 하는 데 유용하며, PyTorch DataLoader를 사용하여 빠른 병렬 로딩을 활성화하거나 분산 환경에서 사용하는 데에도 유용합니다.

pandas.DataFrame를 pyarrow.Table로 변환하여 IterableDataset을 생성합니다.

결과 Arrow Table의 열 유형은 DataFrame의 pandas.Series dtype에서 추론됩니다. object가 아닌 Series의 경우, NumPy dtype이 해당 Arrow 유형으로 변환됩니다. object의 경우, 이 Series에 포함된 Python 객체를 살펴서 데이터 유형을 추측해야 합니다.

object dtype의 Series는 항상 의미 있는 Arrow 타입으로 이어질 만큼 충분한 정보를 담고 있지 않을 수 있습니다. DataFrame의 길이가 0이거나 Series에 None/nan 객체만 포함된 경우와 같이 타입을 추론할 수 없는 경우, 타입은 null로 설정됩니다. 이 동작은 명시적인 features를 구성하여 이 함수에 전달함으로써 방지할 수 있습니다.

Important: a dataset created with from_pandas() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it on disk and reload using e.g. to_parquet / from_parquet.

예:

>>> ds = IterableDataset.from_pandas(df)

from_dict

< >

( mapping: dictfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonenum_shards: typing.Optional[int] = 1 )

매개변수

  • mapping (Mapping) — 문자열에서 Array 또는 Python 리스트로의 매핑.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • info (DatasetInfo, 선택 사항) — 설명, 인용 문헌 등 데이터셋 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • num_shards (int, 기본값 1) — iterable dataset을 인스턴스화할 때 정의할 shard의 수입니다. 이는 특히 큰 dataset에서 올바르게 shuffle할 수 있도록 하는 데 유용하며, PyTorch DataLoader를 사용하여 빠른 병렬 로딩을 활성화하거나 분산 환경에서 사용하는 데에도 유용합니다.

dict을 pyarrow.Table로 변환하여 IterableDataset을 생성합니다.

Important: a dataset created with from_dict() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. to_parquet / from_parquet.

from_list

< >

( mapping: listfeatures: typing.Optional[datasets.features.features.Features] = Noneinfo: typing.Optional[datasets.info.DatasetInfo] = Nonesplit: typing.Optional[datasets.splits.NamedSplit] = Nonenum_shards: typing.Optional[int] = 1 )

매개변수

  • mapping (List[dict]) — 문자열에서 행 값으로의 매핑 목록.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • info (DatasetInfo, optional) — 설명, 인용 정보 등 데이터셋에 대한 정보
  • split (NamedSplit, 선택 사항) — 데이터셋 분할의 이름.
  • num_shards (int, 기본값 1) — iterable dataset을 인스턴스화할 때 정의할 shard의 수입니다. 이는 특히 큰 dataset에서 올바르게 shuffle할 수 있도록 하는 데 유용하며, PyTorch DataLoader를 사용하여 빠른 병렬 로딩을 활성화하거나 분산 환경에서 사용하는 데에도 유용합니다.

dict 목록을 pyarrow.Table로 변환하여 IterableDataset을 생성합니다.

features에 전달된 값과 관계없이, 첫 번째 항목의 키가 데이터셋 열을 결정하는 데 사용됩니다.

Important: a dataset created with from_list() lives in memory. This may change in the future, but in the meantime if you want to reduce memory usage you should write it back on disk and reload using e.g. from_parquet / to_parquet.

from_generator

< >

( generator: typing.Callablefeatures: typing.Optional[datasets.features.features.Features] = Nonegen_kwargs: typing.Optional[dict] = Nonesplit: NamedSplit = NamedSplit('train') )

매개변수

  • generator (Callable) — 예시를 yields하는 생성기 함수.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • gen_kwargs(dict, 선택 사항) — generator 콜러블에 전달할 키워드 인수입니다. gen_kwargs에 샤드 목록을 전달하여 샤드된 반복 가능 데이터셋을 정의할 수 있습니다. 이것은 셔플링을 개선하고 여러 워커로 데이터셋을 반복할 때 사용할 수 있습니다.
  • split (NamedSplit, 기본값은 Split.TRAIN) — 데이터셋에 할당할 Split 이름입니다.

    2.21.0에 추가됨

제너레이터에서 Iterable Dataset을 생성합니다.

예:

>>> def gen():
...     yield {"text": "Good", "label": 0}
...     yield {"text": "Bad", "label": 1}
...
>>> ds = IterableDataset.from_generator(gen)
>>> def gen(shards):
...     for shard in shards:
...         with open(shard) as f:
...             for line in f:
...                 yield {"line": line}
...
>>> shards = [f"data{i}.txt" for i in range(32)]
>>> ds = IterableDataset.from_generator(gen, gen_kwargs={"shards": shards})
>>> ds = ds.shuffle(seed=42, buffer_size=10_000)  # shuffles the shards order + uses a shuffle buffer
>>> from torch.utils.data import DataLoader
>>> dataloader = DataLoader(ds.with_format("torch"), num_workers=4)  # give each worker a subset of 32/4=8 shards

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDataset

매개변수

  • column_names (Union[str, List[str]]) — 제거할 열의 이름입니다.

반환값

IterableDataset

제거할 열이 없는 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 컬럼과 해당 컬럼에 연관된 features를 제거합니다. 제거 작업은 데이터셋을 반복할 때 예제에 대해 실시간으로 수행됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .', 'label': 1}
>>> ds = ds.remove_columns("label")
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

select_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDataset

매개변수

  • column_names (Union[str, List[str]]) — 선택할 열의 이름입니다.

반환값

IterableDataset

선택된 컬럼을 가진 데이터셋 객체의 복사본입니다.

데이터셋에서 하나 이상의 열과 해당 열에 연관된 features를 선택합니다. 선택은 데이터셋을 반복할 때 예제에 대해 실시간으로 수행됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .', 'label': 1}
>>> ds = ds.select_columns("text")
>>> next(iter(ds))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure] ) → IterableDataset

매개변수

  • column (str) — 열 이름.
  • feature (Feature) — 대상 feature입니다.

반환값

IterableDataset

디코딩을 위해 컬럼을 feature로 캐스팅합니다.

예:

>>> from datasets import load_dataset, Audio
>>> ds = load_dataset("PolyAI/minds14", name="en-US", split="train", streaming=True)
>>> ds.features
{'audio': Audio(sampling_rate=8000, mono=True, decode=True, id=None),
 'english_transcription': Value('string'),
 'intent_class': ClassLabel(num_classes=14, names=['abroad', 'address', 'app_error', 'atm_limit', 'balance', 'business_loan',  'card_issues', 'cash_deposit', 'direct_debit', 'freeze', 'high_value_payment', 'joint_account', 'latest_transactions', 'pay_bill']),
 'lang_id': ClassLabel(num_classes=14, names=['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR',  'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN']),
 'path': Value('string'),
 'transcription': Value('string')}
>>> ds = ds.cast_column("audio", Audio(sampling_rate=16000))
>>> ds.features
{'audio': Audio(sampling_rate=16000, mono=True, decode=True, id=None),
 'english_transcription': Value('string'),
 'intent_class': ClassLabel(num_classes=14, names=['abroad', 'address', 'app_error', 'atm_limit', 'balance', 'business_loan',  'card_issues', 'cash_deposit', 'direct_debit', 'freeze', 'high_value_payment', 'joint_account', 'latest_transactions', 'pay_bill']),
 'lang_id': ClassLabel(num_classes=14, names=['cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR',  'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN']),
 'path': Value('string'),
 'transcription': Value('string')}

캐스트

< >

( features: Features ) → IterableDataset

매개변수

  • features (Features) — 데이터셋을 변환할 새 features입니다. features의 필드 이름은 현재 열 이름과 일치해야 합니다. 데이터의 유형도 서로 변환 가능해야 합니다. string <-> ClassLabel와 같이 단순하지 않은 변환의 경우 map()을 사용하여 Dataset을 업데이트해야 합니다.

반환값

IterableDataset

캐스팅된 기능이 포함된 데이터셋의 복사본입니다.

데이터셋을 새로운 기능 집합으로 캐스팅합니다.

예:

>>> from datasets import load_dataset, ClassLabel, Value
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> ds.features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds.features.copy()
>>> new_features["label"] = ClassLabel(names=["bad", "good"])
>>> new_features["text"] = Value("large_string")
>>> ds = ds.cast(new_features)
>>> ds.features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

decode

< >

( enable: bool = Truenum_threads: typing.Optional[int] = None ) → IterableDataset

매개변수

  • enable (bool, 기본값 True) — features 디코딩을 활성화하거나 비활성화합니다.
  • num_threads (int, 선택 사항, 기본값 None) — features 디코딩을 위한 멀티스레딩을 활성화합니다. HF에서 디코딩 가능한 features를 가진 dataset을 스트리밍할 때 load_dataset()는 기본적으로 몇 개의 스레드를 사용합니다. 기본적으로 num_threads는 디코딩이 필요한 feature가 하나 이상이면 32로, 그렇지 않으면 0으로 설정됩니다.

반환값

IterableDataset

캐스팅된 기능이 포함된 데이터셋의 복사본입니다.

오디오, 이미지, 비디오에 대한 데이터셋 기능 디코딩을 활성화하거나 비활성화합니다.

활성화(기본값)되면 미디어 유형이 디코딩됩니다:

  • audio -> “array”, “sampling_rate”, “path” 키를 가진 dict
  • image -> PIL.Image
  • video -> torchcodec.decoders.VideoDecoder

멀티스레딩은 num_threads를 통해 활성화할 수 있습니다. 이 경우 각 미디어 파일은 워커 스레드에서 읽히고 디코딩되어, 연속된 예시의 네트워크 왕복 시간이 겹치게 됩니다. 이는 원격 데이터 스트리밍 속도를 높이는 데 특히 유용하며, 디코딩 가능한 기능이 있는 원격 데이터셋을 스트리밍할 때 load_dataset()은 기본적으로 이를 활성화합니다(자세한 내용은 HF_DATASETS_DECODE_NUM_THREADS 참조). 로컬 디스크에서 읽은 데이터셋은 빠른 디스크의 로컬 데이터에서 멀티스레딩이 메인 스레드에서 디코딩하는 것보다 느릴 수 있으므로 num_threads=0으로 스트리밍됩니다. 예시가 미리 디코딩되므로, 진행 중인 각 스레드는 메모리에 예시 하나를 유지할 수 있습니다. 메모리 사용량을 줄이려면 num_threads를 낮추세요.

미디어 파일의 경로나 바이트를 실제 콘텐츠 디코딩 없이 반복적으로 처리하려면 디코딩을 비활성화하는 것이 유용합니다. 디코딩을 비활성화하려면 .decode(False)를 사용할 수 있으며, 이는 모든 Audio, Image, Video 타입에 대해 decode=False로 설정하고 .cast() 또는 .cast_column()을 호출하는 것과 동일합니다.

예:

디코딩 비활성화:

>>> from datasets import load_dataset
>>> ds = load_dataset("sshh12/planet-textures", split="train", streaming=True)
>>> next(iter(ds))
{'image': <PIL.PngImagePlugin.PngImageFile image mode=RGB size=2048x1024>,
'text': 'A distant celestial object with an icy crust, displaying a light blue shade, covered with round pits and rugged terrains.'}
>>> ds = ds.decode(False)
>>> ds.features
{'image': Image(mode=None, decode=False, id=None),
'text': Value('string')}
>>> next(iter(ds))
{
  'image': {
    'path': 'hf://datasets/sshh12/planet-textures@69dc4cef7a5c4b2cfe387727ec8ea73d4bff7302/train/textures/0000.png',
    'bytes': None
  },
  'text': 'A distant celestial object with an icy crust, displaying a light blue shade, covered with round pits and rugged terrains.'
}

멀티스레딩으로 스트리밍 속도 향상:

>>> import os
>>> from datasets import load_dataset
>>> from tqdm import tqdm
>>> ds = load_dataset("sshh12/planet-textures", split="train", streaming=True)
>>> # already threaded by default with 32 threads, but more threads can help going even faster
>>> ds = ds.decode(num_threads=64)
>>> for _ in tqdm(ds):  # 2 times faster !
...     ...

__iter__

< >

( )

iter

< >

( batch_size: intdrop_last_batch: bool = False )

매개변수

  • batch_size (int) — yield할 각 배치의 크기.
  • drop_last_batch (bool, 기본값 False) — batch_size보다 작은 마지막 배치를 삭제할지 여부

크기 batch_size의 배치들을 순회합니다.

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonefn_kwargs: typing.Optional[dict] = None )

매개변수

  • function (Callable, 선택 사항, 기본값은 None) — 데이터셋을 반복할 때 예제에 즉시 적용되는 함수입니다. 다음 중 하나의 서명을 가져야 합니다:
    • batched=False이고 with_indices=False인 경우 function(example: Dict[str, Any]) -> Dict[str, Any]
    • batched=False이고 with_indices=True인 경우 function(example: Dict[str, Any], idx: int) -> Dict[str, Any]
    • batched=True이고 with_indices=False인 경우 function(batch: Dict[str, List]) -> Dict[str, List]
    • function(batch: Dict[str, List], indices: List[int]) -> Dict[str, List] if batched=True and with_indices=True

    고급 사용의 경우, 이 함수는 pyarrow.Table를 반환할 수도 있습니다. 함수가 비동기(asynchronous)인 경우, map는 사용자의 함수를 병렬로 실행합니다. 또한 함수가 아무것도 반환하지 않는 경우(None), map는 사용자의 함수를 실행하고 데이터셋을 변경하지 않은 상태로 반환합니다. 함수가 제공되지 않으면, 항등 함수(identity function)인 lambda x: x를 기본값으로 사용합니다.

  • with_indices (bool, 기본값 False) — function에 예시 인덱스를 제공합니다. 이 경우 function의 시그니처는 def function(example, idx[, rank]): ...여야 합니다.
  • input_columns (Optional[Union[str, List[str]]], 기본값 None) — function에 위치 인수로 전달할 열입니다. None인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.
  • batched (bool, 기본값 False) — function에 예시 배치(batch)를 제공합니다.
  • batch_size (int, 선택 사항, 기본값 1000) — batched=True인 경우 function에 배치별로 제공되는 예시 수입니다. batch_size <= 0 또는 batch_size == None이면 전체 데이터셋을 단일 배치로 function에 제공합니다.
  • drop_last_batch (bool, 기본값 False) — batch_size보다 작은 마지막 배치에 대해 함수로 처리하는 대신 버릴지 여부입니다.
  • remove_columns ([List[str]], 선택 사항, 기본값 None) — 매핑을 수행하는 동안 선택된 컬럼을 제거합니다. 컬럼은 function의 출력으로 예시를 업데이트하기 전에 제거되므로, function이 remove_columns에 포함된 이름의 컬럼을 추가하는 경우 해당 컬럼은 유지됩니다.
  • features ([Features], 선택 사항, 기본값 None) — 결과 데이터셋의 feature 유형입니다.
  • fn_kwargs (Dict, 선택 사항, 기본값 None) — function에 전달할 키워드 인자입니다.

반복 가능한 데이터셋의 모든 예시에 함수를 적용(개별 또는 배치 단위)하여 예시를 업데이트합니다. 함수가 이미 존재하는 컬럼을 반환하면 해당 컬럼을 덮어씁니다. 함수는 데이터셋을 반복할 때 예시에 즉시(on-the-fly) 적용됩니다.

batched 매개변수를 사용하여 함수가 배치 처리되어야 하는지 여부를 지정할 수 있습니다:

  • False인 경우, 이 함수는 1개의 예시를 입력으로 받아 1개의 예시를 반환해야 합니다. 예시는 사전(dictionary)이며, 예를 들어 {"text": "Hello there !"}과 같습니다.
  • True이고 batch_size가 1인 경우, 이 함수는 1개의 예시로 구성된 배치로 입력을 받아 1개 이상의 예시로 구성된 배치를 반환할 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 1개의 예시로 구성된 배치는 {“text”: [“Hello there !”"]}입니다.
  • True이고 batch_size가 n > 1인 경우, 이 함수는 n개의 예시로 구성된 배치(batch)를 입력으로 받아 n개의 예시로 구성된 배치 또는 임의의 개수의 예시로 구성된 배치를 반환할 수 있습니다. 마지막 배치에는 n개보다 적은 예시가 포함될 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 n개의 예시로 구성된 배치는 {"text": ["Hello there !"] * n}입니다.

함수가 비동기(asynchronous)인 경우, map은 최대 1,000개의 동시 호출을 허용하면서 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 asyncio.Semaphore를 사용하는 것이 권장됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'Review: the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'Review: effective but too-tepid biopic'}]

rename_column

< >

( original_column_name: strnew_column_name: str ) → IterableDataset

매개변수

  • original_column_name (str) — 이름을 변경할 열의 이름.
  • new_column_name (str) — 열의 새 이름.

반환값

IterableDataset

열 이름이 변경된 데이터셋의 복사본.

데이터셋의 컬럼 이름을 변경하고, 원래 컬럼에 연결된 특징을 새 컬럼 이름 아래로 이동합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> next(iter(ds))
{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}
>>> ds = ds.rename_column("text", "movie_review")
>>> next(iter(ds))
{'label': 1,
 'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

필터

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = None )

매개변수

  • function (Callable) — 다음 중 하나의 시그니처를 가진 Callable입니다:
    • with_indices=False, batched=False인 경우 function(example: Dict[str, Any]) -> bool
    • function(example: Dict[str, Any], indices: int) -> bool if with_indices=True, batched=False
    • with_indices=False, batched=True인 경우 function(example: Dict[str, List]) -> List[bool]
    • function(example: Dict[str, List], indices: List[int]) -> List[bool] if with_indices=True, batched=True

    함수가 비동기(asynchronous)인 경우, filter는 해당 함수를 병렬로 실행합니다. 함수가 제공되지 않으면 항상 True를 반환하는 함수인 lambda x: True가 기본값으로 사용됩니다.

  • with_indices (bool, 기본값 False) — function에 예시 인덱스를 제공합니다. 이 경우 function의 시그니처는 def function(example, idx): ...여야 합니다.
  • input_columns (str 또는 List[str], 선택 사항) — function에 위치 인수로 전달할 열입니다. None인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.
  • batched (bool, 기본값 False) — function에 예시 배치(batch)를 제공합니다.
  • batch_size (int, 선택 사항, 기본값 1000) — batched=True인 경우 function에 전달되는 배치당 예제 수입니다.
  • fn_kwargs (Dict, 선택 사항, 기본값 None) — function에 전달할 키워드 인자입니다.

필터 함수를 모든 요소에 적용하여 데이터셋이 필터 함수에 따라 예시를 포함하도록 합니다. 필터링은 데이터셋을 반복할 때 실시간으로 수행됩니다.

함수가 비동기(asynchronous)인 경우, filter는 최대 1,000개의 동시 호출(구성 가능)까지 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 asyncio.Semaphore를 사용하는 것이 권장됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> ds = ds.filter(lambda x: x["label"] == 0)
>>> list(ds.take(3))
[{'label': 0, 'movie_review': 'simplistic , silly and tedious .'},
 {'label': 0,
 'movie_review': "it's so laddish and juvenile , only teenage boys could possibly find it funny ."},
 {'label': 0,
 'movie_review': 'exploitative and largely devoid of the depth or sophistication that would make watching such a graphic treatment of the crimes bearable .'}]

shuffle

< >

( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )

매개변수

  • seed (int, 선택 사항, 기본값 None) — 데이터셋을 섞는 데 사용할 무작위 시드입니다. 셔플 버퍼에서 샘플링할 때와 데이터 샤드를 섞을 때 사용됩니다.
  • generator (numpy.random.Generator, 선택 사항) — 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. generator=None(기본값)인 경우, np.random.default_rng(NumPy의 기본 BitGenerator(PCG64))를 사용합니다.
  • buffer_size (int, 기본값 1000) — 버퍼의 크기입니다.
  • max_buffer_input_shards (int, 기본값 10) — 버퍼에 한 번에 공급할 최대 샤드 수입니다.

이 데이터셋의 요소를 무작위로 섞습니다.

이 데이터셋은 buffer_size개의 요소로 버퍼를 채운 후, 이 버퍼에서 요소를 무작위로 샘플링하고 선택된 요소를 새로운 요소로 대체합니다. 완벽한 셔플링을 위해서는 데이터셋 전체 크기와 같거나 큰 버퍼 크기가 필요합니다.

예를 들어, 데이터셋에 10,000개의 요소가 있지만 buffer_size가 1000으로 설정되어 있다면, shuffle은 처음에 버퍼의 첫 1000개 요소 중에서만 무작위로 요소를 선택합니다. 요소가 선택되면, 버퍼 내 해당 요소의 공간은 다음(즉, 1,001번째) 요소로 대체되어 1000개 요소의 버퍼가 유지됩니다.

데이터셋이 여러 개의 샤드로 구성되어 있는 경우, 버퍼를 채우기 위해 한 번에 최대 max_buffer_input_shards개의 샤드를 사용하며, 샤드의 순서도 섞습니다. 이를 통해 셔플링의 품질이 크게 향상됩니다. 입력 샤드는 각 노드와 워커 내에서 교차(interleave)되어 배치되며, 병렬 데이터 로딩에 사용할 수 있는 샤드 수는 유지됩니다.

그러나 skip() 또는 take()를 사용하여 순서가 고정된 경우, 샤드의 순서는 변경되지 않고 버퍼를 채우기 위해 한 번에 하나의 샤드만 사용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> list(ds.take(3))
[{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'label': 1},
 {'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .',
 'label': 1},
 {'text': 'effective but too-tepid biopic', 'label': 1}]
>>> shuffled_ds = ds.shuffle(seed=42)
>>> list(shuffled_ds.take(3))
[{'text': "a sports movie with action that's exciting on the field and a story you care about off it .",
 'label': 1},
 {'text': 'at its best , the good girl is a refreshingly adult take on adultery . . .',
 'label': 1},
 {'text': "sam jones became a very lucky filmmaker the day wilco got dropped from their record label , proving that one man's ruin may be another's fortune .",
 'label': 1}]
>>> resharded_ds = ds.reshard()  # useful to shard Parquet datasets by row group instead of by file, improving shuffling quality on dataset with one or few files.
>>> shuffled_resharded_ds = resharded_ds.shuffle(seed=42)
>>> list(shuffled_resharded_ds.take(3))
[{'text': 'this mistaken-identity picture is so film-culture referential that the final product is a ghost .',
 'label': 0},
 {'text': 'woody allen used to ridicule movies like hollywood ending . now he makes them .',
 'label': 0},
 {'text': "not only is undercover brother as funny , if not more so , than both austin powers films , but it's also one of the smarter , savvier spoofs to come along in some time .",
 'label': 1}]

배치

< >

( batch_size: typing.Optional[int] = Noneby_column: typing.Union[str, list[str], NoneType] = Nonedrop_last_batch: bool = False )

매개변수

  • batch_size (int, 선택 사항) — 각 배치에 포함된 샘플의 수입니다.
  • by_column (Union[str, list[str], 선택 사항 — 예제를 배치로 묶는 데 사용되는 열입니다. 해당 열의 값이 동일한 연속된 예제들은 동일한 배치에 그룹화됩니다. 여러 열을 기준으로 배치하려면 열 목록도 사용할 수 있습니다. 열 기준으로 배치하는 경우, batch_size는 누적 과정에서 함께 묶거나 슬라이스할 배치의 크기를 제어하는 데만 사용됩니다.

    4.9.0에 추가

  • drop_last_batch (bool, 기본값 False) — 마지막 불완전한 배치(dropped)를 제거할지 여부.

데이터셋에서 샘플을 배치로 그룹화합니다.

예:

고정 배치 크기:

>>> ds = load_dataset("some_dataset", streaming=True, split="train")
>>> batched_ds = ds.batch(batch_size=32)

“my_column” 값이 동일한 연속 샘플 배치:

>>> ds = load_dataset("some_dataset", streaming=True, split="train")
>>> batched_ds = ds.batch(by_column="my_column")

건너뛰기

< >

( n: int )

매개변수

  • n (int) — 건너뛸 요소의 개수.

첫 n개 요소를 건너뛰는 새로운 IterableDataset을 생성합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.skip(1)
>>> list(ds.take(3))
[{'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'if you sometimes like to go to the movies to have fun , wasabi is a good place to start .'}]

take

< >

( n: int )

매개변수

  • n (int) — 가져올 요소의 개수.

첫 번째 n개 요소만 포함된 새로운 IterableDataset을 생성합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train", streaming=True)
>>> small_ds = ds.take(2)
>>> list(small_ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'}]

shard

< >

( num_shards: intindex: intcontiguous: bool = True )

매개변수

  • num_shards (int) — 데이터셋을 몇 개의 샤드로 분할할지 지정합니다.
  • index (int) — 선택하고 반환할 샤드입니다.
  • contiguous — (bool, 기본값 True): shards에 사용할 인덱스 블록을 연속적으로 선택할지 여부.

데이터셋을 num_shards개의 조각으로 나누고 index번째 샤드를 반환합니다.

이것은 결정적으로 샤딩됩니다. dataset.shard(n, i)는 데이터셋을 연속된 청크로 나누므로, 처리 후 쉽게 다시 연결할 수 있습니다. dataset.num_shards % n == l인 경우, 처음 l개의 데이터셋은 각각 (dataset.num_shards // n) + 1개의 샤드를 가지며, 나머지 데이터셋은 (dataset.num_shards // n)개의 샤드를 가집니다. datasets.concatenate_datasets([dset.shard(n, i) for i in range(n)])는 원래와 동일한 순서를 가진 데이터셋을 반환합니다. 특히, dataset.shard(dataset.num_shards, i)는 1개의 샤드를 가진 데이터셋을 반환합니다.

Note: n은 데이터셋의 샤드 수 dataset.num_shards보다 작거나 같아야 합니다.

반면, dataset.shard(n, i, contiguous=False)는 인덱스가 n = i인 데이터셋의 모든 샤드를 포함합니다.

shuffle와 같은 무작위화 연산자를 사용하기 전에 반드시 샤딩을 수행해야 합니다. 샤딩 연산자는 데이터셋 파이프라인의 초기 단계에서 사용하는 것이 가장 좋습니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("fancyzhx/amazon_polarity", split="train", streaming=True)
>>> ds
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 4
})
>>> ds.shard(num_shards=2, index=0)
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 2
})

reshard

< >

( )

가능하다면 데이터셋을 리샤드(reshard)합니다. 즉, 현재 샤드를 더 많은 샤드로 분할합니다. 이 경우 샤드 수가 증가하며, 결과 데이터셋의 num_shards >= previous_num_shards가 됩니다. 더 이상 분할할 수 있는 샤드가 없는 경우 동등한 값이 될 수 있습니다.

resharding 메커니즘은 데이터셋 파일 형식에 따라 달라집니다:

  • Parquet: 파일별로가 아닌 row group별로 샤딩
  • Vortex: 파일별로而不是 연속된 청크 범위(각각 약 64MB의 파일 데이터)별로 샤드를 생성
  • 기타: 아직 구현되지 않았습니다(기여 환영합니다!)

shuffle와 같은 무작위화 연산자를 사용하기 전에 반드시 reshard/shard를 수행하세요. shard 연산자는 데이터셋 파이프라인의 초기 단계에서 사용하는 것이 가장 좋습니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("fancyzhx/amazon_polarity", split="train", streaming=True)
>>> ds
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 4
})
>>> ds.reshard()
IterableDataset({
    features: ['label', 'title', 'content'],
    num_shards: 3600
})

반복

< >

( num_times: typing.Optional[int] )

매개변수

  • num_times (int) 또는 (None) — 데이터셋을 반복할 횟수입니다. None인 경우 데이터셋은 무한히 반복됩니다.

num_times번 반복하는 새로운 IterableDataset을 생성합니다.

num_times가 None인 경우에도 빈 입력은 처리를 종료합니다.

참고: repeat 호출 후 shuffle을 호출하는 효과는 buffer size에 따라 크게 달라집니다. buffer_size가 1인 경우, 셔플링 후에도 동일한 반복(iteration)에서 중복 데이터가 절대 관찰되지 않습니다: ds.repeat(n).shuffle(seed=42, buffer_size=1)은 ds.shuffle(seed=42, buffer_size=1).repeat(n)과 동일하며, 각 반복 내에서만 샤드(shard) 순서를 셔플링합니다. buffer size가 >= (데이터셋의 샘플 수 * num_times)인 경우, 반복된 데이터에 대한 완전한 셔플링이 수행되어, 동일한 반복에서 중복을 관찰할 수 있습니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds = ds.take(2).repeat(2)
>>> list(ds)
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'},
 {'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]

to_csv

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_csv_kwargs ) → int

매개변수

  • path_or_buf (PathLike 또는 FileOrBuffer) — 파일 경로(예: file.csv), 원격 URI(예: hf://datasets/username/my_dataset_name/data.csv), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.
  • batch_size (int, 선택 사항) — 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍(해당하는 경우).
  • **to_csv_kwargs (추가 키워드 인자) — pandas의 pandas.DataFrame.to_csv에 전달할 매개변수입니다. index 매개변수는 지정되지 않은 경우 기본값이 False입니다. 인덱스를 기록하려면 index=True를 전달하고 index_label을 전달하여 인덱스 열 이름을 설정해야 합니다.

반환값

int

쓰인 문자 또는 바이트 수.

데이터셋을 csv로 내보냅니다.

이것은 데이터셋을 반복하며, 쓰기 전에 완전히 메모리에 로드합니다.

예:

>>> ds.to_csv("path/to/dataset/directory")

to_pandas

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

매개변수

  • batch_size (int, 선택 사항) — batched가 True인 경우 배치의 크기(행 수)입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • batched (bool) — True로 설정하면 batch_size 행의 배치로 데이터셋을 반환하는 생성자를 반환합니다. 기본값은 False입니다(데이터셋 전체를 한 번에 반환).

pandas.DataFrame로 데이터셋을 반환합니다. 대규모 데이터셋의 경우 생성기도 반환할 수 있습니다.

예:

>>> ds.to_pandas()

to_dict

< >

( batch_size: typing.Optional[int] = Nonebatched: bool = False )

매개변수

  • batch_size (int, 선택 사항) — batched가 True인 경우 배치의 크기(행 수)입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.

Python dict으로 데이터셋을 반환합니다. 대규모 데이터셋의 경우 생성자(generator)를 반환할 수도 있습니다.

예:

>>> ds.to_dict()

to_json

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**to_json_kwargs ) → int

매개변수

  • path_or_buf (PathLike 또는 FileOrBuffer) — 파일 경로(예: file.json), 원격 URI(예: hf://datasets/username/my_dataset_name/data.json), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.
  • batch_size (int, 선택 사항) — 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍(해당하는 경우).
  • **to_json_kwargs (additional keyword arguments) — Parameters to pass to pandas’s pandas.DataFrame.to_json. Default arguments are lines=True and orient="records". The parameter indexdefaults toFalseiforientis“split”or“table”. If you would like to write the index, pass index=True`.

반환값

int

쓰인 문자 또는 바이트 수.

데이터셋을 JSON Lines 또는 JSON으로 내보냅니다.

이것은 데이터셋을 반복하며, 쓰기 전에 완전히 메모리에 로드합니다.

기본 출력 형식은 JSON Lines입니다. JSON으로 내보내려면 lines=False 인자와 원하는 orient를 전달하세요.

예:

>>> ds.to_json("path/to/dataset/directory/filename.jsonl")
>>> num_shards = dataset.num_shards
>>> for index in range(num_shards):
...     shard = dataset.shard(index, num_shards)
...     shard.to_json(f"path/of/my/dataset/data-{index:05d}.jsonl")

to_parquet

< >

( path_or_buf: typing.Union[str, bytes, os.PathLike, typing.BinaryIO]batch_size: typing.Optional[int] = Nonestorage_options: typing.Optional[dict] = None**parquet_writer_kwargs ) → int

매개변수

  • path_or_buf (PathLike 또는 FileOrBuffer) — 파일 경로(예: file.parquet), 원격 URI(예: hf://datasets/username/my_dataset_name/data.parquet), 또는 지정된 형식으로 데이터셋이 저장될 BinaryIO입니다.
  • batch_size (int, 선택 사항) — 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • storage_options (dict, 선택 사항) — 파일 시스템 백엔드에 전달할 키/값 쌍입니다.

    2.19.0에 추가

  • **parquet_writer_kwargs (추가 키워드 인자) — PyArrow의 pyarrow.parquet.ParquetWriter에 전달할 매개변수.

반환값

int

쓰인 문자 또는 바이트 수.

데이터셋을 parquet로 내보냅니다

예:

>>> ds.to_parquet("path/to/dataset/directory")
>>> num_shards = dataset.num_shards
>>> for index in range(num_shards):
...     shard = dataset.shard(index, num_shards)
...     shard.to_parquet(f"path/of/my/dataset/data-{index:05d}.parquet")

to_sql

< >

( name: strcon: typing.Union[str, ForwardRef('sqlalchemy.engine.Connection'), ForwardRef('sqlalchemy.engine.Engine'), ForwardRef('sqlite3.Connection')]batch_size: typing.Optional[int] = None**sql_writer_kwargs ) → int

매개변수

  • name (str) — SQL 테이블 이름.
  • con (str 또는 sqlite3.Connection 또는 sqlalchemy.engine.Connection 또는 sqlalchemy.engine.Connection) — 데이터베이스에 쓰기 위해 사용되는 URI 문자열 또는 SQLite3/SQLAlchemy 연결 객체입니다.
  • batch_size (int, 선택 사항) — 메모리에 로드하고 한 번에 작성할 배치의 크기입니다. 기본값은 datasets.config.DEFAULT_MAX_BATCH_SIZE입니다.
  • **sql_writer_kwargs (추가 키워드 인자) — pandas의 pandas.DataFrame.to_sql에 전달할 매개변수입니다. index 매개변수는 지정되지 않은 경우 기본값이 False입니다. 인덱스를 기록하려면 index=True를 전달하고 index_label을 전달하여 인덱스 열 이름을 설정해야 합니다.

반환값

int

기록된 레코드 수입니다.

데이터셋을 SQL 데이터베이스로 내보냅니다.

예:

>>> # con provided as a connection URI string
>>> ds.to_sql("data", "sqlite:///my_own_db.sql")
>>> # con provided as a sqlite3 connection object
>>> import sqlite3
>>> con = sqlite3.connect("my_own_db.sql")
>>> with con:
...     ds.to_sql("data", con)

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonesplit: typing.Optional[str] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[int] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

매개변수

  • repo_id (str) — 다음 형식으로 push할 저장소의 ID입니다: <user>/<dataset_name> 또는 <org>/<dataset_name>. 또한 <dataset_name>, 도 허용되며, 이 경우 로그인한 사용자의 namespace가 기본값으로 사용됩니다.

    또한 버킷 내부의 위치일 수도 있습니다. 예: buckets/<user_or_org>/<bucket_name>/...

  • config_name (str, 기본값 “default”) — 데이터셋의 구성 이름(또는 부분 집합)입니다. 기본값은 “default”입니다.
  • set_default (bool, 선택 사항) — 이 구성을 기본 구성으로 설정할지 여부입니다. 그렇지 않으면 기본 구성은 “default”로 지정된 구성입니다.
  • split (str, 선택 사항) — 해당 데이터셋에 할당될 split의 이름입니다. 기본값은 self.split입니다.
  • data_dir (str, 선택 사항) — 업로드된 데이터 파일이 포함될 디렉터리 이름입니다. config_name이 “default”와 다르면 config_name 값이 기본값으로 사용되고, 그렇지 않으면 “data”가 기본값으로 사용됩니다.
  • commit_message (str, 선택 사항) — push할 때 사용할 커밋 메시지입니다. 기본값은 "Upload dataset"입니다.
  • commit_description (str, 선택 사항) — 생성될 커밋의 설명입니다. PR이 생성되는 경우(create_pr가 True인 경우) PR의 설명도 포함됩니다.
  • private (bool, 선택 사항) — 리포지토리를 비공개로 만들지 여부를 지정합니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 리포지토리는 공개됩니다. 이미 리포지토리가 존재하면 이 값은 무시됩니다.
  • token (str, 선택) — Hugging Face Hub에 대한 선택적 인증 토큰입니다. 토큰이 전달되지 않으면 hf auth login으로 로그인할 때 로컬에 저장된 토큰을 기본값으로 사용합니다. 토큰이 전달되지 않고 사용자가 로그인되지 않은 경우 오류가 발생합니다.
  • revision (str, 선택 사항) — 업로드된 파일을 푸시할 브랜치입니다. 기본값은 "main" 브랜치입니다.
  • create_pr (bool, 선택 사항, 기본값 False) — 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부.
  • max_shard_size (int 또는 str, 선택 사항) — 허브에 업로드할 데이터셋 샤드의 최대 크기를 선택적으로 지정합니다. 문자열로 표현할 경우 숫자 뒤에 단위(예: "5MB")가 따라야 합니다. 값을 제공하지 않으면 샤드 개수는 이 데이터셋의 .num_shards 값으로 기본 설정됩니다.
  • num_shards (int, 선택 사항) — 쓰기 위한 샤드 수입니다. max_shard_size가 제공되고 num_shards가 제공되지 않으면, 샤드 수는 max_shard_size로부터 추정됩니다. 이 데이터셋의 .num_shards보다 클 수 있습니다. 이 경우 각 입력 샤드의 예제는 라운드 로빈 방식으로 여러 출력 샤드에 분산하여 기록됩니다.
  • embed_external_files (bool, 기본값은 True) — shards에 파일 바이트를 임베드할지 여부입니다. 구체적으로, push를 수행하기 전에 다음 유형의 필드에 대해 다음 작업을 수행합니다:
    • Audio 및 Image: 로컬 경로 정보를 제거하고 파일 내용을 Parquet 파일에 임베드합니다.
  • num_proc (int, 선택 사항, 기본값 None) — 데이터셋을 준비하고 업로드할 때 사용할 프로세스 수입니다. 데이터셋이 많은 샘플과 변환으로 구성되어 있을 때 유용합니다. HF로의 빠른 업로드를 위한 rust 클라이언트인 hf_xet과 함께 작동하도록 “spawn” 컨텍스트를 사용합니다. 멀티프로세싱은 기본적으로 비활성화되어 있습니다.

Parquet 데이터셋으로 Hub에 데이터셋을 업로드합니다. 데이터셋은 HTTP 요청을 통해 업로드되며, git 또는 git-lfs가 설치되어 있지 않아도 됩니다.

생성된 Parquet 파일은 기본적으로 자체 포함(self-contained)됩니다. 데이터셋에 Image, Audio 또는 Video 데이터가 포함된 경우, Parquet 파일에는 이미지 또는 오디오 파일의 바이트가 저장됩니다. embed_external_files를 False로 설정하여 이 기능을 비활성화할 수 있습니다.

예:

>>> dataset.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset.push_to_hub("<organization>/<dataset_id>", num_shards=1024)

데이터셋에 여러 스플릿(예: train/validation/test)이 있는 경우:

>>> train_dataset.push_to_hub("<organization>/<dataset_id>", split="train")
>>> val_dataset.push_to_hub("<organization>/<dataset_id>", split="validation")
>>> # later
>>> dataset = load_dataset("<organization>/<dataset_id>")
>>> train_dataset = dataset["train"]
>>> val_dataset = dataset["validation"]

데이터셋에 새로운 구성(또는 부분 집합)을 추가하려면(예: 데이터셋에 여러 작업/버전/언어가 있는 경우):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

load_state_dict

< >

( state_dict: dict )

dataset의 state_dict를 로드합니다. 반복은 상태가 저장된 시점의 다음 예제부터 다시 시작됩니다.

Resuming은 체크포인트가 저장된 위치에서 정확히 이어서 실행되지만, 다음 두 가지 경우를 제외합니다:

  1. shuffle buffers에서 가져온 예제는 재개 시 손실되며, 버퍼에는 새로운 데이터로 다시 채워집니다
  2. .with_format(arrow)와 배치된 .map()의 조합은 배치 하나를 건너뛸 수 있습니다.

예:

>>> from datasets import Dataset, concatenate_datasets
>>> ds = Dataset.from_dict({"a": range(6)}).to_iterable_dataset(num_shards=3)
>>> for idx, example in enumerate(ds):
...     print(example)
...     if idx == 2:
...         state_dict = ds.state_dict()
...         print("checkpoint")
...         break
>>> ds.load_state_dict(state_dict)
>>> print(f"restart from checkpoint")
>>> for example in ds:
...     print(example)

다음과 같은 값을 반환합니다:

{'a': 0}
{'a': 1}
{'a': 2}
checkpoint
restart from checkpoint
{'a': 3}
{'a': 4}
{'a': 5}
>>> from torchdata.stateful_dataloader import StatefulDataLoader
>>> ds = load_dataset("deepmind/code_contests", streaming=True, split="train")
>>> dataloader = StatefulDataLoader(ds, batch_size=32, num_workers=4)
>>> # checkpoint
>>> state_dict = dataloader.state_dict()  # uses ds.state_dict() under the hood
>>> # resume from checkpoint
>>> dataloader.load_state_dict(state_dict)  # uses ds.load_state_dict() under the hood

state_dict

< >

( ) → dict

반환값

dict

데이터셋의 현재 state_dict를 가져옵니다. 마지막으로 yield한 예시 시점의 상태에 해당합니다.

Resuming은 체크포인트가 저장된 위치에서 정확히 이어서 실행되지만, 다음 두 가지 경우를 제외합니다:

  1. shuffle buffers에서 가져온 예제는 재개 시 손실되며, 버퍼에는 새로운 데이터로 다시 채워집니다
  2. .with_format(arrow)와 배치된 .map()의 조합은 배치 하나를 건너뛸 수 있습니다.

예:

>>> from datasets import Dataset, concatenate_datasets
>>> ds = Dataset.from_dict({"a": range(6)}).to_iterable_dataset(num_shards=3)
>>> for idx, example in enumerate(ds):
...     print(example)
...     if idx == 2:
...         state_dict = ds.state_dict()
...         print("checkpoint")
...         break
>>> ds.load_state_dict(state_dict)
>>> print(f"restart from checkpoint")
>>> for example in ds:
...     print(example)

다음과 같은 값을 반환합니다:

{'a': 0}
{'a': 1}
{'a': 2}
checkpoint
restart from checkpoint
{'a': 3}
{'a': 4}
{'a': 5}
>>> from torchdata.stateful_dataloader import StatefulDataLoader
>>> ds = load_dataset("deepmind/code_contests", streaming=True, split="train")
>>> dataloader = StatefulDataLoader(ds, batch_size=32, num_workers=4)
>>> # checkpoint
>>> state_dict = dataloader.state_dict()  # uses ds.state_dict() under the hood
>>> # resume from checkpoint
>>> dataloader.load_state_dict(state_dict)  # uses ds.load_state_dict() under the hood

정보

< >

( )

데이터셋의 모든 메타데이터를 포함하는 DatasetInfo 객체.

분할

< >

( )

명명된 데이터셋 분할에 해당하는 NamedSplit 객체.

builder_name

< >

( )

인용

< >

( )

config_name

< >

( )

dataset_size

< >

( )

설명

< >

( )

download_checksums

< >

( )

download_size

< >

( )

기능

< >

( )

홈페이지

< >

( )

라이선스

< >

( )

size_in_bytes

< >

( )

supervised_keys

< >

( )

버전

< >

( )

from_csv

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = False**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — CSV 파일의 경로입니다.
  • split (NamedSplit, 선택 사항) — 데이터셋에 할당할 분할 이름.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • **kwargs (추가 키워드 인자) — pandas.read_csv에 전달할 키워드 인자입니다.

CSV 파일에서 IterableDataset을(를) 생성합니다.

예:

>>> ds = IterableDataset.from_csv('path/to/dataset.csv')

from_json

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsefield: typing.Optional[str] = None**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — JSON 또는 JSON Lines 파일의 경로입니다.
  • split (NamedSplit, 선택 사항) — 데이터셋에 할당할 분할 이름.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • field (str, 선택 사항) — 데이터셋이 포함된 JSON 파일의 필드 이름입니다.
  • **kwargs (추가 키워드 인자) — JsonConfig에 전달할 키워드 인자입니다.

JSON 또는 JSON Lines 파일에서 IterableDataset을 생성합니다.

예:

>>> ds = IterableDataset.from_json('path/to/dataset.json')

from_parquet

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsecolumns: typing.Optional[list[str]] = Nonefilters: typing.Union[pyarrow._compute.Expression, list[tuple], list[list[tuple]], NoneType] = Nonefragment_scan_options: typing.Optional[pyarrow._dataset_parquet.ParquetFragmentScanOptions] = Noneon_bad_files: typing.Literal['error', 'warn', 'skip'] = 'error'**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — Parquet 파일의 경로입니다.
  • split (NamedSplit, 선택 사항) — 데이터셋에 할당할 분할 이름.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • columns (List[str], 선택 사항) — None이 아닌 경우, 파일에서 이 컬럼만 읽습니다. 컬럼 이름은 중첩 필드의 접두사일 수 있습니다. 예를 들어 ‘a’를 지정하면 ‘a.b’, ‘a.c’, ‘a.d.e’가 선택됩니다.
  • filters (Union[pyarrow.dataset.Expression, list[tuple], list[list[tuple]]], 선택 사항) — 필터와 일치하는 행만 반환합니다. 가능하면 데이터 소스에서 발견되는 파티션 정보나 내부 메타데이터(예: Parquet 통계)를 활용하기 위해 조건을 아래로 전달(push down)합니다. 그렇지 않으면 RecordBatches를 반환하기 전에 로드된 RecordBatches를 필터링합니다.
  • fragment_scan_options (pyarrow.dataset.ParquetFragmentScanOptions, 선택 사항) — Parquet 조각에 대한 스캔 전용 옵션입니다. 버퍼링 및 캐싱을 구성하는 데 특히 유용합니다.

    4.2.0에 추가

  • on_bad_files (Literal["error", "warn", "skip"], 선택 사항, 기본값은 “error”입니다) — 잘못된 파일(읽을 수 없는 파일)을 만나면 수행할 작업을 지정합니다. 허용되는 값은 다음과 같습니다:
    • ‘error’, 잘못된 파일이 발견되면 예외를 발생시킵니다.
    • ‘warn’은 잘못된 파일이 발견되면 경고를 표시하고 해당 파일을 건너뜁니다.
    • ‘skip’, 발견 시 경고나 예외를 발생시키지 않고 잘못된 파일을 건너뜁니다.

    4.2.0에 추가

  • **kwargs (추가 키워드 인자) — ParquetConfig에 전달할 키워드 인자입니다.

Parquet 파일에서 IterableDataset를 생성합니다.

예:

>>> ds = IterableDataset.from_parquet('path/to/dataset.parquet')

일부 열을 로드합니다:

>>> ds = IterableDataset.from_parquet('path/to/dataset.parquet', columns=["col_0", "col_1"])

데이터를 효율적으로 필터링하고, 필요에 따라 파일 전체 또는 행 그룹을 건너뜁니다:

>>> filters = [("col_0", "==", 0)]
>>> ds = IterableDataset.from_parquet(parquet_files_list, filters=filters)

from_text

< >

( path_or_paths: typing.Union[str, bytes, os.PathLike, list[typing.Union[str, bytes, os.PathLike]]]split: typing.Optional[datasets.splits.NamedSplit] = Nonefeatures: typing.Optional[datasets.features.features.Features] = Nonekeep_in_memory: bool = Falsekeep_linebreaks: bool = Falsesample_by: typing.Literal['line', 'paragraph', 'document'] = 'line'**kwargs )

매개변수

  • path_or_paths (path-like 또는 path-like 목록) — 텍스트 파일의 경로입니다.
  • split (NamedSplit, 선택 사항) — 데이터셋에 할당할 분할 이름.
  • features (Features, 선택 사항) — Dataset의 features입니다.
  • keep_in_memory (bool, 기본값 False) — 메모리에 데이터를 복사할지 여부.
  • keep_linebreaks — (bool, 기본값 False): 줄바꿈을 유지할지 여부.
  • sample_by (Literal["line", "paragraph", "document"], 기본값 “line”) — 데이터를 줄, 단락 또는 문서 단위로 로드할지 여부입니다. 기본적으로 데이터셋의 한 행 = 한 줄입니다.
  • **kwargs (추가 키워드 인자) — TextConfig에 전달할 키워드 인자입니다.

텍스트 파일에서 IterableDataset을(를) 생성합니다.

예:

>>> ds = IterableDataset.from_text('path/to/dataset.txt')

class datasets.IterableColumn

< >

( source: typing.Union[ForwardRef('IterableDataset'), ForwardRef('IterableColumn')]column_name: str )

IterableDataset의 특정 열에 대한 반복 가능한 객체입니다.

예:

데이터셋의 “text” 열의 텍스트를 반복합니다:

for text in dataset["text"]:
    ...

중첩된 컬럼에서도 작동합니다:

for source in dataset["metadata"]["source"]:
    ...

IterableDatasetDict

키로 분할 이름(예: ‘train’, ‘test’)을, 값으로 IterableDataset 객체를 가지는 딕셔너리

class datasets.IterableDatasetDict

< >

( )

map

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices: bool = Falsewith_split: bool = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: int = 1000drop_last_batch: bool = Falseremove_columns: typing.Union[str, list[str], NoneType] = Nonefn_kwargs: typing.Optional[dict] = None )

매개변수

  • function (Callable, 선택 사항, 기본값은 None) — 데이터셋을 반복할 때 예제에 즉시 적용되는 함수입니다. 다음 중 하나의 서명을 가져야 합니다:
    • batched=False이고 with_indices=False인 경우 function(example: Dict[str, Any]) -> Dict[str, Any]
    • batched=False이고 with_indices=True인 경우 function(example: Dict[str, Any], idx: int) -> Dict[str, Any]
    • batched=True이고 with_indices=False인 경우 function(batch: Dict[str, list]) -> Dict[str, list]
    • function(batch: Dict[str, list], indices: list[int]) -> Dict[str, list] (단, batched=True이고 with_indices=True인 경우)

    고급 사용의 경우, 이 함수는 pyarrow.Table를 반환할 수도 있습니다. 함수가 비동기(asynchronous)인 경우, map는 사용자의 함수를 병렬로 실행합니다. 또한 함수가 아무것도 반환하지 않는 경우(None), map는 사용자의 함수를 실행하고 데이터셋을 변경하지 않은 상태로 반환합니다. 함수가 제공되지 않으면, 항등 함수(identity function)인 lambda x: x를 기본값으로 사용합니다.

  • with_indices (bool, 기본값 False) — function에 예시 인덱스를 제공합니다. 이 경우 function의 시그니처는 def function(example, idx[, rank]): ...여야 합니다.
  • input_columns ([Union[str, list[str]]], 선택 사항, 기본값 None) — function에 위치 인수로 전달할 열입니다. None인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.
  • batched (bool, 기본값 False) — function에 예시 배치(batch)를 제공합니다.
  • batch_size (int, 선택 사항, 기본값 1000) — batched=True인 경우 function에 전달되는 배치당 예제 수.
  • drop_last_batch (bool, 기본값 False) — batch_size보다 작은 마지막 배치에 대해 함수로 처리하는 대신 버릴지 여부.
  • remove_columns ([list[str]], 선택 사항, 기본값 None) — 매핑을 수행하는 동안 선택된 컬럼을 제거합니다. 컬럼은 function의 출력으로 예시를 업데이트하기 전에 제거되므로, function이 remove_columns에 포함된 이름의 컬럼을 추가하는 경우 해당 컬럼은 유지됩니다.
  • fn_kwargs (Dict, 선택 사항, 기본값 None) — function에 전달할 키워드 인자

반복 가능한 데이터셋의 모든 예시(개별 또는 배치 단위)에 함수를 적용하여 예시를 업데이트합니다. 함수가 이미 존재하는 컬럼을 반환하면 해당 컬럼을 덮어씁니다. 함수는 데이터셋을 반복할 때 예시에 즉시(on-the-fly) 적용됩니다. 변환은 데이터셋 딕셔너리의 모든 데이터셋에 적용됩니다.

batched 매개변수를 사용하여 함수가 배치 처리되어야 하는지 여부를 지정할 수 있습니다:

  • False인 경우, 이 함수는 1개의 예시를 입력으로 받아 1개의 예시를 반환해야 합니다. 예시는 사전(dictionary)이며, 예를 들어 {"text": "Hello there !"}과 같습니다.
  • True이고 batch_size가 1인 경우, 이 함수는 1개의 예시로 구성된 배치로 입력을 받아 1개 이상의 예시로 구성된 배치를 반환할 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 1개의 예시로 구성된 배치는 {"text": ["Hello there !"]}입니다.
  • True이고 batch_size가 n > 1인 경우, 이 함수는 n개의 예시로 구성된 배치(batch)를 입력으로 받아 n개의 예시로 구성된 배치 또는 임의의 개수의 예시로 구성된 배치를 반환할 수 있습니다. 마지막 배치에는 n개보다 적은 예시가 포함될 수 있습니다. 배치는 사전(dictionary)이며, 예를 들어 n개의 예시로 구성된 배치는 {"text": ["Hello there !"] * n}입니다.

함수가 비동기(asynchronous)인 경우, map은 최대 1,000개의 동시 호출을 허용하면서 함수를 병렬로 실행합니다. 동시에 실행될 수 있는 작업의 최대 수를 설정하려면 함수에서 asyncio.Semaphore를 사용하는 것이 권장됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> def add_prefix(example):
...     example["text"] = "Review: " + example["text"]
...     return example
>>> ds = ds.map(add_prefix)
>>> next(iter(ds["train"]))
{'label': 1,
 'text': 'Review: the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

필터

< >

( function: typing.Optional[typing.Callable] = Nonewith_indices = Falseinput_columns: typing.Union[str, list[str], NoneType] = Nonebatched: bool = Falsebatch_size: typing.Optional[int] = 1000fn_kwargs: typing.Optional[dict] = None )

매개변수

  • function (Callable) — 다음 중 하나의 시그니처를 가진 Callable입니다:
    • with_indices=False, batched=False인 경우 function(example: Dict[str, Any]) -> bool
    • function(example: Dict[str, Any], indices: int) -> bool if with_indices=True, batched=False
    • with_indices=False, batched=True인 경우 function(example: Dict[str, list]) -> list[bool]
    • function(example: Dict[str, list], indices: list[int]) -> list[bool] if with_indices=True, batched=True

    함수가 제공되지 않으면 항상 True를 반환하는 함수가 기본값으로 사용됩니다: lambda x: True.

  • with_indices (bool, 기본값 False) — function에 예시 인덱스를 제공합니다. 이 경우 function의 시그니처는 def function(example, idx): ...여야 합니다.
  • input_columns (str 또는 list[str], 선택 사항) — function에 위치 인수로 전달할 열입니다. None인 경우, 모든 포맷된 열에 대한 dict 매핑이 하나의 인수로 전달됩니다.
  • batched (bool, 기본값 False) — function에 예시 배치(batch)를 제공합니다
  • batch_size (int, 선택 사항, 기본값 1000) — batched=True인 경우 function에 전달되는 배치당 예제 수.
  • fn_kwargs (Dict, 선택 사항, 기본값 None) — function에 전달할 키워드 인자

필터 함수를 모든 요소에 적용하여 데이터셋이 필터 함수에 따라 예시를 포함하도록 합니다. 필터링은 데이터셋을 반복할 때 실시간으로 수행됩니다. 필터링은 데이터셋 딕셔너리의 모든 데이터셋에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.filter(lambda x: x["label"] == 0)
>>> list(ds["train"].take(3))
[{'label': 0, 'text': 'Review: simplistic , silly and tedious .'},
 {'label': 0,
 'text': "Review: it's so laddish and juvenile , only teenage boys could possibly find it funny ."},
 {'label': 0,
 'text': 'Review: exploitative and largely devoid of the depth or sophistication that would make watching such a graphic treatment of the crimes bearable .'}]

shuffle

< >

( seed = Nonegenerator: typing.Optional[numpy.random._generator.Generator] = Nonebuffer_size: int = 1000max_buffer_input_shards: int = 10 )

매개변수

  • seed (int, 선택 사항, 기본값 None) — 데이터셋을 섞는 데 사용할 무작위 시드입니다. 셔플 버퍼에서 샘플링할 때와 데이터 샤드를 섞을 때 사용됩니다.
  • generator (numpy.random.Generator, 선택 사항) — 데이터셋 행의 순열을 계산하는 데 사용할 Numpy random Generator입니다. generator=None(기본값)인 경우, np.random.default_rng(NumPy의 기본 BitGenerator(PCG64))를 사용합니다.
  • buffer_size (int, 기본값 1000) — 버퍼의 크기입니다.
  • max_buffer_input_shards (int, 기본값 10) — 버퍼에 한 번에 공급할 최대 샤드 수입니다.

이 데이터셋의 요소를 무작위로 섞습니다. 섞기 작업은 데이터셋 사전의 모든 데이터셋에 적용됩니다.

이 데이터셋은 버퍼에 buffer_size개의 요소를 채운 후, 이 버퍼에서 요소를 무작위로 샘플링하여 선택된 요소를 새로운 요소로 대체합니다. 완벽한 셔플링을 위해서는 데이터셋 전체 크기와 같거나 큰 버퍼 크기가 필요합니다.

예를 들어, 데이터셋에 10,000개의 요소가 있지만 buffer_size가 1000으로 설정되어 있다면, shuffle은 처음에 버퍼의 첫 1000개 요소 중에서만 무작위로 요소를 선택합니다. 요소가 선택되면, 버퍼 내 해당 요소의 공간은 다음(즉, 1,001번째) 요소로 대체되어 1000개 요소의 버퍼가 유지됩니다.

데이터셋이 여러 개의 샤드로 구성되어 있는 경우, 샤드의 순서도 shuffle합니다. 하지만 skip() 또는 take()를 사용하여 순서가 고정된 경우, 샤드의 순서는 변경되지 않습니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> list(ds["train"].take(3))
[{'label': 1,
 'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'},
 {'label': 1,
 'text': 'the gorgeously elaborate continuation of " the lord of the rings " trilogy is so huge that a column of words cannot adequately describe co-writer/director peter jackson's expanded vision of j . r . r . tolkien's middle-earth .'},
 {'label': 1, 'text': 'effective but too-tepid biopic'}]
>>> ds = ds.shuffle(seed=42)
>>> list(ds["train"].take(3))
[{'label': 1,
 'text': "a sports movie with action that's exciting on the field and a story you care about off it ."},
 {'label': 1,
 'text': 'at its best , the good girl is a refreshingly adult take on adultery . . .'},
 {'label': 1,
 'text': "sam jones became a very lucky filmmaker the day wilco got dropped from their record label , proving that one man's ruin may be another's fortune ."}]

with_format

< >

( type: typing.Optional[str] = None )

매개변수

  • type (str, 선택 사항) — [None, 'numpy', 'torch', 'tensorflow', 'jax', 'arrow', 'pandas', 'polars']에서 선택한 출력 유형입니다. None은 Python 객체를 반환함을 의미합니다(기본값).

지정한 형식의 데이터셋을 반환합니다.

예:

>>> from datasets import load_dataset
>>> from transformers import AutoTokenizer
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="validation", streaming=True)
>>> tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
>>> ds = ds.map(lambda x: tokenizer(x['text'], truncation=True, padding=True), batched=True)
>>> ds = ds.with_format("torch")
>>> next(iter(ds))
{'text': 'compassionately explores the seemingly irreconcilable situation between conservative christian parents and their estranged gay and lesbian children .',
 'label': tensor(1),
 'input_ids': tensor([  101, 18027, 16310, 16001,  1103,  9321,   178, 11604,  7235,  6617,
        1742,  2165,  2820,  1206,  6588, 22572, 12937,  1811,  2153,  1105,
        1147, 12890, 19587,  6463,  1105, 15026,  1482,   119,   102,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
            0,     0,     0,     0]),
 'token_type_ids': tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
 'attention_mask': tensor([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])}

캐스트

< >

( features: Features ) → IterableDatasetDict

매개변수

  • features (Features) — 데이터셋을 변환할 새 features입니다. features의 필드 이름은 현재 열 이름과 일치해야 합니다. 데이터의 유형도 서로 변환 가능해야 합니다. string <-> ClassLabel와 같이 단순하지 않은 변환의 경우 map을 사용하여 Dataset을 업데이트해야 합니다.

캐스팅된 기능이 포함된 데이터셋의 복사본입니다.

데이터셋을 새로운 기능 집합으로 캐스팅합니다. 타입 캐스팅은 데이터셋 사전의 모든 데이터셋에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> new_features = ds["train"].features.copy()
>>> new_features['label'] = ClassLabel(names=['bad', 'good'])
>>> new_features['text'] = Value('large_string')
>>> ds = ds.cast(new_features)
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('large_string')}

cast_column

< >

( column: strfeature: typing.Union[dict, list, tuple, datasets.features.features.Value, datasets.features.features.ClassLabel, datasets.features.translation.Translation, datasets.features.translation.TranslationVariableLanguages, datasets.features.features.LargeList, datasets.features.features.List, datasets.features.features.Array2D, datasets.features.features.Array3D, datasets.features.features.Array4D, datasets.features.features.Array5D, datasets.features.audio.Audio, datasets.features.image.Image, datasets.features.mesh.Mesh, datasets.features.video.Video, datasets.features.pdf.Pdf, datasets.features.nifti.Nifti, datasets.features.bio_sequence.BioSequence, datasets.features.bio_structure.BioStructure] )

매개변수

  • column (str) — 열 이름.
  • feature (Feature) — 대상 feature입니다.

디코딩을 위해 컬럼을 feature로 캐스팅합니다. 타입 캐스팅은 dataset dictionary의 모든 dataset에 적용됩니다.

예:

>>> from datasets import load_dataset, ClassLabel
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds["train"].features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}
>>> ds = ds.cast_column('label', ClassLabel(names=['bad', 'good']))
>>> ds["train"].features
{'label': ClassLabel(names=['bad', 'good']),
 'text': Value('string')}

remove_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDatasetDict

매개변수

  • column_names (Union[str, list[str]]) — 제거할 열의 이름입니다.

제거할 열이 없는 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 컬럼과 해당 컬럼에 연관된 features를 제거합니다. 제거 작업은 데이터셋을 반복할 때 예제에 대해 실시간으로 수행됩니다. 제거 작업은 dataset dictionary의 모든 데이터셋에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.remove_columns("label")
>>> next(iter(ds["train"]))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

rename_column

< >

( original_column_name: strnew_column_name: str ) → IterableDatasetDict

매개변수

  • original_column_name (str) — 이름을 변경할 열의 이름.
  • new_column_name (str) — 열의 새 이름.

열 이름이 변경된 데이터셋의 복사본.

dataset의 컬럼을 이름 변경하고, 원래 컬럼에 연결된 features를 새 컬럼 이름 아래로 이동합니다. 이름 변경은 dataset dictionary의 모든 dataset에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.rename_column("text", "movie_review")
>>> next(iter(ds["train"]))
{'label': 1,
 'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

rename_columns

< >

( column_mapping: dict ) → IterableDatasetDict

매개변수

  • column_mapping (Dict[str, str]) — 새 이름으로 변경할 열의 매핑입니다.

열 이름이 변경된 데이터셋의 복사본

dataset의 여러 열 이름을 변경하고, 원래 열에 연결된 기능을 새 열 이름 아래로 이동합니다. 이름 변경은 dataset 사전의 모든 dataset에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.rename_columns({"text": "movie_review", "label": "rating"})
>>> next(iter(ds["train"]))
{'movie_review': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .',
 'rating': 1}

select_columns

< >

( column_names: typing.Union[str, list[str]] ) → IterableDatasetDict

매개변수

  • column_names (Union[str, list[str]]) — 유지할 열의 이름입니다.

선택된 열만 포함된 dataset 객체의 복사본입니다.

데이터셋에서 하나 이상의 열과 해당 열에 연관된 features를 선택합니다. 선택은 데이터셋을 반복할 때 예제에 실시간으로 적용됩니다. 선택은 데이터셋 사전의 모든 데이터셋에 적용됩니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", streaming=True)
>>> ds = ds.select("text")
>>> next(iter(ds["train"]))
{'text': 'the rock is destined to be the 21st century's new " conan " and that he's going to make a splash even greater than arnold schwarzenegger , jean-claud van damme or steven segal .'}

push_to_hub

< >

( repo_id: strconfig_name: str = 'default'set_default: typing.Optional[bool] = Nonedata_dir: typing.Optional[str] = Nonecommit_message: typing.Optional[str] = Nonecommit_description: typing.Optional[str] = Noneprivate: typing.Optional[bool] = Nonetoken: typing.Optional[str] = Nonerevision: typing.Optional[str] = Nonecreate_pr: typing.Optional[bool] = Falsemax_shard_size: typing.Union[str, int, NoneType] = Nonenum_shards: typing.Optional[dict[str, int]] = Noneembed_external_files: bool = Truenum_proc: typing.Optional[int] = None )

매개변수

  • repo_id (str) — 다음 형식으로 push할 저장소의 ID입니다: <user>/<dataset_name> 또는 <org>/<dataset_name>. 또한 <dataset_name>, 도 허용되며, 이 경우 로그인한 사용자의 namespace가 기본값으로 사용됩니다.

    또한 버킷 내부의 위치일 수도 있습니다. 예: buckets/<user_or_org>/<bucket_name>/...

  • config_name (str) — 데이터셋의 구성 이름입니다. 기본값은 “default”입니다.
  • set_default (bool, 선택 사항) — 이 구성을 기본 구성으로 설정할지 여부입니다. 그렇지 않으면 기본 구성은 “default”로 지정된 구성입니다.
  • data_dir (str, 선택 사항) — 업로드된 데이터 파일을 포함할 디렉터리 이름. 기본값은 config_name 이 “default”와 다르면 해당 값, 아니면 “data”입니다.

    2.17.0에 추가

  • commit_message (str, 선택 사항) — push할 때 사용할 커밋 메시지입니다. 기본값은 "Upload dataset"입니다.
  • commit_description (str, 선택 사항) — 생성될 커밋에 대한 설명입니다. PR이 생성되는 경우 PR에 대한 설명이기도 합니다(create_pr True인 경우).

    2.16.0에 추가

  • private (bool, 선택 사항) — 리포지토리를 비공개로 만들지 여부를 지정합니다. None(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 리포지토리는 공개됩니다. 이미 리포지토리가 존재하면 이 값은 무시됩니다.
  • token (str, 선택) — Hugging Face Hub에 대한 선택적 인증 토큰입니다. 토큰이 전달되지 않으면 hf auth login으로 로그인할 때 로컬에 저장된 토큰을 기본값으로 사용합니다. 토큰이 전달되지 않고 사용자가 로그인되지 않은 경우 오류가 발생합니다.
  • revision (str, 선택 사항) — 업로드된 파일을 푸시할 브랜치입니다. 기본값은 "main" 브랜치입니다.
  • create_pr (bool, 선택 사항, 기본값 False) — 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부.
  • max_shard_size (int 또는 str, 선택 사항) — 허브에 업로드할 데이터셋 샤드의 최대 크기를 선택적으로 지정합니다. 문자열로 표현할 경우, 숫자 뒤에 단위(예: "500MB" 또는 "1GB")가 따라야 합니다. 값을 제공하지 않으면 각 split은 데이터셋의 기본 샤드 수를 유지합니다.
  • num_shards (Dict[str, int], 선택 사항) — 쓰기 위한 샤드 수. 각 split에 대해 서로 다른 num_shards를 정의하려면 딕셔너리를 사용하세요. max_shard_size가 제공되고 해당 split의 num_shards가 제공되지 않으면, 해당 split의 샤드 수는 max_shard_size에서 추정됩니다.
  • embed_external_files (bool, 기본값은 True) — shards에 파일 바이트를 임베드할지 여부입니다. 구체적으로, push를 수행하기 전에 다음 유형의 필드에 대해 다음 작업을 수행합니다:
    • Audio 및 Image는 로컬 경로 정보를 제거하고 파일 내용을 Parquet 파일에 임베드합니다.
  • num_proc (int, 선택 사항, 기본값은 None) — 데이터셋을 준비하고 업로드할 때 사용할 프로세스 수입니다. 데이터셋에 샘플이나 임베드할 미디어 파일이 많을 때 유용합니다. HF로의 빠른 업로드를 위한 Rust 클라이언트인 hf_xet과 함께 작동하도록 “spawn” 컨텍스트를 사용합니다. 기본적으로 멀티프로세싱이 비활성화되어 있습니다.

    4.0.0에 추가

IterableDatasetDict를 Parquet 데이터셋으로 hub에 업로드합니다. IterableDatasetDict는 HTTP 요청을 통해 업로드되며, git 또는 git-lfs가 설치되어 있지 않아도 됩니다.

각 데이터셋 분할은 독립적으로 push됩니다. push된 데이터셋은 원래의 분할 이름을 유지합니다.

생성된 Parquet 파일은 기본적으로 자체 포함(self-contained)됩니다. 데이터셋에 Image 또는 Audio 데이터가 포함된 경우, Parquet 파일에 이미지 또는 오디오 파일의 바이트가 저장됩니다. embed_external_files를 False로 설정하여 이 기능을 비활성화할 수 있습니다.

예:

>>> dataset_dict.push_to_hub("<organization>/<dataset_id>")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", private=True)
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", max_shard_size="1GB")
>>> dataset_dict.push_to_hub("<organization>/<dataset_id>", num_shards={"train": 1024, "test": 8})

데이터셋에 새로운 구성(또는 부분 집합)을 추가하려면(예: 데이터셋에 여러 작업/버전/언어가 있는 경우):

>>> english_dataset.push_to_hub("<organization>/<dataset_id>", "en")
>>> french_dataset.push_to_hub("<organization>/<dataset_id>", "fr")
>>> # later
>>> english_dataset = load_dataset("<organization>/<dataset_id>", "en")
>>> french_dataset = load_dataset("<organization>/<dataset_id>", "fr")

기능

class datasets.Features

< >

( *args**kwargs )

데이터셋의 내부 구조를 정의하는 특수한 사전입니다.

dict[str, FieldType] 타입의 딕셔너리로 초기화되며, 키는 원하는 열 이름이고 값은 해당 열의 타입입니다.

FieldType는 다음 중 하나일 수 있습니다:

  • Value 기능은 int64 또는 string과 같은 단일 데이터 타입 값을 지정합니다.
  • ClassLabel 기능은 라벨을 연결할 수 있는 미리 정의된 클래스 집합을 지정하며, 데이터셋에서는 정수 형태로 저장됩니다.
  • Python dict는 하위 필드에서 하위 기능으로의 매핑을 포함하는 복합 기능을 지정합니다. 임의의 방식으로 중첩된 필드의 중첩된 필드를 가질 수 있습니다.
  • List 또는 LargeList는 동일한 feature 유형을 가진 서브-feature의 시퀀스를 포함하는 복합 feature를 지정합니다.
  • 다차원 배열을 위한 Array2D, Array3D, Array4D 또는 Array5D 기능.
  • 오디오 파일을 가리키는 절대 경로 또는 오디오 파일의 상대 경로(“path” 키)와 바이트 콘텐츠(“bytes” 키)를 담은 사전 형태의 Audio 기능입니다. 이 기능은 디코더를 사용해 오디오를 지연 로드합니다.
  • np.ndarray 객체, PIL.Image.Image 객체 또는 이미지 파일의 상대 경로(“path” 키)와 바이트 콘텐츠(“bytes” 키)를 가진 딕셔너리를 저장하는 Image 기능. 이 기능은 이미지 데이터를 추출합니다.
  • Video 기능은 비디오 파일의 절대 경로, torchcodec.decoders.VideoDecoder 객체, 또는 비디오 파일의 상대 경로(“path” 키)와 바이트 콘텐츠(“bytes” 키)를 포함하는 사전 중 하나를 저장합니다. 이 기능은 디코더를 사용하여 비디오를 지연 로드합니다.
  • PDF 파일을 가리키는 절대 경로, pdfplumber.pdf.PDF 객체, 또는 PDF 파일의 상대 경로(“path” 키)와 바이트 콘텐츠(“bytes” 키)를 담은 사전 형태의 Pdf 기능을 제공합니다. 이 기능은 PDF 리더를 사용하여 PDF를 지연 로드합니다.
  • Nifti 기능은 NIfTI 신경영상 파일의 절대 경로, nibabel.Nifti1Image 객체, 또는 NIfTI 파일의 상대 경로(“path” 키)와 바이트 콘텐츠(“bytes” 키)를 가진 딕셔너리를 저장합니다. 이 기능은 nibabel을 사용하여 NIfTI 파일을 지연 로드합니다.
  • 기계 번역에 특화된 Translation 또는 TranslationVariableLanguages 기능입니다.
  • Json 기능은 혼합/임의의 타입을 포함하는 비정형 데이터를 저장하는 데 사용됩니다. 내부적으로

복사

< >

( )

Features의 깊은 복사본을 만듭니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> copy_of_features = ds.features.copy()
>>> copy_of_features
{'label': ClassLabel(names=['neg', 'pos']),
 'text': Value('string')}

decode_batch

< >

( batch: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

매개변수

  • batch (dict[str, list[Any]]) — Dataset 배치 데이터.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 오디오 또는 이미지 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형식의 사전(dict)을 전달할 수 있습니다.

커스텀 특징 디코딩을 사용하여 배치 디코딩.

decode_column

< >

( column: listcolumn_name: strtoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

매개변수

  • column (list[Any]) — Dataset 열 데이터.
  • column_name (str) — Dataset 열 이름.

사용자 정의 기능 디코딩으로 컬럼 디코딩.

decode_example

< >

( example: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

매개변수

  • example (dict[str, Any]) — Dataset 행 데이터.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 오디오 또는 이미지 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool or str) 형식의 사전(dict)을 전달할 수 있습니다.

사용자 정의 기능 디코딩을 사용한 디코딩 예제

encode_batch

< >

( batch )

매개변수

  • batch (dict[str, list[Any]]) — Dataset 배치의 데이터.

배치를 Arrow 형식으로 인코딩합니다.

encode_column

< >

( columncolumn_name: str )

매개변수

  • column (list[Any]) — Dataset 컬럼의 데이터.
  • column_name (str) — Dataset 열 이름.

Arrow 형식으로 컬럼을 인코딩합니다.

encode_example

< >

( example )

매개변수

  • example (dict[str, Any]) — Dataset 행의 데이터.

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( max_depth = 16 ) → Features

반환값

기능

평탄화된 특징.

특징을 평탄화합니다. 모든 딕셔너리 열이 제거되고, 해당 열에 포함된 모든 하위 필드로 대체됩니다. 새 필드는 원래 열 이름과 하위 필드 이름을 <original>.<subfield> 형식으로 연결하여 이름이 지정됩니다.

컬럼에 중첩된 사전이 포함된 경우, 하위 수준의 모든 서브필드 이름도 연결되어 새로운 컬럼을 형성합니다: <original>.<subfield>.<subsubfield> 등.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("rajpurkar/squad", split="train")
>>> ds.features.flatten()
{'answers.answer_start': List(Value('int32'), id=None),
 'answers.text': List(Value('string'), id=None),
 'context': Value('string'),
 'id': Value('string'),
 'question': Value('string'),
 'title': Value('string')}

from_arrow_schema

< >

( pa_schema: Schema )

매개변수

  • pa_schema (pyarrow.Schema) — Arrow 스키마.

Arrow Schema에서 Features를 구성합니다. Hugging Face Datasets의 features에 대한 스키마 메타데이터도 확인합니다. Null이 아닌 필드는 지원되지 않으며 nullable로 설정됩니다.

또한, pa.dictionary는 지원되지 않으며 대신 기본 유형을 사용합니다. 따라서 datasets는 DictionaryArray 객체를 실제 값으로 변환합니다.

from_dict

< >

( dic ) → Features

매개변수

  • dic (dict[str, Any]) — Python 사전.

반환값

기능

dict에서 [Features]를 구성합니다.

시리얼라이즈 해제된 dict에서 중첩된 feature 객체를 재생성합니다. feature FieldType의 dataclass 이름을 추론하기 위해 _type 키를 사용합니다.

시리얼라이즈된 JSON 딕셔너리에서 기능을 정의하기 위한 편리한 생성자 구문을 제공합니다. 이 함수는 특히 JSON 객체로 덤프된 [DatasetInfo]를 디시리얼라이즈할 때 사용됩니다. 이는 [Features.from_arrow_schema]의 유사체로, 재귀적인 필드별 인스턴스화를 처리하지만, [Value]가 자동으로 수행하는 pyarrow 원시 dtype 매핑을 활용한다는 점을 제외하고는 pyarrow로의 매핑이 필요하지 않습니다.

예:

>>> Features.from_dict({'_type': {'dtype': 'string', 'id': None, '_type': 'Value'}})
{'_type': Value('string')}

reorder_fields_as

< >

( other: Features )

매개변수

  • other ([Features]) — 정렬할 다른 [Features]입니다.

Features 필드를 다른 Features의 필드 순서와 일치하도록 재배열합니다.

필드의 순서는 중요한데, 이는 기반이 되는 arrow 데이터에 영향을 미치기 때문입니다. 필드의 순서를 다시 정하면 기반이 되는 arrow 데이터 타입을 일치시킬 수 있습니다.

예:

>>> from datasets import Features, List, Value
>>> # let's say we have two features with a different order of nested fields (for a and b for example)
>>> f1 = Features({"root": {"a": Value("string"), "b": Value("string")}})
>>> f2 = Features({"root": {"b": Value("string"), "a": Value("string")}})
>>> assert f1.type != f2.type
>>> # re-ordering keeps the base structure (here List is defined at the root level), but makes the fields order match
>>> f1.reorder_fields_as(f2)
{'root': List({'b': Value('string'), 'a': Value('string')})}
>>> assert f1.reorder_fields_as(f2).type == f2.type

스칼라

class datasets.Value

< >

( dtype: strid: typing.Optional[str] = None )

매개변수

  • dtype (str) — 데이터 타입의 이름.

특정 데이터 유형의 스칼라 특징 값.

Value의 가능한 dtype은 다음과 같습니다:

  • null
  • bool
  • int8
  • int16
  • int32
  • int64
  • uint8
  • uint16
  • uint32
  • uint64
  • float16
  • float32 (float의 별칭)
  • float64 (double의 별칭)
  • time32[(s|ms)]
  • time64[(us|ns)]
  • timestamp[(s|ms|us|ns)]
  • timestamp[(s|ms|us|ns), tz=(tzstring)]
  • date32
  • date64
  • duration[(s|ms|us|ns)]
  • decimal128(precision, scale)
  • decimal256(precision, scale)
  • binary
  • large_binary
  • binary_view
  • string
  • large_string
  • string_view

예:

>>> from datasets import Features
>>> features = Features({'stars': Value('int32')})
>>> features
{'stars': Value('int32')}

class datasets.ClassLabel

< >

( num_classes: dataclasses.InitVar[typing.Optional[int]] = Nonenames: list = Nonenames_file: dataclasses.InitVar[typing.Optional[str]] = Noneid: typing.Optional[str] = None )

매개변수

  • num_classes (int, 선택 사항) — 클래스의 수. 모든 라벨은 num_classes보다 작아야 합니다.
  • names (list of str, 선택 사항) — 정수 클래스에 대한 문자열 이름입니다. 이름이 제공된 순서가 유지됩니다.
  • names_file (str, 선택 사항) — 정수 클래스의 이름을 한 줄에 하나씩 포함하는 파일의 경로.

정수 클래스 라벨에 대한 기능 유형.

ClassLabel을 정의하는 방법은 3가지이며, 이는 3개의 인수에 해당합니다:

  • num_classes: 0부터 (num_classes-1)까지의 라벨을 생성합니다.
  • names: 라벨 문자열 목록.
  • names_file: 라벨 목록을 포함하는 파일.

내부적으로 라벨은 정수로 저장됩니다. -1을 사용하여 알려지지 않거나 누락된 라벨을 나타낼 수 있습니다.

예:

>>> from datasets import Features, ClassLabel
>>> features = Features({'label': ClassLabel(num_classes=3, names=['bad', 'ok', 'good'])})
>>> features
{'label': ClassLabel(names=['bad', 'ok', 'good'])}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.IntegerArray] ) → pa.Int64Array

매개변수

  • storage (Union[pa.StringArray, pa.IntegerArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.Int64Array

ClassLabel 화살표 저장 형식의 배열.

Arrow 배열을 ClassLabel arrow 저장 유형으로 캐스팅합니다. ClassLabel pyarrow 저장 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string()
  • pa.int()

int2str

< >

( values: typing.Union[int, collections.abc.Iterable] )

integer => 클래스 이름 string 변환.

알 수 없거나 누락된 라벨에 대해: 음의 정수를 전달하면 ValueError가 발생합니다.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].int2str(0)
'neg'

str2int

< >

( values: typing.Union[str, collections.abc.Iterable] )

변환 클래스 이름 string => integer.

예:

>>> from datasets import load_dataset
>>> ds = load_dataset("cornell-movie-review-data/rotten_tomatoes", split="train")
>>> ds.features["label"].str2int('neg')
0

복합

class datasets.LargeList

< >

( feature: typing.Anyid: typing.Optional[str] = None )

매개변수

  • feature (FeatureType) — 큰 목록 내 각 항목의 하위 feature 데이터 유형.

자식 feature 데이터 타입으로 구성된 큰 목록 데이터의 feature 타입.

pyarrow.LargeListType에 의해 뒷받침되며, 이는 pyarrow.ListType와 유사하지만 오프셋이 32비트가 아닌 64비트입니다.

class datasets.List

< >

( feature: typing.Anylength: int = -1id: typing.Optional[str] = None )

매개변수

  • feature (FeatureType) — 큰 목록 내 각 항목의 하위 feature 데이터 유형.
  • length (선택 사항, int, 기본값 -1) — 고정된 경우 리스트의 길이입니다. 기본값은 -1이며, 이는 임의의 길이를 의미합니다.

자식 feature 데이터 타입으로 구성된 큰 목록 데이터의 feature 타입.

pyarrow.ListType에 기반하며, 32비트 오프셋 또는 고정 길이를 사용합니다.

class datasets.Sequence

< >

( feature = Nonelength = -1**kwargs )

매개변수

  • feature (FeatureType) — 큰 목록 내 각 항목의 하위 feature 데이터 유형.
  • length (선택 사항, int, 기본값 -1) — 고정된 경우 리스트의 길이입니다. 기본값은 -1이며, 이는 임의의 길이를 의미합니다.

Sequence는 내부 딕셔너리 특징을 리스트의 딕셔너리로 자동으로 변환하는 유틸리티입니다. 이 동작은 TensorFlow Datasets 라이브러리와의 호환성 계층을 위해 구현되었지만, 일부 경우에는 원치 않는 동작일 수 있습니다. 이 동작을 원하지 않는 경우 Sequence 대신 List 또는 LargeList를 사용할 수 있습니다.

번역

class datasets.Translation

< >

( languages: listid: typing.Optional[str] = None )

매개변수

  • languages (dict) — 각 예제에 대해 문자열 언어 코드를 문자열 번역으로 매핑하는 사전입니다.

Feature는 예시별로 고정된 언어를 사용하는 번역에 사용됩니다. 여기서는 tfds와의 호환성을 위해 사용됩니다.

예:

>>> # At construction time:
>>> datasets.features.Translation(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': 'le chat',
...         'de': 'die katze'
... }

flatten

< >

( )

Translation 기능을 사전으로 평탄화합니다.

class datasets.TranslationVariableLanguages

< >

( languages: typing.Optional[list] = Nonenum_languages: typing.Optional[int] = Noneid: typing.Optional[str] = None ) →

  • language or translation (variable-length 1D tf.Tensor of tf.string)

매개변수

  • languages (dict) — 각 예제에 대해 문자열 언어 코드를 하나 이상의 문자열 번역으로 매핑하는 사전입니다. 존재하는 언어는 예제마다 달라질 수 있습니다.

반환값

  • language 또는 translation(tf.string의 가변 길이 1차원 tf.Tensor)

오름차순으로 정렬된 언어 코드 또는 언어 코드와 정렬되도록 정렬된 일반 텍스트 번역

예제별로 언어가 달라지는 번역을 위한 Feature. 여기서는 tfds와의 호환성을 위해 사용됩니다.

예:

>>> # At construction time:
>>> datasets.features.TranslationVariableLanguages(languages=['en', 'fr', 'de'])
>>> # During data generation:
>>> yield {
...         'en': 'the cat',
...         'fr': ['le chat', 'la chatte,']
...         'de': 'die katze'
... }
>>> # Tensor returned :
>>> {
...         'language': ['en', 'de', 'fr', 'fr'],
...         'translation': ['the cat', 'die katze', 'la chatte', 'le chat'],
... }

flatten

< >

( )

TranslationVariableLanguages 기능을 사전으로 평탄화합니다.

배열

class datasets.Array2D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

매개변수

  • shape (tuple) — 각 차원의 크기.
  • dtype (str) — 데이터 타입의 이름.

2차원 배열을 생성합니다.

예:

>>> from datasets import Features
>>> features = Features({'x': Array2D(shape=(1, 3), dtype='int32')})

class datasets.Array3D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

매개변수

  • shape (tuple) — 각 차원의 크기.
  • dtype (str) — 데이터 타입의 이름.

3차원 배열을 생성합니다.

예:

>>> from datasets import Features
>>> features = Features({'x': Array3D(shape=(1, 2, 3), dtype='int32')})

class datasets.Array4D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

매개변수

  • shape (tuple) — 각 차원의 크기.
  • dtype (str) — 데이터 타입의 이름.

4차원 배열을 생성합니다.

예:

>>> from datasets import Features
>>> features = Features({'x': Array4D(shape=(1, 2, 2, 3), dtype='int32')})

class datasets.Array5D

< >

( shape: tupledtype: strid: typing.Optional[str] = None )

매개변수

  • shape (tuple) — 각 차원의 크기.
  • dtype (str) — 데이터 타입의 이름.

5차원 배열을 생성합니다.

예:

>>> from datasets import Features
>>> features = Features({'x': Array5D(shape=(1, 2, 2, 3, 3), dtype='int32')})

오디오

class datasets.Audio

< >

( sampling_rate: typing.Optional[int] = Nonedecode: bool = Truenum_channels: typing.Optional[int] = Nonestream_index: typing.Optional[int] = Noneid: typing.Optional[str] = None )

매개변수

  • sampling_rate (int, 선택 사항) — 목표 샘플링 레이트입니다. None인 경우 네이티브 샘플링 레이트가 사용됩니다.
  • num_channels (int, 선택 사항) — 샘플의 원하는 채널 수입니다. 기본적으로 소스의 채널 수가 사용됩니다. 오디오 디코딩은 (num_channels, num_samples) 모양의 샘플을 반환합니다. 현재 None (소스의 채널 수, 기본값), 1 (모노) 또는 2 (스테레오) 채널이 지원됩니다. num_channels 인수는 torchcodec.decoders.AudioDecoder.

    4.4.0에 추가됨

  • decode (bool, 기본값 True) — 오디오 데이터를 디코딩할지 여부입니다. False인 경우 {"path": audio_path, "bytes": audio_bytes} 형식의 기본 딕셔너리를 반환합니다.
  • stream_index (int, 선택 사항) — 파일에서 사용할 스트리밍 인덱스입니다. None인 경우 “best” 인덱스가 기본값으로 사용됩니다.

오디오 Feature는 오디오 파일에서 오디오 데이터를 추출합니다.

Input: Audio 기능은 다음을 입력으로 받습니다:

  • str: 오디오 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).

  • pathlib.Path: 오디오 파일의 경로 (즉, 랜덤 액세스가 허용됨).

  • 다음 키를 가진 dict:

    • path: 오디오 파일의 아카이브 파일에 대한 상대 경로 문자열.
    • bytes: 오디오 파일의 바이트 콘텐츠.

    parquet 또는 webdataset 파일과 같이 오디오 파일을 내장하는 파일에 유용합니다.

  • 다음 키를 가진 dict:

    • array: 오디오 샘플을 포함하는 배열
    • sampling_rate: 오디오 샘플의 샘플링 주파수에 해당하는 정수.
  • torchcodec.decoders.AudioDecoder: torchcodec 오디오 디코더 객체.

Output: 오디오 기능은 torchcodec.decoders.AudioDecoder 객체로 출력 데이터를 반환하며, 추가 키가 있습니다:

  • array: 오디오 샘플을 포함하는 배열
  • sampling_rate: 오디오 샘플의 샘플링 주파수에 해당하는 정수.

예:

>>> from datasets import load_dataset, Audio
>>> ds = load_dataset("PolyAI/minds14", name="en-US", split="train")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=44100, num_channels=2))
>>> ds[0]["audio"]
<datasets.features._torchcodec.AudioDecoder object at 0x11642b6a0>
>>> audio = ds[0]["audio"]
>>> audio.get_samples_played_in_range(0, 10)
AudioSamples:
    data (shape): torch.Size([2, 110592])
    pts_seconds: 0.0
    duration_seconds: 2.507755102040816
    sample_rate: 44100

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

매개변수

  • storage (Union[pa.StringArray, pa.StructArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.StructArray

Audio arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})

Arrow 배열을 Audio arrow 저장소 유형으로 캐스팅합니다. Audio pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string() - "path" 데이터를 포함해야 합니다
  • pa.binary() - 오디오 바이트를 포함해야 합니다
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - 순서는 중요하지 않습니다

decode_example

< >

( value: dicttoken_per_repo_id: typing.Optional[dict[str, typing.Union[str, bool, NoneType]]] = None )

매개변수

  • value (dict) — 다음 키를 가진 딕셔너리입니다:
    • path: 상대 오디오 파일 경로를 나타내는 문자열.
    • bytes: 오디오 파일의 바이트.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 오디오 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형식의 사전(dict)을 전달할 수 있습니다.

Decode example audio file into audio data.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

매개변수

  • storage (pa.StructArray) — 임베드할 PyArrow 배열.
  • token_per_repo_id (dict, 선택 사항) — repo_id -> token 형식의 사전으로, 파일 바이트를 가져올 때 사용합니다.
  • local_files (bool, 기본값은 True) — 로컬 파일 데이터를 배열에 포함할지 여부

    4.8.5에 추가

  • remote_files (bool, 기본값은 True) — 배열에 원격 파일 데이터를 포함할지 여부입니다. 예: hf:// 또는 https://로 시작하는 경로가 있는 파일

    4.8.5에 추가

반환값

pa.StructArray

Audio arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})

오디오 파일을 Arrow 배열에 임베드합니다.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('AudioDecoder')] ) → dict

매개변수

  • value (str, bytes,bytearray,dict, AudioDecoder) — Audio feature에 입력으로 전달되는 데이터.

반환값

dict

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( )

decodable 상태인 경우 오류를 발생시키고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

이미지

class datasets.Image

< >

( mode: typing.Optional[str] = Nonedecode: bool = Trueid: typing.Optional[str] = None )

매개변수

  • mode (str, 선택 사항) — 이미지를 변환할 모드입니다. None인 경우 이미지의 기본 모드가 사용됩니다.
  • decode (bool, 기본값 True) — 이미지 데이터를 디코딩할지 여부입니다. False인 경우 {"path": image_path, "bytes": image_bytes} 형식의 기본 딕셔너리를 반환합니다.

이미지 파일에서 이미지 데이터를 읽는 Feature입니다.

Input: Image 기능은 다음을 입력으로 받습니다:

  • str: 이미지 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).

  • pathlib.Path: 이미지 파일의 경로 (즉, 랜덤 액세스가 허용됨).

  • 다음 키를 가진 dict:

    • path: 아카이브 파일에 대한 이미지 파일의 상대 경로 문자열.
    • bytes: 이미지 파일의 바이트.

    이미지 파일을 내장하는 parquet 또는 webdataset 파일에 유용합니다.

  • np.ndarray: 이미지를 나타내는 NumPy 배열.

  • PIL.Image.Image: PIL 이미지 객체.

Output: 이미지 기능은 PIL.Image.Image 객체로 출력 데이터를 반환합니다.

예:

>>> from datasets import load_dataset, Image
>>> ds = load_dataset("AI-Lab-Makerere/beans", split="train")
>>> ds.features["image"]
Image(decode=True, id=None)
>>> ds[0]["image"]
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=500x500 at 0x15E52E7F0>
>>> ds = ds.cast_column('image', Image(decode=False))
{'bytes': None,
 'path': '/root/.cache/huggingface/datasets/downloads/extracted/b0a21163f78769a2cf11f58dfc767fb458fc7cea5c05dccc0144a2c0f0bc1292/train/healthy/healthy_train.85.jpg'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

매개변수

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.StructArray

Image arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})

Arrow 배열을 Image arrow 저장소 유형으로 캐스팅합니다. Image pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string() - "path" 데이터를 포함해야 합니다
  • pa.large_string() - “path” 데이터를 포함해야 합니다(가능한 경우 문자열로 변환됩니다)
  • pa.binary() - 이미지 바이트를 포함해야 합니다
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - 순서는 중요하지 않습니다
  • pa.list(*) - 이미지 배열 데이터를 포함해야 합니다

decode_example

< >

( value: dicttoken_per_repo_id = None )

매개변수

  • value (str 또는 dict) — 절대 이미지 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리:
    • path: 절대 또는 상대 이미지 파일 경로를 나타내는 문자열.
    • bytes: 이미지 파일의 바이트.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 이미지 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형식의 사전(dict)을 전달할 수 있습니다.

Decode example image file into image data.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

매개변수

  • storage (pa.StructArray) — 임베드할 PyArrow 배열.
  • token_per_repo_id (dict, 선택 사항) — repo_id -> token 형식의 사전으로, 파일 바이트를 가져올 때 사용합니다.
  • local_files (bool, 기본값은 True) — 로컬 파일 데이터를 배열에 포함할지 여부

    4.8.5에 추가

  • remote_files (bool, 기본값은 True) — 배열에 원격 파일 데이터를 포함할지 여부입니다. 예: hf:// 또는 https://로 시작하는 경로가 있는 파일

    4.8.5에 추가

반환값

pa.StructArray

Image arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})

이미지 파일을 Arrow 배열에 임베드합니다.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, numpy.ndarray, ForwardRef('PIL.Image.Image')] )

매개변수

  • value (str, np.ndarray, PIL.Image.Image 또는 dict) — Image feature에 입력으로 전달되는 데이터.

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( )

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

Video

class datasets.Video

< >

( decode: bool = Truestream_index: typing.Optional[int] = Nonedimension_order: typing.Literal['NCHW', 'NHWC'] = 'NCHW'num_ffmpeg_threads: int = 1device: typing.Union[str, ForwardRef('torch.device'), NoneType] = 'cpu'seek_mode: typing.Literal['exact', 'approximate'] = 'exact'id: typing.Optional[str] = None )

매개변수

  • decode (bool, 기본값 True) — 비디오 데이터를 디코딩할지 여부입니다. False인 경우, {"path": video_path, "bytes": video_bytes} 형식의 기본 딕셔너리를 반환합니다.
  • stream_index (int, 선택 사항) — 파일에서 사용할 스트리밍 인덱스입니다. None인 경우 “best” 인덱스가 기본값으로 사용됩니다.
  • dimension_order (str, 기본값 NCHW) — 디코딩된 프레임의 차원 순서입니다. 여기서 N은 배치 크기, C는 채널 수, H는 프레임의 높이, W는 프레임의 너비입니다.
  • num_ffmpeg_threads (int, 기본값 1) — 비디오 디코딩에 사용할 스레드 수입니다. (1로 유지하는 것을 권장합니다)
  • device (str 또는 torch.device, 기본값 cpu) — 비디오를 디코딩하는 데 사용할 장치입니다.
  • seek_mode (str, 기본값 exact) — 프레임 접근 방식이 “exact”인지 “approximate”인지를 결정합니다. Exact는 프레임 i를 요청하면 항상 프레임 i가 반환되도록 보장하지만, 이를 위해 파일의 초기 스캔이 필요합니다. Approximate는 파일을 스캔하지 않으므로 더 빠르지만, 파일의 메타데이터를 사용하여 i의 위치를 추정하기 때문에 정확도가 낮습니다. 자세한 내용은 여기에서 확인하세요.

Feature를 사용하여 비디오 파일에서 비디오 데이터를 읽습니다.

입력: Video 기능은 다음을 입력으로 받습니다:

  • str: 비디오 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).

  • pathlib.Path: 비디오 파일의 경로 (즉, 랜덤 액세스가 허용됨).

  • 다음 키를 가진 dict:

    • path: 데이터셋 저장소에서 비디오 파일의 상대 경로를 나타내는 문자열.
    • bytes: 비디오 파일의 바이트 수.

    parquet 또는 webdataset 파일과 같이 비디오 파일을 내장하는 파일에 유용합니다.

  • torchcodec.decoders.VideoDecoder: torchcodec 비디오 디코더 객체.

Output: The Video features 출력 데이터는 torchcodec.decoders.VideoDecoder 객체입니다.

예:

>>> from datasets import Dataset, Video
>>> ds = Dataset.from_dict({"video":["path/to/Screen Recording.mov"]}).cast_column("video", Video())
>>> ds.features["video"]
Video(decode=True, id=None)
>>> ds[0]["video"]
<torchcodec.decoders._video_decoder.VideoDecoder object at 0x14a61e080>
>>> video = ds[0]["video"]
>>> video.get_frames_in_range(0, 10)
FrameBatch:
data (shape): torch.Size([10, 3, 50, 66])
pts_seconds: tensor([0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333, 0.4333,
        0.4333], dtype=torch.float64)
duration_seconds: tensor([0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167, 0.0167,
        0.0167], dtype=torch.float64)
>>> ds.cast_column('video', Video(decode=False))[0]["video]
{'bytes': None,
 'path': 'path/to/Screen Recording.mov'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

매개변수

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.StructArray

Video arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()}).

Arrow 배열을 Video arrow 저장소 유형으로 캐스팅합니다. Video pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string() - "path" 데이터를 포함해야 합니다
  • pa.binary() - 비디오 바이트를 포함해야 합니다
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - 순서는 중요하지 않습니다
  • pa.list(*) - 비디오 배열 데이터를 포함해야 합니다

decode_example

< >

( value: typing.Union[str, datasets.features.video.Example]token_per_repo_id: typing.Optional[dict[str, typing.Union[bool, str]]] = None )

매개변수

  • value (str 또는 dict) — 절대 비디오 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리:
    • path: 절대 또는 상대 비디오 파일 경로를 나타내는 문자열.
    • bytes: 비디오 파일의 바이트.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 비디오 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형식의 사전(dict)을 전달할 수 있습니다.

Decode example video file into video data.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

매개변수

  • storage (pa.StructArray) — 임베드할 PyArrow 배열.
  • token_per_repo_id (dict, 선택 사항) — repo_id -> token 형식의 사전으로, 파일 바이트를 가져올 때 사용합니다.
  • local_files (bool, 기본값은 True) — 로컬 파일 데이터를 배열에 포함할지 여부

    4.8.5에 추가

  • remote_files (bool, 기본값은 True) — 배열에 원격 파일 데이터를 포함할지 여부입니다. 예: hf:// 또는 https://로 시작하는 경로가 있는 파일

    4.8.5에 추가

반환값

pa.StructArray

Video arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()}).

이미지 파일을 Arrow 배열에 임베드합니다.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, datasets.features.video.Example, numpy.ndarray, ForwardRef('VideoDecoder')] )

매개변수

  • value (str, np.ndarray, bytes, bytearray, VideoDecoder 또는 dict) — Video feature에 입력으로 전달되는 데이터.

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( )

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

메시

class datasets.Mesh

< >

( decode: bool = Trueid: typing.Optional[str] = None )

매개변수

  • decode (bool, 기본값 True) — 메시지 데이터를 디코딩할지 여부입니다. False인 경우, {"path": mesh_path, "bytes": mesh_bytes} 형식의 기본 딕셔너리를 반환합니다. 메시지 디코딩은 trimesh를 사용하며 .glb, .gltf, .ply, .stl 파일을 지원합니다.

Feature를 사용하여 파일에서 3D 메시 데이터를 읽습니다.

Input: Mesh 기능은 다음을 입력으로 받습니다:

  • str: 메시 파일의 절대 경로(즉, 랜덤 액세스가 허용됨).

  • pathlib.Path: 메시 파일의 경로(즉, 랜덤 액세스가 허용됨).

  • 다음 키를 가진 dict:

    • path: 아카이브 파일에 대한 메시 파일의 상대 경로 문자열.
    • bytes: 메시 파일의 바이트.

    parquet 또는 webdataset 파일과 같이 메시 파일을 내장하는 파일에 유용합니다.

  • trimesh.Trimesh 또는 trimesh.Scene: 3D 메시 또는 씬 객체.

Output: Mesh 기능은 데이터를 trimesh.Trimesh 또는 trimesh.Scene 객체로 출력합니다.

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

매개변수

  • storage (Union[pa.StringArray, pa.StructArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.StructArray

Mesh arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})입니다.

Arrow 배열을 Mesh arrow 저장소 유형으로 캐스팅합니다. Mesh pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string() - "path" 데이터를 포함해야 합니다
  • pa.large_string() - “path” 데이터를 포함해야 합니다(가능한 경우 문자열로 변환됩니다)
  • pa.binary() - 메시 바이트를 포함해야 합니다
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - 순서는 중요하지 않습니다

decode_example

< >

( value: dicttoken_per_repo_id = None )

매개변수

  • value (dict) — 다음 키를 가진 딕셔너리입니다:
    • path: 메시 파일의 절대 또는 상대 경로를 나타내는 문자열.
    • bytes: 메시 파일의 바이트.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 메시 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형식의 사전(dict)을 전달할 수 있습니다.

Decode example mesh file.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

매개변수

  • storage (pa.StructArray) — 임베드할 PyArrow 배열.
  • token_per_repo_id (dict, 선택 사항) — repo_id -> token 형식의 사전으로, 파일 바이트를 가져올 때 사용합니다.
  • local_files (bool, 기본값 True) — 로컬 파일 데이터를 배열에 포함할지 여부입니다.
  • remote_files (bool, 기본값 True) — 배열에 원격 파일 데이터를 포함할지 여부.

반환값

pa.StructArray

Mesh arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})입니다.

Arrow 배열에 메시 파일을 임베드합니다.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('trimesh.Trimesh'), ForwardRef('trimesh.Scene')] )

매개변수

  • value (str, bytes, dict, trimesh.Trimesh 또는 trimesh.Scene) — Mesh feature에 입력으로 전달되는 데이터.

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( )

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

Json

class datasets.Json

< >

( decode: bool = Trueid: typing.Optional[str] = None )

JSON 객체의 Feature type입니다.

내부적으로 객체는 JSON 인코딩된 문자열로 저장됩니다.

예:

>>> from datasets import Features, Json
>>> features = Features({'json': Json()})
>>> features
{'json': Json()}
>>> from datasets import Dataset, Features, Json, List
>>> features = Features({"a": List(Json())})
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, features=features)
>>> # OR
>>> ds = Dataset.from_dict({"a": [[{"b": 0}, {"c": 0}]]}, on_mixed_types="use_json")
>>> ds.features
{'a': List(Json())}
>>> ds[0]
{'a': [{'b': 0}, {'c': 0}]}
>>> def f(x):
...     for y in x["a"]:
...         y["d"] = "foo"
...     return x
>>> ds = ds.map(f)
>>> ds.features
>>> ds[0]
{'a': [{'b': 0, 'd': 'foo'}, {'c': 0, 'd': 'foo'}]}

cast_storage

< >

( storage: Array ) → pa.JsonArray

매개변수

  • storage (Union[pa.StringArray, pa.IntegerArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.JsonArray

Json 화살표 저장 형식의 배열.

Arrow 배열을 Json arrow 저장 유형으로 캐스팅합니다.

Pdf

class datasets.Pdf

< >

( decode: bool = Trueid: typing.Optional[str] = None )

매개변수

  • decode (bool, 기본값 True) — pdf 데이터를 디코딩할지 여부입니다. False인 경우 {"path": pdf_path, "bytes": pdf_bytes} 형식의 기본 딕셔너리를 반환합니다.

실험적 기능. PDF 파일을 통해 PDF 문서를 읽는 Feature.

Input: Pdf 기능은 다음을 입력으로 받습니다:

  • str: pdf 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).

  • pathlib.Path: pdf 파일의 경로 (즉, 랜덤 액세스가 허용됨).

  • 다음 키를 가진 dict:

    • path: 데이터셋 저장소에서 PDF 파일의 상대 경로를 나타내는 문자열.
    • bytes: pdf 파일의 바이트. 순차 접근이 필요한 아카이브 파일에 유용합니다.
  • pdfplumber.pdf.PDF: pdfplumber pdf 객체.

예:

>>> from datasets import Dataset, Pdf
>>> ds = Dataset.from_dict({"pdf": ["path/to/pdf/file.pdf"]}).cast_column("pdf", Pdf())
>>> ds.features["pdf"]
Pdf(decode=True, id=None)
>>> ds[0]["pdf"]
<pdfplumber.pdf.PDF object at 0x7f8a1c2d8f40>
>>> ds = ds.cast_column("pdf", Pdf(decode=False))
>>> ds[0]["pdf"]
{'bytes': None,
'path': 'path/to/pdf/file.pdf'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.ListArray] ) → pa.StructArray

매개변수

  • storage (Union[pa.StringArray, pa.StructArray, pa.ListArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.StructArray

Pdf 화살표 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})입니다.

Arrow 배열을 Pdf arrow 저장소 유형으로 캐스팅합니다. Pdf pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string() - "path" 데이터를 포함해야 합니다
  • pa.binary() - 이미지 바이트를 포함해야 합니다
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - 순서는 중요하지 않습니다
  • pa.list(*) - pdf 배열 데이터를 포함해야 합니다

decode_example

< >

( value: dicttoken_per_repo_id = None )

매개변수

  • value (str 또는 dict) — 절대 PDF 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리:
    • path: 절대 또는 상대 pdf 파일 경로를 나타내는 문자열.
    • bytes: pdf 파일의 바이트.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 PDF 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형태의 사전(dict)을 전달할 수 있습니다.

PDF 파일 예제를 PDF 데이터로 디코딩합니다.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

매개변수

  • storage (pa.StructArray) — 임베드할 PyArrow 배열.
  • token_per_repo_id (dict, 선택 사항) — repo_id -> token 형식의 사전으로, 파일 바이트를 가져올 때 사용합니다.
  • local_files (bool, 기본값은 True) — 로컬 파일 데이터를 배열에 포함할지 여부

    4.8.5에 추가

  • remote_files (bool, 기본값은 True) — 배열에 원격 파일 데이터를 포함할지 여부입니다. 예: hf:// 또는 https://로 시작하는 경로가 있는 파일

    4.8.5에 추가

반환값

pa.StructArray

PDF 화살표 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})입니다.

PDF 파일을 Arrow 배열에 임베드합니다.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('pdfplumber.pdf.PDF')] )

매개변수

  • value (str, bytes, pdfplumber.pdf.PDF 또는 dict) — Pdf feature에 입력으로 전달되는 데이터.

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( )

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

Nifti

class datasets.Nifti

< >

( decode: bool = Trueid: typing.Optional[str] = None )

매개변수

  • decode (bool, 기본값 True) — NIfTI 데이터를 디코딩할지 여부입니다. False인 경우 바이트 문자열이 반환됩니다. 예시 디코딩 시 decode=False는 지원되지 않습니다.

실험적 기능입니다. NIfTI 신경영상 파일을 읽기 위한 Nifti Feature.

Input: Nifti 기능은 다음을 입력으로 받습니다:

  • str: NIfTI 파일의 절대 경로 (즉, 랜덤 액세스가 허용됨).

  • pathlib.Path: NIfTI 파일의 경로(즉, 랜덤 액세스가 허용됨).

  • 다음 키를 가진 dict:

    • path: 데이터셋 저장소에서 NIfTI 파일의 상대 경로를 나타내는 문자열.
    • bytes: NIfTI 파일의 바이트. 순차 접근이 필요한 아카이브 파일에 유용합니다.
  • nibabel 이미지 객체(예: nibabel.nifti1.Nifti1Image).

예:

>>> from datasets import Dataset, Nifti
>>> ds = Dataset.from_dict({"nifti": ["path/to/file.nii.gz"]}).cast_column("nifti", Nifti())
>>> ds.features["nifti"]
Nifti(decode=True, id=None)
>>> ds[0]["nifti"]
<nibabel.nifti1.Nifti1Image object at 0x7f8a1c2d8f40>
>>> ds = ds.cast_column("nifti", Nifti(decode=False))
>>> ds[0]["nifti"]
{'bytes': None,
'path': 'path/to/file.nii.gz'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray, pyarrow.lib.BinaryArray] ) → pa.StructArray

매개변수

  • storage (Union[pa.StringArray, pa.StructArray, pa.BinaryArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.StructArray

Nifti 화살표 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})입니다.

Arrow 배열을 Nifti arrow 저장소 유형으로 캐스팅합니다. Nifti pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string() - "path" 데이터를 포함해야 합니다
  • pa.binary() - NIfTI 바이트를 포함해야 합니다
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - 순서는 중요하지 않습니다

decode_example

< >

( value: dicttoken_per_repo_id = None )

매개변수

  • value (str 또는 dict) — 절대 NIfTI 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리:
    • path: 절대 또는 상대 NIfTI 파일 경로를 나타내는 문자열.
    • bytes: NIfTI 파일의 바이트.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 NIfTI 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형식의 사전(dict)을 전달할 수 있습니다.

NIfTI 파일 예시를 nibabel 이미지 객체로 디코딩합니다.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

매개변수

  • storage (pa.StructArray) — 임베드할 PyArrow 배열.
  • token_per_repo_id (dict, 선택 사항) — repo_id -> token 형식의 사전으로, 파일 바이트를 가져올 때 사용합니다.
  • local_files (bool, 기본값은 True) — 로컬 파일 데이터를 배열에 포함할지 여부

    4.8.5에 추가

  • remote_files (bool, 기본값은 True) — 배열에 원격 파일 데이터를 포함할지 여부입니다. 예: hf:// 또는 https://로 시작하는 경로가 있는 파일

    4.8.5에 추가

반환값

pa.StructArray

NifTI 화살표 저장 형식의 배열, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})입니다.

NifTI 파일을 Arrow 배열에 임베드합니다.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('nib.Nifti1Image')] )

매개변수

  • value (str, bytes, nibabel.Nifti1Image 또는 dict) — Nifti feature에 입력으로 전달되는 데이터.

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( )

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

BioSequence

class datasets.BioSequence

< >

( format: str = 'fasta'decode: bool = Trueid: typing.Optional[str] = None )

매개변수

  • format (str, 기본값 "fasta") — Bio.SeqIO가 인식하는 시퀀스 형식의 이름입니다. 일반적인 값으로는 "fasta", "fastq", "genbank"가 있습니다.
  • decode (bool, 기본값 True) — 시퀀스 데이터를 디코딩할지 여부입니다. False인 경우 {"path": path, "bytes": bytes} 형식의 기본 딕셔너리를 반환합니다.

실험적 기능. 시퀀스 파일에서 생물학적 시퀀스 레코드를 읽기 위한 BioSequence Feature.

시퀀스 파일에는 식별자와 주석이 포함된 잔기(residue) 레코드가 하나 이상 저장됩니다. FASTA, FASTQ, GenBank은 이 수준에서 동일한 형태를 가지며, 사용된 파서만 다를 뿐입니다. 따라서 format은 유형이 아니라 파서를 선택합니다.

Input: BioSequence 기능은 다음을 입력으로 받습니다:

  • str: 시퀀스 파일의 절대 경로(즉, 랜덤 액세스가 허용됨).

  • pathlib.Path: 시퀀스 파일의 경로(즉, 랜덤 액세스가 허용됨).

  • 다음 키를 가진 dict:

    • path: 데이터셋 저장소에서 시퀀스 파일의 상대 경로를 나타내는 문자열.
    • bytes: 시퀀스 파일의 바이트. 순차 접근이 필요한 아카이브 파일에 유용합니다.
  • Bio.SeqRecord.SeqRecord: biopython 시퀀스 레코드.

예:

>>> from datasets import Dataset, BioSequence
>>> ds = Dataset.from_dict({"seq": ["path/to/sequences.fasta"]}).cast_column("seq", BioSequence())
>>> ds.features["seq"]
BioSequence(format='fasta', decode=True)
>>> ds[0]["seq"]
SeqRecord(seq=Seq('ACGT'), id='seq1', name='seq1', description='seq1', dbxrefs=[])
>>> ds = ds.cast_column("seq", BioSequence(decode=False))
>>> ds[0]["seq"]
{'bytes': None,
'path': 'path/to/sequences.fasta'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

매개변수

  • storage (Union[pa.StringArray, pa.StructArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.StructArray

BioSequence arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})입니다.

Arrow 배열을 BioSequence arrow 저장소 유형으로 캐스팅합니다. BioSequence pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string() - "path" 데이터를 포함해야 합니다
  • pa.binary() - 파일 바이트를 포함해야 합니다
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - 순서는 중요하지 않습니다

decode_example

< >

( value: dicttoken_per_repo_id = None )

매개변수

  • value (str 또는 dict) — 절대 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리입니다:
    • path: 절대 또는 상대 파일 경로를 나타내는 문자열.
    • bytes: 파일의 바이트.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형태의 사전(dict)을 전달할 수 있습니다.

Decode example sequence file into a biopython record.

file에는 여러 레코드가 포함될 수 있습니다. 이 경우 한 행이 하나의 레코드이므로 첫 번째 레코드가 반환됩니다. 여러 레코드가 포함된 파일을 레코드당 한 행으로 확장하려면 패키지에 포함된 시퀀스 로더를 사용하세요.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

매개변수

  • storage (pa.StructArray) — 임베드할 PyArrow 배열.
  • token_per_repo_id (dict, 선택 사항) — repo_id -> token 형식의 사전으로, 파일 바이트를 가져올 때 사용합니다.
  • local_files (bool, 기본값 True) — 로컬 파일 데이터를 배열에 포함할지 여부입니다.
  • remote_files (bool, 기본값 True) — 배열에 원격 파일 데이터를 포함할지 여부.

반환값

pa.StructArray

BioSequence arrow 저장 형식의 Array.

시퀀스 파일을 Arrow 배열에 임베드합니다.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('SeqRecord')] )

매개변수

  • value (str, bytes, Bio.SeqRecord.SeqRecord 또는 dict) — BioSequence 기능에 입력으로 전달되는 데이터.

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( )

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

BioStructure

class datasets.BioStructure

< >

( format: str = 'pdb'decode: bool = Trueid: typing.Optional[str] = None )

매개변수

  • format (str, 기본값 "pdb") — 구조 형식이며, "pdb" 또는 "mmcif" 중 하나입니다.
  • decode (bool, 기본값 True) — 구조 데이터를 디코딩할지 여부입니다. False인 경우 {"path": path, "bytes": bytes} 형식의 기본 딕셔너리를 반환합니다.

실험적 기능. 구조 파일에서 거대 분자 구조를 읽기 위한 BioStructure Feature.

구조 파일은 분자의 원자 3차원 좌표를 체인(chain)과 잔기(residue)로 그룹화하여 저장합니다. PDB와 mmCIF는 동일한 객체를 기술하며 파서만 다르므로 format은 유형이 아니라 파서를 선택합니다.

Input: BioStructure 기능은 다음을 입력으로 받습니다:

  • str: 구조 파일의 절대 경로(즉, 랜덤 액세스가 허용됨).

  • pathlib.Path: 구조 파일의 경로(즉, 랜덤 액세스가 허용됨).

  • 다음 키를 가진 dict:

    • path: 데이터셋 저장소에서 구조 파일의 상대 경로를 나타내는 문자열.
    • bytes: 구조 파일의 바이트. 순차 접근이 필요한 아카이브 파일에 유용합니다.
  • Bio.PDB.Structure.Structure: biopython 구조.

예:

>>> from datasets import Dataset, BioStructure
>>> ds = Dataset.from_dict({"st": ["path/to/1abc.pdb"]}).cast_column("st", BioStructure())
>>> ds.features["st"]
BioStructure(format='pdb', decode=True)
>>> ds[0]["st"]
<Structure id=1abc>
>>> ds = ds.cast_column("st", BioStructure(decode=False))
>>> ds[0]["st"]
{'bytes': None,
'path': 'path/to/1abc.pdb'}

cast_storage

< >

( storage: typing.Union[pyarrow.lib.StringArray, pyarrow.lib.StructArray] ) → pa.StructArray

매개변수

  • storage (Union[pa.StringArray, pa.StructArray]) — 캐스팅할 PyArrow 배열.

반환값

pa.StructArray

BioStructure arrow 저장 형식의 Array, 즉 pa.struct({"bytes": pa.binary(), "path": pa.string()})입니다.

Arrow 배열을 BioStructure arrow 저장소 유형으로 캐스팅합니다. BioStructure pyarrow 저장소 유형으로 변환할 수 있는 Arrow 유형은 다음과 같습니다:

  • pa.string() - "path" 데이터를 포함해야 합니다
  • pa.binary() - 파일 바이트를 포함해야 합니다
  • pa.struct({"bytes": pa.binary()})
  • pa.struct({"path": pa.string()})
  • pa.struct({"bytes": pa.binary(), "path": pa.string()}) - 순서는 중요하지 않습니다

decode_example

< >

( value: dicttoken_per_repo_id = None )

매개변수

  • value (str 또는 dict) — 절대 파일 경로를 나타내는 문자열, 또는 다음 키를 가진 딕셔너리입니다:
    • path: 절대 또는 상대 파일 경로를 나타내는 문자열.
    • bytes: 파일의 바이트.
  • token_per_repo_id (dict, 선택 사항) — Hub의 비공개 저장소에서 파일에 액세스하고 디코딩하려면 repo_id (str) -> token (bool 또는 str) 형태의 사전(dict)을 전달할 수 있습니다.

Decode example structure file을 biopython 구조로 변환합니다.

embed_storage

< >

( storage: StructArraytoken_per_repo_id = Nonelocal_files: bool = Trueremote_files: bool = True ) → pa.StructArray

매개변수

  • storage (pa.StructArray) — 임베드할 PyArrow 배열.
  • token_per_repo_id (dict, 선택 사항) — repo_id -> token 형식의 사전으로, 파일 바이트를 가져올 때 사용합니다.
  • local_files (bool, 기본값 True) — 로컬 파일 데이터를 배열에 포함할지 여부입니다.
  • remote_files (bool, 기본값 True) — 배열에 원격 파일 데이터를 포함할지 여부.

반환값

pa.StructArray

BioStructure arrow 저장 형식의 Array.

구조 파일을 Arrow 배열에 임베드합니다.

encode_example

< >

( value: typing.Union[str, bytes, bytearray, dict, ForwardRef('Structure')] )

매개변수

  • value (str, bytes, Bio.PDB.Structure.Structure 또는 dict) — BioStructure 기능에 입력으로 전달되는 데이터.

Arrow 형식으로 예시를 인코딩합니다.

flatten

< >

( )

decodable 상태인 경우 해당 feature를 그대로 반환하고, 그렇지 않으면 feature를 dictionary로 flatten합니다.

파일 시스템

datasets.filesystems.is_remote_filesystem

< >

( fs: AbstractFileSystem )

매개변수

  • fs (fsspec.spec.AbstractFileSystem) — Pythonic 파일 시스템의 추상적 슈퍼 클래스입니다. 예를 들어 fsspec.filesystem('file') 또는 s3fs.S3FileSystem 등이 있습니다.

fs가 원격 파일 시스템인지 확인합니다.

지문

class datasets.fingerprint.Hasher

< >

( )

Python 객체를 입력으로 받는 해셔

Update on GitHub