人工智能:语言大模型训练与部署流程
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 Stream 10
本文选用 CentOS Stream 10 操作系统,内核版本 6.12.0,并配置网络环境:
1 | uname -r # 查看内核版本 |
编辑 enp031f6.connection 文件,示例信息如下:
1 | [connection] |
修改完成后重新启动网络服务:
1 | $ systemctl restart NetworkManager |
配置硬盘分区永久挂载:
1 | lsblk # 查看磁盘硬件 |
为用户名为 hwchai 的普通用户创建 Ed25519 密钥:
1 | $ su hwchai # 切换到 hwchai |
安装 Nvidia Driver, CUDA 及 cuDNN 环境
1 | yum update -y |
安装 Nvidia driver
禁用 Linux 默认的显示驱动 nouveau:
1 | lsmod | grep nouveau # 该命令若无输出,则跳过以下步骤 |
编辑 /lib/modprobe.d/dist-blacklist.conf 文件
1 | # blacklist nvidiafb # 注释掉 blacklist nvidiafb |
1 | $ mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak |
在Nvidia driver download根据GPU型号及操作系统选择相应的驱动程序下载至本地后安装:
1 | chmod +x NVIDIA-Linux-x86_64-版本号.run |
安装 CUDA Toolkit
在CUDA Toolkit 12.9 Downloads中下载 CUDA 工具包:
1 | $ wget https://developer.download.nvidia.com/compute/cuda/12.9.0/local_installers/cuda-repo-rhel9-12-9-local-12.9.0_575.51.03-1.x86_64.rpm |
安装 cuDNN
在cuDNN 9.10.1 Downloads中下载 cuDNN 包:
1 | $ wget https://developer.download.nvidia.com/compute/cudnn/9.10.1/local_installers/cudnn-local-repo-rhel9-9.10.1-1.0-1.x86_64.rpm |
安装Miniconda 3
1 | curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh |
安装 Pytorch 及 Transformers 等环境
1 | conda create -n hwchai python=3.13 # 环境创建 |
查看 Pytorch, CUDA 及 cuDNN 版本
1 | import torch |
可能还有包未列出,可按照运行提示安装。
部署 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 |
以上格式仅为测试使用,后续会考虑数据集的具体内容和训练需求进行优化。