# llm-finetune **Repository Path**: lihengda/llm-finetune ## Basic Information - **Project Name**: llm-finetune - **Description**: 大模型微调实战 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-04-10 - **Last Updated**: 2025-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenAI 快速入门


English | 中文

本项目旨在为所有对大型语言模型及其在生成式人工智能(AIGC)场景中应用的人们提供一站式学习资源。通过提供理论基础,开发基础,和实践示例,该项目对这些前沿主题提供了全面的指导。 ## 特性 - **大语言模型的理论和开发基础**:深入探讨BERT和GPT系列等大型语言模型的内部工作原理,包括它们的架构、训练方法、应用等。 - **基于OpenAI的二次开发**:OpenAI的Embedding、GPT-3.5、GPT-4模型的快速上手和应用,以及函数调用(Function Calling)和ChatGPT插件等最佳实践 - **使用LangChain进行GenAI应用开发**:通过实例和教程,利用LangChain开发GenAI应用程序,展示大型语言模型(AutoGPT、RAG-chatbot、机器翻译)的实际应用。 - **LLM技术栈与生态**:数据隐私与法律合规性,GPU技术选型指南,Hugging Face快速入门指南,ChatGLM的使用。 ## 拉取代码 你可以通过克隆此仓库到你的本地机器来开始: ```shell git clone https://github.com/DjangoPeng/openai-quickstart.git ``` 然后导航至目录,并按照单个模块的指示开始操作。 ## 搭建开发环境 本项目使用 Python v3.10 开发,完整 Python 依赖软件包见[requirements.txt](requirements.txt)。 关键依赖的官方文档如下: - Python 环境管理 [Miniconda](https://docs.conda.io/projects/miniconda/en/latest/) - Python 交互式开发环境 [Jupyter Lab](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html) - 大模型应用开发框架 [LangChain](https://python.langchain.com/docs/get_started/installation) - [OpenAI Python SDK ](https://github.com/openai/openai-python?tab=readme-ov-file#installation) **以下是详细的安装指导(以 Ubuntu 操作系统为例)**: ### 安装 Miniconda ```shell mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 rm -rf ~/miniconda3/miniconda.sh ``` ### 激活conda命令 这样就可以在命令行直接使用conda命令了,注意:执行完下面的命令后,需要重启shell对话窗口才能生效 ```shell ~/miniconda3/bin/conda init bash ~/miniconda3/bin/conda init zsh ``` 安装完成后,建议新建一个 Python 虚拟环境,命名为 `langchain`。 ```shell conda create -n langchain python=3.10 # 激活环境 conda activate langchain ``` 之后每次使用需要激活此环境。 ### 安装 Python 依赖软件包 ```shell pip install -r requirements.txt ``` ### 配置 OpenAI API Key 根据你使用的命令行工具,在 `~/.bashrc` 或 `~/.zshrc` 中配置 `OPENAI_API_KEY` 环境变量: ```shell export OPENAI_API_KEY="xxxx" ``` ### 安装和配置 Jupyter Lab 上述开发环境安装完成后,使用 Miniconda 安装 Jupyter Lab: ```shell conda install -c conda-forge jupyterlab ``` 使用 Jupyter Lab 开发的最佳实践是后台常驻,下面是相关配置(以 root 用户为例): ```shell # 生成 Jupyter Lab 配置文件, jupyter lab --generate-config ``` 打开上面执行输出的`jupyter_lab_config.py`配置文件后,修改以下配置项: ```python c.ServerApp.allow_root = True # 非 root 用户启动,无需修改 c.ServerApp.ip = '*' ``` 使用 nohup 后台启动 Jupyter Lab ```shell nohup jupyter lab --port=8000 --NotebookApp.token='123456' --notebook-dir=./ & ``` Jupyter Lab 输出的日志将会保存在 `nohup.out` 文件(已在 .gitignore中过滤)。 ### 踩坑1:跑任务时没使用GPU ![](D:\data\微信图片_20240409212937.png) **原因:**由于使用的底层库的关系,对于显卡的驱动版本和CUDA的版本有一定要求,这里就是由于版本太低了,所以没有使用。 **解决方法:升级显卡驱动版本和CUDA版本** #### 一.升级显卡驱动版本 ##### 1.更新列表 ```shell sudo apt update ``` ##### 1.检查是否有较新版本的 NVIDIA 驱动程序可用 ``` shell sudo apt search '^nvidia-driver-*' ``` ##### 2.安装指定版本的驱动程序 ```shell sudo apt install nvidia-driver-530 ``` 只需要修改版本号就可以安装指定的驱动程序了 ##### 3.安装完成后,需要重启才能生效 ```shell sudo reboot ``` #### 二、升级CUDA版本 方法其实有多种,可以自行下载安装包,也可以通过命令行去安装,这里记录使用命令行直接下载安装包并安装的方式 ##### 1.先查看当前系统可以使用的CUDA版本及安装包:[CUDA Toolkit Archive | NVIDIA Developer](https://developer.nvidia.com/cuda-toolkit-archive) ##### 2.卸载旧版本 可以执行如下命令,但要注意,执行过后,`nvcc -V`和`nvidia-smi`命令均不能使用 ```shell # 使用runfile安装的 sudo /usr/local/cuda/bin/cuda-uninstaller # 使用apt方式安装的 sudo apt-get --purge remove *nvidia* ``` 注意在这种情况下,需要重新安装`nvidia driver`,一般而言,在后续安装cuda工具时,会默认安装与之对应的driver。 **卸载后,记得要重启一下服务器,避免不必要的麻烦** ##### 2.选择好相应版本后,可以通过`wget`直接下载工具包 ```shell wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run ``` ##### 3.安装工具包,只需要输入下载好的.run程序名称即可 ```shell sudo sh cuda__linux.run ``` ##### 出现下载的run文件无法执行的情况 可能原因是,文件没有执行权限,此时可以修改文件权限 ```shell chmod +x cuda_12.4.0_550.54.14_linux.run ``` 然后直接执行run文件 ```shell ./cuda_12.4.0_550.54.14_linux.run ``` 配置一个软链接`/usr/local/cuda`指向刚刚安装的版本 ```shell ln -s /usr/local/cuda-12.4 /usr/local/cuda ``` ##### 4.添加环境变量 在`~/.bashrc`文件中,添加如下语句: ```shell export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH ``` 保存后,执行如下命令,使环境变量生效 ```shell source ~/.bashrc ``` #### 三、查看最终结果 ```shell nvidia-smi ``` ```shell nvcc -V ``` 当看到如下信息时,表示安装成功 ```shell nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Tue_Feb_27_16:19:38_PST_2024 Cuda compilation tools, release 12.4, V12.4.99 Build cuda_12.4.r12.4/compiler.33961263_0 ``` 具体信息根据所安装的版本决定 ### 问题1: ![](D:\data\问题1.png) ### 关于模型的断点训练 现象:再模型训练中途,需要更换机器或是意外中断,由于每次训练都要很长时间,重新训练不太合适。 解决方法:断点继续训练,只需要在trainer.train()中添加参数 `resume_from_checkpoint=True`即可,在执行时,trainer会自动从最近的checkpoint处继续训练;也可以使用`resume_from_checkpoint="output_dir/last_checkpoint"`,可以指定训练的节点,trainer会从指定的checkpoint处开始继续训练 ### 本地下载大模型文件 #### 1.需要安装 git-lfs ##### windows下安装 ```shell git lfs install ``` ##### linux下安装 linux下安装方式比较复杂,是根据所使用操作系统版本决定的 ```shell # ubuntu版 sudo apt-get install git-lfs # centos版 sudo yum install git-lfs ``` 安装完成后,验证是否成功 ```shell git lfs install ``` 当显示如下提示时,表示安装成功 ``` Git LFS initialized ``` #### 2.使用git命令获取大模型文件 ```shell git clone https://huggingface.co/THUDM/chatglm3-6b.git ```