智能对话新纪元 大模型推理服务
在人工智能的浪潮中,大型言语模型仰仗其弱小的对话了解和生成才干,引领了智能对话技术的潮流。企业和团体关于私有化智能服务的需求日益增长,将这样的大模型部署为专属服务显得尤为关键。当天,让咱们一同探求如何将大模型私有化部署,构建你的智能助手。
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 即可运转服务
本文转载自,作者: