适应目标语言的度量标准¶
在使用Ragas评估LLM应用工作流程时,您可能需要评估的应用程序使用的语言不是英语。在这种情况下,最好将您的LLM驱动评估指标调整为目标语言。一种显而易见的方法是手动更改说明和示例,但这可能会耗费时间。Ragas在这里提供了自动语言适配,您可以通过使用LLM本身自动将任何指标调整为目标语言。这个笔记本通过简单的示例演示了这一点。
为了这个示例,我们选择一个指标并检查默认提示。
In [1]:
Copied!
from ragas.metrics import SimpleCriteriaScoreWithReference
scorer = SimpleCriteriaScoreWithReference(
name="course_grained_score", definition="Score 0 to 5 by similarity"
)
from ragas.metrics import SimpleCriteriaScoreWithReference
scorer = SimpleCriteriaScoreWithReference(
name="course_grained_score", definition="Score 0 to 5 by similarity"
)
In [2]:
Copied!
scorer.get_prompts()
scorer.get_prompts()
Out[2]:
{'multi_turn_prompt': <ragas.metrics._simple_criteria.MultiTurnSimpleCriteriaWithReferencePrompt at 0x7fcf409c3880>, 'single_turn_prompt': <ragas.metrics._simple_criteria.SingleTurnSimpleCriteriaWithReferencePrompt at 0x7fcf409c3a00>}
如您所见,说明和演示均为英文。设置LLM以进行此转换。
In [3]:
Copied!
from ragas.llms import llm_factory
llm = llm_factory()
from ragas.llms import llm_factory
llm = llm_factory()
查看支持的语言代码
In [4]:
Copied!
from ragas.utils import RAGAS_SUPPORTED_LANGUAGE_CODES
print(list(RAGAS_SUPPORTED_LANGUAGE_CODES.keys()))
from ragas.utils import RAGAS_SUPPORTED_LANGUAGE_CODES
print(list(RAGAS_SUPPORTED_LANGUAGE_CODES.keys()))
['english', 'hindi', 'marathi', 'chinese', 'spanish', 'amharic', 'arabic', 'armenian', 'bulgarian', 'urdu', 'russian', 'polish', 'persian', 'dutch', 'danish', 'french', 'burmese', 'greek', 'italian', 'japanese', 'deutsch', 'kazakh', 'slovak']
现在,让我们使用 adapt
方法将其调整为“印地语”作为目标语言。
在 Ragas 中的语言适应通过将给定的少量示例与提示翻译成目标语言来实现。说明保持为英文。
In [5]:
Copied!
adapted_prompts = await scorer.adapt_prompts(language="hindi", llm=llm)
adapted_prompts = await scorer.adapt_prompts(language="hindi", llm=llm)
请检查适应后的提示并在必要时进行更正。
In [6]:
Copied!
adapted_prompts
adapted_prompts
Out[6]:
{'multi_turn_prompt': <ragas.metrics._simple_criteria.MultiTurnSimpleCriteriaWithReferencePrompt at 0x7fcf42bc40a0>, 'single_turn_prompt': <ragas.metrics._simple_criteria.SingleTurnSimpleCriteriaWithReferencePrompt at 0x7fcf722de890>}
设置提示为使用 set_prompts
方法的新适应提示
In [7]:
Copied!
scorer.set_prompts(**adapted_prompts)
scorer.set_prompts(**adapted_prompts)
使用适应性指标进行评估
In [8]:
Copied!
from ragas.dataset_schema import SingleTurnSample
sample = SingleTurnSample(
user_input="एफिल टॉवर कहाँ स्थित है?",
response="एफिल टॉवर पेरिस में स्थित है।",
reference="एफिल टॉवर मिस्र में स्थित है",
)
scorer.llm = llm
await scorer.single_turn_ascore(sample)
from ragas.dataset_schema import SingleTurnSample
sample = SingleTurnSample(
user_input="एफिल टॉवर कहाँ स्थित है?",
response="एफिल टॉवर पेरिस में स्थित है।",
reference="एफिल टॉवर मिस्र में स्थित है",
)
scorer.llm = llm
await scorer.single_turn_ascore(sample)
Out[8]:
0
{
"reason": "在反应和上下文的回答中,位置的上下文具有重要的差异。",
"score": 0
}