大模型本地开发环境搭建(一) #100

Open
opened 2024-09-18 17:49:43 +08:00 by 12390900721cs · 0 comments

这里主要是对讲义中本地开发环境的搭建过程做一次梳理和总结。

  1. 安装Docker,用于利用容器和镜像技术来对应用程序和依赖项进行隔离。
  2. 安装 NVIDIA Container Toolkit,使得Docker可以挂在Nvidia GPU设备。
  3. 下载一个干净的、匹配我们cuda版本的镜像,后续在不同的项目中可以使用同一个镜像启动不同的容器,在容器中根据需求中安装我们模型开发需要的包。

4.1 启动镜像并进入容器。(镜像是只读的,容器则是运行时使用的实体)

4.2 将GPU挂载到容器。

4.3 将需要使用的本地目录挂载到容器的对应目录,方便后续在容器中对数据进行操作。

  1. 在容器内安装需要的依赖作为项目环境。通常有一个requirements.txt包来方便下载,此处因为需要的依赖不多,所以手动依次下载。
  2. 将制作好的环境作为新的镜像保存并命名,方便在下一次需要使用时直接启动。
  3. 用新的镜像启动环境。这里需要同时设置好此环境的内存、GPU数、挂载目录等。

8.1 下载模型:qwen0.5B。这是一个已经经过预训练的大模型。

8.2 数据下载: tatsu-lab/alpaca。用特殊的数据集,根据不同的专业领域进行针对性的训练。

8.3 算法下载:.py文件,这里是一个python脚本,应该是汇视威算法工作人员编写,写好了后续利用专业领域数据集对预训练模型微调的代码。

  1. 开始微调

9.1 用xtuner工具进行模型预训练。该工具是专门用于优化和训练大语言模型的工具。

9.2 此处还指定了一些参数,如创建目录用来记录训练的过程,存储训练结果、日志文件等;还包括指定节点上的运行的进程数等。

9.3 启用DeepSpeed训练库, 能够加速大规模模型的训练,并优化显存使用。并在此基础上使用 Zero3 Offload,用于极大优化内存使用,尤其适用于训练超大规模的模型。

  1. 本地部署

启动 FastChat 服务器并进行对话生成。FastChat 是一个开源的对话系统框架,旨在简化和优化大规模对话模型的训练、部署和使用。它提供了一种高效的方式来管理和运行对话生成模型,使得开发者可以更容易地实现和测试聊天机器人和对话系统。

感觉这个fastchat有点类似于langchain?回头可以研究研究,专门写一篇。

## 这里主要是对讲义中本地开发环境的搭建过程做一次梳理和总结。 1. 安装Docker,用于利用容器和镜像技术来对应用程序和依赖项进行隔离。 2. 安装 NVIDIA Container Toolkit,使得Docker可以挂在Nvidia GPU设备。 3. 下载一个干净的、匹配我们cuda版本的镜像,后续在不同的项目中可以使用同一个镜像启动不同的容器,在容器中根据需求中安装我们模型开发需要的包。 4. 4.1 启动镜像并进入容器。(镜像是只读的,容器则是运行时使用的实体) 4.2 将GPU挂载到容器。 4.3 将需要使用的本地目录挂载到容器的对应目录,方便后续在容器中对数据进行操作。 5. 在容器内安装需要的依赖作为项目环境。通常有一个requirements.txt包来方便下载,此处因为需要的依赖不多,所以手动依次下载。 6. 将制作好的环境作为新的镜像保存并命名,方便在下一次需要使用时直接启动。 7. 用新的镜像启动环境。这里需要同时设置好此环境的内存、GPU数、挂载目录等。 8. 8.1 下载模型:qwen0.5B。这是一个已经经过预训练的大模型。 8.2 数据下载: tatsu-lab/alpaca。用特殊的数据集,根据不同的专业领域进行针对性的训练。 8.3 算法下载:.py文件,这里是一个python脚本,应该是汇视威算法工作人员编写,写好了后续利用专业领域数据集对预训练模型微调的代码。 9. 开始微调 9.1 用xtuner工具进行模型预训练。该工具是专门用于优化和训练大语言模型的工具。 9.2 此处还指定了一些参数,如创建目录用来记录训练的过程,存储训练结果、日志文件等;还包括指定节点上的运行的进程数等。 9.3 启用DeepSpeed训练库, 能够加速大规模模型的训练,并优化显存使用。并在此基础上使用 Zero3 Offload,用于极大优化内存使用,尤其适用于训练超大规模的模型。 10. 本地部署 启动 FastChat 服务器并进行对话生成。FastChat 是一个开源的对话系统框架,旨在简化和优化大规模对话模型的训练、部署和使用。它提供了一种高效的方式来管理和运行对话生成模型,使得开发者可以更容易地实现和测试聊天机器人和对话系统。 感觉这个fastchat有点类似于langchain?回头可以研究研究,专门写一篇。
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: HswOAuth/llm_course#100
No description provided.