跳转到内容

使指标适应目标语言

在使用 Ragas 评估 LLM 应用工作流时,您可能需要评估非英语语言的应用。在这种情况下,最好让您的 LLM 评估指标适应目标语言。一个显而易见的方法是手动更改指令和示例,但这可能非常耗时。Ragas 在此提供了自动语言适应功能,您可以使用 LLM 本身自动将任何指标适应目标语言。本笔记本将通过一个简单的示例来演示这一点。

为了本示例的目的,我们选择一个指标并检查其默认提示。

from ragas.metrics import SimpleCriteriaScoreWithReference

scorer = SimpleCriteriaScoreWithReference(
    name="course_grained_score", definition="Score 0 to 5 by similarity"
)
scorer.get_prompts()
{'multi_turn_prompt': <ragas.metrics._simple_criteria.MultiTurnSimpleCriteriaWithReferencePrompt at 0x7fcf409c3880>,
 'single_turn_prompt': <ragas.metrics._simple_criteria.SingleTurnSimpleCriteriaWithReferencePrompt at 0x7fcf409c3a00>}

如您所见,指令和示例都是英文的。接下来设置用于此转换的 LLM。

from openai import OpenAI
from ragas.llms import llm_factory

openai_client = OpenAI(api_key="sk-...")
llm = llm_factory("gpt-4o-mini", client=openai_client)

现在,让我们使用 adapt 方法将其适应目标语言“印地语”(hindi)。Ragas 中的语言适应功能通过将提示中提供的少量示例(few-shot examples)翻译成目标语言来实现。指令部分仍保留为英文。

adapted_prompts = await scorer.adapt_prompts(language="hindi", llm=llm)

检查已适应的提示,并在需要时进行更正。

adapted_prompts
{'multi_turn_prompt': <ragas.metrics._simple_criteria.MultiTurnSimpleCriteriaWithReferencePrompt at 0x7fcf42bc40a0>,
 'single_turn_prompt': <ragas.metrics._simple_criteria.SingleTurnSimpleCriteriaWithReferencePrompt at 0x7fcf722de890>}

使用 set_prompts 方法将提示设置为新的、已适应的提示。

scorer.set_prompts(**adapted_prompts)

使用已适应的指标进行评估

from ragas.dataset_schema import SingleTurnSample

sample = SingleTurnSample(
    user_input="एफिल टॉवर कहाँ स्थित है?",
    response="एफिल टॉवर पेरिस में स्थित है।",
    reference="एफिल टॉवर मिस्र में स्थित है",
)

scorer.llm = llm
await scorer.single_turn_ascore(sample)
0

推理过程和分数

{ "reason": "响应和上下文在答案中提到的地点方面存在显著差异。", "score": 0 }