NLP:BIG-bench基准任务的简介、安装、使用方法之详细攻略
目录
BIG-bench基准任务的简介
1、BIG-bench基准任务的概述
2、BBL
BIG-bench基准任务的安装
BIG-bench基准任务的使用方法
1、使用SeqIO+加载BIG-bench json任务的快速启动
BIG-bench基准任务的简介
1、BIG-bench基准任务的概述
简介 | BigBench是一个面向人工智能(AI)的基准测试套件,该套件涵盖了各种AI任务。BigBench任务是一个广泛的自然语言处理(NLP)基准测试,旨在评估语言模型在各种复杂的任务上的性能。它是一个由众多具有挑战性的任务组成的集合,这些任务与现实世界的数据没有直接联系。 The Beyond the Imitation Game Benchmark(BIG-bench)是一个协作基准,旨在探索大型语言模型并推测其未来的能力。BIG-bench包含的200多个任务可以通过关键词摘要和任务名称摘要来进行概述。一篇介绍该基准的论文,包括对大型语言模型的评估结果,目前正在审查中,并可作为预印版获得。 |
目标 | BigBench任务的目标是评估语言模型在处理复杂和挑战性任务时的能力,以便更全面地了解其在真实世界应用中的表现。 BigBench试图创建一个模拟现实应用场景的基准,以更全面的方式评估和比较AI算法。 >> 衡量AI系统在现实任务上的通用能力 >> 提供一个比较不同AI系统相对长足的方式 >> 指出AI系统仍然存在的局限性 >> 通过分析AI系统在BigBench测试集上的表现,可以帮助研究人员更好地了解AI的强点和弱点,并指导未来的研究。 |
意义 | BigBench旨在测试语言模型的通用能力,例如推理、常识、逻辑等。 这些任务旨在推动语言模型的发展,并提供一个公平的基准测试,以比较不同模型的性能和进展。 |
任务类别 | BigBench任务涵盖了多个领域,包括文本理解、推理、逻辑推理、数学推理和常识推理等。其中一些任务包括: 文本理解任务:要求模型理解文本的含义和语境,例如文本蕴涵、共指消解和阅读理解。 推理任务:要求模型进行逻辑推理和推断,如因果推理、逆向比例定律等。 数学推理任务:要求模型应用数学规则和逻辑进行数学推理,解决数学问题。 常识推理任务:要求模型利用常识和先验知识进行推理,例如回答关于现实世界的常识性问题。 包含170个任务,覆盖20多个数据集。每个任务都由一个模板、一组例子和一个测试集组成。 • 机器翻译 • 文本分类 • 序列标注 • 抽取式摘要 • 信息检索 • 表格解读 • 数理推理 • 常识推理 • 多模态推理 • 规划 • 数学问题解答 |
应用案例 | PaLM 540B算法采用:人类平均表现仍然高于PaLM 540B在35%的BigBench任务中,而有些任务即使进行扩展也没有帮助,比如导航和数学归纳。 |
官方地址:
GitHub - google/BIG-bench: Beyond the Imitation Game collaborative benchmark for measuring and extrapolating the capabilities of language models
2、BBL
BIG-bench Lite (BBL)是BIG-bench中包含的24个多样化的JSON任务的一个小子集。它旨在提供模型性能的规范度量,同时比评估BIG-bench中超过200个编程和JSON任务的完整集合要便宜得多。下面是BBL上当前模型性能的排行榜。要将新的模型结果添加到完整的BIG-bench排行榜、BBL排行榜和个别任务性能图中,请提交一个包含评估模型在BIG-bench任务上生成的分数文件的PR。
BIG-bench基准任务的安装
安装BIG-bench|
Python 3.5-3.8
pytest(用于运行自动化测试)
首先,克隆存储库并设置环境。
#在创建新任务时,将此替换为您分叉的存储库(见下文)
git clone https://github.com/google/BIG-bench.git
cd BIG-bench
python setup.py sdist
pip install -e .
接下来,运行自动化测试以确保一切正常。
pytest -s
BIG-bench基准任务的使用方法
1、使用SeqIO+加载BIG-bench json任务的快速启动
!pip install git+https://github.com/google/BIG-bench.git # This may take a few minutes
import seqio
from bigbench.bbseqio import tasks
# See all subtasks
bb_mix = seqio.get_mixture_or_task("bigbench:all_json.mix.t5_default_vocab.0_shot.all_examples")
all_subtasks = [t.name for t in bb_mix.tasks]
print("\n".join(all_subtasks[:7]) + "\n...")
# Inspect an example task
task = seqio.get_mixture_or_task("bigbench:simple_arithmetic_json.gen.t5_default_vocab.0_shot.all_examples")
ds = task.get_dataset(split="all", sequence_length={"inputs": 32, "targets": 32})
print(next(iter(ds)))