• 下载LLM


    0.导入相关依赖

    1. # 升级pip
    2. python -m pip install --upgrade pip
    3. # 下载速度慢可以考虑一下更换镜像源。
    4. # -i https://pypi.tuna.tsinghua.edu.cn/simple
    5. pip install modelscope==1.9.5
    6. pip install transformers==4.35.2
    7. pip install streamlit==1.24.0
    8. pip install sentencepiece==0.1.99
    9. pip install accelerate==0.24.1

    1.通过snapshot_download函数。这是魔塔提供的函数

    1. import torch
    2. from modelscope import snapshot_download, AutoTokenizer, AutoModelForCausalLM
    3. import os
    4. model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm-20b', cache_dir='/root/zyc/internlm', revision='v1.0.2')
    5. tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
    6. torch_dtype=torch.bfloat16
    7. model = AutoModelForCausalLM.from_pretrained(model_dir, torch_dtype=torch.bfloat16, trust_remote_code=True).cuda()
    8. model = model.eval()
    9. inputs = tokenizer(["来到美丽的大自然,我们发现"], return_tensors="pt")
    10. for k,v in inputs.items():
    11. inputs[k] = v.cuda()
    12. gen_kwargs = {"max_length": 128, "top_p": 0.8, "temperature": 0.8, "do_sample": True, "repetition_penalty": 1.05}
    13. output = model.generate(**inputs, **gen_kwargs)
    14. output = tokenizer.decode(output[0].tolist(), skip_special_tokens=True)
    15. print(output)

    2.通过huggingface下载,这是外网

    ①配置环境(每次使用前都需要)

    export HF_ENDPOINT="https://hf-mirror.com"

    ②huggingface-cli使用之前需要登陆

    1. huggingface-cli login
    2. #输入token

    ③下载huggingface插件

    pip install -U huggingface_hub

    ④下载加速插件

    pip install -U hf-transfer

    ⑤下载模型

    huggingface-cli download --resume-download id-or-name> --cache-dir /path/to/cache

    3.通过大模型做一个flask问答接口

    1. from flask import Flask, request, jsonify
    2. import torch
    3. from modelscope import snapshot_download, AutoTokenizer, AutoModelForCausalLM
    4. app = Flask(__name__)
    5. model_dir = 'model_path'
    6. tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
    7. torch_dtype = torch.bfloat16
    8. model = AutoModelForCausalLM.from_pretrained(model_dir, torch_dtype=torch.bfloat16, trust_remote_code=True).cuda()
    9. model = model.eval()
    10. app.model_loaded = True
    11. @app.route('/generate_text', methods=['POST'])
    12. def generate_text():
    13. data = request.get_json() # 假设客户端发送的是JSON格式的数据
    14. if not data or 'prompt' not in data:
    15. return jsonify({"error": "缺少prompt参数"}), 400
    16. prompt = data['prompt']
    17. inputs = tokenizer([prompt], return_tensors="pt")
    18. for k, v in inputs.items():
    19. inputs[k] = v.cuda()
    20. gen_kwargs = {
    21. "max_length": 128,
    22. "top_p": 0.8,
    23. "temperature": 0.8,
    24. "do_sample": True,
    25. "repetition_penalty": 1.05
    26. }
    27. output = model.generate(**inputs, **gen_kwargs)
    28. generated_text = tokenizer.decode(output[0].tolist(), skip_special_tokens=True)
    29. return jsonify({"generated_text": generated_text})
    30. if __name__ == '__main__':
    31. app.run(host='0.0.0.0', port=8848 ,debug=True)

    4.conda镜像配置

    1. #展示所有镜像源
    2. conda config --show channels
    3. #删除镜像源
    4. conda config --remove channels xxx
    5. #配置清华源
    6. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
    7. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    8. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    9. conda config --set show_channel_urls yes
    10. #单次下载时指定镜像源
    11. conda install -c url 包名

    5.加载cuda

    这里要介绍一下环境模块管理工具。环境模块是一种工具,允许用户管理和控制其软件环境。例如使用Lmod,管理工具使用module命令。

    1. # 列出所有可用的模块
    2. module avail
    3. # 加载特定版本的 CUDA
    4. module load cuda/11.4
    5. # 卸载当前加载的 CUDA 模块
    6. module unload cuda/11.4
    7. # 列出当前加载的所有模块
    8. module list
    9. # 显示有关特定模块的帮助信息
    10. module help cuda/11.4
    11. # 显示加载指定模块时设置的环境变量和其他信息
    12. module show cuda/11.4

    6.对cuda的理解

    cuda分驱动程序和工具包,通常驱动程序版本可以大于工具包版本。torch与cuda版本匹配指的是与cuda工具包版本匹配。

    1. #查看cuda驱动和gpu使用信息
    2. nvidia-smi
    3. #查看cuda工具版本
    4. nvcc --version

    7.报错解决:driver initialization failed, you might not have a CUDA gpu.

    最近学校机房搬迁,重装了cuda,再次运行gpu任务时一直报错,了解到cuda驱动有一个重要的环境变量CUDA_VISIBLE_DEVICES,这个变量用来控制gpu对cuda的可见性。

    1. # 示例设置,索引0167块gpu对cuda可见,可以写入到个人配置文件中,这样每次连接服务器自动执行命令
    2. export CUDA_VISIBLE_DEVICES=0,1,6,7
    3. # 当然,也别忘了刷新配置文件
    4. source ./xxx

  • 相关阅读:
    软件报错msvcr120.dll丢失怎么办?五个有效修复方法分享
    pip 指定源
    学习小结,学而时习之,坚持学习之,温顾学习之
    Golang专题——fsnotify 文件及目录监控
    11月12日,一起见证关于边缘计算的顶级盛宴
    具备什么价值的安全数据交换系统,是企业真正需要的?
    治疗消化性溃疡—Toronto Research Chemicals 甘氨酸铝
    32位单片机越来越多人用?简单跟上科技趋势
    centos7下升级gcc版本
    1000元订金?华为折叠屏手机MateX5今日开始预订,售价尚未公布
  • 原文地址:https://blog.csdn.net/nlhkfcdxb/article/details/138399398