chatchat-space / Langchain-Chatchat

Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain
Apache License 2.0
32.3k stars 5.6k forks source link

0.3.1版本怎么配置大模型?没有找到相关文档 #4890

Open freezehe opened 3 months ago

freezehe commented 3 months ago

如题,我已经参考官网的手册安装了conda,且安装了两个环境,一个专门是xinference跑emding模型的,bge-large-zh-v1.5,一个是chatchat环境,我是在centos7上安装的,还没有跑成功。不清楚model_settings.yml如何配置大模型,我看官网介绍说是 qwen1.5-chat,我想问一下,是不是得在通一千文官网注册拿到api的url和appkey?这个有教程吗?或者如果告知我,我作为新手后面也可以为社区编写这个手册。请技术人员告知一下如何配置大模型,对于我们这些新手同学来说很有必要,谢谢!

zhangyuanwang777 commented 3 months ago
  1. 如果你希望在本地运行 qwen1.5-chat,就需要在本地拉起 xinference 服务,并部署好 embedding 模型和语言模型:

    XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997 # 启动 xinference 服务
    xinference launch --model-name bge-large-zh-v1.5 --model-type embedding --gpu-idx 0 # 启动 embedding 服务
    xinference launch --model-engine vllm --model-name llama-3.1-instruct --size-in-billions 8 --model-format pytorch --gpu-idx 1 --quantization none # 启动 llama3.1

    之后再填写 model_settings.yaml 中的 DEFAULT_LLM_MODEL: llama-3.1-instructDEFAULT_EMBEDDING_MODEL: bge-large-zh-v1.5

  2. 如果你希望调用openai、通义千问等服务商提供的模型,就需要修改 model_settings.yaml 中 MODEL_PLATFORMS,修改 api_base_url、api_key等信息(我没有使用过这种方法,只知道大概的思路)

freezehe commented 3 months ago
  1. 如果你希望在本地运行 qwen1.5-chat,就需要在本地拉起 xinference 服务,并部署好 embedding 模型和语言模型:
XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997 # 启动 xinference 服务
xinference launch --model-name bge-large-zh-v1.5 --model-type embedding --gpu-idx 0 # 启动 embedding 服务
xinference launch --model-engine vllm --model-name llama-3.1-instruct --size-in-billions 8 --model-format pytorch --gpu-idx 1 --quantization none # 启动 llama3.1

之后再填写 model_settings.yaml 中的 DEFAULT_LLM_MODEL: llama-3.1-instructDEFAULT_EMBEDDING_MODEL: bge-large-zh-v1.5

  1. 如果你希望调用openai、通义千问等服务商提供的模型,就需要修改 model_settings.yaml 中 MODEL_PLATFORMS,修改 api_base_url、api_key等信息(我没有使用过这种方法,只知道大概的思路)

首先非常感谢你的回答,我是打算采用你的方式1,但是我在xinference加载官网建议的qwen1.5-chat模型的时候,我是在centos服务器上,是cpu的,指定这些安装报错。我截个图 image 日志报错如下: image 所以我才考虑你说的方式2,但是方式2你说的那两个参数是在openai 节点还剩oneapi节点?

zhangyuanwang777 commented 3 months ago

你截图的报错应该是xinference部署相关的问题,去xinference的评论区提问可能会有人解答,或者详细看看xinference的入门教程。如果本地没有 GPU 只有 CPU,模型推理可能比较慢,最好还是使用厂商提供的语言模型。 openai的接口是行业规范,如果你使用 deepseek 这样的厂商提供的模型,也是支持 openai 规范的,所以尝试修改这一部分:

  - platform_name: openai
    platform_type: openai
    api_base_url: https://api.openai.com/v1
    api_key: sk-proj-
    api_proxy: ''
    api_concurrencies: 5
    auto_detect_model: false
    llm_models:
      - gpt-4o
      - gpt-3.5-turbo
    embed_models:
      - text-embedding-3-small
      - text-embedding-3-large
    text2image_models: []
    image2text_models: []
    rerank_models: []
    speech2text_models: []
    text2speech_models: []
flywhc commented 3 months ago

我的经验是 xinference功能强但坑比较多 可以试试ollama,傻瓜化基本无坑,虽然能力也弱一些。

langchain-chatchat不能自动读ollama的模型列表,需要手工加模型列表,把前面默认LLM和embedding也改成列表里有的模型 比如我的ollama额配置:

  - platform_name: ollama
    platform_type: ollama
    api_base_url: http://127.0.0.1:11434/v1
    api_key: EMPTY
    api_proxy: ''
    api_concurrencies: 5
    auto_detect_model: false
    llm_models:
      - qwen2:7b
      - qwen2:72b
      - glm4
      - yi:34b
    embed_models:
      - bge-m3
      - quentinz/bge-large-zh-v1.5
    text2image_models: []
    image2text_models: []
    rerank_models: []
    speech2text_models: []
    text2speech_models: []

需要哪个模型就先pull了再run:

qwen2:7b在CPU上跑的还可以忍受,实在不行就1.5b。0.5b就不用考虑了。 瓶颈其实在embedding model上,如果CPU不够好,文档稍微一大可能就会向量化超时

lzf1989 commented 2 months ago

我的经验是 xinference功能强但坑比较多 可以试试ollama,傻瓜化基本无坑,虽然能力也弱一些。

langchain-chatchat不能自动读ollama的模型列表,需要手工加模型列表,把前面默认LLM和embedding也改成列表里有的模型 比如我的ollama额配置:

  - platform_name: ollama
    platform_type: ollama
    api_base_url: http://127.0.0.1:11434/v1
    api_key: EMPTY
    api_proxy: ''
    api_concurrencies: 5
    auto_detect_model: false
    llm_models:
      - qwen2:7b
      - qwen2:72b
      - glm4
      - yi:34b
    embed_models:
      - bge-m3
      - quentinz/bge-large-zh-v1.5
    text2image_models: []
    image2text_models: []
    rerank_models: []
    speech2text_models: []
    text2speech_models: []

需要哪个模型就先pull了再run:

  • ollama pull qwen2:7b
  • ollama pull bge-m3
  • 'ollama run qwen2:7b'

qwen2:7b在CPU上跑的还可以忍受,实在不行就1.5b。0.5b就不用考虑了。 瓶颈其实在embedding model上,如果CPU不够好,文档稍微一大可能就会向量化超时

大佬,我是手动下载的qwen-2大模型,通过lama.cpp改为gguf格式,通过ollama启动的,embed_models 我按你上面的写法,在初始化知识库 提示default embedding model bge-large-zh-v1.5 is not found in available embeddings, using quentinz/bge-large-zh-v1.5 instead Error raised by inference API HTTP code: 404, {"error":"model \"quentinz/bge-large-zh-v1.5\" not found, try pulling it first"} 2024-09-07 19:09:08.206 | ERROR | chatchat.init_database:worker:61 - 向量库 samples 加载失败。 这个是哪里的问题

flywhc commented 2 months ago

我的经验是 xinference功能强但坑比较多 可以试试ollama,傻瓜化基本无坑,虽然能力也弱一些。 langchain-chatchat不能自动读ollama的模型列表,需要手工加模型列表,把前面默认LLM和embedding也改成列表里有的模型 比如我的ollama额配置:

  - platform_name: ollama
    platform_type: ollama
    api_base_url: http://127.0.0.1:11434/v1
    api_key: EMPTY
    api_proxy: ''
    api_concurrencies: 5
    auto_detect_model: false
    llm_models:
      - qwen2:7b
      - qwen2:72b
      - glm4
      - yi:34b
    embed_models:
      - bge-m3
      - quentinz/bge-large-zh-v1.5
    text2image_models: []
    image2text_models: []
    rerank_models: []
    speech2text_models: []
    text2speech_models: []

需要哪个模型就先pull了再run:

  • ollama pull qwen2:7b
  • ollama pull bge-m3
  • 'ollama run qwen2:7b'

qwen2:7b在CPU上跑的还可以忍受,实在不行就1.5b。0.5b就不用考虑了。 瓶颈其实在embedding model上,如果CPU不够好,文档稍微一大可能就会向量化超时

大佬,我是手动下载的qwen-2大模型,通过lama.cpp改为gguf格式,通过ollama启动的,embed_models 我按你上面的写法,在初始化知识库 提示default embedding model bge-large-zh-v1.5 is not found in available embeddings, using quentinz/bge-large-zh-v1.5 instead Error raised by inference API HTTP code: 404, {"error":"model "quentinz/bge-large-zh-v1.5" not found, try pulling it first"} 2024-09-07 19:09:08.206 | ERROR | chatchat.init_database:worker:61 - 向量库 samples 加载失败。 这个是哪里的问题

看这个错误你没有 pull quentinz/bge-large-zh-v1.5啊。没有嵌入模型,仅仅有语言模型是不能RAG的。建议你都用ollama pull命令拉取官方模型,都试验没问题了再搞你自定义的

guoguo1314 commented 2 months ago

老哥,真巧,我正在看这个问题,我的llm想用qwen2:1.5b ,我的ollama list如下: `userland@localhost:/root/codes/Langchain-Chatchat/libs/chatchat-server/chatchat$ ollama list NAME
qwen2:1.5b
qwen:4b
qwen2:7b
quentinz/bge-large-zh-v1.5:latest
qwen2:0.5b
我的model_setting如下: “DEFAULT_LLM_MODEL: qwen2:1.5b DEFAULT_EMBEDDING_MODEL: quentinz/bge-large-zh-v1.5:latest MODEL_PLATFORMS:

flywhc commented 2 months ago

老哥,真巧,我正在看这个问题,我的llm想用qwen2:1.5b ,我的ollama list如下: `userland@localhost:/root/codes/Langchain-Chatchat/libs/chatchat-server/chatchat$ ollama list NAME qwen2:1.5b qwen:4b qwen2:7b quentinz/bge-large-zh-v1.5:latest qwen2:0.5b 我的model_setting如下: “DEFAULT_LLM_MODEL: qwen2:1.5b DEFAULT_EMBEDDING_MODEL: quentinz/bge-large-zh-v1.5:latest MODEL_PLATFORMS:

  • platform_name: ollama platform_type: ollama api_base_url: http://127.0.0.1:11434/v1 api_key: EMPTY api_proxy: '' api_concurrencies: 5 auto_detect_model: false llm_models:

刚刚试了一下,没有问题:

  - platform_name: ollama
    platform_type: ollama
    api_base_url: http://127.0.0.1:11434/v1
    api_key: EMPTY
    api_proxy: ''
    api_concurrencies: 5
    auto_detect_model: false
    llm_models:
      - qwen2:0.5b
      - qwen2:1.5b
      - qwen2:7b
      - qwen2:72b
      - glm4
      - yi:34b
    embed_models:
      - bge-m3
      - quentinz/bge-large-zh-v1.5

image

github-actions[bot] commented 3 weeks ago

这个问题已经被标记为 stale ,因为它已经超过 30 天没有任何活动。