Nous-Hermes-2-Mistral-7B-DPO

我要开发同款
匿名用户2024年07月31日
29阅读
所属分类ai、other
开源地址https://modelscope.cn/models/dkgee8/Nous-Hermes-2-Mistral-7B-DPO
授权协议Apache License 2.0

作品详情

当前模型的贡献者未提供更加详细的模型介绍。模型文件和权重,可浏览“模型文件”页面获取。

您可以通过如下git clone命令,或者ModelScope SDK来下载模型

SDK下载

#安装ModelScope
pip install modelscope
#SDK模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('dkgee8/Nous-Hermes-2-Mistral-7B-DPO')

Git下载

#Git模型下载
git clone https://www.modelscope.cn/dkgee8/Nous-Hermes-2-Mistral-7B-DPO.git

模型部署及调用

本模型主要针对CPU环境场景下的模型调用。

可以直接在服务器(没有GPU)上创建python脚本运行,例如 python Nous-Hermes-7b-api.py

第一步:配置运行环境
第二步:运行脚本(注意配置路径)

pip install fastapi uvicorn gpt4all

(1)Web服务器调用模型代码如下所示:

import uvicorn, json, datetime
from fastapi import FastAPI, Request
from gpt4all import GPT4All

app = FastAPI()

@app.post("/test")
async def create_item(request: Request):
    """
    定义一个异步接口服务,通过全局变量将模型挂载到该接口,接收外部接口请求,并提供模型服务
    """
    global model
    json_post_raw = await request.json()    # 原始http响应对象
    json_post = json.dumps(json_post_raw)   # 序列对象成一个字符串
    json_post_list = json.loads(json_post)  # 使用json加载字符串,解析成json对象
    # 提取json对象中响应数据
    prompt = json_post_list.get('prompt')   # 提问语句
    response = model.generate(prompt)
    now = datetime.datetime.now()
    time = now.strftime("%Y-%m-%d %H:%M:%S")
    answer = {
        "response": response,
        "status": 200,
        "time": time
    }
    # 记录日志并输出
    log = "[" + time + "] " + '", prompt:"' + prompt + '", response:"' + repr(response) + '"'
    print(log)
    return answer


if __name__ == '__main__':
    """
    启动命令: python chat_7b_api.py 
    可修改IP地址
    """
    # 第一步:首先加载分词器和模型
    model_name = 'Nous-Hermes-2-Mistral-7B-DPO.Q4_0.gguf'
    model = GPT4All(model_name, model_path="/mnt/workspace/Nous-Hermes-2-Mistral-7B-DPO")  # 根据实际情况调整模型配置路径

    # 第二步:配置Web接口服务
    uvicorn.run(app, host="0.0.0.0", port=8000, workers=1)  # 测试可行

(2)HTTP请求客户端调用方式,这里以Python为例如下:

import requests, json

# 目标URL
url = 'http://localhost:8000/test'
# 要发送的数据,可以是字典、JSON字符串或其他类型
data = {
    'prompt': 'why is the grass green?'
}

# 发送POST请求
response = requests.post(url, data=json.dumps(data), headers={'Content-Type': 'application/json;charset=utf-8'})
# 打印响应内容
print(response.text)
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论