ztxz16 / fastllm

纯c++的全平台llm加速库,支持python调用,chatglm-6B级模型单卡可达10000+token / s,支持glm, llama, moss基座,手机端流畅运行
Apache License 2.0
3.28k stars 332 forks source link

请教一下,并行计算动态batch这一块在哪里有实现,python有调用的示例吗? #91

Open White-Friday opened 1 year ago

ztxz16 commented 1 year ago

这个是底层特性,不用显示调用的

你就用多线程调用stream_reponse或者stream_chat就可以了,底下会自动拼batch的

目前仅对float16有提升,线程数不多的情况下每路的延迟应该和单路差不多

Qz243 commented 1 year ago

可以问下c++ 动态拼batch的实现是在哪里吗?

White-Friday commented 1 year ago

这个是底层特性,不用显示调用的

你就用多线程调用stream_reponse或者stream_chat就可以了,底下会自动拼batch的

目前仅对float16有提升,线程数不多的情况下每路的延迟应该和单路差不多

请问线程数的多少是自动分配的,还是说需要修改重新编译

ztxz16 commented 1 year ago

可以问下c++ 动态拼batch的实现是在哪里吗?

webui里有调用示例

Lzhang-hub commented 1 year ago

这个是底层特性,不用显示调用的

你就用多线程调用stream_reponse或者stream_chat就可以了,底下会自动拼batch的

目前仅对float16有提升,线程数不多的情况下每路的延迟应该和单路差不多

@ztxz16 我测试了一下这个,10个prompt用10个线程同时发请求,返回的结果看起来是多个结果混合了,看了一下web_api的代码,似乎对于多线程的请求,似乎是存储在同一个queue中导致的?

kiranosora commented 1 year ago

是的,这点确实需要改进,web_api的"/api/chat_stream"接口在多线程请求时确实有这个问题。"/api/batch_chat"接口因为不是流式传输,没有这个问题。

Lzhang-hub commented 1 year ago

是的,这点确实需要改进,web_api的"/api/chat_stream"接口在多线程请求时确实有这个问题。"/api/batch_chat"接口因为不是流式传输,没有这个问题。

@kiranosora 有啥可以改进的方案嘛?求一个

kiranosora commented 1 year ago

预计通过handle_id区分不同的会话。非流式对话的话,可以先用“api/batch_chat"。

kiranosora commented 1 year ago

@Lzhang-hub 新版本已修复此问题

Lzhang-hub commented 1 year ago

@Lzhang-hub 新版本已修复此问题

棒!👍🏻

q497629642 commented 1 year ago

@Lzhang-hub 新版本已修复此问题

请问pyfastllm支持codegeex2.0吗?

HL0718 commented 1 year ago

预计通过handle_id区分不同的会话。非流式对话的话,可以先用“api/batch_chat"。

请问一下,batch_chat的报文改如何设置呀

Lzhang-hub commented 11 months ago

预计通过handle_id区分不同的会话。非流式对话的话,可以先用“api/batch_chat"。

@q497629642 你好,最近又batch推理的需求,我测试了一下apt/batch_chat的接口,发现请求的耗时和prompt的list长度呈线性关系,似乎没有batch的效果,请问是还有额外的参数嘛?

MophstoL commented 5 months ago

@Lzhang-hub 新版本已修复此问题

请问pyfastllm支持codegeex2.0吗?

支持的,我用的codegeex2-6b-int4, 把模型转换后正常使用即可