1. 第一个经常碰到的典型问题是,大模型在脑补它自己的内容。

    :这个解决方案就是修改prompt模板。调试中发现,需要约束模型在加工匹配后的结果时不要添加不存在的内容。还有就是匹配不到尝试自己回答问题时,应给出提示。测试效果不错

PROMPT_TEMPLATE = """已知信息:{context} 
根据已知信息,找到与问题匹配的答案,只需要简洁的来回答我的问题,不要举例,更不要添加已知信息里不存在的内容。如果在已知信息里匹配不到答案,则通过模型回答问题,并在答案前加上“知识库中找不到答案,我来尝试回答您的问题:”  我的问题是:{question}"""
temperature: float = 0.01
top_p = 0.9

2.除了大模型的问题,更关键的是导入的数据质量及切割

    :导入的数据如果是FAQ的问答是最理想的,这样还可以约束切割符。

 chunk_size=1000,chunk_overlap=200,separator="\n\n"

还有一个chunk_size是约束匹配后的文本块长度的,这个在GLM2扩展后,可以适度设置大些,目前设置500。

这里有个小坑,导入的docx用office的报错,用wps的就可以。所以搞个批量转换函数。

3.搜索匹配

    :涉及向量化。开源的这些对比OpenAI的向量服务,效果会差点。如果不涉及敏感信息,建议用OpenAI的。如果用开源的,相关度参数可以先设置0,后面根据效果再逐步从500往下调。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐