当前位置: 首页> 科技> 名企 > 厦门seo搜索引擎优化_软件公司薪酬绩效方案_泰州seo推广_网站怎么优化推广

厦门seo搜索引擎优化_软件公司薪酬绩效方案_泰州seo推广_网站怎么优化推广

时间:2025/9/9 15:49:52来源:https://blog.csdn.net/u013261578/article/details/144839251 浏览次数:0次
厦门seo搜索引擎优化_软件公司薪酬绩效方案_泰州seo推广_网站怎么优化推广

1. 模型自动化测试

模型的测试中,不同类型的任务评测指标有显著差异,比如:

分类任务
准确率(Accuracy):正确预测的比例。
精确度(Precision)、召回率(Recall)与F1分数(F1 Score):用于衡量二分类或多分类问题中正类别的识别效果。
文本生成任务
BLEU (Bilingual Evaluation Understudy) 分数:主要用于机器翻译等自然语言处理任务中,通过比较候选翻译与一个或多个参考翻译之间的n-gram重叠来计算得分。
ROUGE (Recall-Oriented Understudy for Gisting Evaluation) 分数:常用于自动摘要评价,它基于n-gram召回率、精确率以及F-measure。
Perplexity (困惑度):用来衡量概率分布模型预测样本的不确定程度;越低越好。
图像识别/目标检测
Intersection over Union (IoU):两个边界框相交部分面积与并集面积之比。
mAP (mean Average Precision):平均精度均值,广泛应用于物体检测任务中

ROUGE是基于召回率的评估指标,特别适用于 文本摘要、问答生成 和 机器翻译 等任务。其核心思想是通过对生成文本和参考文本的 n-gram 或 子序列 匹配程度进行评估。

ROUGE Scores (Recall Oriented Understudy for Gisting Evaluation)

rouge-n-(r/p/f): 这是基于词级别的n-gram匹配度量,其中n=1,意味着考虑单个词汇的重合情况;n=2,意味着考虑两个词汇组成的短语的重合情况;n=L(long),意味着考虑一个模型输出与测试用例中最长公共子序列的重合情况。

rouge-n-r:召回率(Recall),表示模型输出正确预测出测试用例的比例。

rouge-n-p:精确率(Precision),表示模型输出有多大部分也出现在测试用例中。

rouge-n-f:F1分数,是召回率和精确率的调和平均值,综合考量了两者的表现。

相关文章:ROUGE: A Package for Automatic Evaluation of Summaries (Chin-Yew Lin, 2004)

Rouge-L分数可以评估输出的SQL语句有多少部分是有用的,因此它能大致反映出模型的能力。

from rouge import Rouge
# 生成文本
generated_text = "你需要的sql: SELECT * FROM employees WHERE employee_id NOT IN (SELECT employee_id FROM job_history)。 你可以用这句SQL查找到你要的信息。"
# 参考文本列表
reference_texts = "SELECT * FROM employees WHERE employee_id NOT IN (SELECT employee_id FROM job_history)"
# 计算 ROUGE 指标
rouge = Rouge()
scores = rouge.get_scores(generated_text, reference_texts)
# 打印结果
print("ROUGE-1 p:", scores[0]["rouge-1"]["p"])
print("ROUGE-1 r:", scores[0]["rouge-1"]["r"])
print("ROUGE-1 f:", scores[0]["rouge-1"]["f"])

在这里插入图片描述

from rouge import Rouge
# 生成文本
generated_text = "SELECT * FROM employees WHERE employee_id NOT IN (SELECT employee_id FROM job_history)"
# 参考文本列表
reference_texts = "SELECT * FROM employees WHERE employee_id NOT IN (SELECT employee_id FROM job_history)"
# 计算 ROUGE 指标
rouge = Rouge()
scores = rouge.get_scores(generated_text, reference_texts)
# 打印结果
print("ROUGE-1 p:", scores[0]["rouge-1"]["p"])
print("ROUGE-1 r:", scores[0]["rouge-1"]["r"])
print("ROUGE-1 f:", scores[0]["rouge-1"]["f"])

在这里插入图片描述

如何根据 Rouge 指标进行优化

1.优化Prompt
提示词工程就是研究如何构建和调整提示词,从而让大语言模型实现各种符合用户预期的任务的过程。利用one-shot和few-shot引导大模型给出正确答案。
在这里插入图片描述

2.微调
qwen2_5-1_5b-instruct 是比 qwen-plus反应更快的模型,当准确率相对较低,当如果针对具体业务微调后,Rouge分数比qwen-plus高,反应还是原来那样快。
在这里插入图片描述

3.Enrich补全需求
一种理想的通过多轮对话补全需求的方案。该设想是通过大模型多次主动与用户沟通,不断收集信息,完善对用户真实意图的理解,补全执行用户需求所需的各项参数。如下图所示。
在这里插入图片描述

2. RAG自动化测试

Ragas是现在评估RAG系统的非常标准化的工具。

Ragas 默认提供了多项指标,可以用来全链路评测应用的问答质量。比如:

整体回答质量的评估:

Answer Correctness,用于评估 RAG 应用生成答案的准确度。

生成环节的评估:

Answer Relevancy,用于评估 RAG 应用生成的答案是否与问题相关。

Faithfulness,用于评估 RAG 应用生成的答案和检索到的参考资料的事实一致性。

召回阶段的评估:

Context Precision,用于评估 contexts 中与准确答案相关的条目是否排名靠前、占比高(信噪比)。

Context Recall,用于评估有多少相关参考资料被检索到,越高的得分意味着更少的相关参考资料被遗漏。
在这里插入图片描述
评估前你需要准备三种数据:

  1. question,输入给 RAG 应用的问题
  2. answer,RAG 应用给出的答案
  3. ground_truth,你预先知道的正确的答案

为了方便演示,我会为你提供“不知道”、“幻觉”、“正确回答”三种回答

安装Ragas

pip install ragas==0.2.6
pip show ragas

了解整体回答 Answer Correctness 的计算过程
Answer correctness 的得分由生成答案(answer)和正确答案(ground truth)的语义相似度和事实准确度计算得出。

1.语义相似度

语义相似度是通过文本向量模型(Text Embedding Model)计算 answer 和 ground truth 的文本向量,然后计算两个文本向量的余弦相似度。

2.事实准确度

生成观点列表:

用大模型分别提取 answer 和 ground_truth 的观点。

例如:

answer: [“张伟是教研部的”, “张伟负责大模型课程”]
ground_truth: [“张伟是教研部的”, “张伟负责大数据方向”]

匹配观点:

TP (True Positive): answer 和 ground_truth 匹配的观点。
例如: “张伟是教研部的”
FP (False Positive): answer 有但 ground_truth 没有的观点。
例如: “张伟负责大模型课程”
FN (False Negative): ground_truth 有但 answer 没有的观点。
例如: “张伟负责大数据方向”

在这里插入图片描述
计算 F1 分数:F1 = TP / (TP + 0.5 * (FP + FN)) 如果 TP > 0,否则 F1 = 0

例如:TP = 1, FP = 1, FN = 1 F1 = 1 / (1 + 0.5 * (1 + 1)) = 0.5

分数汇总

得到语义相似度和事实准确度的分数后,对两者加权求和,即可得到最终的 Answer Correctness 的分数。

Answer Correctness 的得分 = 0.25 * 语义相似度得分 + 0.75 * 事实准确度得分

相关代码

from langchain_community.llms.tongyi import Tongyi  
from langchain_community.embeddings import DashScopeEmbeddings  
from datasets import Dataset  # ragas评估工具及相关指标
from ragas import evaluate  
from ragas.metrics import faithfulness,answer_relevancy,context_recall,context_precision,answer_correctnessfrom config.load_key import load_key
load_key()# =============== 准备示例数据 ===============
data_samples = {'question': [  # 测试问题列表'张伟是哪个部门的?','张伟是哪个部门的?','张伟是哪个部门的?'],'answer': [  # 系统生成的不同答案,用于评估答案质量'根据提供的信息,没有提到张伟所在的部门。如果您能提供更多关于张伟的信息,我可能能够帮助您找到答案。','张伟是人事部门的','张伟是教研部的'],'ground_truth':[  # 标准答案,用于对比评估'张伟是教研部的成员','张伟是教研部的成员','张伟是教研部的成员'],'contexts' : [['提供⾏政管理与协调⽀持,优化⾏政⼯作流程。 ', '绩效管理部 韩杉 李⻜ I902 041 ⼈⼒资源'],['李凯 教研部主任 ', '牛顿发现了万有引力'],['牛顿发现了万有引力', '张伟 教研部工程师,他最近在负责课程研发'],]
}# =============== 创建数据集 ===============
# 将字典格式数据转换为Dataset对象,便于评估使用
dataset = Dataset.from_dict(data_samples)# =============== 进行评估 ===============
score = evaluate(dataset = dataset,  # 要评估的数据集metrics=[answer_correctness],  # 使用answer_correctness指标评估答案的正确性# 使用通义千问plus模型作为评估模型llm=Tongyi(model_name="qwen-plus"),# 使用DashScope的文本向量化模型进行文本编码embeddings=DashScopeEmbeddings(model="text-embedding-v3")
)# 将评估结果转换为pandas数据框并打印
print(score.to_pandas())

把上面代码中metrics替换成下面的ragas评估指标

ragas评估指标说明:

  • answer_correctness: 评估答案的正确性
  • context_recall: 评估上下文的召回率
  • context_precision: 评估上下文的精确度
  • faithfulness: 评估答案与上下文的一致性
  • answer_relevancy: 评估答案与问题的相关性

metrics=[answer_correctness]
在这里插入图片描述
metrics=[answer_correctness]
在这里插入图片描述
metrics=[context_precision]
在这里插入图片描述
metrics=[faithfulness]
在这里插入图片描述
metrics=[answer_relevancy]
在这里插入图片描述

如何根据 Ragas 指标进行优化

做评测的最终目的不是为了拿到分数,而是根据这些分数确定优化的方向。上面代码展示了answer correctness、context recall、context precision三个指标的概念与计算方法,当观察到某几个指标的分数较低时,应该制定相应的优化措施。

Context Recall

context recall指标评测的是RAG应用在检索阶段的表现。如果该指标得分较低,可以尝试从以下方面进行优化:

1.检查知识库:如果你发现某些测试样本缺少相关知识,则需要对知识库进行补充。

2.更换embedding模型
MTEB——海量文本嵌入基准测试(MassiveTextEmbeddingBenchmark),下面是英文和中文Embedding 排行榜(截至 2025/01/01)
https://huggingface.co/spaces/mteb/leaderboard
英文排行榜
中文排行榜

3.query改写
在这里插入图片描述
Context Precision
与context recall一样,context precision指标评测的也是RAG应用在检索阶段的表现,但是更注重相关的文本段是否具有靠前的排名。如果该指标得分较低,你可以尝试context recall中的优化措施,并且可以尝试在检索阶段加入rerank(重排序),来提升相关文本段的排名。
Answer Correctness
answer correctness指标评测的是RAG系统整体的综合指标。如果该指标得分较低,而前两项分数较高,说明RAG系统在检索阶段表现良好,但是生成阶段出了问题。你可以尝试前边教程学到的方法,如优化prompt调整大模型生成的超参数(如temperature)等,你也可以更换性能更加强劲的大模型,甚至对大模型进行微调等方法来提升生成答案的准确度。

关键字:厦门seo搜索引擎优化_软件公司薪酬绩效方案_泰州seo推广_网站怎么优化推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: