服务器模型部署与加载

服务器部署本地大模型

介绍

将大模型部署到服务器上,这是一种常见的方式,部署之前请检查一下服务器内存和模型加载内存是否符合,接下来,我们将介绍两种最常用的模型下载方式,分别是从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)
相关推荐
一知半解仙6 小时前
大国博弈与机器人纪元:我们正站在怎样的历史拐点?
大数据·人工智能·机器人
qpsj6 小时前
DeepSeek 缓存命中涨价 12 倍:4 个改动,账单回到涨价前
人工智能·llm
哈尔ai6 小时前
分布式锁没有失效:真正危险的是锁与事务的提交边界
人工智能
哈尔ai6 小时前
JavaScript 异步竞态治理:先定义谁能写,再谈取消请求
人工智能
jinggongszh6 小时前
MES\WMS软件前端开发工程师:与AI协同前行,解锁前端开发新范式
人工智能·前端开发·开发工程师·制造业转型
亚古数据6 小时前
亚古数据:新西兰公司工商报告Company Extract全解析
大数据·人工智能
Titan20246 小时前
Linux网络基础知识
linux·服务器·网络·c++·学习
AKAMAI6 小时前
Akamai Cloud Pulse 审计日志现已全面开放使用
人工智能·云计算
皮皮蟹虾饺6 小时前
NCCL 源码解析:通信器从出生到消亡的完整一生
linux·人工智能·ubuntu·语言模型·kubernetes
m4Rk_6 小时前
【论文阅读】Agent 记忆机制(41):Agentic Plan Caching——将历史执行轨迹转化为可复用的计划记忆
论文阅读·人工智能·学习·开源·github