服务器模型部署与加载

服务器部署本地大模型

介绍

将大模型部署到服务器上,这是一种常见的方式,部署之前请检查一下服务器内存和模型加载内存是否符合,接下来,我们将介绍两种最常用的模型下载方式,分别是从huggingface和modelscope两个平台下载。

HuggingFace(国际主流)

python 复制代码
from huggingface_hub import snapshot_download
from transformers import file_utils
import os

# 设置缓存路径(可选,仅影响 from_pretrained 等方法)
file_utils.default_cache_path = "/你的缓存地址,用于从网页中下载模型"

# 指定下载到 /data1 的绝对路径
repo_id = "Qwen/模型版本号"
local_dir = "/模型下载存储的绝对地址"

# 确保目录存在
os.makedirs(local_dir, exist_ok=True)

# 下载模型
snapshot_download(
    repo_id=repo_id,
    local_dir=local_dir,
    force_download=True
)

print(f"模型已保存至:{local_dir}")

想要利用huggingface下载qwen模型只需要把代码中的中文部分替换成你的地址即可。

ModelScope(国内最常用)

python 复制代码
import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os

model_dir = snapshot_download('ZhipuAI/glm-4-9b-chat', cache_dir='/root/autodl-tmp', revision='master')
embedding_model_dir = snapshot_download('BAAI/bge-base-zh-v1.5', cache_dir='/root/autodl-tmp', revision='master')

模型加载

llama模型加载代码,修改地址后可直接使用

python 复制代码
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_path = "/你的模型地址/Llama-3.1-8B-Instruct"

tokenizer = AutoTokenizer.from_pretrained(
    model_path,
    local_files_only=True,
    trust_remote_code=True
)

model = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype=torch.float16,
    device_map="auto",
    local_files_only=True,
    trust_remote_code=True
)

messages = [
    {"role": "system", "content": "你是一个有帮助的AI助手"},
    {"role": "user", "content": "请简单介绍一下你自己。"}
]

prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=200,
        do_sample=True,
        temperature=0.7,
        top_p=0.9,
        eos_token_id=tokenizer.eos_token_id,
        pad_token_id=tokenizer.eos_token_id
    )

result = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(result)
相关推荐
猫头虎3 分钟前
一个插件,国内直接用Claude Opus 4.7
人工智能·langchain·开源·prompt·aigc·ai编程·agi
台XX5 分钟前
Ollama+其他模型仓库
人工智能
思绪无限11 分钟前
YOLOv5至YOLOv12升级:条形码二维码检测系统的设计与实现(完整代码+界面+数据集项目)
深度学习·yolo·目标检测·条形码二维码检测·yolov12·yolo全家桶
KC27014 分钟前
老板主动给我涨薪!揭秘制造业数字化转型省300万的3招
人工智能·aigc
ulias21225 分钟前
进程初识(1)
linux·运维·服务器·网络·c++
恒哥的爸爸29 分钟前
GPT原理笔记
人工智能·笔记·gpt
发发就是发29 分钟前
TTY子系统与线路规程:那个让我深夜抓狂的串口“丢包”问题
linux·服务器·驱动开发·单片机·嵌入式硬件
咚咚王者32 分钟前
人工智能之知识蒸馏 第五章 蒸馏优化技术:精度损失补偿方法
人工智能
Shingmc334 分钟前
【Linux】网络基础概念
linux·服务器·网络
kishu_iOS&AI41 分钟前
Pytorch —— 自动微分模块
人工智能·pytorch·python·深度学习·算法·线性回归