大模型推理服务 智能对话新纪元
发布时间:2024-11-15 00:41:21点击:
在人工智能的浪潮中,大型语言模型凭借其强大的对话理解和生成能力,引领了智能对话技术的潮流。企业和个人对于私有化智能服务的需求日益增长,将这样的大模型部署为专属服务显得尤为重要。今天,让我们一起探索如何将大模型私有化部署,构建你的智能助手。
1. 环境准备
首先确保你有一套满足硬件要求的服务器或云环境,通常需要有一块性能良好的GPU,足够的内存和存储空间来容纳模型和运行日志。此外,选择合适的操作系统(如Ubuntu Linux)并安装必需的软件依赖项(如Python、Cuda等)。
2. 获取模型
以清华ChatGlm为例
将模型文件下载到本地
3. 安装必要的库
使用pip或conda安装必需的Python库,包括但不限于transformers(用于加载和处理模型),torch(PyTorch的核心库),以及任何其他你可能需要的数据处理或服务框架相关的库。
4. 封装API接口
为了使模型能够响应外部请求,你需要开发一个RESTful API或者WebSocket服务,使得客户端可以通过网络发送请求并接收模型的回复。这通常涉及到编写一些后端代码,比如使用Flask或FastAPI框架。
以下是一个简单的推理脚本 server.py,只是简单的 非流式推理 脚本。后续再更新流式推理以及日志的保存脚本。
from __future__ impport print_functionimport jsonimport tracebackimport flaskfrom flask import request , Flask,g,stream_with_contextfrom flask import Responsefrom transformers import AutoModel,AutoTokenizerimport torchimport osimport sysimport loggingfrom logging import handlersimport timeimport flask_cors import CORSimport 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 resexecpt Exception as e:success = -1errorMsg = str(e)res = get_return_json(success,errorMsg,'')return resdef get_return_json(code,return_msg,result):return_json = {'return_code':code, 'return_msg':return_msg,'answer': result}return return_jsonif __name__ == "__main__":app.run(host=='0.0.0.0',port=8080,debug=False,threaded=False)
5. 执行脚本
进入到server.py 所在的目录,比如 cd /workspace/server
执行 python server.py 即可运行服务
本文转载自,作者: