نماذج لغة التدريب لتلخيص السرد يحسن محاذاة الدماغ
يحتوي هذا المستودع على رمز للورقة "نماذج لغة التدريب لتلخيص السرد يحسن محاذاة الدماغ" (ARXIV) ، المنشورة في ICLR 2023 (TOPLAY / أفضل 25 ٪) (OpenReview). bibtex:
@inproceedings{aw2023training,
title={Training language models to summarize narratives improves brain alignment},
author={Aw, Khai Loong and Toneva, Mariya},
booktitle={The Eleventh International Conference on Learning Representations},
year={2023}
}
يثبت
تثبيت الحزم
-
pip install -r requirements.txt
البيانات - تسجيلات الرنين المغناطيسي الوظيفي من 8 مواد قراءة هاري بوتر
- قم بتنزيل البيانات المسبقة بالفعل هنا. تحتوي هذه البيانات على تسجيلات الرنين المغناطيسي الوظيفي ل 8 مواضيع قراءة فصل واحد من هاري بوتر. تم سحب البيانات وتنعيمها وتقلصها لإزالة العشرينات الأولى وآخر 15Trs. لمزيد من المعلومات حول البيانات ، راجع الورقة. لقد قدمنا أيضًا أحياء Voxel التي استخدمناها لحساب دقة تصنيف Searchlight.
- ضعه ضمن مجلد البيانات في هذا المستودع (على سبيل المثال
./data/fMRI/ و ./data/voxel_neighborhoods ).
رمز التشغيل
أدناه ، نقدم إرشادات لكيفية تشغيل التجارب والرمز المختلفة التي نستخدمها في ورقتنا.
- يتم طلب الأقسام أدناه لمطابقة تدفق الورقة بأكبر قدر ممكن.
- في ورقتنا ، نقوم بتشغيل عدد كبير من التجارب (العديد من النماذج ، الطبقات ، أطوال التسلسل ، الموضوعات ، ميزات الخطاب ، عائد الاستثمار في الدماغ ، إلخ). وبالتالي ، فإننا نقدم البرامج النصية لأتمتة عملية تشغيل التجارب عبر النماذج والطبقات المختلفة وما إلى ذلك ، نأمل أن يجعل هذا الأمر سهلاً قدر الإمكان للآخرين لاستخدام الكود لدينا بكفاءة.
1. استخراج تمثيل NLP
- قم بتغيير المتغيرات في هذا البرنامج النصي الرئيسي وقم بتشغيله:
all_scripts/scripts/outer_nlp_extract.sh - يدعو البرنامج النصي الرئيسي هذا البرنامج النصي الداخلي:
all_scripts/scripts/inner_nlp_extract.sh - يقوم البرنامج النصي الداخلي باستدعاء ملف Python هذا:
extract_nlp_features.py - سيتم إنشاء الإخراج في:
1-nlp_features/
2. قم بمحاذاة تمثيلات NLP مع نشاط الدماغ البشري (أي عملية الترميز الخطي)
- قم بتغيير المتغيرات في هذا البرنامج النصي الرئيسي وقم بتشغيله:
all_scripts/scripts/outer_encoding.sh - يدعو البرنامج النصي الرئيسي هذا البرنامج النصي الداخلي:
all_scripts/scripts/inner_encoding.sh - يقوم البرنامج النصي الداخلي باستدعاء ملف Python هذا:
predict_brain_from_nlp.py - سيتم إنشاء الإخراج في:
2-encoding_predictions/
3. تقييم محاذاة الدماغ NLP باستخدام دقة التصنيف 20V20
- يقوم البرنامج النصي الموضح في القسم أعلاه أيضًا بتقييم 20v20:
all_scripts/scripts/outer_encoding.sh - يدعو البرنامج النصي الرئيسي هذا البرنامج النصي الداخلي:
all_scripts/scripts/inner_encoding.sh - يقوم البرنامج النصي الداخلي باستدعاء ملف Python هذا:
evaluate_brain_predictions.py - سيتم إنشاء الإخراج في:
3-eval-results/
4. حساب قدرة نمذجة اللغة (أي الحيرة أو فقدان الإدخال المتقاطع)
- قم بتغيير المتغيرات في هذا البرنامج النصي الرئيسي وقم بتشغيله:
all_scripts/scripts/outer_perplexity.sh - يدعو البرنامج النصي الرئيسي هذا البرنامج النصي الداخلي:
all_scripts/scripts/inner_perplexity.sh - يقوم البرنامج النصي الداخلي باستدعاء ملف Python هذا:
calculate_perplexity.py - سيتم إنشاء الإخراج في:
4-perplexity-results/
5. طرازات لغة القطار على Booksum (لا تستخدم للورق)
- قم بتغيير المتغيرات في هذا البرنامج النصي الرئيسي وقم بتشغيله:
all_scripts/scripts/outer_finetune_booksum.sh - يدعو البرنامج النصي الرئيسي ملف Python هذا:
finetune_booksum.py - سيتم إنشاء الإخراج في:
5-finetune-booksum/
6. حساب أداء النماذج على مجموعة بيانات Booksum (IE Rouge Score) (لا تستخدم للورق)
- قم بتغيير المتغيرات في هذا البرنامج النصي الرئيسي وقم بتشغيله:
all_scripts/scripts/outer_rouge.sh - يدعو البرنامج النصي الرئيسي ملف Python هذا:
compute_rouge.py - سيتم إنشاء الإخراج في:
6-rouge-score/
7. طريقة التفسير لحساب ارتباط بيرسون لمختلف ميزات الخطاب
- أولاً ، نحتاج إلى تصنيف الكلمات في نص هاري بوتر مع ميزات خطابهم
- قم بتنزيله من: http://www.cs.cmu.edu/afs/cs/project/theo-73/www/plosone/
- ضعها في
data/story_features.mat
- بعد ذلك ، قم بتشغيل
align_story_feature_TRs.ipynb لتعيين الكلمات المسمى إلى FMRI TRS - أخيرًا ، استخرج TRS المقابلة لكل ميزة خطاب ، وحساب درجة ارتباط بيرسون لميزة الخطاب
- استخدم ملف Python:
all_scripts/plot_pearson.py - سيتم إنشاء الإخراج في:
7-pearson-saved/
8. حساب ارتباط بيرسون لكل زوج من (ميزة الخطاب ، عائد الاستثمار في الدماغ) (غير مستخدم للورق)
- استخدم ملف Python:
all_scripts/plot_discourse_and_RoI.py - سيتم إنشاء الإخراج في:
8-RoI-and-pearson-saved/
9. توليد قيم الدماغ voxel لتصورها على مؤامرات الدماغ
- تغيير المتغيرات في هذا البرنامج النصي الرئيسي وقم بتشغيله:
all_scripts/scripts/outer_generate_voxel_values.sh - يدعو البرنامج النصي الرئيسي ملف Python هذا:
all_scripts/generate_voxel_values.py - سيتم إنشاء الإخراج في:
9-pearson-voxels-for-brain-plot/
آحرون
- لرسم الأشكال الرئيسية المستخدمة للورق ، راجع:
all_scripts/figures_paper/ - لرسم أرقام أخرى للتصور ، انظر:
all_scripts/plot_{} - لتشغيل اختبارات الأهمية وتصحيح معدل الاكتشاف الخاطئ (FDR) باستخدام إجراء Benjamini -Hochberg (BH) ، راجع:
compute_stat_significance.ipynb - يستخدم مستودعنا رمزًا من مستودع GitHub التالي