当前位置:   article > 正文

4.Windows11 with WSL2 Ubuntu运行Qwen2-7B_ubuntu 使 ollama 运行 qwen2:7b 模型

ubuntu 使 ollama 运行 qwen2:7b 模型

目录:

        一. 前言

        二. 系统环境

        三. 新建虚拟环境

        四. 安装依赖库

        五. 下载模型文件

        六. 运行大模型

一. 前言

本次介绍如何在Ubuntu子系统下,使用python代码运行Qwen2-7B开源大模型。

二. 系统环境

  • 操作系统:Windows 11 23H2
  • 子系统:Ubuntu 22.04
  • 显卡: Nvidia RTX 4090
  • minicoda: v24.5

三. 新建虚拟环境

PowerShell执行wsl,进入子系统,子系统内执行:

  1. conda create -n qwen2-7b python=3.10
  2. conda activate qwen2-7b

 conda安装请参考:3.Windows11 with WSL2 Ubuntu 子系统下安装minicoda-CSDN博客

四. 安装依赖库

先设置pip镜像源为清华源

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装依赖

  1. pip install torch torchvision torchaudio
  2. pip install transformers
  3. pip install modelscope
  4. pip install accelerate

五. 下载模型文件

1. 新建一个工作目录

比如:/mnt/e/llm/qwen2-7b

子系统中的 /mnt/e/ 目录指向的是Windows11中的E盘

2. 新建一个download.py文件

代码如下:

  1. # 模型下载
  2. from modelscope import snapshot_download
  3. model_dir = snapshot_download('qwen/Qwen2-7B-Instruct', cache_dir='/mnt/e/llm/qwen2-7b/models')

注意:修改cache_dir参数为你本地的真实路径

3. 执行python文件,开始下载

python download.py

输出:

六. 运行大模型

注意:代码中有两处模型目录: /mnt/e/...,替换为你自己的

新建run.py,代码如下:

  1. from modelscope import AutoModelForCausalLM, AutoTokenizer
  2. device = "cuda" # the device to load the model onto
  3. model = AutoModelForCausalLM.from_pretrained(
  4. "/mnt/e/llm/qwen2-7b/models/Qwen/Qwen2-7B-Instruct",
  5. torch_dtype="auto",
  6. device_map="auto"
  7. )
  8. tokenizer = AutoTokenizer.from_pretrained("/mnt/e/llm/qwen2-7b/models/Qwen/Qwen2-7B-Instruct")
  9. prompt = "请介绍一下钱学森"
  10. messages = [
  11. {"role": "system", "content": "You are a helpful assistant."},
  12. {"role": "user", "content": prompt}
  13. ]
  14. text = tokenizer.apply_chat_template(
  15. messages,
  16. tokenize=False,
  17. add_generation_prompt=True
  18. )
  19. model_inputs = tokenizer([text], return_tensors="pt").to(device)
  20. generated_ids = model.generate(
  21. model_inputs.input_ids,
  22. max_new_tokens=512
  23. )
  24. generated_ids = [
  25. output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
  26. ]
  27. response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
  28. print(response)

运行:

python run.py

代码会先加载模型,然后推理,需要等待一段时间,如图输出,成功了

参考网址:

魔搭社区

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/872701
推荐阅读
相关标签
  

闽ICP备14008679号