🌐港中深数字人设计
type
status
date
slug
summary
tags
category
icon
password
📝 总览
- 前端: vue3 + live2d
- 后端: 调用 阿里云实时语音接口,调用算法接口。
- 算法端: 使用RAG ,Milvus
📝 展示
📝 种子问题集合
- XXX(人名)是谁
- XXX(地名)介绍
- XXX(单位)介绍
主旨: 大模型落地方面,由于有细分场景的限制,所以每个问题回答的权重,应该不一样,即一些关键问题的正确率要远远比非关键问题要重要,即应该针对不同的应用场景,设计不同的种子问题,用这个种子问题做排序。给分权重
📝 数据准备
- 关键词: 爬虫的数据。
- 公众号数据: 几百G的数据 (废弃,杂)
- 龙大生活指南,各种手册pdf: 使用gpt-4o 进行扫描
- 评测系统的种子问题集合: 问卷/新生/家长/老师手里的数据。
- 邮箱数据: 大模型总结
最后都进行人工校对。
📝 微调
- 底座为qwen1.5 32B (dbase_triage_flan 是华佗的分诊数据)
📝 最终策略
- prompt 优化
- 公众号数据监测
- 嵌入: 大模型重写与拆分
- 插入,两个数据表
- 召回
其他参考
- TFIDF
- Sum 里面的关键词
- 你们直接去微调一个embedding,然后加一个crf做ner呗
- 比如融合tf-idf,关键词匹配,embedding做多路召回,再排序
- 微软的 longllmlingua 开源的压缩框架
- 命名实体识别
📝 策略benchmark
黑盒: 两两相关性
- LLM as a judge 打分:
There is an existing knowledge base chatbot application. I asked it a question and got a reply. Do you think this reply is a good answer to the question? Please rate this reply. The score is an integer between 0 and 10. 0 means that the reply cannot answer the question at all, and 10 means that the reply can answer the question perfectly.
Question: Where is France and what is it’s capital?
Reply: France is in western Europe and Paris is its capital.
- ground-truth 人类打标好的答案(测试集)
既然 LLM 可以生成一切,那让 LLM 来根据知识文档,来生成 query 和 ground-truth 是可行的。
根据知识文档生成的 questions 和 answers
根据文档生成 一系列测试问题和答案,然后由大模型作为裁判,判断答案和回答的相似程度
- 具体的步骤
根据文档生成 一系列测试问题和答案,然后由大模型作为裁判,判断答案和回答的相似程度
白盒:
embedding model、rerank model 和 LLM,有的 RAG 有多路召回能力,可能还会有 term frequency search 算法
embedding model 和 rerank model
- 不考虑排名的指标
- 上下文召回率(Context Recall):系统完整地检索到了所有必要的文档的程度。
- 上下文精确率(Context Precision):系统检索到的信号(与噪音相比)的程度。
- 考虑排名的指标
- 平均精确率(AP)测量检索到的所有相关块并计算加权分数。数据集上的AP的平均值通常被称为MAP。
- 倒数排名(RR)测量您的检索中第一个相关块出现的位置。数据集上的RR的平均值通常被称为MRR。
- 归一化折扣累积增益(NDCG)考虑了您的相关性分类非二元的情况。
- 最主流评估 Benchmark:MTEB https://arxiv.org/abs/2210.07316
对于 Embedding 模型,NDCG 是最重要的指标;对于 Rerank 模型,MAP 是最重要的指标。
📝 评价工具
- Continuous Eval(https://docs.relari.ai/v0.3)
- TruLens-Eval 、Llama-Index
- DeepEval(https://github.com/confident-ai/deepeval)、LangSmith
- OpenAI Evals(https://github.com/openai/evals)
指标
Answer_Similarity: truth and answer
Answer_Relevance: 利用answer反推问题 然后与anwser
Context_Precision: 用LLM判断Contexts对Question有帮助的数量
Context_Relevance: 用LLM将所有Contexts分解为句子,并判断对Question 有帮助的句子数量
context_recall: 用LLM提取所有Truths中的要点数量,用LLM判断在Contexts能找到对应信息的要点数量
Faithfulness: 用LLM提取Answer中的要点,设要点的数量为|Sal。用LLM检验这些要点是否可以Contexts中推理而来。
Answer_Correctness: LLM提取Answer中的要点, 用LLM检验这些要点是否可以Contexts中推理而来,
Aspect_Critique:
📝 Rag知识补充
- 挑战: 数据很差,数据向量化造成的信息损失,语意的不准确
- 原始rag的问题: 长文本检索(输入乱七八糟),无知识幻觉(知识库失去意义),增强难(只是复述)
- 优化
- 对用户的问题: 知识切分(聚类),索引方式(插入有效的数据),query改写
- 检索优化: 微调嵌入模型BAAI/bge,关键词检索
- 召回的东西优化: 提示压缩,重排
- Modular RAG
- 业务链路: 知识生产加工,query改写,数据召回,后置处理,大模型生产
- level1:固定字段,大模型改写,业务embedding,向量相似度排序
- level2:语意切分模型(内聚),大模型改写(一个拆多或者一个变多),业务embedding,去重重排
- level3:可扩展性
- 知识生产加工优化: 索引混乱,token过长语意被截断(大模型注意力)
- 索引优化; HyDE(生成假设问题,命中这些假设问题),索引降噪(有点像生成groundtruth那样),多级索引
- query改写: RAG-Fusion() 跟 step-Back prompting(抽象改写)
- query降噪: 停用词表
- 召回:
- NL2Cypher 抽取
- 向量召回
- 分词召回
- 多路召回
- 重排模型: cohere , bge-reranker-base, bge-reranker-large.
上一篇
3D打印知识分享
下一篇
哨兵机器人撞柱的设计
Loading...