Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEA: add XSimGCL #72

Merged
merged 4 commits into from
Oct 18, 2023
Merged

FEA: add XSimGCL #72

merged 4 commits into from
Oct 18, 2023

Conversation

downeykking
Copy link
Contributor

Add GeneralRecommender XSimGCL to RecBole-GNN.

@hyp1231
Copy link
Member

hyp1231 commented Oct 16, 2023

Awesome! Thanks for the great contribution! :)

@downeykking
Copy link
Contributor Author

downeykking commented Oct 17, 2023

workfile中这句可能存在问题:

pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-${{ matrix.torch-version }}+cpu.html

这个是pyg安装的一个bug,它会从其他编译版本找最新的库,从日志中可以看到它安装了

torch-scatter==2.1.2 torch-sparse==0.6.18 torch-cluster==1.6.0 torch-spline-conv==1.2.1

但是参照https://data.pyg.org/whl/torch-1.11.0+cpu.html,torch-1.11.0-cpu并没有这些高版本的包。
可以修改为

pip install torch-scatter==2.0.9 torch-sparse==0.6.15 torch-cluster==1.6.3 torch-spline-conv==1.2.2 torch-geometric -f https://data.pyg.org/whl/torch-${{ matrix.torch-version }}+cpu.html

还有地方会出错,dgl最新版会丢弃低版本的pytorch,我找到了个最近的支持1.11.0的版本
安装dgl处需要修改为

pip install dgl==0.9.1

按照这个修改后,我本地环境测试可以过(其它包都是按照workfile中的版本,除了libstdc++.so.6)

github测试从日志来看好像是libstdc++.so.6存在问题:

/usr/share/miniconda/envs/test/lib/python3.9/site-packages/recbole/utils/utils.py:22: in <module>
    import torch
/usr/share/miniconda/envs/test/lib/python3.9/site-packages/torch/__init__.py:199: in <module>
    from torch._C import *  # noqa: F403
E   ImportError: libstdc++.so.6: cannot open shared object file: No such file or directory

不知道是不是因为workfile中的这两句

sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
sudo ln -s /home/linuxbrew/.linuxbrew/Cellar/gcc/12.2.0/lib/gcc/12/libstdc++.so.6.0.30 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

@downeykking
Copy link
Contributor Author

pr里添加了新的commit解决CI 问题,但是发现好像要先解决CI 的问题才能把代码合并 _

@hyp1231
Copy link
Member

hyp1231 commented Oct 17, 2023

非常感谢!!看起来你的解决方案非常好,应该就是这个问题。

我今天也开了个 branch 本来打算把 CLI 的 bug 给修了。原计划是把 torch 直接搞成 2.0.0,这样 pyg 也好装,numpy 老版本的 bug 也没有。结果 block 在 RecBole 的 evaluator 调用一个废弃掉的 numpy 的 attribute np.float 上了。。。明天空下来时我彻底解决下 CLI 问题然后把这两个 PR 都 merge 掉,再次感谢!!

@downeykking
Copy link
Contributor Author

非常感谢!!看起来你的解决方案非常好,应该就是这个问题。

我今天也开了个 branch 本来打算把 CLI 的 bug 给修了。原计划是把 torch 直接搞成 2.0.0,这样 pyg 也好装,numpy 老版本的 bug 也没有。结果 block 在 RecBole 的 evaluator 调用一个废弃掉的 numpy 的 attribute np.float 上了。。。明天空下来时我彻底解决下 CLI 问题然后把这两个 PR 都 merge 掉,再次感谢!!

好的!RecBole-GNN很好用hhh,所以也想多做贡献;如果解决了CI问题的话,我之前用RecBole-GNN的时候也发现了一些其它的RecBole1.1.1带来的问题,我的想法是开个compatibility.py,在config设置那里兼容一下,到时候也会提一下pr

RecBole好像停在1.1.1一年了,有考虑发新版嘛 RecBole-GNN有些问题是和RecBole耦合的,感觉可以在RecBole升级之后RecBole-GNN也升级个2.0

@hyp1231 hyp1231 merged commit 7c6783f into RUCAIBox:main Oct 18, 2023
1 check failed
@hyp1231
Copy link
Member

hyp1231 commented Oct 18, 2023

hhhh 感谢感谢!!尝试解决了一下 CI 问题,看看会不会好。确实 RecBole 太久没升级了,最近和团队沟通一下看看有没有发版计划。

@downeykking
Copy link
Contributor Author

hhhh 感谢感谢!!尝试解决了一下 CI 问题,看看会不会好。确实 RecBole 太久没升级了,最近和团队沟通一下看看有没有发版计划。

老哥不好意思,我那个commit解决CI bugs里面固定了pyg库的版本是对应当时的pytorch1.11.0的,现在合并的版本是pytorch2.0.0,因此pyg用我固定的版本的话就是不匹配的了,到时候可能github merge的时候还会存在问题。我刚去查了一下pytorch2.0.0对应的是这些版本,老哥直接在python-package.yml里面改一下?

pip install dgl==1.1.2
pip install torch-scatter==2.1.2 torch-sparse==0.6.18 torch-cluster==1.6.3 torch-spline-conv==1.2.2 torch-geometric -f https://data.pyg.org/whl/torch-${{ matrix.torch-version }}+cpu.html

@hyp1231
Copy link
Member

hyp1231 commented Oct 18, 2023

hhhh 感谢感谢!!尝试解决了一下 CI 问题,看看会不会好。确实 RecBole 太久没升级了,最近和团队沟通一下看看有没有发版计划。

老哥不好意思,我那个commit解决CI bugs里面固定了pyg库的版本是对应当时的pytorch1.11.0的,现在合并的版本是pytorch2.0.0,因此pyg用我固定的版本的话就是不匹配的了,到时候可能github merge的时候还会存在问题。我刚去查了一下pytorch2.0.0对应的是这些版本,老哥直接在python-package.yml里面改一下?

pip install dgl==1.1.2
pip install torch-scatter==2.1.2 torch-sparse==0.6.18 torch-cluster==1.6.3 torch-spline-conv==1.2.2 torch-geometric -f https://data.pyg.org/whl/torch-${{ matrix.torch-version }}+cpu.html

嗯嗯刚刚也发现了hhh,已经改掉且过 CI 了!目前 config 也沿用了你的写法,再次感谢🍺

@downeykking
Copy link
Contributor Author

hhhh 感谢感谢!!尝试解决了一下 CI 问题,看看会不会好。确实 RecBole 太久没升级了,最近和团队沟通一下看看有没有发版计划。

老哥不好意思,我那个commit解决CI bugs里面固定了pyg库的版本是对应当时的pytorch1.11.0的,现在合并的版本是pytorch2.0.0,因此pyg用我固定的版本的话就是不匹配的了,到时候可能github merge的时候还会存在问题。我刚去查了一下pytorch2.0.0对应的是这些版本,老哥直接在python-package.yml里面改一下?

pip install dgl==1.1.2
pip install torch-scatter==2.1.2 torch-sparse==0.6.18 torch-cluster==1.6.3 torch-spline-conv==1.2.2 torch-geometric -f https://data.pyg.org/whl/torch-${{ matrix.torch-version }}+cpu.html

嗯嗯刚刚也发现了hhh,已经改掉且过 CI 了!目前 config 也沿用了你的写法,再次感谢🍺

hhh不客气~ 感觉可以固定住pyg和dgl的版本会比较好 pyg有个bug就是直接安装sparse库这些的话它会默认去找最新pytorch支持的最新的版本,但是可能在我们自己pytorch的版本里面sparse这些没有这么高版本的,然后就编译不了了
这是相关的一个issue
pyg-team/pytorch_geometric#5015
还有dgl经常发布了一个新版本就丢弃了对旧pytorch的支持了 :(

@hyp1231
Copy link
Member

hyp1231 commented Oct 18, 2023

hhhh 感谢感谢!!尝试解决了一下 CI 问题,看看会不会好。确实 RecBole 太久没升级了,最近和团队沟通一下看看有没有发版计划。

老哥不好意思,我那个commit解决CI bugs里面固定了pyg库的版本是对应当时的pytorch1.11.0的,现在合并的版本是pytorch2.0.0,因此pyg用我固定的版本的话就是不匹配的了,到时候可能github merge的时候还会存在问题。我刚去查了一下pytorch2.0.0对应的是这些版本,老哥直接在python-package.yml里面改一下?

pip install dgl==1.1.2
pip install torch-scatter==2.1.2 torch-sparse==0.6.18 torch-cluster==1.6.3 torch-spline-conv==1.2.2 torch-geometric -f https://data.pyg.org/whl/torch-${{ matrix.torch-version }}+cpu.html

嗯嗯刚刚也发现了hhh,已经改掉且过 CI 了!目前 config 也沿用了你的写法,再次感谢🍺

hhh不客气~ 感觉可以固定住pyg和dgl的版本会比较好 pyg有个bug就是直接安装sparse库这些的话它会默认去找最新pytorch支持的最新的版本,但是可能在我们自己pytorch的版本里面sparse这些没有这么高版本的,然后就编译不了了 这是相关的一个issue pyg-team/pytorch_geometric#5015 还有dgl经常发布了一个新版本就丢弃了对旧pytorch的支持了 :(

原来是这样子!很有道理,版本问题确实好难搞 😭 之前 CI 里面 torch, pyg, dgl 还算稳定,结果 numpy 和 recbole 各崩一次。之后要是再崩我就找个时间把各个重要库的版本全给固定了。。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants