6. 量化数据集

模型量化中使用的数据集理论上可以是huggingface datasets中主流的nlp数据集,同时我们也支持一种简单的用户自定义数据集。

注意: 用户如有需要可以从hugging face自行下载安装使用开源数据集,燧原不对该开源数据集做任何承诺,使用该开源数据集产生的一切后果和风险由用户自行承担。

6.1. Huggingface数据集举例

使用hf数据集时,只需给quantize接口传递数据集名称(或本地已下载数据集绝对路径),并传递数据集config即可(可选)。

C4

C4是以 Common Crawl 2019 年 4 月的 snapshot 为基础创建的,使用了很多 filter 来过滤文本。量化过程中,c4数据集定义示例如下:

    calib_data_name = 'allenai/c4'
    calib_data_config = {
        'name': 'allenai--c4',
        'split': 'validation',
    }

wikitext

wikitext 英语词库数据(The WikiText Long Term Dependency Language Modeling Dataset)是一个包含1亿个词汇的英文词库数据,这些词汇是从Wikipedia的优质文章和标杆文章中提取得到,包括WikiText-2和WikiText-103两个版本。量化过程中,wikitext2数据集定义示例如下:

    calib_data_name = 'wikitext'
    calib_data_config = {
        'name': 'wikitext-2-raw-v1',
        'split': 'test',
    }

6.2. 自定义数据集

当前只支持一种简单方式,将文本保存到list中,然后传递给quantize函数。

自定义方式

    calib_data = [
        'sample 1',
        'sample 2',
        ...,
        'sample n'
    ]
    ...
    quantize(
        model,
        quant_config,
        calib_data=calib_data,
        ...
    )