CPM-9G-8B/stream_infer
p04896573 04ebfa4e30 Update README.md 2024-03-14 19:30:56 +08:00
..
README.md Update README.md 2024-03-14 19:30:56 +08:00
convert.py add stream inference output function 2024-03-14 17:38:39 +08:00
deploy_llm_8b_demo.py add stream inference output function 2024-03-14 17:38:39 +08:00
request_demo.py add stream inference output function 2024-03-14 17:38:39 +08:00
result.png add examples 2024-03-14 19:28:51 +08:00

README.md

demo使用方法

环境安装

基于方便,采用了镜像形式进行使用 docker 路径: docker的使用见QuickStart手册.pdf

启动docker之后在命令行中执行conda activate stream_info后续的处理都在stream_info环境下进行执行

流程:

1 将模型进行convert处理将训练模型转换成流式输出支持的格式 (1) 需要修改的主要参数如下:

输入已有的源模型 src_model_path = "./checkpoints-epoch-1/cpm9g-8b-sft-epoch-1.pt"
格式转换后的模型地址 dst_model_path = "model_8b.ckpt" 
模型的layers数目需要根据提供的config文件中的layer字段确定
    在百亿模型中layer_num = 32
    在千亿模型中layer_num = 80

(2)执行python convert.py得到的dst model即为后续用的模型

2 模型推理: (1) 设置CUDA_VISIBLE_DEVICES的数目

(2) 修改LocalLoader 类中模型的属性将下面这6个函数依据提供的模型config文件中的字段进行修改 def num_layers(self): def dim_model(self): def num_heads(self): def num_kv_heads(self): def dim_head(self): def dim_ff(self):

(3) 在修改LocalLoader类别调用的时候 将上一步生成的模型文件和词表位置输入memory_limit无需修改 model = libcpm.CPMCaterpillar( LocalLoader( "model_8b.ckpt", "vocabs.txt", ) (4) 执行python deploy_llm_8b_demo.py

3 测试请求: (1) 修改url本机请求的话是localhost 或者127.0.0.1url是该及其的ip

(2) 可以修改payload中的content内容举例 payload = json.dumps({ "content": "<用户>好久不见!"}) payload = json.dumps({ "content": "<用户>你是谁?"})

(3) 执行python request_demo.py (4) 最终结果如以下形式,即正确的请求结果 https://www.osredm.com/jiuyuan/CPM-9G-8B/tree/master/stream_infer/result.png