大语言模型SLM-Lab安装教程
前言
应导师要求,需要自学深度强化学习,于是笔者选择Laura和Wah写的这本书作为学习资料。这本书的算法练习从第三章开始就必须要配套SLM-Lab这个大语言模型来学了,笔者根据书中代码提示安装这个模型的时候出了很多很多问题,奈何网上关于此大语言模型安装的教程少之又少,笔者根据安装过程中的bug报错信息,一个一个的去网上搜索,终于完成了SLM-Lab的环境配置,并成功运行了Cartpole模型,故写下此篇博客,希望能为后面学习深度强化学习的同学们提供帮助。
先注明一下配置环境:
Linux系统 且是ubuntu22.04
主要参考博客是下面这位大佬的日志(不过这个大佬写的还不是很详细,于是我来给他当补丁~)
https://www.cnblogs.com/Astrumorphology/p/17207440.html
在正式开启教程前先唠叨几句,这本书是2019年左右写的, 这个大语言模型也是2019年左右上传到github的 因此 ,随着python版本和各个库的更迭,还有linux系统自己的更新,因此SLM-Lab模型中的很多库和当前环境是完全不兼容的,所以在安装的过程中,报很多错是非常非常正常的,希望大家能在安装过程中沉住气,即使遇到很多本文后面没有列举到的报错也不要慌,针对bug一个一个攻破搜索,总是可以解决的~😊
注意哈,接下来的所有操作都在linux系统的terminal中进行!
github数据传送
git clone https://github.com/kengz/SLM-Lab.git
首先就是按照书中教程从github上加载资源。
一般第一步,就会有报错,报错内容大致和下面一样:
fatal: unable to access ‘https://github.com/…/‘: Failed to connect to github
这个报错是因为防火墙或者代理的问题。
解决办法:在terminal中输入下面这两段代码
git config --global --unset http.proxy
git config --global --unset https.proxy
然后再clone一次,就没问题了。(还是再次输入以下clone的语句)
git clone https://github.com/kengz/SLM-Lab.git
下载完后,咱们转到SLM-Lab这个文件夹下:
cd SLM-Lab
checkout book branch
然后我们检查一下book分支
git checkout book
到这一步,还可能会报错
大致报错内容应该是这样的:
Branch ‘book’ set up to track remote branch ‘book’ from ‘origin’
解决方法共两步:
1.移除
git remote rm origin
2.再次连接
git remote add origin book
这样就好啦
运行setup脚本
输入
./bin/setup
这里运行要好久,大家等一会,如果第一次运行太卡,那就关掉terminal,重新再运行一次,第二次基本上就快很多
运行完后,不出意外会报一堆错,大致原因还是pip版本太低 python要3.8以上,但是这个语言模型的python才3.7
笔者这里建议大家不要贸然升级虚拟环境lab中的python版本,这样会导致之前下载的包和资源全部删除
大家别怕,我们暂时先忽视这个错误。先进入下一步
激活conda环境测试例程
输入
conda activate lab
上述代码会激活lab这个虚拟环境,接下来我们来解决之前的python版本问题。
首先,这个问题的原因就是python版本太低了,有些库不适合3.7版本了,因此pip下载不了,这里的解决办法很笨,但是很管用,我们一个一个下载pip所需的库就行了,打开environment.yaml文件(在SLM-Lab文件夹里面)
注意,这里一定要在激活的虚拟环境中下载!!!所以我们先激活了lab虚拟环境,再pip install
(这里说一下为什么不去逐批下载
https://www.cnblogs.com/Astrumorphology/p/17207440.html
这篇博客中的大佬说了,逐批下载会报错,可能与源有关系)
逐一pip install 这些库,例如:
pip install box2d-py==2.3.8
(这里下载box2d-py的时候可能会出错,说没有swig,咱们就下载swig就好,如下)
pip install swig
所有库依次安装好以后,我们参照
https://www.cnblogs.com/Astrumorphology/p/17207440.html
大佬所说的,安装一下libpcre3-dev
sudo apt install libpcre3-dev
运行实例
输入下面的代码段
python run_lab.py slm_lab/spec/demo.json dqn_cartpole dev
上述代码会激活cartpole运行实例。
不出意外,又会报错
首先 笔者报了这个错误
这个错误的原因是安装的pandas与numpy的版本不兼容导致的,我们安装1.19.5的numpy库即可解决问题
pip install numpy==1.19.5
然后再次尝试激活cartpole运行实例,笔者又遇到了一个错误
这个和pyglet库有关,意思就是pyglet库2.0版本要求python在3.8以上,这个python才3.7不行
我们没法更新python版本,因为更新了之前SLM-Lab中下载的东西会全没,所以还得从pyglet这个库中想办法
咱们调低版本,下载1.2.4的pyglet库
pip install pyglet==1.2.4
紧接着,笔者又一次尝试激活cartpole运行实例,又遇到了错误,还是和pyglet有关,大致内容如下:
ContextException:Could not create GL context
这个问题笔者找了好久,最终在一篇github的一个帖子里找出了问题所在
具体原因是ubuntu是22.04版本
帖子如下
https://github.com/mmatl/pyrender/issues/13
所以解决方法是输入下面的指令:
conda install -c conda-forge libstdcxx-ng
ok ,我们再一次尝试激活cartpole示例,终于成功了!
下面为结果图:
总结
以上即为笔者关于SLM-Lab安装教程的分享,笔者当时安装了好久好久,因为报错实在太多太乱,再加上自己也不太熟悉linux操作系统,有好几次想要放弃,不过最后还是坚持了下来,希望大家也能遇到困难的时候鼓起勇气,不要怕,咬咬牙坚持住,相信自己,胜利就在远方!
最后若有遇到其他问题的同学,欢迎在评论区补充,我尽我所能来解答,也欢迎有其它见解的同学前来分享经验,咱们一同进步✌