模型文件:
文件名 | 大小 |
---|---|
.gitattributes | 1.52 kB |
LICENSE | 7.63 kB |
README.md | 44 kB |
USE_POLICY.md | 4.69 kB |
config.json | 855 Bytes |
generation_config.json | 184 Bytes |
model-00001-of-00004.safetensors | 4.98 GB |
model-00002-of-00004.safetensors | 5 GB |
model-00003-of-00004.safetensors | 4.92 GB |
model-00004-of-00004.safetensors | 1.17 GB |
model.safetensors.index.json | 24 kB |
special_tokens_map.json | 296 Bytes |
tokenizer.json | 9.09 MB |
tokenizer_config.json | 55.4 kB |
模型总大小:
总大小约为16.18 GB。
本地运行环境标准评估:
存储需求:
- 至少需要 20 GB的可用存储空间来存储模型文件。
内存需求:
- 运行如此大的模型可能需要不低于16GB的内存。
计算需求:
- 处理大型语言模型需要强大的计算能力,特别是如果需要进行实时推理或生成。
- CPU:大于16GB的内存,32GB不错。
- GPU:对于加速模型训练和推理,GPU是必需的。
软件需求:
- 可能需要特定的库和框架来加载和运行模型,如PyTorch、Transformers等。
- 这些库和框架可能需要特定版本的操作系统、编译器和其他依赖项。
- 还需要安装与GPU兼容的CUDA和cuDNN库(如果使用NVIDIA GPU)。
测试案例:
import transformers
import torch
from accelerate import init_empty_weights, load_checkpoint_and_dispatch
import os
import time
model_path = r"D:\Meta-Llama-3.1-8B-Instruct"
offload_folder = r"D:\offload_folder"
os.makedirs(offload_folder, exist_ok=True)
if torch.cuda.is_available():
device = 0
torch_dtype = torch.float16
else:
device = -1
torch_dtype = torch.float32
with init_empty_weights():
model = transformers.AutoModelForCausalLM.from_config(transformers.AutoConfig.from_pretrained(model_path))
start_time = time.time()
model = load_checkpoint_and_dispatch(
model,
model_path,
device_map="auto",
dtype=torch_dtype,
offload_folder=offload_folder,
offload_state_dict=True
)
end_time = time.time()
print(f"Checkpoint loaded and dispatched in {end_time - start_time:.2f} seconds.")
pipeline = transformers.pipeline(
"text-generation",
model=model,
tokenizer=model_path
)
system_message = "You are an AI-powered writing assistant capable of creating insightful analyses!"
user_message = "Please help me write an analysis on the necessity of using AI technology for SEO innovation."
input_text = f"{system_message}\nUser: {user_message}\nAI Writing Assistant:"
with torch.no_grad():
outputs = pipeline(
input_text,
max_new_tokens=50,
num_beams=1,
do_sample=True,
top_k=50,
temperature=0.7
)
generated_text = outputs[0]["generated_text"]
print(generated_text)
file_path = r"D:\laomaotest\generated_text.txt"
os.makedirs(os.path.dirname(file_path), exist_ok=True)
with open(file_path, "w", encoding="utf-8") as file:
file.write(generated_text)
print(f"Generated text saved to {file_path}.")
测试用例解读:
- 导入必要的库:
transformers
:用于加载和运行预训练的语言模型。torch
:PyTorch库,用于深度学习计算。accelerate
:用于优化模型加载和运行的库,支持多GPU和CPU卸载。os
和time
:用于文件操作和计时。
- 设置模型路径和卸载文件夹:
- 指定模型存储的路径和用于卸载模型权重的文件夹。
- 检查CUDA可用性并设置设备:
- 根据CUDA可用性选择设备(GPU或CPU)和数据类型(
float16
或float32
)。
- 根据CUDA可用性选择设备(GPU或CPU)和数据类型(
- 加载模型配置并初始化空权重:
- 使用
transformers
的AutoModelForCausalLM.from_config
和AutoConfig.from_pretrained
加载模型配置。 - 使用
init_empty_weights
上下文管理器初始化模型权重。
- 使用
- 加载并分发模型权重:
- 使用
load_checkpoint_and_dispatch
函数加载模型权重,并根据设备映射分发权重。
- 使用
- 创建文本生成管道:
- 使用
transformers.pipeline
创建一个文本生成管道,指定模型、分词器和任务类型(”text-generation”)。
- 使用
- 定义输入文本和系统消息:
- 设置系统消息和用户消息,用于生成文本的上下文。
- 生成文本:
- 使用管道生成文本,指定最大新令牌数、束搜索数量、采样设置等。
- 保存生成的文本:
- 将生成的文本保存到指定的文件路径。
- 打印消息:
- 打印加载模型的时间、生成的文本和保存文件的位置。
发表回复