人工智能:Gemini/Gemma模型部署与使用
Gemini是Google开发的一款多模态大模型,能够处理文本、图像、音频、视频和代码等信息。目前推出的Gemini模型分为Nano、Pro、Ultra以及1.5Pro,这些模型都可以在谷歌网站上进行访问:https://gemini.google.com 。此外,谷歌还提供了Gemini模型的API,可在代码中调用模型,输入文本和图片然后,输出文本回复,以及一款开源大语言模型gemma,该模型基于Gemini的研究和技术开发,能处理文本信息。模型有2b和7b两种参数规模以及经过指令调优(2b-it & 7b-it)和未调优的基础模型等版本,可通过多种框架构建:Keras、Pytorch、Transformers、Gemma C++、TensorRT-LLM、TensorFlow Lite、MaxText、Pax、Flax。感谢我过去的学生 Weizheng Wang, Hui Wu 对本文的贡献。
环境配置
安装 CentOS 7.9 及 Miniconda 3
本文选用 CentOS 7 的最后一代发行版本,内核版本3.10.0,并配置网络环境:
1 | Last login: Fri Jul 12 03:58:06 2024 from 222.210.147.117 |
配置硬盘分区挂载及 DSA/RSA 加密:
1 | (base) [root@server01 ai]# lsblk |
安装 Nvidia 驱动环境:
使用yum install pciutils
安装lspci工具:
1 | Last login: Fri Jul 12 03:58:06 2024 from 222.210.147.117 |
检查显卡连接状态:
1 | Last login: Fri Jul 12 04:18:08 2024 from 222.210.147.117 |
安装编译环境和内核开发包,确保与当前运行的内核版本相匹配:
1 | (base) [root@server01 ai]# yum install -y gcc kernel-devel kernel-headers |
检查nouveau是否禁用:
1 | (base) [root@server01 ai]# lsmod | grep nouveau |
上述命令若无输出,则跳过以下步骤:
1 | (base) [root@server01 ai]# vi /lib/modprobe.d/dist-blacklist.conf |
在Nvidia driver download根据GPU型号及操作系统选择相应的驱动程序下载至本地后安装,安装过程中选择默认选项即可:
1 | (base) [root@server01 ai]# chmod +x NVIDIA-Linux-x86_64-版本号.run |
检查 Nvidia driver:
1 | Last login: Fri Jul 12 04:13:36 2024 from 222.210.147.117 |
安装 miniconda 3:
使用curl
命令下载并安装Miniconda 3:
1 | (base) [root@server01 ai]# curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh |
一直按Enter
阅读协议,当询问是否同意许可协议时,输入yes
;当询问是否安装到指定位置时,按回车键接受默认路径;当询问是否让conda初始化时,如果你打算在所有用户之间共享Miniconda 3,选择yes
。
初始化 Conda:
若之前选择的是no,则需手动初始化,否则不用:
1 | source ~/miniconda3/bin/activate |
使用conda –version 查看版本,检查是否安装成功(需进root):
1 | (base) [root@server01 miniconda3]# conda --version |
Cuda、Pytorch等工具建议使用conda创建虚拟环境后安装。
安装 Pytorch 及 Transformers 等环境
环境创建:
1 | (base) [root@server01 ai]# conda create -n gemma python=3.9 |
激活环境:
1 | (base) [root@server01 ai]# conda activate gemma |
激活环境后安装包依赖:
1 | (base) [root@server01 ai]# pip install torch transformers bitsandbytes |
可能还有包未列出,可按照运行提示安装。
部署 Gemma 训练环境及预训练模型
注册Kaggle账号,在网站 https://www.kaggle.com/models/google/gemma 下载所需模型,配置要求:Python≥3.8,下载模型:
官方文档页面: https://github.com/google/gemma_pytorch ,文档中介绍了在Linux下使用docker配置环境并运行模型的方法,但未说明对模型进行调整的操作和对训练集的要求,使用常规Pytorch对NLP模型的训练方式即可。
下载的预训练模型分别存放在/home/ai/gemma-2b
及/home/ai/gemma-7b
中。
1 | (base) [root@server01 gemma-2b]# ls -al /home/ai/gemma-2b |
测试数据集保存在另一路径,数据形如:
1 | (base) [root@server01 ~]# less /dataset02/dataset/01.ont.seq/train/Exp001_shanzhu.aozhouhuangjin.raw.fastq.txt |
Gemma模型导入与配置
编写脚本,使用transformers加载本地模型和分词器:
1 | import torch |
将脚本保存为gemmatrain.py,命令行运行python gemma.train.py
,即可运行。
在上述脚本中导入了tsv格式的文本作为训练和测试集,实际上原始格式的文本并不能直接作为模型的输入,还需将一整行的文本内容(即单个输入输出对)记在同一标签“text”下。如:
1 | text |
以上格式仅为测试使用,后续会考虑数据集的具体内容和训练需求进行优化。