服务器模型部署与加载

服务器部署本地大模型

介绍

将大模型部署到服务器上,这是一种常见的方式,部署之前请检查一下服务器内存和模型加载内存是否符合,接下来,我们将介绍两种最常用的模型下载方式,分别是从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)
相关推荐
yoso2 小时前
告别频繁切窗口!用命令行玩转企业微信-cli的七大核心功能
人工智能
木木em哈哈2 小时前
记一次在线编辑器的探索
linux·服务器·网络
用户69371750013843 小时前
Google 推 AppFunctions:手机上的 AI 终于能自己干活了
android·前端·人工智能
章鱼丸-3 小时前
DAY41简单 CNN
人工智能·深度学习·cnn
我要成为嵌入式大佬3 小时前
正点原子MP157--问题详解--二(NFS挂载根文件系统双网卡设置)
linux·服务器·网络
AI视觉网奇3 小时前
CosyVoice 加速实践
人工智能·深度学习
用户69371750013843 小时前
AI让编码变简单,真正拉开差距的是UI设计和产品思考
android·前端·人工智能
badhope3 小时前
概率论如何让机器学习不再玄学
人工智能·深度学习·机器学习·数据挖掘·github