Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.增加对llama-cpp模型的支持;2.增加对bloom/chatyuan/baichuan模型的支持;3. 修复多GPU部署的bug;4. 修复了moss_llm.py的bug;5. 增加对openai支持(没有api,未测试);6. 支持在多卡情况自定义设备GPU #664

Merged
merged 20 commits into from
Jul 11, 2023

Conversation

hzg0601
Copy link
Collaborator

@hzg0601 hzg0601 commented Jun 19, 2023

  1. 增加了llama-cpp模型的支持。
    llama-cpp模型需要在loader.py中调用llama-cpp-python中的Llama类,并使设定的参数兼容Llama类的generate方法,基于不
    同时期的ggml 格式手动下载llama-cpp-python版本,重新InvalidScoreLogitsProcessor类,转换输入input_ids的格式等操作。
    目前为兼容llama_llm.py脚本进行了参数阉割,后续似应考虑重新一个类。
    通过cli_deom.py在lmsys/vicuna-13b-delta-v1.1/ggml-vicuna-13b-1.1-q5上,及llama-cpp-python v0.1.63上进行了测试。
  2. 修复了moss_llm.py的bug。
    在api.py\webui.py等下游调用脚本中,会在初始化后调用.set_history_len(LLM_HISTORY_LEN),但moss_llm.py对该方法的定义
    与chatglm_llm.py不一致,导致调用失败。疑似能解决moss启动失败的问题不能本地加载moss模型吗? #652加载本地moss模型报错Can't instantiate abstract class MOSSLLM with abstract methods _history_len #578[BUG] moss模型本地加载报错 #577[BUG] moss模型无法加载 #356[BUG] moss_llm没有实现 #447
    该错误在调用chatyuan模型时发现。
    通过api.py脚本进行了测试
  3. 修复了对chatyuan模型的支持 [BUG] config 使用 chatyuan 无法启动 #604 chatyuan无法使用 #475 ChatYuan-large-v2模型加载失败 #300 [BUG] 使用chatyuan模型时,对话Error,has no attribute 'stream_chat' #282 [BUG] 使用ChatYuan-V2模型无法流式输出,会报错 #277 增加Dockerfile 和ClueAI/ChatYuan-large-v2 模型的支持 #152
    chatyuan模型需要调用在loader.py中基于AutoModel进行调用,并使用MOSSLLM类作为provides,但当前脚本虽然在
    model_config.py中定义了模型配置字典,但并未进行正式适配,本次提交进行了正式支持。
    通过api.py进行了测试
  4. 增加了对bloom模型的支持.[FEATURE] 未来可增加Bloom系列模型吗?根据甲骨易的测试,这系列中文评测效果不错 #346
    bloom模型对中文和代码的支持优于llama等模型,可作为候选模型。
    通过api.py对bloom-3b进行了测试,bloomz-7b由于没有资源而没有测试
  5. 增加了对baichuan-7b模型的支持 [FEATURE] 是否能够支持baichuan模型 #668
    通过api.py进行了测试
  6. 修复多GPU部署的bug,多GPU部署时,默认的device-map为chatglm的device-map,针对新模型几乎必然会报错
    改为使用accelerate的infer_auto_device_map。
    该错误由于调用bloom等模型时发现。
    通过api.py和cli_demo.py脚本进行了测试
  7. 增加对openai支持,参考openai的调用方式,重写了fastchat的模型配置字段,使支持openai的调用。
    没有openai的key,因此没有测试
  8. 在install.md文档中,增加了对调用llama-cpp模型的说明。
    要调用llama-cpp模型需要的手动配置的内容较多,需要额外进行说明
  9. 支持在多卡情况下也可以自定义部署在一个GPU设备。设置了torch.cuda.set_device(1),不起作用 #681 请问如何设置用哪一张GPU? #693
    在某些情况下,如机器被多人使用,其中一个卡利用率较高,而另一些利用率较低,此时应该将设备指定在空闲的卡上,而不应自动进行多卡并行,但在现有版本中,load.py中_load_model没有考虑这种情况,clear_torch_cache函数也没有考虑这种情况。本次提交中,支持在model_config.py中设置llm_device的为类似“cuda:1”的方式自定义设备。

@hzg0601 hzg0601 changed the title 1.增加对llama-cpp模型的支持;2.增加对bloom模型的支持;3. 修复多GPU部署的bug;4. 增加对openai支持(没有api,未测试);5.增加了llama-cpp模型部署的说明 1.增加对llama-cpp模型的支持;2.增加对bloom/chatyuan/baichuan模型的支持;3. 修复多GPU部署的bug;4. 修复了moss_llm.py的bug;5. 增加对openai支持(没有api,未测试) Jun 19, 2023
@hzg0601 hzg0601 changed the base branch from master to dev June 19, 2023 17:08
@hzg0601 hzg0601 changed the title 1.增加对llama-cpp模型的支持;2.增加对bloom/chatyuan/baichuan模型的支持;3. 修复多GPU部署的bug;4. 修复了moss_llm.py的bug;5. 增加对openai支持(没有api,未测试) 1.增加对llama-cpp模型的支持;2.增加对bloom/chatyuan/baichuan模型的支持;3. 修复多GPU部署的bug;4. 修复了moss_llm.py的bug;5. 增加对openai支持(没有api,未测试);6. 支持在多卡情况自定义设备GPU Jun 20, 2023
"pretrained_model_name": "gpt-3.5-turbo",
"provides":"FastChatOpenAILLM",
"local_model_path": None,
"api_base_url": "https://api.openapi.com/v1",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zhutianning
Copy link

  1. 增加了对baichuan-7b模型的支持 [FEATURE] 是否能够支持baichuan模型 #668
    通过api.py进行了测试

请问为什么我执行python api.py 报错?
Screen Shot 2023-07-11 at 18 00 05

@hzg0601
Copy link
Collaborator Author

hzg0601 commented Jul 11, 2023

你的provides写的是什么?

@imClumsyPanda imClumsyPanda merged commit a5ca4bf into chatchat-space:dev Jul 11, 2023
@hzg0601 hzg0601 deleted the llama-cpp branch July 12, 2023 00:45
@zhutianning
Copy link

你的provides写的是什么?

Screen Shot 2023-07-12 at 13 46 23

执行python api.py 报错 AttributeError: module 'models' has no attribute 'Baichuan'� 具体是哪里没写对呢?

@hzg0601
Copy link
Collaborator Author

hzg0601 commented Jul 12, 2023

你的provides写的是什么?

Screen Shot 2023-07-12 at 13 46 23

没有Baichuan这么个provides,用MOSSLLM

@zhutianning
Copy link

你的provides写的是什么?

Screen Shot 2023-07-12 at 13 46 23

没有Baichuan这么个provides,用MOSSLLM

请问如果想自己适配baichuan-7B和baichuan-13B 是不是只需要修改models文件夹和configs/mode_config.py ?

@hzg0601
Copy link
Collaborator Author

hzg0601 commented Jul 12, 2023

你的provides写的是什么?

Screen Shot 2023-07-12 at 13 46 23

没有Baichuan这么个provides,用MOSSLLM

请问如果想自己适配baichuan-7B和baichuan-13B 是不是只需要修改models文件夹和configs/mode_config.py ?

dev分支下可以,master分支下还不行

@earthxx
Copy link

earthxx commented Jul 13, 2023

请问如果想自己适配baichuan-7B和baichuan-13B 是不是只需要修改models文件夹和configs/mode_config.py ?

貌似13B不适配 模型加载异常

@hzg0601
Copy link
Collaborator Author

hzg0601 commented Jul 13, 2023

请问如果想自己适配baichuan-7B和baichuan-13B 是不是只需要修改models文件夹和configs/mode_config.py ?

貌似13B不适配 模型加载异常

报什么错误?

@zhutianning
Copy link

大佬 请问 fnlp/moss-moon-003-sft-int4 支持了吗? 我这边加载报错ModuleNotFoundError: No module named 'transformers_modules.moss-moon-003-sft-int4.custom_autotune'
目前是api只能测试FP16无量化版本的是么

@hzg0601
Copy link
Collaborator Author

hzg0601 commented Jul 13, 2023

int4没有测试过,但是应该是可以支持的,你这个错误应该模型文件没有下载完整导致的

@earthxx
Copy link

earthxx commented Jul 14, 2023

请问如果想自己适配baichuan-7B和baichuan-13B 是不是只需要修改models文件夹和configs/mode_config.py ?

貌似13B不适配 模型加载异常

报什么错误?

def init_model():
args = parser.parse_args()

args_dict = vars(args)
shared.loaderCheckPoint = LoaderCheckPoint(args_dict)
llm_model_ins = shared.loaderLLM()
try:
    local_doc_qa.init_cfg(llm_model=llm_model_ins)
    answer_result_stream_result = local_doc_qa.llm_model_chain(
        {"prompt": "你好", "history": [], "streaming": False})

    for answer_result in answer_result_stream_result['answer_result_stream']:
        print(answer_result.llm_output)
    reply = """模型已成功加载,可以开始对话,或从右侧选择模式后开始对话"""
    logger.info(reply)
    return reply
**except Exception as e:**  ###模型可以加载 但是在这里直接抛出异常
    logger.error(e)
    reply = """模型未成功加载,请到页面左上角"模型配置"选项卡中重新选择后点击"加载模型"按钮"""
    if str(e) == "Unknown platform: darwin":
        logger.info("该报错可能因为您使用的是 macOS 操作系统,需先下载模型至本地后执行 Web UI,具体方法请参考项目 README 中本地部署方法及常见问题:"
                    " https://github.com/imClumsyPanda/langchain-ChatGLM")
    else:
        logger.info(reply)
    return reply

@jamiechoi1995
Copy link

图片
调用baichuan的输出效果很奇怪,请问是有什么bug吗

@hzg0601
Copy link
Collaborator Author

hzg0601 commented Jul 14, 2023

图片 调用baichuan的输出效果很奇怪,请问是有什么bug吗

百川7b,13b-base不是一个指令对齐的模型,这个项目对没有指令对齐的模型的chat模式也没有支持

@zhutianning
Copy link

图片 调用baichuan的输出效果很奇怪,请问是有什么bug吗

我用baichuan-7B 也出现了这个问题; 请问你有使用baichuan-13B-chat 试过吗

@hzg0601
Copy link
Collaborator Author

hzg0601 commented Jul 14, 2023

没有,不过想来表现应该会好不少

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants