يستخدم هذا الريبو ماسحًا ضوئيًا يوميًا بسيطًا جدًا لـ Arxiv يستخدم GPT4 ومطابقات المؤلف للعثور على الأوراق التي قد تجدها مثيرة للاهتمام. سيتم تشغيله يوميًا من خلال إجراءات github ويمكنه نشر هذه المعلومات على Slack عبر الروبوت أو عرضها فقط في موقع ويب ثابت لصفحات github.
يمكن رؤية عرض توضيحي بسيط للصحف اليومية هنا وهو يعمل على cs.CL
كتقدير للتكلفة، فإن تشغيل هذا على جميع cs.CL
يكلف 0.07 دولارًا أمريكيًا في 7/2/2024
هذا هو الحد الأدنى من الخطوات الضرورية لتشغيل الماسح الضوئي. يوصى بشدة بقراءة كل شيء لتحديد ما تريد تشغيله.
config/paper_topics.template.txt
إلى config/paper_topics.txt
واملأه بأنواع الأوراق التي تريد متابعتهاconfig/authors.template.txt
إلى config/authors.txt
وقم بإدراج المؤلفين الذين تريد متابعتهم بالفعل. الأرقام وراء المؤلف مهمة. إنها معرفات مؤلفي الباحث الدلالي والتي يمكنك العثور عليها من خلال البحث عن المؤلفين في الباحث الدلالي وأخذ الأرقام الموجودة في نهاية عنوان URL.config/config.ini
.OAI_KEY
) باعتباره "سر github".في هذه المرحلة، يجب أن يعمل الروبوت الخاص بك يوميًا وينشر موقع ويب ثابتًا. يمكنك اختبار ذلك عن طريق تشغيل سير عمل إجراء github يدويًا.
اختياري ولكن موصى به للغاية :
S2_KEY
) وقم بإعداده باعتباره سر جيثب. وإلا فإن خطوة البحث عن المؤلف ستكون بطيئة جدًاSLACK_KEY
باعتباره سر githubSLACK_CHANNEL_ID
في سر جيثب.configs/config.ini
لتعديل كيفية تصفية الأشياء.كل يوم في تمام الساعة الواحدة ظهرًا بالتوقيت العالمي المنسق، سيتم تشغيل الروبوت والنشر على Slack ونشر موقع ويب لصفحات github (راجع إجراءات Publish_md وcron_runs للحصول على التفاصيل).
الخطوات هي نفسها المذكورة أعلاه بشكل عام، ولكن يتعين عليك إعداد البيئة عبر requirements.txt
بدلاً من تمرير بيانات الاعتماد عبر أسرار github، يجب عليك تعيين متغيرات البيئة OAI_KEY
و SLACK_KEY
و SLACK_CHANNEL_ID
.
لتشغيل كل شيء، ما عليك سوى الاتصال بـ main.py
ملاحظات أخرى: قد ترغب أيضًا في عدم الضغط إلى Slack، وفي هذه الحالة قم بتعيين نقطة نهاية الإخراج المطلوبة (json، markdown، slack) في حقول dump_json
و dump_md
و push_to_slack
في config/config.ini
.
إذا انتهت مهلة واجهة برمجة تطبيقات الباحث الدلالي أو كانت بطيئة، فيجب أن تحصل على مفتاح S2 API وتعيينه كـ S2_KEY
في متغيرات البيئة الخاصة بك. (نظرًا للقيود المفروضة على إجراءات جيثب، لن يساعد هذا إلا إذا تم تشغيل الكود محليًا)
جعله يعمل من تلقاء نفسه: هذا الأمر برمته لا يتطلب أي حوسبة تقريبًا، لذا يمكنك استئجار أرخص جهاز افتراضي من AWS، ووضع هذا الريبو فيه، وتثبيت ملف requirements.txt
txt وإعداد متغيرات البيئة بشكل مناسب وإضافة crontab التالي
0 13 * * * python ~/arxiv_scanner/main.py
سيقوم crontab بتشغيل البرنامج النصي كل الساعة 1 ظهرًا بالتوقيت العالمي المنسق، 6 مساءً بتوقيت المحيط الهادئ.
paper_topics.txt
يتم استخدام ملف paper_topics.txt
لإنشاء المطالبة بـ GPT. إنها قائمة بالمواضيع التي تريد متابعتها. قد تكون مجموعة واحدة من الأمثلة شيء من هذا القبيل
1. New methodological improvements to RLHF or instruction-following which are specific fine-tuning steps that are taken to make language models better at following user instructions across a range of tasks.
- Relevant: papers that discuss specific methods like RLHF, or instruction-tuning datasets, improving these methods, or analyzing them.
- Not relevant: papers about adaptation to some task. Simply following instructions or inputs are not sufficient.
2. Shows new powerful test set contamination or membership inference methods for language models. Test set contamination is the phenomenon where a language model observes a benchmark dataset during pretraining.
- Relevant: test statistics that can detect contamination of benchmarks in language models. statistics that can provide guarantees are more interesting. membership inference methods that are general enough to apply to language models are also relevant.
- Not relevant: any papers that do not consider language models, or that do not consider test set contamination.
3. Shows a significant advance in the performance of diffusion language models.
- Relevant: papers that study language models that are also diffusion models. Continuous diffusions are even more relevant, while discrete diffusions are less so.
- Not relevant: papers about image diffusions like DALL-E or Stable Diffusion, or papers that do not explicitly mention language models or applications to text.
هذه مجرد مطالبة قياسية، ولكن كونك محددًا للغاية يمكن أن يساعد، خاصة بالنسبة لأشياء مثل "نماذج لغة الانتشار" أو "متابعة التعليمات"، حيث يمكن أن يرتبك LM حول ما إذا كانت عمليات نشر الصور ذات صلة، أو إذا كان القيام ببعض المهام بشكل أفضل هو الأفضل كافية لتحسين التعليمات التالية.
قد ترغب أيضًا في متابعة ذلك ببعض مجالات الاهتمام العامة مثل
In suggesting papers to your friend, remember that he enjoys papers on statistical machine learning, and generative modeling in natural language processing.
Your friend also likes learning about surprising empirical results in language models, as well as clever statistical tricks.
He does not want to read papers that are about primarily applications of methods to specific domains.
يحصل البرنامج النصي على مجموعة مرشحة من أوراق ArXiv ليوم محدد، عبر خلاصات RSS. لتجنب أوراق الإعلان المزدوج، سيتم فقط الحصول على موجز RSS خلال اليوم الأخير. لتجنب فقدان الأوراق، قد ترغب في تشغيل هذا كل يوم. يقوم بتصفية أي أوراق UPDATED
ويعلن عن الأوراق الجديدة فقط.
منطق التصفية بسيط جدًا. نتحقق أولاً من تطابق المؤلف.
authors.txt
فسيتم إدراجه في مجموعة المرشحين بالنتيجة الافتراضية لـ author_match_score
.نقوم بعد ذلك بالتحقق من مدى الصلة التي تم تقييمها بواسطة GPT. نحن نفعل هذا في خطوتين.
hcutoff
في config.ini
. وهذا لتقليل التكاليف.model
في config.ini
. يجب عليك استخدام GPT3.5 فقط لتصحيح الأخطاء. أنها لا تعمل بشكل جيد لهذا الغرض! تستخدم هذه الخطوة الإعداد الفوري المحدد في configs/
أنت مساعد مفيد لقراءة الأوراق وتتمثل مهمته في قراءة المنشورات اليومية من ArXiv وتحديد بعض الأوراق التي قد تكون ذات صلة بصديقك. سيكون هناك ما يصل إلى 5 أوراق أدناه. مهمتك هي العثور على الأوراق التي:
- المعيار 1
- المعيار 2
[أوراق]
اكتب الرد بتنسيق JSONL مع {ARXIVID, COMMENT, RELEVANCE, NOVELTY} في كل سطر، واحدًا لكل ورقة. يجب أن يكون ARXIVID هو معرف ArXiv. يجب أن يحدد التعليق ما إذا كانت هناك معايير تتطابق مع الورقة بشكل وثيق جدًا. إذا كان الأمر كذلك، فيجب ذكره بالرقم (لا داعي لذكر معايير عدم المطابقة). لا ينبغي أن تستند هذه المطابقات إلى مصطلحات عامة مثل "نمذجة اللغة" أو "التقدم" ويجب أن تشير على وجه التحديد إلى أحد المعايير. يجب أن تكون درجة الصلة عبارة عن درجة صلة من 1 إلى 10 حيث يجب أن تكون 10 مرتبطة بشكل مباشر بالمعيار الدقيق والمحدد مع تطابقات الكلمات الرئيسية شبه المرادفة والمؤلفين المعروفين بالعمل على الموضوع، 1 لا علاقة له بأي معيار، وغير مرتبط بـ مجال الاهتمام العام لصديقك، 2-3 هي الأوراق ذات الصلة بمجال الاهتمام العام، ولكن ليست معايير محددة، و5 هي تطابق مباشر مع معيار محدد. يجب أن تكون درجة الجدة من 1 إلى 10، حيث تمثل 10 اكتشافًا رائدًا للأغراض العامة من شأنه أن يحول المجال بأكمله و1 هي العمل الذي يعمل على تحسين جانب واحد من المشكلة أو هو تطبيق لمجال محدد للغاية. اقرأ الملخص بعناية لتحديد ذلك وافترض أنه لا يمكن الوثوق بالمؤلفين في ادعاءاتهم بالحداثة.
config/papers_topics.txt
) وحداثتها (المقياس من 1 إلى 10).config.ini
أخيرًا، يتم فرز جميع الأوراق البحثية حسب الحد الأقصى لـ author_match_score
ومجموع درجات الملاءمة والجدة المصنفة وفقًا لـ GPT (لن تظهر درجات الملاءمة والجدة إلا في الناتج النهائي إذا كانت أعلى من حدود القطع التي قمت بتعيينها في التكوين ملف). ثم يتم تقديم الأوراق ودفعها إلى نقاط النهاية الخاصة بها (الملفات النصية أو Slack).
يستخدم هذا الريبو ruff check .
ruff format .
الرجاء تثبيت ربط الالتزام المسبق عن طريق تشغيل pre-commit install
يمكن أيضًا تشغيل كود filter_papers.py
كبرنامج نصي مستقل. سيستغرق هذا مجموعة من الأوراق في in/debug_papers.json
، وقم بتشغيل أي تكوين ومطالبات لديك وإرجاع الإخراج إلى out/filter_paper_test.debug.json
. إذا وجدت أن الروبوت يرتكب أخطاء، فيمكنك العثور على الدفعة المرتبطة في out/gpt_paper_batches.debug.json
ونسخها في ملف debug_papers
ذي الصلة.
يتيح لك هذا إنشاء معيار للمرشح ومعرفة ما يخرج على الجانب الآخر.
تم إنشاء هذا الريبو والكود في الأصل بواسطة Tatsunori Hashimoto وهو مرخص بموجب ترخيص Apache 2.0. شكرًا لـ Chenglei Si على اختبار وقياس مرشح GPT.