当前位置: 首页 > news >正文

使用llama-cpp-python制作api接口

文章目录

    • 概要
    • 整体操作流程
    • 技术细节
    • 小结

概要

使用llama-cpp-python制作api接口,可以接入gradio当中,参考上一节。
llama-cpp-python的github网址

整体操作流程

  1. 下载llama-cpp-python。首先判断自己是在CPU的环境下还是GPU的环境下。以下操作均在魔搭提供的免费GPU环境下。
#CPU
pip install llama-cpp-python
#GPU
CMAKE_ARGS="-DGGML_CUDA=on FORCE_CMAKE=1" pip install llama-cpp-python --no-cache-dir

在这里插入图片描述

  1. 启动服务
    模型可以采用量化的版本,也可以采用原版本大小,看自己的硬件环境。
# 模型注意力层有32层,cpu8核,可以自己修改。
python -m llama_cpp.server --model 模型路径/模型名称.bin --n_gpu_layers 32 --m_thread 8

在魔搭上启动可能报错如下:
在这里插入图片描述
在这里插入图片描述
这也就是缺少依赖包,解决如下:

pip install starlette-context
pip install pydantic-settings

成功启动后会显示:
在这里插入图片描述
在这里插入图片描述

  1. 测试一下能不能行
    api_key 随便写,一个模板而已,因为是自己构建的api。
    base_url 就是上面图所示的,为什么加v1等会在下面解释 端口号自己可以改的,在启动服务的时候设置。
!pip install -q openai
import openaiopenai.api_key = 'qqqqqqqqqqqqqqqqqq'  
openai.base_url = "http://localhost:8000/v1/"  
#模型参数设置
completion = openai.completions.create(model="llama",max_tokens=256,   top_p = 0.2,temperature = 0.6,prompt="出现了黄疸、恶心、呕吐等症状,可能患了什么疾病?",
)
print(completion.choices[0].text)

在这里插入图片描述
因为采用的是量化后模型,反应速度也算比较快了,用时2.6s。
在这里插入图片描述

技术细节

  • API的接口缘由可以查看github中的llama_cpp/server/app.py,有详细的路由解释。

小结

至此完成了一个整体流程:从微调到量化到部署到api最终显示在网页上,涉及到的技术很多,还有很多细节需要学习,记录一下美好的时光,希望有个好的结果。敬礼!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣第十五题——三数之和
  • 基于秒杀系统的企业开发设计思考
  • LFU算法实现笔记
  • 【postgresql】pg_dump备份数据库
  • 六爻排盘 api数据接口
  • mmc-utils 的 MMC 测试工具
  • nng协议nni_posix_resolv_sysinit()系统初始化
  • iOS ------ ARC的工作原理
  • Android获取当前屏幕显示的是哪个activity
  • 访问控制系列
  • 【RPC注册发现框架实战】一个简易的RPC注册发现框架
  • Vue.js:如何区分页面关闭和刷新?深入解析与实战
  • mysql命令练习
  • 测试开发面经总结(三)
  • Qt篇——QSqlQueryModel内容居中显示
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CentOS从零开始部署Nodejs项目
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • gcc介绍及安装
  • HTTP 简介
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java 内存分配及垃圾回收机制初探
  • JDK 6和JDK 7中的substring()方法
  • TypeScript迭代器
  • 仿天猫超市收藏抛物线动画工具库
  • 区块链技术特点之去中心化特性
  • 如何解决微信端直接跳WAP端
  • 十年未变!安全,谁之责?(下)
  • 实现菜单下拉伸展折叠效果demo
  • 微信小程序实战练习(仿五洲到家微信版)
  • 一个SAP顾问在美国的这些年
  • 原生Ajax
  • 【干货分享】dos命令大全
  • 2017年360最后一道编程题
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # Java NIO(一)FileChannel
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #每日一题合集#牛客JZ23-JZ33
  • (13)Hive调优——动态分区导致的小文件问题
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (27)4.8 习题课
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (回溯) LeetCode 77. 组合
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (小白学Java)Java简介和基本配置
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (一)kafka实战——kafka源码编译启动
  • .gitattributes 文件
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net mvc部分视图
  • .NET牛人应该知道些什么(2):中级.NET开发人员