资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

导入数据集

功能介绍

用于创建数据集Dataset,支持多种导入方式,如本地文件或文件夹导入、千帆平台导入、本地数据源或bos数据源导入等。

注意事项

  • 本文功能只适用于Python SDK。
  • 调用本文API,需使用安全认证AK/SK鉴权,调用流程及鉴权介绍详见SDK安装及使用流程

调用示例

本地文件导入

import os

# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

from qianfan.dataset import Dataset

# 从本地文件导入
ds =Dataset.load(data_file="path/to/dataset_file.jsonl")

文件夹导入

import os
from qianfan.dataset import Dataset
from qianfan.dataset.data_source import FormatType

# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

ds = Dataset.load(
  data_file="path/to/folder",
  file_format=FormatType.Json,
)
print(ds.list())

千帆平台导入

如果千帆平台已存在数据集版本ID,可以在本地创建一个数据集。 注意:如果是从千帆平台导入数据集,需要鉴权与bos账户。

import os

# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

from qianfan.dataset import Dataset

# 从千帆导入
# 会将平台上的数据集缓存到当前工作目录中的 .qianfan_dataset_cache 文件夹中,免去重复创建带来的重复下载。缓存版本由 SDK 控制且保证最新,用户无需关注
ds = Dataset.load(qianfan_dataset_id='your_dataset_strid')

# 如果用户不想在创建 Dataset 时即进行缓存,可以设置 is_download_to_local 为 False ,此时用户可以在功能受限的情况下对数据集进行有限的操作
# ds = Dataset.load(qianfan_dataset_id="your_dataset_id", is_download_to_local=False)

print(ds.list())

数据源source导入

import os
from qianfan.dataset import Dataset, FileDataSource
from qianfan.dataset.data_source import BosDataSource
from qianfan.dataset.data_source.base import FormatType

# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

# 本地数据源导入
file_source = FileDataSource(path="local_file.json")
local_ds = Dataset.load(source=file_source)
print(local_ds.list())

# bos数据源导入
bos_source = BosDataSource(
    region="bj",
    bucket="your_bucket_name",
    bos_file_path="/path/to/data.jsonl"
)
bos_ds = Dataset.load(source=bds)
print(ds.list())

HuggingFace导入

import os

# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

# 创建HuggingFace数据集
from datasets import load_dataset
huggingface_ds = load_dataset(
    "cais/mmlu", "abstract_algebra", split="auxiliary_train"
)

# 从HuggingFace导入
from qianfan.dataset import Dataset
ds = Dataset.load(huggingface_dataset=huggingface_ds)
print(ds.list())

Python对象导入

import os

# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

#使用 Python 的集合对象导入
from qianfan.dataset import Dataset
ds_pyobj = Dataset.create_from_pyobj([{"column_name1": "column_data1"}])
print(ds_pyobj.list())

#使用 pyarrow.Table 对象导入
import pandas
from pyarrow import Table

pd_df = pandas.DataFrame({"column_name1": ["column_data1"]})
ds_pyarrow_table = Dataset.create_from_pyarrow_table(Table.from_pandas(pd_df))
print(ds_pyarrow_table.list())

返回示例

[[{'prompt': '请根据下面的新闻生成摘要, 内容如下:新华社受权于18日全文播发修改后的《中华人民共和国立法法》,修改后的立法法分为“总则”“法律”“行政法规”“地方性法规、自治条例和单行条例、规章”“适用与备案审查”“附则”等6章,共计105条。\n生成摘要如下:',   'response': [['修改后的立法法全文公布']]}],
[{'prompt': '请根据下面的新闻生成摘要, 内容如下:一辆小轿车,一名女司机,竟造成9死24伤。日前,深圳市交警局对事故进行通报:从目前证据看,事故系司机超速行驶且操作不当导致。目前24名伤员已有6名治愈出院,其余正接受治疗,预计事故赔偿费或超一千万元。\n生成摘要如下:',   'response': [['深圳机场9死24伤续:司机全责赔偿或超千万']]}],
[{'prompt': '请根据下面的新闻生成摘要, 内容如下:1月18日,习近平总书记对政法工作作出重要指示:2014年,政法战线各项工作特别是改革工作取得新成效。新形势下,希望全国政法机关主动适应新形势,为公正司法和提高执法司法公信力提供有力制度保障。\n生成摘要如下:',   'response': [['孟建柱:主动适应形势新变化提高政法机关服务大局的能力']]}]]

参数说明

请求参数

名称 类型 必填 描述
source DataSource 数据集加载来源,默认为None,使用以下参数在数据集内部构造一个数据源:
(1)以下数据集来源参数相关,需至少填写一个:source、data_file、qianfan_dataset_id、bos_load_args、huggingface_dataset、bos_source_args
(2)如果使用数据源source方法导入,该参数必填。参数值为指定数据集的数据源,datasource包括文件数据源、bos数据源、本地数据源等
data_file str 数据集本地文件路径,默认为None。说明:
(1)以下数据集来源参数相关,需至少填写一个:source、data_file、qianfan_dataset_id、bos_load_args、huggingface_dataset、bos_source_args;如果是从本地文件导入,此字段必填
(2)支持的文件类型后缀名包括:json、jsonl、csv、txt
(3)如果需指定数据集的文件类型,可以使用kwargs参数,设置file_format,详见kwargs说明。
(4)如果文件路径为文件夹,需确保文件夹内所有子文件文件类型相同。例如,指定数据集文件伟类型为json,则所有子文件内的文件,都需要设置file_format为json
qianfan_dataset_id Dict[str,Any] 千帆数据集ID,默认为None。说明:
(1)以下数据集来源参数相关,需至少填写一个:source、data_file、qianfan_dataset_id、bos_load_args、huggingface_dataset、bos_source_args。如果是根据千帆平台已有的数据集ID导入,此字段必填
(2)可以通过以下任一方式获取数据集ID:
· 方式一,通过调用创建数据集接口,返回的datasetId字段获取
· 方式二,在千帆控制台-数据集管理列表页面,点击详情,在版本信息页查看,如下图所示:
image.png
(3)填写此参数,默认将平台上的数据集缓存到当前工作目录中的 .qianfan_dataset_cache 文件夹中
(4)如果平台数据集不缓存到.qianfan_dataset_cache 文件夹,可以使用可选参数kwargs,设置is_download_to_local 为 False,详见kwargs说明
bos_load_args Dict[str,Any] 通过参数创建数据集并导入初始数据集内容,说明:
(1)以下数据集来源参数相关,需至少填写一个:source、data_file、qianfan_dataset_id、bos_load_args、huggingface_dataset、bos_source_args
(2)如果是通过传的参数,创建数据集并导入初始数据集内容,该参数必填
huggingface_dataset Optional[Dict[str,Any],Any] Huggingface数据集对象,说明:
(1)以下数据集来源参数相关,需至少填写一个:source、data_file、qianfan_dataset_id、bos_load_args、huggingface_dataset、bos_source_args。如果通过Huggingface导入,此参数必填
(2)仅支持Huggingface数据集中的DatasetDict和Dataset,Dataset详细请查看Dataset文档
bos_source_args Dict[str,Any] 用于在特定bos实例上创建文件的参数,默认为None。说明:
(1)以下数据集来源参数相关,需至少填写一个:source、data_file、qianfan_dataset_id、bos_load_args、huggingface_dataset、bos_source_args
(2)如果通过BOS数据源导入,此参数必填
schema Dict[Schema] 用于验证数据集是否符合相关限制,如无标注非排序数据,没有空prompt等,默认为None
kwargs Any 可选参数,例如:
· file_format:指定文件格式
· is_download_to_local:设置缓存
· organize_data_as_group:是否转换数据集格式

kwargs说明

部分可选参数如下。

名称 类型 描述
file_format FormatType 指定文件格式
is_download_to_local bool 设置缓存
organize_data_as_group bool 是否将数据集格式,转换成二维数组形式。说明:
(1)默认值为False
(2)当设置为True时,数据集的格式为二维表
(3)仅当数据源的格式为FormatType.Jsonl,此参数有效

返回参数

名称 类型 描述
Dataset 数据集对象