重新拾起huggingface工具使用,之前一直卡在无法下载大模型这个地方,放弃了很久,在千问的帮助下,昨天重新在个人电脑,windows上安装开发环境,一路都比较顺利,某些工具需要在linux下用,这时候就需要用到wsl
要创建一个新的Python环境并安装能够使用Hugging Face库(如transformers)的工具,你可以按照以下步骤操作。这里假设你已经安装了Anaconda或Miniconda。
步骤 1: 创建新的Conda环境
首先,打开终端(Terminal)或者命令提示符(Command Prompt),然后输入以下命令来创建一个新的Conda环境。在这个例子中,我将环境命名为huggingface_env,并且指定Python版本为3.11,但你可以根据需要调整Python版本。
conda create --name huggingface_env python=3.11
步骤 2: 激活新创建的环境
创建完成后,你需要激活这个环境:
conda activate huggingface_env
激活后,你的命令行前面应该会显示(huggingface_env),表示当前处于这个环境中。
步骤 3: 安装必要的包
接下来,在激活的环境中安装Hugging Face的transformers库以及可能需要的其他依赖项。通常,你也需要安装torch或tensorflow,取决于你计划如何使用这些模型。
安装transformers库
pip install transformers
安装PyTorch
在这里必须按照官方网站上的安装指令,
https://pytorch.org/
https://pytorch.org/get-started/locally/
安装指令:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
原机器已经装好cuda,显卡是GeForce RTX 3050,上一次尝试huggingface的时候并不知道pytorch并不支持12.6,所以安装失败
如果你打算使用基于PyTorch的模型,可以通过下面的命令安装PyTorch。请访问PyTorch官网获取适合你系统的具体安装命令。这里提供一个通用的例子:
pip install torch torchvision torchaudio
安装TensorFlow
如果偏好TensorFlow,则可以这样安装:
pip install tensorflow
注意:有时你可能需要先更新pip到最新版本以避免安装过程中出现的问题:
pip install --upgrade pip
步骤 4: 验证安装
最后,确保一切安装正确。你可以在激活的环境中启动Python解释器,并尝试导入transformers来检查是否安装成功:
>>> from transformers import pipeline
>>> print(pipeline('sentiment-analysis')("I love using Hugging Face!"))
如果没有报错,并且能正常运行,说明环境配置成功。
通过上述步骤,你就创建了一个新的Conda环境,并成功安装了使用Hugging Face相关库所需的所有软件包。现在,你可以开始探索和使用Hugging Face提供的各种预训练模型了。
步骤4在国内是无法正常运行的,因为没有指定大模型,会默认从huggingface上下载,只能先从网上下载下来,使用离线大模型包
于是按照hf mirror镜像网站安装,这里需要注意,下载可以使用网页下载,IDM(windows平台下载工具),huggingface_cli,hfd工具下载
https://hf-mirror.com/首页上已经写得很清楚,第一次我使用huggingface_cli下载,这个是需要在pip下下载使用,并且需要设置环境变量,
这个工具并不方便,时常有下载中断的问题出现,倒腾了一上午,只下载了gpt2作为示例大模型,实在受不了,
下载指令:
conda activate huggingface_env
huggingface-cli download --resume-download nlptown/bert-base-multilingual-uncased-sentiment --local-dir nlptown
huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local-dir deepseek-r1-Qwen-1.5B
尝试了使用hfd,注意,这个工具在windows下非常不方便使用,在linux下是很方便的,它只有一个脚本,配合wsl就能很方便地使用hfd,使用它前需要下载aria2,
sudo apt install aria2,
中途遇到apt无法连接服务器问题,更新了一下apt
按照官网指示同样需要设置环境变量,但这次没有设置,配置好hfd后,直接下载
./hfd.sh deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
DeepSeek-R1-Distill-Qwen-1.5B约3.3GB,下载了几个小时,
最终结果:
环境安装部署好后编写测试代码
gpt2:
from transformers import AutoModelForCausalLM, AutoTokenizer
# 指定模型名称或路径
model_name_or_path = "H:/huggingface_model/gpt2" # 使用预训练的GPT-2模型
#model_name_or_path = "X:/huggingface_model/DeepSeek-R1-Distill-Qwen-1.5B"
# 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path)
# 定义输入提示
prompt_text = "Once upon a time in a magical forest,"
# 将输入提示编码为模型可以理解的形式
input_ids = tokenizer.encode(prompt_text, return_tensors='pt')
# 生成文本
output_sequences = model.generate(
input_ids=input_ids,
max_length=1024, # 控制生成的最大长度
temperature=0.8, # 控制输出的随机性,值越低越确定
top_k=50, # 只考虑最有可能的50个单词
top_p=0.95, # 累积概率超过这个值的单词会被考虑
repetition_penalty=1.0, # 处理重复词汇的惩罚系数
do_sample=True, # 是否采样以增加多样性
)
# 解码生成的序列
generated_story = tokenizer.decode(output_sequences[0], skip_special_tokens=True)
print("Generated Story: ")
print(generated_story)
使用deepseek大模型的时候,遇到了问题,需要安装accelerate
import torch
import transformers
from accelerate import Accelerator # 导入 accelerate 库
# 检查是否有可用的 GPU
device = "cuda" if torch.cuda.is_available() else "cpu"
print(f"Using device: {device}")
# 模型路径
model_id = "D:/DevKit/huggingface_model/DeepSeek-R1-Distill-Qwen-1.5B"
# 创建 pipeline,并指定使用 GPU
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto" # 自动分配 GPU 设备
)
# 输入消息
message = [
{
"role": "user",
"content": "请问llama.cpp的main主入口函数在哪里?"
}
]
# 生成文本
outputs = pipeline(
message,
max_new_tokens=4096
)
# 打印生成的文本
print(outputs[0]["generated_text"][1])
成功调用!