Skip to content

TRM-coding/GLM4-Web-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatGlm4-Web-demo

代码结构说明

  • serveapi.py

    暴露网络接口,允许外部通过http进行交互,并根据路由请求,调用不同对象完成任务

    (例中给出了简易的完成两类大模型交互任务)

  • LLMapis.py

    提供大模型交互接口,将大模型以flask应用形式呈现,避免每次重新加载模型

    提供两种交互方案,一种是chat交互:完成日常对话。另一种是依据模板交互,完成对应任务(例中为书籍检索任务)

  • LLMkernel.py

    模型任务逻辑实现。传入模型对象,完成对应的任务

  • testpost.py

    发送http请求的示例

  • download.py

    模型下载文件

ChatGlm4多卡部署性能粗测结果

测试任务:给定25本书名,从25本书名中抽取和用户提出的需求最符合的5本书,如果没有则返回:“书籍不存在”

测试数据:

create database glm4;
create table book (title char(255));
INSERT INTO book (title) VALUES 
("线性代数:从基础到前沿"),
("矩阵的魔力:线性代数的探索"),
("向量空间:线性代数的视角"),
("线性映射与变换:线性代数的应用"),
("线性代数的世界:理论与实践"),
("法语启蒙:从零开始"),
("法语语法精解:掌握核心规则"),
("法语口语实战:日常对话篇"),
("法国文化与法语:语言背后的故事"),
("法语写作技巧:从基础到精进"),
("微积分之旅:从初级到高级"),
("微积分的秘密:理解极限与导数"),
("积分的艺术:微积分的实践应用"),
("微积分的世界:函数与变化"),
("微积分探索:理论与问题解答"),
("星际穿越:时间的秘密"),
("异次元之门:平行宇宙的探索"),
("未来世界:人工智能的崛起"),
("黑洞之谜:宇宙的终极奥秘"),
("量子纠缠:微观世界的奇异现象"),
("量子力学:微观世界的奥秘"),
("相对论:时间和空间的探索"),
("粒子物理:基本粒子的研究"),
("热力学:能量和熵的平衡"),
("光学:光的性质和应用");

测试平台:

GPU

4090-24G 数量: 2 显存: 24 GB x 2

CPU

Intel(R) Xeon(R) Gold 6133 CPU 实例内存: 69G

核心: 20 核

测试模型:

chatglm4-9b-chat

GPU-topo

        GPU0    GPU1    CPU Affinity    NUMA Affinity   GPU NUMA ID
GPU0     X      PIX     0-19,40-59      0               N/A
GPU1    PIX      X      0-19,40-59      0               N/A

测试结果

双卡float32

template:

template=f"""你是一个经验丰富的图书检索助手。
        我们的图书馆中有这些书:{booklist}
        现在用户提出这样的检索需求:{content}
        请你根据用户的检索需求,在图书馆中找寻符合用户要求的所有书籍返回给用户
        注意,你应该用json格式返回,例如:{"1"':'"线性代数"}其中,键是书的id,值是书名
        如果没有找到相关的书籍,请你返回一个空的json对象。
        除此之外,不需要你返回其他任何信息"""

prompt:“帮我找找有关函数求导的书”

ans:{'respond': 'json\n{\n "1": "微积分之旅:从初级到高级",\n "2": "微积分的秘密:理解极限与导数",\n "3": "积分的艺术:微积分的实践应用",\n "4": "微积分的世界:函数与变化",\n "5": "微积分探索:理论与问题解答"\n}\n'} **响应时间:**4.580822944641113

**prompt:**给我讲讲微积分

ans:{'respond': "微积分是数学的一个分支,主要研究的是变化率和累积量。它起源于17世纪,由英国数学家艾萨克·牛顿和德国数学家戈特弗里德·威廉·莱布尼茨各自独立发展出来的。微积分在物理学、工程学、经济学、生物学等多个领域都有广泛的应用。\n\n### 微积分的主要内容:\n\n#### 微分学(Differential Calculus)\n\n微分学主要研究的是函数的变化率,即导数。\n\n1. 导数(Derivative):导数表示函数在某一点的瞬时变化率。例如,函数 \( f(x) \) 在 \( x \) 点的导数记作 \( f'(x) \) 或 \( \frac{df}{dx} \)。\n\n2. 微分(Differential):微分是导数的一个线性近似,表示函数在某一点的局部变化量。\n\n#### 积分学(Integral Calculus)\n\n积分学主要研究的是累积量,即定积分和不定积分。\n\n1. 定积分(Definite Integral):定积分表示函数在某一区间上的累积量。例如,函数 \( f(x) \) 在区间 \([a, b]\) 上的定积分记作 \( \int_{a}^{b} f(x) \, dx \)。\n\n2. 不定积分(Indefinite Integral):不定积分表示函数的原函数,即一个函数的导数。例如,函数 \( f(x) \) 的不定积分记作 \( \int f(x) \, dx \)。\n\n### 微积分的应用:\n\n1. 物理学:在物理学中,微积分用于描述物体的运动、能量、动量等物理量。\n\n2. 工程学:在工程学中,微积分用于设计、分析和优化各种工程系统。\n\n3. 经济学:在经济学中,微积分用于分析市场、投资、生产等经济现象。\n\n4. 生物学:在生物学中,微积分用于研究种群动态、生物分布等生物学问题。\n\n微积分是数学中一个非常重要的分支,它不仅具有丰富的理论体系,而且在实际应用中也有着广泛的影响。"}

**响应时间:**24.390633821487427

promp:"简单讲讲微积分"

ans:{'respond': '微积分是数学的一个分支,主要研究的是函数的极限、导数和积分等概念。简单来说,微积分可以帮助我们:\n\n1. 极限:研究当某个变量无限接近某个值时,函数的行为。\n2. 导数:描述函数在某一点上的变化率,也就是函数曲线的斜率。\n3. 积分:计算曲线下的面积,或者求函数的总变化量。\n\n微积分在物理学、工程学、经济学等领域都有广泛的应用。'} 响应时间:5.719829320907593

........

测试结果概述:

**推理延迟:**由于答案是生成一整个序列后返回,因此响应时长随输出长度增加。

**准确度:**信息抽取准确度理想,且可以按照模板定义的返回格式准确完成返回任务

显存占用:

GPU0:18871MiB / 24564MiB
GPU1:23517MiB / 24564MiB

About

a chatglm3 web based app demo...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages