
Graph4NLP هي مكتبة سهلة الاستخدام للبحث والتطوير عند تقاطع التعلم العميق على الرسوم البيانية ومعالجة اللغة الطبيعية (أي ، DLG4NLP). إنه يوفر كلا من التطبيقات الكاملة للنماذج الحديثة لعلماء البيانات وأيضًا واجهات مرنة لبناء نماذج مخصصة للباحثين والمطورين الذين لديهم دعم كامل خط. بناء على مكتبات وقت التشغيل عالية التحسين بما في ذلك DGL ، Graph4NLP لديها كفاءة عالية الجري ومتوسطة كبيرة. يتم عرض بنية Graph4NLP في الشكل التالي ، حيث تمثل الصناديق ذات الخطوط المتقطعة الميزات قيد التطوير. يتكون Graph4NLP من أربع طبقات مختلفة: 1) طبقة البيانات ، 2) طبقة الوحدة النمطية ، 3) طبقة النموذج ، و 4) طبقة التطبيق.

الشكل : Graph4NLP العمارة الشاملة
01/20/2022: الإصدار V0.5.5 . جربها!
09/26/2021: الإصدار V0.5.1 . جربها!
09/01/2021: مرحبًا بك في زيارة موقع DLG4NLP الخاص بنا (https://dlg4nlp.github.io/index.html) لمختلف موارد التعلم!
06/05/2021: الإصدار V0.4.1 .
| الإصدارات | تاريخ | سمات |
|---|---|---|
| v0.5.5 | 2022-01-20 | - نموذج الدعم. - تقديم ثلاث وظائف جديدة inperfect_wrapper: classifier_inference_wrapper ، generator_inference_wrapper ، generator_inference_wrapper_for_tree. - أضف أمثلة الاستدلال والاستدلال في كل تطبيق. - افصل طوبولوجيا الرسم البياني وعملية تضمين الرسم البياني. - تجديد جميع وظائف بناء الرسم البياني. - يتم تقسيم الوحدة النمطية graph_embedding إلى graph_embedding_initialization و graph_embedding_learning. - توحيد المعلمات في مجموعة البيانات. نقوم بإزالة المعلمة الغامضة graph_type ونقدم graph_name للإشارة إلى طريقة إنشاء الرسم البياني و static_or_dynamic للإشارة إلى نوع إنشاء الرسم البياني الثابت أو الديناميكي.- جديد: يمكن الآن لمجموعة البيانات اختيار الأساليب الافتراضية تلقائيًا (على سبيل المثال ، topology_builder ) بواسطة معلمة واحدة فقط graph_name . |
| v0.5.1 | 2021-09-26 | - الوبر الرموز - دعم الاختبار مع بيانات المستخدمين الخاصة - إصلاح الخلل: تم ترميز حجم التضمين الكلمة في الإصدار 0.4.1. الآن يساوي معلمة "Word_emb_size". - إصلاح الخلل: يسمى Build_vocab () مرتين في الإصدار 0.4.1. - إصلاح الخلل: يغيب الملفان الرئيسيان لإنجاز الرسم البياني المعرفة المعلمة الاختيارية "kg_graph" في RANKING_AND_HITS () عند استئناف تدريب النموذج. - إصلاح الخلل: لقد أصلحنا خطأ مسار المعالجة المسبقة في KGC README. - إصلاح الخلل: لدينا خطأ في التضمين ثابت عند تعيين EMB_STRATEGY إلى "W2V". |
| v0.4.1 | 2021-06-05 | - دعم خط الأنابيب بأكمله لـ Graph4NLP - دعم GraphData و Dataset |
يهدف Graph4NLP إلى جعل من السهل بشكل لا يصدق استخدام GNNS في مهام NLP (تحقق من وثائق Graph4NLP). فيما يلي مثال على كيفية استخدام نموذج Graph2Seq (يستخدم على نطاق واسع في الترجمة الآلية ، والإجابة على الأسئلة ، والتحليل الدلالي ، ومهام NLP الأخرى التي يمكن استخلاصها كمشكلة رسم بياني إلى التسلسل وأظهرت أداءً فائقًا).
نقدم أيضًا واجهات برمجة تطبيقات النماذج عالية المستوى الأخرى مثل نماذج الرسم البياني إلى الشاشة. إذا كنت مهتمًا بمشكلات البحث المتعلقة بـ DLG4NLP ، فنحن نرحب جدًا باستخدام مكتبتنا والرجوع إلى استطلاع GRATE4NLP الخاص بنا.
from graph4nlp . pytorch . datasets . jobs import JobsDataset
from graph4nlp . pytorch . modules . graph_construction . dependency_graph_construction import DependencyBasedGraphConstruction
from graph4nlp . pytorch . modules . config import get_basic_args
from graph4nlp . pytorch . models . graph2seq import Graph2Seq
from graph4nlp . pytorch . modules . utils . config_utils import update_values , get_yaml_config
# build dataset
jobs_dataset = JobsDataset ( root_dir = 'graph4nlp/pytorch/test/dataset/jobs' ,
topology_builder = DependencyBasedGraphConstruction ,
topology_subdir = 'DependencyGraph' ) # You should run stanfordcorenlp at background
vocab_model = jobs_dataset . vocab_model
# build model
user_args = get_yaml_config ( "examples/pytorch/semantic_parsing/graph2seq/config/dependency_gcn_bi_sep_demo.yaml" )
args = get_basic_args ( graph_construction_name = "node_emb" , graph_embedding_name = "gat" , decoder_name = "stdrnn" )
update_values ( to_args = args , from_args_list = [ user_args ])
graph2seq = Graph2Seq . from_args ( args , vocab_model )
# calculation
batch_data = JobsDataset . collate_fn ( jobs_dataset . train [ 0 : 12 ])
scores = graph2seq ( batch_data [ "graph_data" ], batch_data [ "tgt_seq" ]) # [Batch_size, seq_len, Vocab_size] يظهر تدفق الحوسبة Graph4NLP الخاص بنا على النحو التالي.

نحن نقدم مجموعة شاملة من تطبيقات NLP ، إلى جانب أمثلة مفصلة على النحو التالي:
البيئة: Torch 1.8 ، Ubuntu 16.04 مع 2080ti وحدات معالجة الرسومات
| مهمة | مجموعة البيانات | نموذج GNN | بناء الرسم البياني | تقييم | أداء |
|---|---|---|---|---|---|
| تصنيف النص | الوجه Cairline CNSST | جات | التبعية الدائرة الانتخابية التبعية | دقة | 0.948 0.785 0.538 |
| التحليل الدلالي | وظائف | حكيم | الدائرة الانتخابية | دقة التنفيذ | 0.936 |
| توليد الأسئلة | فريق | GGNN | التبعية | Bleu-4 | 0.15175 |
| الترجمة الآلية | IWSLT14 | GCN | متحرك | Bleu-4 | 0.3212 |
| تلخيص | CNN (30K) | GCN | التبعية | روج -1 | 26.4 |
| إكمال الرسم البياني المعرفة | القرابة | GCN | التبعية | MRR | 82.4 |
| مشكلة كلمة الرياضيات | MAWPs | حكيم | متحرك | دقة الحل | 76.4 |
يمكن للمستخدمين حاليًا تثبيت Graph4NLP عبر PIP أو رمز المصدر . يدعم Graph4NLP أنظمة التشغيل التالية:
نحن نقدم عجلات PIP لجميع مجموعات OS/PYTORCH/CUDA الرئيسية. لاحظ أننا نوصي بشدة أن مستخدمي Windows يشيرون إلى Installation via source code بسبب التوافق.
لاحظ أن >=1.6.0 على ما يرام.
$ python -c " import torch; print(torch.__version__) "
>>> 1.6.0$ python -c " import torch; print(torch.version.cuda) "
>>> 10.2 هناك حاجة إلى torchtext لأن Graph4NLP يعتمد عليه لتنفيذ التضمينات. يرجى الانتباه إلى متطلبات Pytorch قبل تثبيت torchtext مع البرنامج النصي التالي! لمطابقة نسخة مفصلة يرجى الرجوع هنا.
pip install torchtext # >=0.7.0 pip install graph4nlp ${CUDA} حيث يجب استبدال ${CUDA} بإصدار CUDA محدد ( none (إصدار وحدة المعالجة المركزية) ، "-cu92" ، "-cu101" ، "-cu102" ، "-cu110" ). يوضح الجدول التالي خطوط الأوامر الملموسة. لمستخدمي CUDA 11.1 ، يرجى الرجوع إلى Installation via source code .
| منصة | يأمر |
|---|---|
| وحدة المعالجة المركزية | pip install graph4nlp |
| كودا 9.2 | pip install graph4nlp-cu92 |
| كودا 10.1 | pip install graph4nlp-cu101 |
| كودا 10.2 | pip install graph4nlp-cu102 |
| كودا 11.0 | pip install graph4nlp-cu110 |
لاحظ أن >=1.6.0 على ما يرام.
$ python -c " import torch; print(torch.__version__) "
>>> 1.6.0$ python -c " import torch; print(torch.version.cuda) "
>>> 10.2 هناك حاجة إلى torchtext لأن Graph4NLP يعتمد عليه لتنفيذ التضمينات. يرجى الانتباه إلى متطلبات Pytorch قبل تثبيت torchtext مع البرنامج النصي التالي! لمطابقة نسخة مفصلة يرجى الرجوع هنا.
pip install torchtext # >=0.7.0 Graph4NLP من Github: git clone https://github.com/graph4ai/graph4nlp.git
cd graph4nlp ثم قم بتشغيل ./configure (أو ./configure.bat إذا كنت تستخدم Windows 10) لتكوين التثبيت الخاص بك. سيطلب منك برنامج التكوين تحديد إصدار CUDA الخاص بك. إذا لم يكن لديك وحدة معالجة الرسومات ، يرجى كتابة "وحدة المعالجة المركزية".
./configureأخيرًا ، قم بتثبيت الحزمة:
python setup.py installنظهر بعض المقاييس المفرطة التي يتم ضبطها هنا غالبًا.
إذا كنت ترغب في معرفة المزيد حول تطبيق تقنيات التعلم العميق على مهام NLP ، فلا ترحب بزيارة موقعنا على الويب DLG4NLP (https://dlg4nlp.github.io/index.html) لموارد التعلم المختلفة! يمكنك الرجوع إلى ورقة الاستقصاء الخاصة بنا والتي توفر نظرة عامة على هذا الاتجاه البحثي الحالي. إذا كنت تريد إشارة مفصلة إلى مكتبتنا ، فيرجى الرجوع إلى مستنداتنا.
يرجى إعلامنا إذا واجهت خطأ أو لديك أي اقتراحات من خلال تقديم مشكلة.
نرحب بجميع المساهمات من إصلاحات الأخطاء في الميزات والامتدادات الجديدة.
نتوقع مناقشة جميع المساهمات التي تمت مناقشتها في تعقب القضية والمرور من خلال PRS.
إذا وجدت هذا الرمز مفيدًا ، فيرجى التفكير في الاستشهاد بالأوراق التالية.
@article{wu2021graph,
title={Graph Neural Networks for Natural Language Processing: A Survey},
author={Lingfei Wu and Yu Chen and Kai Shen and Xiaojie Guo and Hanning Gao and Shucheng Li and Jian Pei and Bo Long},
journal={arXiv preprint arXiv:2106.06090},
year={2021}
}
@inproceedings{chen2020iterative,
title={Iterative Deep Graph Learning for Graph Neural Networks: Better and Robust Node Embeddings},
author={Chen, Yu and Wu, Lingfei and Zaki, Mohammed J},
booktitle={Proceedings of the 34th Conference on Neural Information Processing Systems},
month={Dec. 6-12,},
year={2020}
}
@inproceedings{chen2020reinforcement,
author = {Chen, Yu and Wu, Lingfei and Zaki, Mohammed J.},
title = {Reinforcement Learning Based Graph-to-Sequence Model for Natural Question Generation},
booktitle = {Proceedings of the 8th International Conference on Learning Representations},
month = {Apr. 26-30,},
year = {2020}
}
@article{xu2018graph2seq,
title={Graph2seq: Graph to sequence learning with attention-based neural networks},
author={Xu, Kun and Wu, Lingfei and Wang, Zhiguo and Feng, Yansong and Witbrock, Michael and Sheinin, Vadim},
journal={arXiv preprint arXiv:1804.00823},
year={2018}
}
@inproceedings{li-etal-2020-graph-tree,
title = {Graph-to-Tree Neural Networks for Learning Structured Input-Output Translation with Applications to Semantic Parsing and Math Word Problem},
author = {Li, Shucheng and
Wu, Lingfei and
Feng, Shiwei and
Xu, Fangli and
Xu, Fengyuan and
Zhong, Sheng},
booktitle = {Findings of the Association for Computational Linguistics: EMNLP 2020},
month = {Nov},
year = {2020}
}
@inproceedings{huang-etal-2020-knowledge,
title = {Knowledge Graph-Augmented Abstractive Summarization with Semantic-Driven Cloze Reward},
author = {Huang, Luyang and
Wu, Lingfei and
Wang, Lu},
booktitle = {Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics},
month = {Jul},
year = {2020},
pages = {5094--5107}
}
@inproceedings{wu-etal-2018-word,
title = {Word Mover{'}s Embedding: From {W}ord2{V}ec to Document Embedding},
author = {Wu, Lingfei and
Yen, Ian En-Hsu and
Xu, Kun and
Xu, Fangli and
Balakrishnan, Avinash and
Chen, Pin-Yu and
Ravikumar, Pradeep and
Witbrock, Michael J.},
booktitle = {Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing},
pages = {4524--4534},
year = {2018},
}
@inproceedings{chen2020graphflow,
author = {Yu Chen and
Lingfei Wu and
Mohammed J. Zaki},
title = {GraphFlow: Exploiting Conversation Flow with Graph Neural Networks
for Conversational Machine Comprehension},
booktitle = {Proceedings of the Twenty-Ninth International Joint Conference on
Artificial Intelligence, {IJCAI} 2020},
publisher = {International Joint Conferences on Artificial Intelligence Organization},
pages = {1230--1236},
year = {2020}
}
@inproceedings{shen2020hierarchical,
title={Hierarchical Attention Based Spatial-Temporal Graph-to-Sequence Learning for Grounded Video Description},
author={Shen, Kai and Wu, Lingfei and Xu, Fangli and Tang, Siliang and Xiao, Jun and Zhuang, Yueting},
booktitle = {Proceedings of the Twenty-Ninth International Joint Conference on
Artificial Intelligence, {IJCAI} 2020},
publisher = {International Joint Conferences on Artificial Intelligence Organization},
pages = {941--947},
year = {2020}
}
@inproceedings{ijcai2020-419,
title = {RDF-to-Text Generation with Graph-augmented Structural Neural Encoders},
author = {Gao, Hanning and Wu, Lingfei and Hu, Po and Xu, Fangli},
booktitle = {Proceedings of the Twenty-Ninth International Joint Conference on
Artificial Intelligence, {IJCAI-20}},
publisher = {International Joint Conferences on Artificial Intelligence Organization},
pages = {3030--3036},
year = {2020}
}
Graph4ai Team: Lingfei Wu (قائد الفريق) ، يو تشن ، كاي شين ، Xiaojie Guo ، Hanning Gao ، Shucheng Li ، Saizhuo Wang ، Xiao Liu و Jing Hu. نحن متحمسون لتطوير مكتبات مفيدة مفتوحة المصدر والتي تهدف إلى تعزيز الاستخدام السهل لمختلف التعلم العميق على تقنيات الرسوم البيانية لمعالجة اللغة الطبيعية. يتكون فريقنا من علماء الأبحاث ، وعلماء البيانات التطبيقية ، وطلاب الدراسات العليا من مجموعة متنوعة من المجموعات الصناعية والأكاديمية ، بما في ذلك Pinterest (Lingfei Wu) ، وجامعة Zhejiang (Kai Shen) ، و Facebook AI (Yu Chen) ، و Nanjing (Sayiz) ، و Nanjing ، وانغ).
إذا كان لديك أي أسئلة فنية ، فيرجى تقديم مشكلات جديدة.
إذا كان لديك أي أسئلة أخرى ، فيرجى الاتصال بنا: Lingfei wu [[email protected]] و Xiaojie Guo [[email protected]] .
يستخدم Graph4NLP ترخيص Apache 2.0.