five

needle-threading

收藏
github2024-11-08 更新2024-11-28 收录
下载链接:
https://github.com/jonathan-roberts1/needle-threading
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集用于评估大型语言模型(LLMs)在长上下文窗口中跟踪信息线索的能力。数据集包含多个任务拆分,如单针、多针、条件针、单线程和多线程,每个拆分都有特定的特征和示例。

This dataset is designed to evaluate the ability of Large Language Models (LLMs) to track informational cues within long context windows. It comprises multiple task splits, including single-needle, multi-needle, conditional-needle, single-thread, and multi-thread tasks, each featuring specific characteristics and accompanying examples.
创建时间:
2024-11-08
原始信息汇总

Needle Threading 数据集概述

数据集内容

  • 数据集名称: Needle Threading
  • 数据来源: HuggingFace datasets
  • 数据访问方式:
    • Option 1: 使用 HuggingFace datasets 库加载数据
    • Option 2: 手动下载数据

数据结构

  • 数据文件:
    • Single_Needle.json
    • Multiple_Needles.json
    • Conditional_Needles.json
    • Single_Threads.json
    • Multi_Threads.json
  • 数据字段:
    • id: 问题ID
    • haystack: 包含键值对的JSON对象
    • keys: 键
    • values: 值
    • question: 问题描述
    • context_length: 上下文长度(字符数)
    • num_kv_pairs: 键值对数量
    • repeat_number: 重复次数
    • needle_depth: 针的深度
    • num_needles: 针的数量
    • needle_placement: 针的放置方式
    • conditional_character: 条件字符
    • thread_length: 线程长度
    • thread_direction: 线程方向
    • num_threads: 线程数量

数据示例

python from datasets import load_dataset

single_needle_dataset = load_dataset("jonathan-roberts1/needle-threading", split=Single_Needle)

single_needle_dataset[5]

输出示例: json { "id": 5, "haystack": "{"e3e70682-c209-4cac-629f-6fbed82c07cd": "f728b4fa-4248-5e3a-0a5d-2f346baa9455", "eb1...": "964a870c-7c87-9b74-1d87-8f9f9cdf5a86"}", "keys": "247a8333-f7b0-b7d2-cda8-056c3d15eef7", "values": "1759edc3-72ae-2244-8b01-63c1cd9d2b7d", "question": "Extract the value corresponding to the specified key in the JSON object. Key: "247a83...-cda8-056c3d15eef7" Corresponding value: ", "context_length": 2000, "num_kv_pairs": 25, "repeat_number": 0, "needle_depth": "50", "num_needles": 1, "needle_placement": "depthwise", "conditional_character": "N/A", "thread_length": 1, "thread_direction": "N/A", "num_threads": 0 }

数据集用途

  • **评估大型语言模型(LLMs)**的能力,特别是它们在长上下文窗口中跟踪信息线程的能力。
  • 实验数据用于评估17个领先的LLMs在不同任务中的表现。

数据集下载

  • HuggingFace datasets: python from datasets import load_dataset single_needle_dataset = load_dataset("jonathan-roberts1/needle-threading", split=Single_Needle)

  • 手动下载: bash cd data wget https://huggingface.co/datasets/jonathan-roberts1/needle-threading/resolve/main/data_json.zip unzip data_json.zip && rm data_json.zip

数据集评估

  • 示例代码: 使用Gemini 1.5 Flash模型进行单针任务的推理。 python from datasets import load_dataset import vertexai from vertexai.preview.generative_models import GenerativeModel from tqdm import tqdm import pandas as pd from ast import literal_eval

    project_id = "YOUR_PROJECT_ID" region = "REGION" # eg "us-central1" model_name = "gemini-1.5-flash-preview-0514"

    dataset = load_dataset("jonathan-roberts1/needle-threading", split="Single_Needle")

    output_df = pd.DataFrame(columns=["Question_ID", "Output", "Answer", "Correct?"])

    vertexai.init(project=project_id, location=region) generative_multimodal_model = GenerativeModel(model_name) config = { "max_output_tokens": 100, "temperature": 0, "top_k": 1 }

    for idx, item in tqdm(enumerate(dataset)): if idx == 10: break question = item[question] haystack = item[haystack] prompt = haystack +

  • question model_response = generative_multimodal_model.generate_content(contents=prompt, generation_config=config).text model_response.strip() model_response = literal_eval(model_response) answer = item[values] model_answer = model_response[0:len(str(answer))] correct = model_answer == str(answer) results_row = {"Question_ID": item[id], "Output": model_response, "Answer": answer, "Correct?": correct} output_df = pd.concat([output_df, pd.DataFrame([results_row])], ignore_index=True)

accuracy = output_df["Correct?"].mean() print(f"{model_name} Single_Needle: {100 * accuracy:.2f}%")

搜集汇总
数据集介绍
main_image_url
构建方式
该数据集通过精心设计的实验,旨在评估大型语言模型(LLMs)在处理大规模上下文时的信息追踪能力。实验数据集包括多种任务,如单针、多针、条件针、单线程和多线程等,每种任务都模拟了不同的信息检索场景。数据集的构建过程中,研究人员生成了包含大量键值对和复杂结构的文本,以测试模型在不同深度和方向上的信息提取能力。
使用方法
用户可以通过HuggingFace数据集库或手动下载的方式获取该数据集。使用HuggingFace库时,用户可以加载特定任务的数据集分割,如单针、多针等,并直接查询数据集中的问题。对于手动下载,用户需解压包含JSON格式数据的压缩包,并按照预定的文件结构进行组织。数据集的使用还包括对模型的评估,用户可以利用提供的示例代码进行模型推理和结果分析,以评估模型在不同任务中的表现。
背景与挑战
背景概述
随着大型语言模型(LLMs)的上下文限制不断增加,其应用范围和下游功能也随之扩展。尽管长上下文模型的开发近期取得了显著进展,但我们对其如何有效利用上下文的理解并未同步提升。为此,Jonathan Roberts、Kai Han和Samuel Albanie等人创建了Needle Threading数据集,旨在通过一系列检索实验评估17个领先LLMs的能力,特别是它们在上下文窗口中跟踪信息线索的能力。该数据集的创建不仅揭示了模型在处理长上下文时的性能差异,还为理解LLMs的上下文处理能力提供了重要参考。
当前挑战
Needle Threading数据集面临的挑战主要集中在两个方面。首先,模型在处理长上下文时的检索精度显著下降,尤其是在上下文长度增加时,这表明现有模型在处理大规模数据时的局限性。其次,尽管许多模型在同时跟踪多条线索时表现出色,但有效上下文限制仍显著短于支持的上下文长度,这限制了模型在实际应用中的性能。此外,数据集构建过程中遇到的挑战包括如何设计有效的实验任务以准确评估模型的上下文处理能力,以及如何确保数据集的多样性和代表性,以全面反映LLMs在不同上下文长度下的表现。
常用场景
经典使用场景
在大型语言模型(LLMs)的背景下,needle-threading数据集的经典使用场景主要集中在评估和提升模型在长上下文窗口中的信息跟踪能力。具体而言,该数据集通过模拟复杂的文本环境,测试模型在处理多线程信息时的表现,如同时跟踪多个信息线索的能力。这种场景对于理解LLMs在实际应用中的上下文处理极限至关重要,尤其是在需要处理大量文本数据或复杂对话的场景中。
解决学术问题
needle-threading数据集解决了学术界在评估大型语言模型上下文处理能力方面的关键问题。通过提供一个系统化的实验框架,该数据集帮助研究人员量化和比较不同模型在长上下文中的表现,揭示了模型在处理抽象文本和长序列数据时的局限性。这一研究不仅深化了对LLMs上下文理解能力的认识,还为未来模型的优化和改进提供了重要的理论依据和实验数据支持。
实际应用
在实际应用中,needle-threading数据集的应用场景广泛,特别是在需要处理大量文本数据和复杂信息结构的领域。例如,在法律文书分析、医学文献检索和客户服务自动化等场景中,模型需要能够高效地跟踪和处理长篇文档中的多条信息线索。通过使用该数据集进行模型训练和评估,可以显著提升这些应用中的信息提取和处理效率,从而提高整体系统的性能和用户体验。
数据集最近研究
最新研究方向
在大型语言模型(LLMs)的背景下,needle-threading数据集的研究聚焦于评估这些模型在处理大规模上下文时的信息追踪能力。具体而言,研究探讨了LLMs在长上下文窗口中同时追踪多条信息线索的能力,揭示了模型在不同上下文长度下的表现差异。这一研究不仅有助于理解LLMs的实际应用潜力,也为未来开发更高效、更精准的模型提供了理论依据。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作