1.Google colab demo
可以用google colab运行gemma的demo(见以下链接),2b跑起来没问题,7b内存会炸。
Gemma in PyTorch | Google AI for Developers
注意:需要kaggle的API token,点下边的"your Kaggle settings page"链接,进去下载即可(中间需要遵守一些使用这个模型的约定,一步步弄就行)。
之后就一个挨一个的运行pytorch_gemma.ipynb,不能跳步,按顺序运行下来是没有任何bug的。
能改的只有最后测试的prompt,分为Chat mode和Generate mode。
Chat mode:
Generate mode:
2.本地电脑跑gemma-2b
2b可以跑起来,2b-it没有试,7b就不要想了,完全带不动,可能电脑显卡比较好的话,能行。
下边给出了模型地址,我用hugging face比较多,kaggle不太会用,所以这里只介绍用hugging face的过程。
Kaggle地址:https://www.kaggle.com/models/google/gemma/code/
huggingface地址:https://huggingface.co/models?search=google/gemma
和在hugging face上下载其他模型一样,用法也一样,如下
只不过用上边的代码直接从hg上下载模型经常因为网络连接的问题报错,我通常就是直接到官网将模型下载到本地,然后更改模型为本地路径。
需要耐心的事情出现了,模型很大很大,如果着急的话,就让电脑夜深人静的时候自己下载吧,没有7/8个小时应该是下载不完的。
在真正运行上述代码之前,不可避免的麻烦事出现了,That is 配置环境!!!为了不同项目的包版本不互相影响,所以重新创建一个虚拟环境是很有必要的(配置环境在下一节详细介绍)。
3.4090跑gemma-7b及it
主要参考hugging face的文档:
blog/zh/gemma.md at main · huggingface/blog (github.com)
提到了用3090或4090可以跑起来,如下:
我这里是用ssh连接的,应该也可以图形化界面控制,but我还木有用过。
ssh 用户名@xx.xx.xx.xx
然后输入密码就登进去了。
可以查看已有的虚拟环境
conda env list
之后就是用anaconda创建虚拟环境,python版本与torch版本有对应限制,但是用3.9比较稳,不算旧也不算新
conda create -n env_name python=x.x
然后激活虚拟环境,之后安装包都在这个环境里
conda activate env_name
之后为了方便文件的上传和删除,我用的是用专业版本的pycharm(可以免费试用30天)的Tools-Deployment功能(个人感觉很好用
用pycharm通过ssh连接远程服务器可以参考下文(转载,侵权删)pycharm通过ssh远程连接服务器,并运行代码_pycharm连接远程服务器怎么运行命令-CSDN博客
只不过与它写的博客不同的地方:
(1)在最后选择python interpreter的时候,选择之前创建的conda虚拟环境中的python。
一般路径是 /home/xx/anaconda3/envs/env_name/bin/python
(2)Mappings-Deployment path改成自己新建的一个文件夹,用来存放模型、代码
至此虚拟环境创建完毕,并且能够通过pycharm上传文件和代码。
之后就是安装torch和transformer
安装torch需要注意是cpu版本还是gpu版本,这里安装gpu版本
首先需要查看cuda的版本,按照别人的说法是可以向下兼容的,也就是比设备cuda版本低的都可以用,我自己试了确实可以
nvidia-smi
然后到pytorch官网 PyTorch
复制最后一行的代码,执行即可
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
安装 transformers,这里是根据上文hg的文档,指定了版本
pip install -U "transformers==4.38.1" --upgrade
然后新建一个xx.py文件(复制hg文档中的代码即可),upload到上文新建的文件夹里边
cd 上文新建的文件夹路径
运行
python3 xx.py
备注其他
1.因为模型很大,可以查看硬盘内存是否够
df -h
2.如果某盘内存不够,将文件夹整个移动到另一个盘
mv 原文件夹所在的绝对路径 新文件夹的绝对路径
3.模型上传不完整,代码报错,对比上传的模型、本地下载的模型与hg显示的模型大小,cd到模型文件内,用kb显示文件夹内文件大小
ls -l --block-size=k
4.返回上一级目录
cd ..
返回根目录
cd ~
Over! 如有问题,欢迎批评指正~