نظام تنظيم المعرفة بالذكاء الاصطناعي تم تطويره في جامعة ستانفورد، قادر على دراسة المواضيع تلقائيًا وإنشاء تقارير طويلة بأسلوب ويكيبيديا مع مراجع.
مقدمة تفصيلية لمشروع STORM
نظرة عامة على المشروع
STORM (اختصار لـ Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking) هو نظام مفتوح المصدر لتنظيم المعرفة بالذكاء الاصطناعي، تم تطويره بواسطة مختبر ستانفورد للمساعد الافتراضي المفتوح (Stanford Open Virtual Assistant Lab, OVAL). يستطيع هذا النظام كتابة مقالات شبيهة بمقالات ويكيبيديا من الصفر، بالاعتماد على البحث عبر الإنترنت، ويقوم تلقائيًا بإنشاء مراجع كاملة.
حتى الآن، جرب أكثر من 70 ألف شخص النسخة التجريبية البحثية عبر الإنترنت من STORM، مما يدل على القيمة العملية للنظام واهتمامه الواسع.
الميزات الوظيفية الأساسية
1. عملية إنشاء المقالات على مرحلتين
يقوم STORM بتقسيم عملية إنشاء المقالات الطويلة إلى مرحلتين رئيسيتين:
- مرحلة ما قبل الكتابة: يقوم النظام بإجراء بحث عبر الإنترنت، وجمع المراجع، وإنشاء مخطط تفصيلي للمقالة.
- مرحلة الكتابة: يستخدم النظام المخطط التفصيلي والمراجع لإنشاء مقالة كاملة مع الاستشهادات.
2. آلية طرح الأسئلة متعددة المنظورات
يستخدم STORM استراتيجيتين لزيادة عمق واتساع الأسئلة:
- طرح الأسئلة الموجه بالمنظور: يتم اكتشاف وجهات نظر مختلفة من خلال البحث في المقالات الموجودة حول مواضيع مماثلة، وتستخدم هذه المنظورات للتحكم في عملية طرح الأسئلة والإجابة عليها.
- محاكاة الحوار: محاكاة حوار بين محرر ويكيبيديا وخبير في الموضوع، وإجراء مناقشات بناءً على موارد الإنترنت.
3. Co-STORM: النسخة المعززة بالتعاون
Co-STORM هو نسخة معززة بالتعاون من STORM، تدعم تنظيم المعرفة بالتعاون بين الإنسان والآلة:
- وكلاء نماذج لغوية كبيرة (LLM) متعددة الأنواع: تشمل وكلاء خبراء Co-STORM ومنسقين.
- خريطة ذهنية ديناميكية: تحافظ على خريطة ذهنية يتم تحديثها ديناميكيًا، وتنظم المعلومات المجمعة في هيكل مفاهيمي هرمي.
- بروتوكول التعاون بين الإنسان والآلة: ينفذ استراتيجيات إدارة التحويل، ويدعم التعاون السلس بين البشر وأنظمة الذكاء الاصطناعي.
البنية التقنية
المكونات المدعومة
نماذج اللغة:
- يدعم جميع نماذج اللغة التي يدعمها litellm.
- يمكن تهيئة نماذج مختلفة لمكونات المهام المختلفة.
وحدات الاسترجاع: تدعم العديد من محركات البحث ووحدات الاسترجاع: YouRM، BingSearch، VectorRM، SerperRM، BraveRM، SearXNG، DuckDuckGoSearchRM، TavilySearchRM، GoogleSearch، وAzureAISearch.
نماذج التضمين:
- تدعم جميع نماذج التضمين التي يدعمها litellm.
التصميم المعياري
يعتمد STORM تصميمًا معياريًا للغاية، تم تنفيذه بناءً على إطار عمل dspy، ويتضمن أربع وحدات رئيسية:
- وحدة تنظيم المعرفة: تجمع معلومات واسعة حول موضوع معين.
- وحدة إنشاء المخطط التفصيلي: تنظم المعلومات المجمعة عن طريق إنشاء مخطط تفصيلي هرمي.
- وحدة إنشاء المقالات: تملأ وتنشئ المقالات بناءً على المخطط التفصيلي والمعلومات المجمعة.
- وحدة صقل المقالات: تحسن وتعزز طريقة عرض المقالات المكتوبة.
التثبيت والاستخدام
التثبيت السريع
# التثبيت باستخدام pip
pip install knowledge-storm
# أو التثبيت من الكود المصدري
git clone https://github.com/stanford-oval/storm.git
cd storm
conda create -n storm python=3.11
conda activate storm
pip install -r requirements.txt
مثال على الاستخدام الأساسي
import os
from knowledge_storm import STORMWikiRunnerArguments, STORMWikiRunner, STORMWikiLMConfigs
from knowledge_storm.lm import LitellmModel
from knowledge_storm.rm import YouRM
# تهيئة نماذج اللغة
lm_configs = STORMWikiLMConfigs()
openai_kwargs = {
'api_key': os.getenv("OPENAI_API_KEY"),
'temperature': 1.0,
'top_p': 0.9,
}
# تعيين نماذج مختلفة لمكونات مختلفة
gpt_35 = LitellmModel(model='gpt-3.5-turbo', max_tokens=500, **openai_kwargs)
gpt_4 = LitellmModel(model='gpt-4o', max_tokens=3000, **openai_kwargs)
lm_configs.set_conv_simulator_lm(gpt_35)
lm_configs.set_question_asker_lm(gpt_35)
lm_configs.set_outline_gen_lm(gpt_4)
lm_configs.set_article_gen_lm(gpt_4)
lm_configs.set_article_polish_lm(gpt_4)
# تهيئة وحدة الاسترجاع
engine_args = STORMWikiRunnerArguments(...)
rm = YouRM(ydc_api_key=os.getenv('YDC_API_KEY'), k=engine_args.search_top_k)
runner = STORMWikiRunner(engine_args, lm_configs, rm)
# تشغيل عملية الإنشاء
topic = input('الموضوع: ')
runner.run(
topic=topic,
do_research=True,
do_generate_outline=True,
do_generate_article=True,
do_polish_article=True,
)
مثال على استخدام Co-STORM
from knowledge_storm.collaborative_storm.engine import CollaborativeStormLMConfigs, RunnerArgument, CoStormRunner
# تهيئة Co-STORM
lm_config = CollaborativeStormLMConfigs()
# ... تهيئة نماذج اللغة المختلفة ...
topic = input('الموضوع: ')
runner_argument = RunnerArgument(topic=topic, ...)
costorm_runner = CoStormRunner(lm_config=lm_config, ...)
# تشغيل النظام (Warm Start)
costorm_runner.warm_start()
# إجراء حوار تعاوني
conv_turn = costorm_runner.step()
# أو إدخال كلام المستخدم
costorm_runner.step(user_utterance="عبارتك هنا")
# إنشاء التقرير
costorm_runner.knowledge_base.reorganize()
article = costorm_runner.generate_report()
البحث الأكاديمي ومجموعات البيانات
الأوراق البحثية
نُشرت نتائج أبحاث STORM في مؤتمر NAACL 2024، تحت عنوان "Assisting in Writing Wikipedia-like Articles From Scratch with Large Language Models". وقد تم قبول ورقة Co-STORM في المؤتمر الرئيسي لـ EMNLP 2024.
المساهمة في مجموعات البيانات
مجموعة بيانات FreshWiki: تتضمن مجموعة من 100 مقالة ويكيبيديا عالية الجودة، تركز على الصفحات الأكثر تحريرًا بين فبراير 2022 وسبتمبر 2023.
مجموعة بيانات WildSeek: تُستخدم لدراسة اهتمامات المستخدمين في مهام البحث عن المعلومات المعقدة، حيث تحتوي كل نقطة بيانات على موضوع وهدف المستخدم للبحث العميق.
التقييم والملاحظات
نتائج التقييم التلقائي
تفوق STORM على خطوط الأساس القوية لتوليد النصوص المعززة بالاسترجاع في جميع المقاييس التلقائية، بما في ذلك تقييم نماذج اللغة والمقاييس المقارنة مع المقالات التي كتبها البشر.
تقييم الخبراء
في التقييم البشري الذي أُجري مع محرري ويكيبيديا ذوي الخبرة، اتفق جميع المشاركين على أن النظام مفيد لمرحلة ما قبل الكتابة لديهم. وبالمقارنة مع المقالات التي تم إنشاؤها بواسطة خطوط الأساس المعززة بالاسترجاع والمبنية على المخططات التفصيلية، اعتُبر عدد أكبر من مقالات STORM منظمة (زيادة مطلقة بنسبة 25%) وواسعة التغطية (زيادة بنسبة 10%).
سيناريوهات التطبيق
الفئات المستهدفة من المستخدمين
- الطلاب: لإنشاء أوراق بحثية وتقارير مع الاستشهادات.
- الباحثون: لتجميع مراجعات أدبية شاملة.
- منشئو المحتوى: لإنشاء مقالات منظمة وعميقة.
- محررو ويكيبيديا: كأداة مساعدة في مرحلة ما قبل الكتابة.
قيود الاستخدام
على الرغم من أن النظام لا يستطيع إنتاج مقالات جاهزة للنشر (والتي تتطلب عادةً قدرًا كبيرًا من التحرير)، إلا أن محرري ويكيبيديا ذوي الخبرة وجدوا أنه مفيد في مرحلة ما قبل الكتابة.
تطور المشروع
أحدث التطورات
- يناير 2025: تمت إضافة تكامل litellm لنماذج اللغة ونماذج التضمين.
- سبتمبر 2024: تم إصدار قاعدة كود Co-STORM ودمجها في حزمة بايثون knowledge-storm v1.0.0.
- يوليو 2024: أصبح متاحًا للتثبيت عبر
pip install knowledge-storm
.
الاتجاهات المستقبلية
يعمل الفريق بنشاط على تطوير:
- وظائف التفاعل بين الإنسان والآلة: لدعم مشاركة المستخدم في عملية تنظيم المعرفة.
- تجريد المعلومات: تطوير تجريد للمعلومات المنظمة لدعم تنسيقات عرض تتجاوز تقارير نمط ويكيبيديا.
المساهمة في المصدر المفتوح
المشروع مفتوح المصدر بالكامل، ونرحب بمساهمات المجتمع. نرحب بشكل خاص بطلبات السحب (PRs) لدمج المزيد من محركات البحث/وحدات الاسترجاع في knowledge_storm/rm.py
.
عنوان المشروع: https://github.com/stanford-oval/storm العرض التوضيحي عبر الإنترنت: https://storm.genie.stanford.edu/ موقع المشروع: https://storm-project.stanford.edu/
معلومات الاستشهاد
إذا كنت تستخدم STORM في بحثك، يرجى الاستشهاد بالورقة البحثية ذات الصلة:
@inproceedings{shao-etal-2024-assisting,
title = "Assisting in Writing Wikipedia-like Articles From Scratch with Large Language Models",
author = "Shao, Yijia and Jiang, Yucheng and Kanell, Theodore and Xu, Peter and Khattab, Omar and Lam, Monica",
booktitle = "Proceedings of the 2024 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (Volume 1: Long Papers)",
month = jun,
year = "2024",
address = "Mexico City, Mexico",
publisher = "Association for Computational Linguistics",
pages = "6252--6278",
}
يمثل مشروع STORM إنجازًا مهمًا في مجال تنظيم المعرفة بمساعدة الذكاء الاصطناعي، ويوفر أدوات وأساليب قوية للبحث والكتابة الآلية.