
홈페이지 | 종이 | 문서 | 토론 포럼 | 데이터 세트 |中文
COGDL은 연구원과 개발자가 그래프 영역에서 노드 분류, 그래프 분류 및 기타 중요한 작업을위한 기준선 또는 사용자 정의 모델을 쉽게 교육하고 비교할 수있는 그래프 딥 러닝 툴킷입니다.
COGDL의 기여를 다음과 같이 요약합니다.
COGDL 신문은 www 2023에 의해 받아 들여졌습니다. www 2023에서 우리를 찾으십시오! 또한 GraphMae, GraphMae2 및 BGRL을 포함하여 그래프 자체 감독 학습의 더 많은 예를 추가하는 새로운 V0.6 릴리스를 출시합니다.
COGDL 팀이 제공하는 무료 GNN 코스 가이 링크에 있습니다. 또한 중국 사용자를위한 토론 포럼도 제공합니다.
새로운 v0.5.3 릴리스는 textit {fp16 = true}를 설정하여 혼합-정밀 교육을 지원하고 Jittor가 작성한 기본 예를 제공합니다. 또한 문서의 자습서를 업데이트하고 일부 데이터 세트의 링크 다운로드를 수정하고 연산자의 잠재적 버그를 수정합니다.
새로운 V0.5.2 릴리스는 OGBN- 제품에 대한 GNN 예제를 추가하고 GEOM 데이터 세트를 업데이트합니다. 또한 장치 설정, 추론을 위해 CPU 사용 등을 포함한 일부 잠재적 버그를 수정합니다.
새로운 V0.5.1 릴리스는 SPMM (CPU 버전) 및 Scatter_max (CUDA 버전)를 포함한 빠른 연산자를 추가합니다. 또한이 링크에서 찾을 수있는 노드 분류 용 많은 데이터 세트를 추가합니다. ?
새로운 V0.5.0 릴리스 디자인은 GNN을위한 통합 교육 루프를 구현하고 구현합니다. 교육/검증/테스트 데이터 및 ModelWrapper 를 준비하여 교육/검증/테스트 단계를 정의하기 위해 DataWrapper 소개합니다. ?
새로운 V0.4.1 릴리스는 DEEP GNNS의 구현 및 권장 작업을 추가합니다. 또한 임베딩 및 권장 사항을 생성하기위한 새로운 파이프 라인도 지원합니다. 8 월 14 일 오전 10시 30 분부터 오전 12시 (싱가포르 시간)에 KDD 2021 튜토리얼에 참여하십시오. 자세한 내용은 https://kdd2021graph.github.io/를 참조하십시오. ?
새로운 V0.4.0 릴리스는 데이터 스토리지 ( Data 에서 Graph 로)를 리팩터링하고 GNN 교육 속도를 높이기 위해보다 빠른 연산자를 제공합니다. 또한 그래프에 많은 자기 감독 학습 방법이 포함되어 있습니다. BTW, 우리는 8 월 KDD 2021에 대한 튜토리얼을 제공 할 것이라고 발표하게되어 기쁩니다. 자세한 내용은이 링크를 참조하십시오. ?
COGDL은 전문가 (MOE)의 혼합 된 GNN 모델을 지원합니다. 지금 Cogdl에서 Fastmoe를 설치하고 Moe GCN을 시도 할 수 있습니다!
새로운 V0.3.0 릴리스는 GNN 교육 속도를 높이기위한 빠른 SPMM 연산자를 제공합니다. 또한 Arxiv에서 첫 번째 버전의 CogDL 용지를 출시합니다. 토론을 위해 슬랙에 참여할 수 있습니다. ?
새로운 V0.2.0 릴리스 에는 모든 실험 및 응용 분야를위한 사용하기 쉬운 experiment 및 pipeline API가 포함됩니다. experiment API는 하이퍼 파라미터 검색의 AutomL 기능을 지원합니다. 이 릴리스는 또한 모델 추론을위한 OAGBert API를 제공합니다 ( OAGBert 실험실에서 대규모 학업 코퍼스에 대해 교육을받습니다). 일부 기능과 모델은 오픈 소스 커뮤니티에서 추가됩니다 (모든 기여자 덕분에).
새로운 V0.1.2 릴리스 에는 사전 훈련 작업, 많은 예제, OGB 데이터 세트, 일부 지식 그래프 임베딩 방법 및 일부 그래프 신경망 모델이 포함됩니다. COGDL의 적용 범위는 80%로 증가합니다. Trainer 및 Sampler 와 같은 일부 새로운 API가 개발되고 테스트되고 있습니다.
새로운 V0.1.1 릴리스 에는 지식 링크 예측 작업, 많은 최첨단 모델 및 optuna 지원이 포함됩니다. 우리는 또한 COGDL 릴리스에 관한 중국 WeChat 게시물을 가지고 있습니다.
Pytorch (https://github.com/pytorch/pytorch#installation)를 설치하려면 여기에 지침을 따르십시오.
Pytorch가 설치되면 CogDL을 다음과 같이 PIP를 사용하여 설치할 수 있습니다.
pip install cogdl소스에서 설치 :
pip install git+https://github.com/thudm/cogdl.git또는 저장소를 복제하고 다음 명령으로 설치하십시오.
git clone [email protected]:THUDM/cogdl.git
cd cogdl
pip install -e . COGDL API, 특히 experiment 통해 모든 종류의 실험을 실행할 수 있습니다. 실험에 자신의 데이터 세트와 모델을 사용할 수도 있습니다. QuickStart 예제는 Quick_Start.py에서 찾을 수 있습니다. 더 많은 예가 예제/.
from cogdl import experiment
# basic usage
experiment ( dataset = "cora" , model = "gcn" )
# set other hyper-parameters
experiment ( dataset = "cora" , model = "gcn" , hidden_size = 32 , epochs = 200 )
# run over multiple models on different seeds
experiment ( dataset = "cora" , model = [ "gcn" , "gat" ], seed = [ 1 , 2 ])
# automl usage
def search_space ( trial ):
return {
"lr" : trial . suggest_categorical ( "lr" , [ 1e-3 , 5e-3 , 1e-2 ]),
"hidden_size" : trial . suggest_categorical ( "hidden_size" , [ 32 , 64 , 128 ]),
"dropout" : trial . suggest_uniform ( "dropout" , 0.5 , 0.8 ),
}
experiment ( dataset = "cora" , model = "gcn" , seed = [ 1 , 2 ], search_space = search_space ) python scripts/train.py --dataset example_dataset --model example_model 사용하여 example_data에서 example_model을 실행할 수도 있습니다.
cora citeseer 와 같은 공간이있는 데이터 세트 목록이 될 수 있습니다. 지원되는 데이터 세트에는 'Cora', 'Citeseer', 'Pumbed', 'PPI', 'Wikipedia', 'Blogcatalog', 'Flickr'가 포함됩니다. 더 많은 데이터 세트가 COGDL/데이터 세트에서 찾을 수 있습니다.gcn gat 와 같은 모델 목록이 될 수 있습니다. 지원되는 모델에는 'gcn', 'gat', 'graphsage', 'deepwalk', 'node2vec', 'hope', 'grarep', 'netmf', 'netsmf', 'prone'이 포함됩니다. COGDL/모델에서 더 많은 모델을 찾을 수 있습니다.예를 들어, Cora 데이터 세트에서 GCN 및 GAT를 실행하려면 5 개의 다른 씨앗이 있습니다.
python scripts/train.py --dataset cora --model gcn gat --seed 0 1 2 3 4예상 출력 :
| 변종 | test_acc | val_acc |
|---|---|---|
| ( 'cora', 'gcn') | 0.8050 ± 0.0047 | 0.7940 ± 0.0063 |
| ( 'cora', 'gat') | 0.8234 ± 0.0042 | 0.8088 ± 0.0016 |
위의 단계에서 작업을 수행하는 데 어려움이 있으시면 언제든지 문제를여십시오. 24 시간 이내에 답장을 기대할 수 있습니다.
성과가 잘 된 알고리즘이 있고 더 많은 사람들을 돕기 위해 툴킷에서이를 구현하려는 경우 먼저 문제를 열고 풀 요청을 만들 수 있습니다. 자세한 정보는 여기에서 찾을 수 있습니다.
수정을 커밋하기 전에 먼저 pre-commit install 실행하여 black 및 flake8 을 사용하여 코드 형식 및 스타일을 확인하기 위해 GIT 후크를 설정하십시오. 그러면 pre-commit 이 git commit 에서 자동으로 실행됩니다! pre-commit 의 자세한 정보는 여기에서 찾을 수 있습니다.
CORA 데이터 세트에서 여러 모델 인 GCN 및 GAT에서 여러 GPU를 사용하여 서버에서 병렬 실험을 실행하려면 다음과 같습니다.
$ python scripts/train.py --dataset cora --model gcn gat --hidden-size 64 --devices 0 1 --seed 0 1 2 3 4예상 출력 :
| 변종 | acc |
|---|---|
| ( 'cora', 'gcn') | 0.8236 ± 0.0033 |
| ( 'cora', 'gat') | 0.8262 ± 0.0032 |
모델이 로컬에서 잘 작동하더라도 '적용 범위 감소 ...'문제로 인해 풀 요청이 거부 된 이유가 혼란 스러울 수 있습니다. 이는 단위 테스트를 포함하지 않았기 때문에 추가 된 추가 코드 라인을 통해 실행됩니다. GitHub에서 사용하는 Travis CI 서비스는 커밋 한 코드에서 모든 단위 테스트를 수행하고 단위 테스트에서 몇 줄의 코드 줄을 확인하고 코드의 상당 부분을 확인하지 않은 경우 (불충분 한 적용 범위), 풀 요청이 거부됩니다.
그렇다면 단위 테스트를 어떻게 수행합니까?
models/nn/abcgnn.py 에서 GNN 모델을 구현한다고 가정 해 봅시다. 그런 다음 스크립트 tests/tasks/test_node_classification.py (또는 모델이하는 모든 관련 작업) 내에서 단위 테스트를 추가해야합니다.tests/tasks/test_node_classification.py 수정 한 후 models/nn/abcgnn.py 와 함께 커밋하면 풀 요청이 전달됩니다. Cogdl은 Tsinghua, Zju, Damo Academy 및 Zhipu.ai에 의해 개발 및 유지됩니다.
핵심 개발 팀은 [email protected]으로 연락 할 수 있습니다.
귀하의 연구에 유용한 코드 나 결과를 찾으면 다음과 같은 경우 논문을 인용하십시오.
@inproceedings{cen2023cogdl,
title={CogDL: A Comprehensive Library for Graph Deep Learning},
author={Yukuo Cen and Zhenyu Hou and Yan Wang and Qibin Chen and Yizhen Luo and Zhongming Yu and Hengrui Zhang and Xingcheng Yao and Aohan Zeng and Shiguang Guo and Yuxiao Dong and Yang Yang and Peng Zhang and Guohao Dai and Yu Wang and Chang Zhou and Hongxia Yang and Jie Tang},
booktitle={Proceedings of the ACM Web Conference 2023 (WWW'23)},
year={2023}
}