Spec-Zone.ru › DuckDB

Поддержка Hugging Face

Расширение httpfs добавляет поддержку протокола hf:// для доступа к наборам данных, размещенным в репозиториях Hugging Face. Подробности см. в записи в блоге об этом.

Использование

Репозитории Hugging Face можно запросить с использованием следующего шаблона URL:

hf://datasets/⟨my_username⟩/⟨my_dataset⟩/⟨path_to_file⟩

Например, для чтения CSV-файла можно использовать следующий запрос:

SELECT *
FROM 'hf://datasets/datasets-examples/doc-formats-csv-1/data.csv';

Где:

  • datasets-examples — имя пользователя/организации
  • doc-formats-csv-1 — имя репозитория набора данных
  • data.csv — путь к файлу в репозитории

Результат запроса:

вид звук
собака гав
кот мяуканье
покемон пика
человек привет

Для чтения JSONL-файла можно выполнить:

SELECT *
FROM 'hf://datasets/datasets-examples/doc-formats-jsonl-1/data.jsonl';

Наконец, для чтения Parquet-файла используйте следующий запрос:

SELECT *
FROM 'hf://datasets/datasets-examples/doc-formats-parquet-1/data/train-00000-of-00001.parquet';

Каждая из этих команд считывает данные из указанного формата файла и отображает их в структурированном табличном формате. Выберите соответствующую команду в зависимости от используемого формата файла.

Создание локальной таблицы

Чтобы избежать доступа к удаленному конечной точке для каждого запроса, вы можете сохранить данные в таблицу DuckDB, выполнив команду CREATE TABLE ... AS. Например:

CREATE TABLE data AS
    SELECT *
    FROM 'hf://datasets/datasets-examples/doc-formats-csv-1/data.csv';

Затем просто запросите таблицу data следующим образом:

SELECT *
FROM data;

Множественные файлы

Для запроса всех файлов в определенной директории можно использовать шаблон шаблон подстановки. Например:

SELECT count(*) AS count
FROM 'hf://datasets/cais/mmlu/astronomy/*.parquet';
количество
173

Использование шаблонов подстановки позволяет эффективно обрабатывать большие наборы данных и выполнять полные запросы по множеству файлов, упрощая задачи просмотра и обработки данных. Вот как можно найти вопросы, содержащие слово «планета» в астрономии:

SELECT count(*) AS count
FROM 'hf://datasets/cais/mmlu/astronomy/*.parquet'
WHERE question LIKE '%planet%';
количество
21

Версии и правки

В репозиториях Hugging Face версии или правки наборов данных — это различные обновления наборов данных. Каждая версия представляет собой моментальный снимок на определенное время, позволяющий отслеживать изменения и улучшения. В терминах Git это можно понимать как ветвь или конкретный коммит.

Вы можете запросить различные версии/правки наборов данных, используя следующий URL:

hf://datasets/⟨my-username⟩/⟨my-dataset⟩@⟨my_branch⟩/⟨path_to_file⟩

Например:

SELECT *
FROM 'hf://datasets/datasets-examples/doc-formats-csv-1@~parquet/**/*.parquet';
вид звук
собака гав
кот мяуканье
покемон пика
человек привет

Предыдущий запрос прочитает все Parquet-файлы в рамках версии ~parquet. Это специальная ветвь, где Hugging Face автоматически генерирует Parquet-файлы каждого набора данных для обеспечения эффективного сканирования.

Авторизация

Настройте свой токен Hugging Face в диспетчере секретов DuckDB для доступа к закрытым или защищенным наборам данных. Сначала посетите Настройки Hugging Face — Токены, чтобы получить свой токен доступа. Во-вторых, установите его в вашей сессии DuckDB, используя диспетчер секретов DuckDB.

CONFIG

Пользователь должен передать всю конфигурационную информацию в оператор CREATE SECRET. Чтобы создать секрет, используя поставщика CONFIG, используйте следующую команду:

CREATE SECRET hf_token (
    TYPE HUGGINGFACE,
    TOKEN 'your_hf_token'
);

CREDENTIAL_CHAIN

Автоматически пытается извлечь учетные данные. Для токена Hugging Face он будет пытаться получить его из ~/.cache/huggingface/token. Чтобы создать секрет, используя поставщика CREDENTIAL_CHAIN, используйте следующую команду:

CREATE SECRET hf_token (
    TYPE HUGGINGFACE,
    PROVIDER CREDENTIAL_CHAIN
);

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/extensions/httpfs/hugging_face.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API