إن Hugging Face Hub مخصص لتوفير الوصول المفتوح إلى مجموعات البيانات للجميع ومنح المستخدمين الأدوات اللازمة لاستكشافها وفهمها. يمكنك العثور على العديد من مجموعات البيانات المستخدمة لتدريب نماذج اللغات الكبيرة الشائعة (LLMs) مثل Falcon وDolly وMPT وStarCoder. هناك أدوات لمعالجة العدالة والتحيز في مجموعات البيانات مثل أدوات التصنيف، وأدوات لمعاينة الأمثلة داخل مجموعة بيانات مثل Dataset Viewer.
معاينة لمجموعة بيانات OpenAssistant باستخدام عارض مجموعة البيانات.
يسعدنا أن نعلن أننا أضفنا مؤخرًا ميزة أخرى لمساعدتك في تحليل مجموعات البيانات على المركز؛ يمكنك تشغيل استعلامات SQL باستخدام DuckDB على أي مجموعة بيانات مخزنة على Hub! وفقًا لاستطلاع مطوري StackOverflow لعام 2022، تعد SQL ثالث أكثر لغات البرمجة شيوعًا. أردنا أيضًا نظامًا سريعًا لإدارة قواعد البيانات (DBMS) مصممًا لتشغيل الاستعلامات التحليلية، ولهذا السبب نحن متحمسون للتكامل مع DuckDB. نأمل أن يسمح هذا لعدد أكبر من المستخدمين بالوصول إلى مجموعات البيانات وتحليلها على Hub!
TLDR
عارض مجموعة البيانات يقوم تلقائيًا بتحويل جميع مجموعات البيانات العامة الموجودة على Hub إلى ملفات Parquet، والتي يمكنك رؤيتها من خلال النقر على الزر “التحويل التلقائي إلى باركيه” الموجود أعلى صفحة مجموعة البيانات. يمكنك أيضًا الوصول إلى قائمة عناوين URL لملفات Parquet من خلال مكالمة HTTP بسيطة.
r = requests.get("https://datasets-server.huggingface.co/parquet?dataset=blog_authorship_corpus")
j = r.json()
urls = [f['url'] for f in j['parquet_files'] if f['split'] == 'train']
urls
['https://huggingface.co/datasets/blog_authorship_corpus/resolve/refs%2Fconvert%2Fparquet/blog_authorship_corpus/blog_authorship_corpus-train-00000-of-00002.parquet',
'https://huggingface.co/datasets/blog_authorship_corpus/resolve/refs%2Fconvert%2Fparquet/blog_authorship_corpus/blog_authorship_corpus-train-00001-of-00002.parquet']
قم بإنشاء اتصال بـ DuckDB وقم بتثبيت وتحميل ملف httpfs ملحق للسماح بقراءة وكتابة الملفات عن بعد:
import duckdb
url = "https://huggingface.co/datasets/blog_authorship_corpus/resolve/refs%2Fconvert%2Fparquet/blog_authorship_corpus/blog_authorship_corpus-train-00000-of-00002.parquet"
con = duckdb.connect()
con.execute("INSTALL httpfs;")
con.execute("LOAD httpfs;")
بمجرد اتصالك، يمكنك البدء في كتابة استعلامات SQL!
con.sql(f"""SELECT horoscope,
count(*),
AVG(LENGTH(text)) AS avg_blog_length
FROM '{url}'
GROUP BY horoscope
ORDER BY avg_blog_length
DESC LIMIT(5)"""
)
لمعرفة المزيد، راجع الوثائق.
من مجموعة البيانات إلى الباركيه
ملفات الباركيه عمودية، مما يجعلها أكثر كفاءة في التخزين والتحميل والتحليل. وهذا مهم بشكل خاص عند العمل مع مجموعات البيانات الكبيرة، والتي نشهدها أكثر فأكثر في عصر LLM. لدعم ذلك، يقوم عارض مجموعة البيانات تلقائيًا بتحويل أي مجموعة بيانات عامة على المركز ونشرها كملفات باركيه. يمكن استرداد عنوان URL لملفات Parquet باستخدام الملف /parquet نقطة النهاية.
التحليل باستخدام DuckDB
يقدم DuckDB أداءً رائعًا للغاية لتشغيل الاستعلامات التحليلية المعقدة. إنه قادر على تنفيذ استعلام SQL مباشرة على ملف Parquet بعيد دون أي حمل. مع httpfs بامتداد، DuckDB قادر على الاستعلام عن الملفات البعيدة مثل مجموعات البيانات المخزنة على Hub باستخدام عنوان URL المقدم من /parquet نقطة النهاية. يدعم DuckDB أيضًا الاستعلام عن ملفات Parquet المتعددة وهو أمر مناسب حقًا لأن عارض مجموعة البيانات يقسم مجموعات البيانات الكبيرة إلى أجزاء أصغر حجمها 500 ميجابايت.
نتطلع
إن معرفة ما هو موجود داخل مجموعة البيانات أمر مهم لتطوير النماذج لأنه يمكن أن يؤثر على جودة النموذج بجميع أنواع الطرق! من خلال السماح للمستخدمين بكتابة وتنفيذ أي استعلام SQL على مجموعات بيانات Hub، فهذه طريقة أخرى بالنسبة لنا لتمكين الوصول المفتوح إلى مجموعات البيانات ومساعدة المستخدمين على أن يكونوا أكثر وعيًا بمحتويات مجموعات البيانات. نحن متحمسون لتجربتك هذا، ونتطلع إلى نوع الرؤى التي يكشف عنها تحليلك!
