智能对话新纪元:大模型推理服务-AI.x-AIGC专属社区-51CTO.COM

智能对话新纪元:大模型推理服务

发布于 2024-11-7 14:15
浏览
0收藏

在人工智能的浪潮中,大型语言模型凭借其强大的对话理解和生成能力,引领了智能对话技术的潮流。企业和个人对于私有化智能服务的需求日益增长,将这样的大模型部署为专属服务显得尤为重要。今天,让我们一起探索如何将大模型私有化部署,构建你的智能助手。

1. 环境准备

首先确保你有一套满足硬件要求的服务器或云环境,通常需要有一块性能良好的GPU,足够的内存和存储空间来容纳模型和运行日志。此外,选择合适的操作系统(如Ubuntu Linux)并安装必需的软件依赖项(如Python、Cuda等)。

2. 获取模型

你可以从官方仓库或者其他可靠的来源下载预训练好的模型权重文件。

以清华ChatGlm为例

模型下载地址:https://huggingface.co/THUDM/chatglm3-6b-32k/tree/main

智能对话新纪元:大模型推理服务-AI.x社区

将模型文件下载到本地

 3. 安装必要的库

使用pip或conda安装必需的Python库,包括但不限于transformers(用于加载和处理模型),torch(PyTorch的核心库),以及任何其他你可能需要的数据处理或服务框架相关的库。

4. 封装API接口

为了使模型能够响应外部请求,你需要开发一个RESTful API或者WebSocket服务,使得客户端可以通过网络发送请求并接收模型的回复。这通常涉及到编写一些后端代码,比如使用Flask或FastAPI框架。

以下是一个简单的推理脚本 server.py ,只是简单的非流式推理脚本。后续再更新流式推理以及日志的保存脚本。

from __future__ impport print_function
import json
import traceback
import flask
from flask import request , Flask,g,stream_with_context
from flask import Response
from transformers import AutoModel,AutoTokenizer
import torch
import os
import sys
import logging
from logging import handlers
import time
import flask_cors import CORS
import requests


# 下载的模型文件放在推理脚本的同级目录的model文件下
tokenizer = AutoTokenizer.from_pretrained("./model/",trust_remote_code=True)
model = AutoModel.from_pretrained("./model",trust_remote_code=True).half().cuda()
model= model.eval()
path = os.path.dirname(os.path.abspath(__file__))


app = Flask(__name__)
CORS(app)


@app.route("/predict",methods=["POST"])
def predict():
  try:
      post_data = json.load(flask.loads.get_data())
      question = post_data.get("question")
      history = post_data.get("history")
      response, history = model.chat(tokenizer,question,history=history)
      res = get_return_json(0,"success",response)
      return res
  execpt Exception as e:
      success = -1
      errorMsg = str(e)
      res = get_return_json(success,errorMsg,'')
      return res
      
def get_return_json(code,return_msg,result):
    return_json = {'return_code':code, 'return_msg':return_msg,'answer': result}
    return return_json
if __name__ == "__main__":
    app.run(host=='0.0.0.0',port=8080,debug=False,threaded=False)

复制

5. 执行脚本

进入到server.py 所在的目录,比如 cd /workspace/server

执行 python server.py 即可运行服务

本文转载自 AI论文解读​,作者: 墨澜

收藏
回复
举报
回复
相关推荐