[大模型] 搭建llama主流大模型训练环境

关键词:大模型,LLAMA,CUDA,模型训练

1. 基础环境

OS: Ubuntu 18.04
GPU: 4*A100(40G) (单机4卡A100 40G)
CUDA:11.7
cuDNN: 8.4.1 (需要登录官网后下载)
nccl: 2.12.12 (需要登录官网后下载)
python: 3.10 (conda create -n vllm python=3.10)
pytorch: 2.0.0+cu117 离线安装包地址
LLaMA-7B/13B/30B/65B模型: 下载地址,需要安装ipfs,也可通过pyllama进行下载:

pip install pyllama -U
python -m llama.download --model_size 7B

实验模型: stanford_alpaca, standford_lora, Chinese-LLaMA-Alpaca

注意先安装cuDNN,再安装CUDA,使用nvidia-sminvcc -V查看是否安装成功。

2. 将原生llama模型转换为HF模型格式

  • 由于llama模型尚未合入官方transformers,需要从源码安装fork版本的tranformers以便进行llama模型格式转换与加载:

    git clone https://github.com/zphang/transformers.git
    cd transformers
    python setup.py install
    
  • 将llama-7B模型使用fork transformers版本转换为HF模型格式,转换后得到两个文件夹llama-7b和tokenizer

    python src/transformers/models/llama/convert_llama_weights_to_hf.py \
        --input_dir /data/xh/models/llama \
        --model_size 7B \
        --output_dir /data/xh/models/llama_hf
        
    #注意:在加载模型的时候,需要将tokenizer文件夹中的内容复制到llama-7b下
    cd /data/xh/models/llama_hf
    cp tokenizer/* llama-7b/
    

3. 基于llama模型进行再训练或finetuning

搭建好基础环境后,以llama_hf模型为基础,可以对衍生模型stanford_alpaca, standford_lora, Chinese-LLaMA-Alpaca继续进行预训练训练或进行finetuning训练了。

# 加载llama模型,注意使用fork版本的transformers
tokenizer = transformers.LlamaTokenizer.from_pretrained("/data/xh/models/llama_hf/tokenizer/")
model = transformers.LlamaForCausalLM.from_pretrained("/data/xh/models/llama_hf/llama-7b/")

参考
https://zhuanlan.zhihu.com/p/618321077

-------- END --------

### 本地大模型对话工具的实现方法与开源项目推荐 #### 工具概述 本地部署大模型对话工具有多种实现路径,主要依赖于硬件资源的选择以及软件框架的支持。对于希望在本地环境中运行大模型并构建对话系统的开发者来说,可以考虑使用专门设计用于本地部署的工具和平台[^1]。 #### 推荐工具 一种流行的本地部署解决方案是 **Ollama**,它提供了简单易用的接口来加载和运行各种预训练的语言模型。以下是 Ollama 的核心功能及其具体操作: - **快速启动**: 用户可以从 Github 项目的最新 release 下载安装包,并通过简单的命令完成初始化配置[^3]。 - **多模型支持**: 支持多个版本的 Llama 模型(如 `Llama2` 和其变体),同时也兼容其他主流架构下的模型。 - **便捷交互**: 提供 CLI 命令行界面方便用户测试不同参数设置下模型的表现情况;例如执行 `ollama run llama2` 即可调用指定模型进行实时问答。 此外,在 Linux 平台上还可以利用 Docker 容器技术或者 Systemd 服务管理机制进一步优化长期稳定性的需求场景[^2]。 #### 技术细节说明 为了确保高效稳定的性能表现,建议遵循以下原则: - **硬件准备**: 足够强大的 GPU 是加速推理过程的关键因素之一。如果预算有限,则需权衡计算能力和存储空间之间的关系以选取最合适的设备型号。 - **环境搭建**: 根据官方文档指示逐步完成必要的依赖项安装工作,同时注意调整相关超参数值以便更好地适配特定应用场景的需求特点。 下面展示一段 Python 示例代码片段用来演示如何借助 FastAPI 构建 RESTful API 来封装上述提到的服务端逻辑部分: ```python from fastapi import FastAPI, Request import subprocess app = FastAPI() @app.post("/predict/") async def predict(request: Request): data = await request.json() prompt = data.get('prompt', '') result = subprocess.run(['ollama', 'run', '-m', 'llama2', '--interactive=false'], input=prompt.encode(), stdout=subprocess.PIPE) response_text = result.stdout.decode().strip() return {"response": response_text} ``` 此脚本允许外部客户端发送 POST 请求至 `/predict/` 地址携带 JSON 数据格式的消息体内容作为输入序列传递给底层绑定好的 NLP engine 实现自动化回复流程处理。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值