在本地Windows机器加载大模型并生成内容

news2025/3/26 10:30:15

本篇演示在本地机器下载和加载大模型并获取AI产生的内容。简单起见,使用的大模型是Qwen2.5-0.5B-Instruct,整个模型的所有文件不到1G。

Qwen2.5-0.5B-Instruct 是阿里巴巴云 QWen 团队基于 Transformer 架构开发的轻量级指令调优语言模型,专为资源有限场景设计。

环境准备

  • OS: Windows 10
  • 开发IDE : VS Code
  • Python: 3.11

Python库安装步骤:

  1. 安装TensorFlow
pip install tensorflow

TensorFlow 是 Google 开发的开源深度学习框架,提供灵活高效的模型构建、训练与部署能力,支持多平台应用与大规模机器学习任务。

  1. 安装PyTorch
pip install torch

PyTorch 是由 Facebook 人工智能研究院(FAIR)研发的开源深度学习框架,以动态计算图、易用接口和强大的自动求导功能为核心,助力快速迭代研究与灵活模型开发。

  1. 安装accelerate
pip install accelerate

Accelerate 是 Hugging Face 推出的深度学习优化库,通过简化分布式训练、混合精度计算及硬件加速(如 GPU/TPU)的集成,显著提升模型训练效率与资源利用率。

  1. 安装modelscope

ModelScope 的 Python 库是阿里开发的一个功能强大的工具,旨在帮助开发者更方便地使用和管理机器学习模型,尤其是预训练模型。

编写代码

这里的代码是让 Qwen2.5-0.5B-Instruct 完成一个Java的闰年计算的编码任务:

from modelscope import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen2.5-0.5B-Instruct"

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

input_text = "请完成一个Java的计算闰年的函数,不需要任何解释性的内容,只需要输出代码就可以"
messages = [
    {"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},
    {"role": "user", "content": input_text}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

# Use `max_new_tokens` to control the maximum output length.
generated_ids = model.generate(model_inputs.input_ids, max_new_tokens=1024, do_sample=False)[0]
# The generated_ids include prompt_ids, so we only need to decode the tokens after prompt_ids.
output_text = tokenizer.decode(generated_ids[len(model_inputs.input_ids[0]):], skip_special_tokens=True)

print(f"Prompt: {input_text}\n\nGenerated text: {output_text}")
  • 代码运行首先会下载模型文件
  • 下载完成之后就会加载模型并且生成结果了。

执行后的结果如下:

问题解决

如果不是严格按照上述步骤执行的话,运行过程的可能会有如下问题,可以参照解决。

1 . cannot import name ‘AutoModelForCausalLM’ from ‘modelscope’

详细的错误信息如下:

PS D:\devworkspace\vs\ai_ency\ai_python_ency> & d:/devworkspace/vs/ai_ency/ai_python_ency/.conda/python.exe d:/devworkspace/vs/ai_ency/ai_python_ency/qwen/quickstart/Qwen2.5-Coder-0.5B.py
Traceback (most recent call last):
  File "d:\devworkspace\vs\ai_ency\ai_python_ency\qwen\quickstart\Qwen2.5-Coder-0.5B.py", line 1, in <module>
    from modelscope import AutoModelForCausalLM, AutoTokenizer
ImportError: cannot import name 'AutoModelForCausalLM' from 'modelscope' (D:\devworkspace\vs\ai_ency\ai_python_ency\.conda\Lib\site-packages\modelscope\__init__.py)    

这个问题比较难发现,错误信息的提示比较不明确, 原因其实是没有安装 TensorFlow 或者TensorFlow 的版本过低。

解决方法,安装会升级TensorFlow

2.None of PyTorch, TensorFlow >= 2.0, or Flax have been found.
PS D:\devworkspace\vs\ai_ency\ai_python_ency> & d:/devworkspace/vs/ai_ency/ai_python_ency/.conda/python.exe d:/devworkspace/vs/ai_ency/ai_python_ency/qwen/quickstart/Qwen2.5-Coder-0.5B.py
None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
Traceback (most recent call last):
  File "d:\devworkspace\vs\ai_ency\ai_python_ency\qwen\quickstart\Qwen2.5-Coder-0.5B.py", line 2, in <module>
    from modelscope import AutoModelForCausalLM, AutoTokenizer
ImportError: cannot import name 'AutoModelForCausalLM' from 'modelscope' (D:\devworkspace\vs\ai_ency\ai_python_ency\.conda\Lib\site-packages\modelscope\__init__.py)   

这里同样是有 ImportError: cannot import name ‘AutoModelForCausalLM’ 的提示,但是同时会提示 None of PyTorch, 很明显就是缺少了PyTorch。

注意,安装的命令是:

pip install torch
3.ImportError: Using low_cpu_mem_usage=True, a device_map or a tp_plan requires Accelerate: pip install 'accelerate>=0.26.0'
Downloading Model from https://www.modelscope.cn to directory: D:\ai\modelscope\cache\models\Qwen\Qwen2.5-0.5B-Instruct
2025-03-25 21:11:49,487 - modelscope - WARNING - Using branch: master as version is unstable, use with caution
2025-03-25 21:11:49,961 - modelscope - INFO - Creating symbolic link [D:\ai\modelscope\cache\models\Qwen\Qwen2.5-0.5B-Instruct].
2025-03-25 21:11:49,962 - modelscope - WARNING - Failed to create symbolic link D:\ai\modelscope\cache\models\Qwen\Qwen2.5-0.5B-Instruct for D:\ai\modelscope\cache\models\Qwen\Qwen2.5-0.5B-Instruct\Qwen\Qwen2___5-0___5B-Instruct.
Traceback (most recent call last):
  File "d:\devworkspace\vs\ai_ency\ai_python_ency\qwen\quickstart\Qwen2.5-Coder-0.5B.py", line 6, in <module>
    model = AutoModelForCausalLM.from_pretrained(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\devworkspace\vs\ai_ency\ai_python_ency\.conda\Lib\site-packages\modelscope\utils\hf_util\patcher.py", line 230, in from_pretrained
    module_obj = module_class.from_pretrained(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\devworkspace\vs\ai_ency\ai_python_ency\.conda\Lib\site-packages\transformers\models\auto\auto_factory.py", line 573, in from_pretrained
    return model_class.from_pretrained(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\devworkspace\vs\ai_ency\ai_python_ency\.conda\Lib\site-packages\transformers\modeling_utils.py", line 272, in _wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "D:\devworkspace\vs\ai_ency\ai_python_ency\.conda\Lib\site-packages\transformers\modeling_utils.py", line 4203, in from_pretrained
    raise ImportError(
ImportError: Using `low_cpu_mem_usage=True`, a `device_map` or a `tp_plan` requires Accelerate: `pip install 'accelerate>=0.26.0'`

这个提示也很明显,安装accelerate 就可以了。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2321910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

热门面试题第14天|Leetcode 513找树左下角的值 112 113 路径总和 105 106 从中序与后序遍历序列构造二叉树 (及其扩展形式)以一敌二

找树左下角的值 本题递归偏难&#xff0c;反而迭代简单属于模板题&#xff0c; 两种方法掌握一下 题目链接/文章讲解/视频讲解&#xff1a;https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html 我们来分析一下题目&#…

【计算机网络】-计算机网络期末复习题复习资料

一、计算机网络体系结构&#xff08;800字&#xff09; 1. OSI参考模型 七层结构&#xff1a;物理层→数据链路层→网络层→传输层→会话层→表示层→应用层 各层核心功能&#xff1a; 物理层&#xff1a;比特流传输&#xff08;如RJ45、光纤接口&#xff09; 数据链路层&…

批归一化(Batch Normalization)与层归一化(Layer Normalization)的区别与联系

文章目录 一、Batch normalization 理论与应用1. 理论解释2. 数值例子 二、Layer normalization 理论与应用1. 理论解释2. 数值例子 三、Layer Normalization 和 Batch Normalization 的区别四、《Transformers without Normalization》笔记 一、Batch normalization 理论与应用…

12届蓝桥杯—货物摆放

货物摆放 题目描述 小蓝有一个超大的仓库&#xff0c;可以摆放很多货物。 现在&#xff0c;小蓝有 nn 箱货物要摆放在仓库&#xff0c;每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向&#xff0c;每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所…

c++进阶--哈希表的实现

大家好&#xff0c;今天我们来学习ubordered_set和unordered_map的底层哈希表。 目录 哈希表实现 1. 哈希概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因⼦ 1.4 将关键字转为整数 1.5 哈希函数 下面我们介绍几种哈希函数&#xff1a;1.5.1 除法散列法/除留余数法 1.…

颠覆传统:SaaS 品牌如何通过 SEO 策略引爆市场!

SaaS 商业模式提供了令人难以置信的可扩展性和盈利能力——但前提是与正确的营销增长策略相结合。 SaaS 品牌知道&#xff0c;托管基于云的应用程序的成本会随着用户量的增加而降低&#xff0c;因此必须专注于订阅者的快速增长&#xff0c;以保持竞争力并降低成本。 许多 CMO…

特殊行车记录仪DAT视频丢失的恢复方法

行车记录仪是一种常见的车载记录仪&#xff0c;和常见的“小巧玲珑”的行车记录仪不同&#xff0c;一些特种车辆使用的记录仪的外观可以用“笨重”来形容。下边我们来看看特种车载行车记录仪删除文件后的恢复方法。 故障存储: 120GB存储设备/文件系统:exFAT /簇大小:128KB 故…

数据库中不存在该字段

mybatisplus 定义的类中某些字段是数据库里面没有的&#xff0c;我们可用tablefield(existfalse)来注解&#xff0c;演示如下&#xff1a;

吾爱出品,文件分类助手,高效管理您的 PC 资源库

在日常使用电脑的过程中&#xff0c;文件杂乱无章常常让人感到困扰。无论是桌面堆积如山的快捷方式&#xff0c;还是硬盘中混乱的音频、视频、文档等资源&#xff0c;都急需一种高效的整理方法。文件分类助手应运而生&#xff0c;它是一款文件管理工具&#xff0c;能够快速、智…

关于瑞芯微开发工具(RKDevTool)刷机下载Boot失败原因的研究

昨天发了文章《网心云OEC/OEC-turbo刷机问题——刷机教程、救砖方法、技术要点及下载boot失败异常解决尝试》&#xff0c;其中有关于刷机各种问题的一些解决方法。 网心云OEC/OEC-turbo刷机问题——刷机教程、救砖方法、技术要点及下载boot失败异常解决尝试-CSDN博客文章浏览阅…

web爬虫笔记:js逆向案例十一 某数cookie(补环境流程)

web爬虫笔记:js逆向案例十一 某数cookie(补环境流程) 一、获取网页数据请求流程 二、目标网址、cookie生成(逐步分析) 1、目标网址:aHR0cHM6Ly9zdWdoLnN6dS5lZHUuY24vSHRtbC9OZXdzL0NvbHVtbnMvNy9JbmRleC5odG1s 2、快速定位入口方法 1、通过脚本监听、hook_cookie等操作可…

Excel多级联动下拉菜单的自动化设置(使用Python中的openpyxl模块)

1 主要目的 在Excel中&#xff0c;经常会遇到需要制作多级联动下拉菜单的情况&#xff0c;要求单元格内填写的内容只能从指定的多个选项中进行选择&#xff0c;并且需要设置多级目录&#xff0c;其中下级目录的选项内容要根据上级目录的填写内容确定&#xff0c;如下图所示&am…

excalidraw画图工具——背景画布有无格子设置

服啦找了大半天&#xff0c;愣是没找到 toggle grid &#xff1a; 切换格子… Excalidraw的背景格子 只要右键&#xff0c;将这个勾取消就好了&#xff1f;

计算机组成原理———I\O系统精讲<1>

本篇文章主要介绍输入输出系统的发展概况 一.输入输出系统的发展概况 1.早期阶段 该阶段的特点是I/O设备与主存交换信息都必须通过CPU 当时的I/O设备有如下几个特点&#xff1a; &#xff08;1&#xff09;每个I\O设备都必须配有一套独立的逻辑电路与CPU相连&#xff0c;用来…

ENSP学习day9

ACL访问控制列表实验 ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xff09;是一种用于控制用户或系统对资源&#xff08;如文件、文件夹、网络等&#xff09;访问权限的机制。通过ACL&#xff0c;系统管理员可以定义哪些用户或系统可以访问特定资源&#x…

【C++动态规划 数学】1039. 多边形三角剖分的最低得分|2130

本文涉及知识点 C动态规划 数学 LeetCode1039. 多边形三角剖分的最低得分 你有一个凸的 n 边形&#xff0c;其每个顶点都有一个整数值。给定一个整数数组 values &#xff0c;其中 values[i] 是第 i 个顶点的值&#xff08;即 顺时针顺序 &#xff09;。 假设将多边形 剖分 …

5.go切片和map

切片的概念 数组和切片相比较切片的长度是不固定的&#xff0c;可以追加元素&#xff0c;在追加时可能会使切片的容量增大&#xff0c;所以可以将切片理解成 "动态数组"&#xff0c;但是&#xff0c;它不是数组&#xff0c;而是构建在数组基础上的更高级的数据结构。…

【Linux网络-多路转接select】

代码&#xff1a;https://gitee.com/nanyi-c/linux/tree/master/day50 一、I/O多路转接之select 1.初始select 系统提供select函数来实现多路复用输入/输出模型 select系统调用是用来让我们的程序监视多个文件描述符的状态变化的程序会停在select这里等待&#xff0c;直到被…

cmd命令查看电脑的CPU、内存、存储量

目录 获取计算机硬件的相关信息的命令分别的功能结果展示结果说明获取计算机硬件的相关信息的命令 wmic cpu get name wmic memorychip get capacity wmic diskdrive get model,size,mediaType分别的功能 获取计算机中央处理器(CPU)的名称 获取计算机内存(RAM)芯片的容量…

LVS的 NAT 模式实现 3 台RS的轮询访问

使用LVS的 NAT 模式实现 3 台RS的轮询访问 1.配置 RS&#xff08;NAT模式&#xff09;2. 配置 LVS 主机&#xff08;仅主机、NAT模式&#xff09;2.1 配置仅主机网卡&#xff08;192.168.66.150/24 VIP &#xff09;2.2 配置 NAT 网卡&#xff08;192.168.88.6/24 DIP&#xff…