Yuan Chai
Yuan Chai
您好,想问下,我在初始化数据库中,用了[qa_text_splitter.py](https://github.com/chatchat-space/Langchain-Chatchat/pull/3298/commits/2ef5d1fafe164797151ad79c8c42f04e39cc4876#diff-4284d50b02a1578ff431519f2378180ad470505311d78b3dd1953c10946687ca),但只想向量化question的部分,不想向量化answer,这个该如何实现呢?我现在用qa_text_splitter.py之后,是对整个q-a进行了向量化。。。
> > 您好,想问下,我在初始化数据库中,用了[qa_text_splitter.py](https://github.com/chatchat-space/Langchain-Chatchat/pull/3298/commits/2ef5d1fafe164797151ad79c8c42f04e39cc4876#diff-4284d50b02a1578ff431519f2378180ad470505311d78b3dd1953c10946687ca),但只想向量化question的部分,不想向量化answer,这个该如何实现呢?我现在用qa_text_splitter.py之后,是对整个q-a进行了向量化。。。 > > 是指只要这部分嘛? 我简单实现了一下,在base.py的EmbeddingsFunAdapter的embed_documents方法中,在向量化时用正则表达式把texts的question给提取了出来,这样就可以做到只向量化question
> > > 您好,想问下,我在初始化数据库中,用了[qa_text_splitter.py](https://github.com/chatchat-space/Langchain-Chatchat/pull/3298/commits/2ef5d1fafe164797151ad79c8c42f04e39cc4876#diff-4284d50b02a1578ff431519f2378180ad470505311d78b3dd1953c10946687ca),但只想向量化question的部分,不想向量化answer,这个该如何实现呢?我现在用qa_text_splitter.py之后,是对整个q-a进行了向量化。。。 > > > > > > 是指只要这部分嘛? > > 我简单实现了一下,在base.py的EmbeddingsFunAdapter的embed_documents方法中,在向量化时用正则表达式把texts的question给提取了出来,这样就可以做到只向量化question 仅对问题进行向量化,  我在embed_documents方法加入了如下函数 
感觉texts直接转字典,然后把question的value取出来也可以,用try来取,我是想在数据库初始化和增量更新时做这个事情,暂时没有考虑前端页面,只向量化问题,检索的阈值就可以设置得更低一些,匹配的更精准
部署脚本如下: CUDA_VISIBLE_DEVICES=0 \ swift deploy \ --model_type qwen-7b-chat-int4 \ --ckpt_dir "/home/model/swift/work/qwen/output/qwen-7b-chat-int8/v0-20240515-125128/checkpoint-93" \ --infer_backend 'pt' \ --host "0.0.0.0" \ --port 8000 因为是量化模型,所以我指定了--infer_backend 'pt',但是还是要让我安装vllm,我安装了vllm0.3.1的版本
或者说,我如果用ms_agent的格式去训练,那么就不能额外的添加系统指令了吧,会影响推理效果,比如将ms_agent的system改成如下: ```bash system You are a helpful assistant. Answer the following questions as best you can. You have access to the following APIs ```
初步想的两种方案: 1. 不用基于stop符号的tool-call提示词,感觉现在qwen的基于stop停止符的tool-call提示词已经不流行了,需要从qwen底层的训练数据进行调整(qwen训练数据会给假的工具调用的回复。。反而强制加强了模型的幻觉??这是用stop的原因) 2. 在下一轮对话中,把上一轮的AI回复用思考结尾符\拼接一下
现在还没看到哪个厂家支持,感觉得等a2a协议再成熟一些
应该是qwen本身训练时仅支持system, user, assistant三个role