推理系统学习笔记

一些学习资料

  • 最近对MLsys比较感兴趣,遂找些资料开始学习一下
    • https://fazzie-key.cool/2023/02/21/MLsys/
    • https://qiankunli.github.io/2023/12/16/llm_inference.html
    • https://dlsyscourse.org
    • https://github.com/chenzomi12/DeepLearningSystem/tree/main/04Inference
    • https://csdiy.wiki/en/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E7%BB%9F/AICS/
    • 打算假期里把以上内容都过一遍

推理系统概念

https://github.com/chenzomi12/DeepLearningSystem/tree/main/04Inference

推理系统全景
请求与响应处理

请求调度

推理引擎

模型管理

监控

推理芯片

推理系统

TFServer

在这里插入图片描述

推理引擎架构

在CPU上推理中文版LLaMA2 Chinese-LLaMA-Alpaca-2

https://github.com/ymcui/Chinese-LLaMA-Alpaca-2/tree/main

  • download
    在这里插入图片描述
    .gguf 文件是通过llama_cpp后面生成的
  • 借助llama.cpp在CPU上推理
    官网教程
    克隆仓库到本地
    Ubuntu20做法
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
  • 生成量化版模型
python3 convert.py /home/llama/alpaca/

注意替换对应的模型文件目录地址,这里有个小坑,就是在convert.py文件的load_some_model()函数中globs参数会匹配不上实际模型使用的值,这里要修改适配一下,不知道作者为什么这么设计。

def load_some_model(path: Path) -> ModelPlus:'''Load a model of any supported format.'''# Be extra-friendly and accept either a file or a directory:if path.is_dir():# Check if it's a set of safetensors files firstglobs = ["model-00001-of-*.safetensors", "model.safetensors"]files = [file for glob in globs for file in path.glob(glob)]if not files:# Try the PyTorch patterns too, with lower priorityglobs = ["consolidated.00.pth", "pytorch_model-001*.bin", "*.pt", "pytorch_model.bin"]files = [file for glob in globs for file in path.glob(glob)]if not files:raise Exception(f"Can't find model in directory {path}")if len(files) > 1:raise Exception(f"Found multiple models in {path}, not sure which to pick: {files}")path = files[0]paths = find_multifile_paths(path)models_plus: list[ModelPlus] = []for path in paths:print(f"Loading model file {path}")models_plus.append(lazy_load_file(path))model_plus = merge_multifile_models(models_plus)return model_plus

在这里插入图片描述
成功后这样子。

  • 加载启动模型
    将Alpaca-2项目的scripts/llama-cpp/chat.sh拷贝至llama.cpp的根目录。
#!/bin/bash# temporary script to chat with Chinese Alpaca-2 model
# usage: ./chat.sh alpaca2-ggml-model-path your-first-instructionSYSTEM_PROMPT='You are a helpful assistant. 你是一个乐于助人的助手。'
# SYSTEM_PROMPT='You are a helpful assistant. 你是一个乐于助人的助手。请你提供专业、有逻辑、内容真实、有价值的详细回复。' # Try this one, if you prefer longer response.
MODEL_PATH=$1
FIRST_INSTRUCTION=$2./main -m "$MODEL_PATH" \
--color -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 \
--in-prefix-bos --in-prefix ' [INST] ' --in-suffix ' [/INST]' -p \
"[INST] <<SYS>>
$SYSTEM_PROMPT
<</SYS>>$FIRST_INSTRUCTION [/INST]"

shell脚本接收两个传参,.gguf文件和’问答的句子’

chmod +x chat.sh
./chat.sh /home/llama/alpaca/ggml-model-f16.gguf 'Python是世界上最好的语言吗'

在这里插入图片描述
-------------------- 未完待续 --------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/458073.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最详细PE文件格式讲解(完结篇)

前提情要&#xff1a;各位小伙伴是否已经熟练掌握前半部分知识点&#xff0c;各位可以找一下相关练习&#xff0c;或者等待我下面会发布的代码实践进行练习&#xff0c;如果一切ok&#xff0c;那我们将开始下半部分学习&#xff08;good&#xff09;。 如果还没有看&#xff0c…

【学习笔记】TypeScript学习笔记1 --TypeScript中的类型

文章目录 TS总的变量类型References TS总的变量类型 备注&#xff1a; 如果一个变量设置为了any 类型之后相当于变量关闭了TS的类型检测 let d: any; d 10; d hello;//unknown表示的是未知类型&#xff0c;实际是上一个安全的any,unknown类型的变量不能直接赋值给其他变量le…

docker部署docker运维工具

简介 主要功能:管理容器,管理镜像,管理容器网络 安装 拉取镜像 docker pull joinsunsoft/docker.ui:1.0.1 启动容器 docker run -d --name docker.ui --restart always -v /var/run/docker.sock:/var/run/docker.sock -p 10039:8999 joinsunsoft/docker.ui:1.0.1 使用 打…

汇集全球50+供应链领域企业专家,创新论坛带来最新趋势和实践

过去的几年中&#xff0c;随着世界范围内经济、社会和政治上的巨大变化&#xff0c;供应链管理已成为企业和经济成功的关键因素。面对不断增长的全球挑战&#xff0c;包括经济波动、技术变革、政治不确定性&#xff0c;以及环境可持续性的压力&#xff0c;构建一个创新、高效且…

[leetcode] 29. 两数相除

文章目录 题目描述解题方法倍增java代码复杂度分析 题目描述 给你两个整数&#xff0c;被除数 dividend 和除数 divisor。将两数相除&#xff0c;要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断&#xff0c;也就是截去&#xff08;truncate&#xff09;其小数部分…

惟客数据地产经营分析解决方案-构建数字化经营体系,提高精细化管理能力

惟客数据地产经营分析解决方案以拉通数据底座&#xff0c;以管理行为、量化考核、预警机制为核心&#xff0c;强化对经营风险的识别和解决&#xff0c;以终为始&#xff0c;通过高频高价值场景的应用适配&#xff0c;支撑企业在数字化时代中不断创新、转型&#xff0c;提升企业…

【SpringBoot篇】解决Redis分布式锁的 误删问题 和 原子性问题

文章目录 &#x1f354;Redis的分布式锁&#x1f6f8;误删问题&#x1f388;解决方法&#x1f50e;代码实现 &#x1f6f8;原子性问题&#x1f339;Lua脚本 ⭐利用Java代码调用Lua脚本改造分布式锁&#x1f50e;代码实现 &#x1f354;Redis的分布式锁 Redis的分布式锁是通过利…

如何加强项目团队的凝聚力?

随着时代的前行&#xff0c;越来越多的管理者意识到&#xff1a;如今的职场不一样了。人才的话语权和自主权&#xff0c;远比工业时代产线上的工人来得大。只要他们足够优秀&#xff0c;就有足够好的平台供他们挑选。 要想争取他们的加入&#xff0c;企业就需要提供优质的平台…

CTF-show WEB入门--web19

今晚web19也就顺便解决了 老样子我们先打开题目看看题目提示&#xff1a; 可以看到题目提示为&#xff1a; 密钥什么的&#xff0c;就不要放在前端了 然后我们打开题目链接&#xff1a; 然后我们查看网页源代码&#xff1a; 可以发现有用的内容全在网页源代码里。 前端验证…

数据结构——C/栈和队列

&#x1f308;个人主页&#xff1a;慢了半拍 &#x1f525; 创作专栏&#xff1a;《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》 &#x1f3c6;我的格言&#xff1a;一切只是时间问题。 ​ 1.栈 1.1栈的概念及结构 栈&#xff1a;一种特…

泛型、Trait 和生命周期(上)

目录 1、提取函数来减少重复 2、在函数定义中使用泛型 3、结构体定义中的泛型 4、枚举定义中的泛型 5、方法定义中的泛型 6、泛型代码的性能 每一门编程语言都有高效处理重复概念的工具。在 Rust 中其工具之一就是 泛型&#xff08;generics&#xff09;。泛型是具体类型…

51单片机基础:定时器

1.定时器介绍 51单片机通常有两个定时器&#xff1a;定时器 0/1&#xff0c;好一点的可能有定时器3。 在介绍定时器之前我们先科普下几个知识&#xff1a; 1&#xff0c;CPU 时序的有关知识 ①振荡周期&#xff1a;为单片机提供定时信号的振荡源的周期&#xff08;晶振周期或…