InternLM / HuixiangDou

HuixiangDou: Overcoming Group Chat Scenarios with LLM-based Technical Assistance
https://openxlab.org.cn/apps/detail/tpoisonooo/huixiangdou-web
BSD 3-Clause "New" or "Revised" License
1.35k stars 118 forks source link

关于本地部署的一些问题 #196

Open Toblame opened 4 months ago

Toblame commented 4 months ago

尊敬的茴香豆开发人员您好,我在学习研究项目时有以下问题仍然有点困惑请求解答:

  1. web search超出免费限额的费用标准? 是否可以关闭web search功能?
  2. 本地部署支持的llm种类以及服务框架(fastchat?vllm?lmdeploy?)?是否支持自己微调后的模型?
  3. 本地单卡部署茴香豆,llm为finetune后internlm2-chat-20b,推荐显卡配置?
tpoisonooo commented 4 months ago
  1. web search 标准。 印象里是 5w 次网络搜索,实际在 10 个群里,超过半年还没用完。 当然可以关闭,我加个 PR。

  2. 服务框架。 你列举的 vllm/ lmdeploy 核心是用来推理加速的,对外能提供 openai API 的调用形式,不用改代码能跑起来。 目前本地部署没有用任何加速框架,直接用的 huggingface/transformers 。出于以下考虑:

    • 主因。搞加速一般要写 cuda/triton kernel,会加大初学者部署豆哥的难度。入门文档会写得非常复杂
    • 现在 LLM 比较卷,新出的模型很多,推理框架没法很快集成上。例如我需要昨天刚开源的某 MoE 模型,就是还没集成上
    • 有些框架嘛,我估计只维护两个月就放那儿了,没法集成。

      事实上打工人做一件事,不可避免地要受 考核要求/地理资源 的约束和影响。也许媒体说得很漂亮, 但开发者是否集成一个第三方框架,更多的考量是 : 这个框架能活多久。

      用推理框架,可以节约显存开销、运行速度更快。等新人对 LLM 比较熟悉的时候,自然会用

  3. finetune 后的模型。 这个事情深究下去有点复杂,简单的回答是:可以。 更希望关注的是:为了啥才做的微调? 如果只是 peft/LoRA 的话,我相信并不能让模型学会新的知识,最多只是答复风格。

  4. 机器推荐

    • 20B 模型很大,需要 40G 或以上的机器,如 A100 。纯靠个人资金不太可能 ;
    • 纯个人学习的话,7B 用 3090 就可以发挥效果
    • 如果为了商业项目追求性价比,推荐用 remote API,如 kimi
Toblame commented 4 months ago
  1. web search 标准。 印象里是 5w 次网络搜索,实际在 10 个群里,超过半年还没用完。 当然可以关闭,我加个 PR。
  2. 服务框架。 你列举的 vllm/ lmdeploy 核心是用来推理加速的,对外能提供 openai API 的调用形式,不用改代码能跑起来。 目前本地部署没有用任何加速框架,直接用的 huggingface/transformers 。出于以下考虑:

    • 主因。搞加速一般要写 cuda/triton kernel,会加大初学者部署豆哥的难度。入门文档会写得非常复杂
    • 现在 LLM 比较卷,新出的模型很多,推理框架没法很快集成上。例如我需要昨天刚开源的某 MoE 模型,就是还没集成上
    • 有些框架嘛,我估计趁热度只维护两个月就放那儿了,没法集成

    用推理框架,可以节约显存开销、运行速度更快。等新人对 LLM 比较熟悉的时候,自然会用

  3. finetune 后的模型。 这个事情深究下去有点复杂,简单的回答是:可以。 更希望关注的是:为了啥才做的微调? 如果只是 peft/LoRA 的话,我相信并不能让模型学会新的知识,最多只是答复风格。
  4. 机器推荐
  • 20B 模型很大,需要 40G 或以上的机器,如 A100 。纯靠个人资金不太可能 ;
  • 纯个人学习的话,7B 用 3090 就可以发挥效果
  • 如果为了商业项目追求性价比,推荐用 remote API,如 kimi

非常感谢您的回答,受益良多

douyh commented 4 months ago
  1. web search 标准。 印象里是 5w 次网络搜索,实际在 10 个群里,超过半年还没用完。 当然可以关闭,我加个 PR。
  2. 服务框架。 你列举的 vllm/ lmdeploy 核心是用来推理加速的,对外能提供 openai API 的调用形式,不用改代码能跑起来。 目前本地部署没有用任何加速框架,直接用的 huggingface/transformers 。出于以下考虑:

    • 主因。搞加速一般要写 cuda/triton kernel,会加大初学者部署豆哥的难度。入门文档会写得非常复杂
    • 现在 LLM 比较卷,新出的模型很多,推理框架没法很快集成上。例如我需要昨天刚开源的某 MoE 模型,就是还没集成上
    • 有些框架嘛,我估计只维护两个月就放那儿了,没法集成。

      事实上打工人做一件事,不可避免地要受 考核要求/地理资源 的约束和影响。也许媒体说得很漂亮, 但开发者是否集成一个第三方框架,更多的考量是 : 这个框架能活多久。

    用推理框架,可以节约显存开销、运行速度更快。等新人对 LLM 比较熟悉的时候,自然会用

  3. finetune 后的模型。 这个事情深究下去有点复杂,简单的回答是:可以。 更希望关注的是:为了啥才做的微调? 如果只是 peft/LoRA 的话,我相信并不能让模型学会新的知识,最多只是答复风格。
  4. 机器推荐
  • 20B 模型很大,需要 40G 或以上的机器,如 A100 。纯靠个人资金不太可能 ;
  • 纯个人学习的话,7B 用 3090 就可以发挥效果
  • 如果为了商业项目追求性价比,推荐用 remote API,如 kimi

请教一下,我如果已经通过lmdeploy部署了20b的internlm2模型,如何通过remote的形式直接调用这个服务呢?是不是像call_kimi一样自己添加一下就ok了? image

tpoisonooo commented 2 months ago

要封装成 openai API 接口形式,然后参照 llm_server_hybrid.py 改一下路径和参数。