Hugging Face データの分析
Hugging Face は、ユーザーが機械学習モデル、データセット、その他のリソースを保存、共有、協力して構築できる人気の集約プラットフォームです。
Hugging Face Dataset には、リポジトリタイプに応じて、CSV、Parquet、JSONL などのデータファイルが含まれている場合があります。
HTTP Table Value ファンクション 機能を通じて、Doris は SQL を介して Hugging Face データセット上のデータに直接アクセスできます。
この機能はバージョン 4.0.2 以降でサポートされています
使用方法
Doris は HTTP プロトコルを通じて Hugging Face Dataset のデータにアクセスします。
自動型推論をサポートしています。データ処理のために CREATE TABLE AS SELECT と INSERT INTO ... SELECT メソッドをサポートしています。
CSV、Json、Parquet、ORC などのファイル形式をサポートし、パラメータは File Table Valued ファンクション と同じです。
基本例
-
fka/awesome-chatgpt-promptsリポジトリから CSV データにアクセスSELECT COUNT(*) FROM
HTTP(
"uri" = "hf://datasets/fka/awesome-chatgpt-prompts/blob/main/prompts.csv",
"format" = "csv"
);
対応するデータファイル: https://huggingface.co/datasets/fka/awesome-chatgpt-prompts/blob/main/prompts.csv
-
Tableを作成し、
scriptブランチが指定されたstanfordnlp/imdbリポジトリからJSONデータにアクセスします。その後、データをTableにインポートします。CREATE TABLE hf_table AS
SELECT * FROM
HTTP(
"uri" = "hf://datasets/stanfordnlp/imdb@script/dataset_infos.json",
"format" = "json"
);
対応するデータファイル: https://huggingface.co/datasets/stanfordnlp/imdb/blob/script/dataset_infos.json
-
mainブランチを指定してstanfordnlp/imdbリポジトリからParquetファイルにアクセスします。また、ワイルドカードを使用して複数のパスにマッチさせます。SELECT * FROM
HTTP(
"uri" = "hf://datasets/stanfordnlp/imdb@main/*/*.parquet",
"format" = "parquet"
) ORDER BY text LIMIT 1;
対応するデータファイル: https://huggingface.co/datasets/stanfordnlp/imdb/blob/main/plain_text/test-00000-of-00001.parquet
-
mainブランチを指定してstanfordnlp/imdbリポジトリからParquetファイルにアクセスします。また、ワイルドカードを使用して複数の再帰的ファイルにマッチさせます。その後、指定されたTableに挿入します。INSERT INTO hf_table
SELECT * FROM
HTTP(
"uri" = "hf://datasets/stanfordnlp/imdb@main/**/test-00000-of-0000[1].parquet",
"format" = "parquet"
) ORDER BY text LIMIT 1;
対応するデータファイル: https://huggingface.co/datasets/stanfordnlp/imdb/blob/main/plain_text/test-00000-of-00001.parquet
-
認証が必要なファイルを解析する
Hugging Faceアカウントから(
hf_で始まる)Tokenを取得し、http.header.Authorizationプロパティに追加してください。SELECT * FROM
HTTP(
"uri" = "hf://datasets/gaia-benchmark/GAIA/blob/main/2023/validation/metadata.level1.parquet",
"format" = "parquet",
"http.header.Authorization" = "Bearer hf_MWYzOJJoZEymb..."
) LIMIT 1\G