As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Você pode criar um trabalho de avaliação do Retrieval Augmented Generation (RAG) que calcula as métricas para a avaliação. Se você quiser avaliar o desempenho de sua própria fonte não Amazon Bedrock RAG, você pode fazer isso fornecendo seus próprios dados de resposta de inferência no conjunto de dados imediato.
Consulte Crie um conjunto de dados imediato para uma avaliação do RAG no Amazon Bedrock para saber como especificar um conjunto de dados imediato para um trabalho de avaliação da base de conhecimento.
Certas permissões de acesso são necessárias para criar trabalhos de avaliação da base de conhecimento. Para obter mais informações, consulte Permissões necessárias para criar um trabalho de avaliação do Amazon Bedrock Knowledge Bases.
Você pode avaliar a recuperação somente de sua base de conhecimento ou a recuperação com geração de resposta. Métricas diferentes são relevantes somente para recuperação e recuperação com geração de resposta. Para obter mais informações, consulte Revise as métricas das avaliações do RAG que usam LLMs (console).
Você deve escolher um modelo de avaliador compatível para calcular as métricas para sua avaliação. Se você quiser avaliar a recuperação com geração de resposta para uma base de conhecimento do Amazon Bedrock, você também deve escolher um modelo compatível para geração de respostas. Para obter mais informações, consulte Pré-requisitos para criar avaliações de RAG no Amazon Bedrock.
O exemplo a seguir mostra como criar um trabalho de avaliação da base de conhecimento usando AWS CLI o.
Trabalhos de avaliação do RAG que usam LLMs
O exemplo a seguir mostra como criar um trabalho de avaliação do RAG que usa Large Language Models (LLMs) para a avaliação.
AWS Command Line Interface
aws bedrock create-evaluation-job \
--job-name "rag-evaluation-complete-stereotype-docs-app" \
--job-description "Evaluates Completeness and Stereotyping of RAG for docs application" \
--role-arn "arn:aws::iam:<region>:<account-id>:role/AmazonBedrock-KnowledgeBases" \
--application-type "RagEvaluation" \
--evaluationConfig file://knowledge-base-evaluation-config.json \
--inference-config file://knowledge-base-evaluation-inference-config.json \
--output-data-config '{"s3Uri":"s3://docs/kbevalresults/"}'
file://knowledge-base-evaluation-config.json
{
"automated": [{
"datasetMetricConfigs": [{
"taskType":"Generation", //Required field for model evaluation, but ignored/not used for knowledge base evaluation
"metricNames":["Builtin.Completeness","Builtin.Stereotyping"],
"dataset": [{
"name":"RagTestPrompts",
"datasetLocation":"s3://docs/kbtestprompts.jsonl"
}]
}],
"evaluatorModelConfig": {
"bedrockEvaluatorModels": [{
"modelIdentifier": "anthropic.claude-3-5-sonnet-20240620-v1:0"
}]
}
}]
}
file://knowledge-base-evaluation-inference-config.json
{
"ragConfigs": {
"knowledgeBaseConfig": [{
"retrieveConfig": [{
"knowledgeBaseId":"<knowledge-base-id>",
"knowledgeBaseRetrievalConfiguration": {
"vectorSearchConfiguration": [{
"numberOfResults": 10,
"overrideSearchType":"HYBRID"
}]
}
}],
"retrieveAndGenerateConfig": [{
"type":"KNOWLEDGE_BASE",
"knowledgeBaseConfiguration": [{
"knowledgeBaseId":"<knowledge-base-id>",
"modelArn":"arn:aws:bedrock:<region>:<account-id>:inference-profile/anthropic.claude-v2:1",
"generationConfiguration": {
"promptTemplate": {
"textPromptTemplate": "\n\nHuman: I will provide you with a set of search results and a user's question. Your job is to answer the user's question using only information from the search results\n\nHere are the search results: $search_results$\n\nHere is the user's question: $query$\n\nAssistant:"
}
}
}]
}]
}]
}
}
AWS SDK para Python (Boto3)
nota
Durante a pré-visualização, o gerenciamento da sua AWS conta fornecerá um arquivo de parâmetros para baixar e usar.
O exemplo de python a seguir demonstra como fazer uma solicitação da API Boto3 somente para recuperação. Para saber mais sobre como criar um trabalho de avaliação usando o Boto3, consulte a create_evaluation_job
import boto3
client = boto3.client('bedrock')
job_response = client.create_evaluation_job(
jobName="my_evaluation_job",
jobDescription="two different task types",
roleArn="arn:aws:iam::111122223333
:role/service-role/Amazon-Bedrock-IAM-Role
Amazon-Bedrock-IAM-Role",
applicationType="RagEvaluation",
inferenceConfig={
"ragConfigs": [
{
"knowledgeBaseConfig": {
"retrieveConfig": {
"knowledgeBaseId": "your-knowledge-base-id
",
"knowledgeBaseRetrievalConfiguration": {
"vectorSearchConfiguration": {
"numberOfResults": 10,
"overrideSearchType": "HYBRID"
}
}
}
}
}
]
},
outputDataConfig={
"s3Uri":"s3://amzn-s3-demo-bucket-model-evaluations/outputs/"
},
evaluationConfig={
"automated": {
"datasetMetricConfigs": [
{
"taskType": "Summarization",
"dataset": {
"name": "RagDataset",
"datasetLocation": {
"s3Uri": "s3://amzn-s3-demo-bucket/input_data/data_3_rng.jsonl"
}
},
"metricNames": [
"Builtin.ContextCoverage"
]
}
],
"evaluatorModelConfig":
{
"bedrockEvaluatorModels": [{
"modelIdentifier": "meta.llama3-1-70b-instruct-v1:0"
}]
}
}
}
)
print(job_request)
O exemplo de python a seguir demonstra como fazer uma solicitação da API Retrieve e gerar boto3.
import boto3
client = boto3.client('bedrock')
job_response = client.create_evaluation_job(
jobName="my_evaluation_job",
jobDescription="two different task types",
roleArn="arn:aws:iam::111122223333
:role/role-name",
applicationType="RagEvaluation",
inferenceConfig={
"ragConfigs": [
{
"knowledgeBaseConfig": {
"retrieveAndGenerateConfig": {
"type": "KNOWLEDGE_BASE",
"knowledgeBaseConfiguration": {
"knowledgeBaseId": "73SPNQM4CI",
"modelArn": "anthropic.claude-3-sonnet-20240229-v1:0",
"generationConfiguration": {
"promptTemplate": {
"textPromptTemplate": "$search_results$ hello world template"
}
},
"retrievalConfiguration": {
"vectorSearchConfiguration": {
"numberOfResults": 10,
"overrideSearchType": "HYBRID"
}
}
}
}
}
}
]
},
outputDataConfig={
"s3Uri":"s3://amzn-s3-demo-bucket-model-evaluations/outputs/"
},
evaluationConfig={
"automated": {
"datasetMetricConfigs": [
{
"taskType": "Summarization",
"dataset": {
"name": "RagDataset",
"datasetLocation": {
"s3Uri": "s3://amzn-s3-demo-bucket-input-data/data_3_rng.jsonl"
}
},
"metricNames": [
"Builtin.Faithfulness"
]
}
],
"evaluatorModelConfig":
{
"bedrockEvaluatorModels": [{
"modelIdentifier": "meta.llama3-1-70b-instruct-v1:0"
}]
}
}
}
)
print(job_request)
Trabalhos de avaliação do RAG usando seus próprios dados de resposta de inferência
Para avaliar o desempenho de suas próprias fontes de Retrieval Augmented Generation (RAG), você pode criar um trabalho de avaliação do RAG usando seus próprios dados de resposta de inferência. Para saber como criar um conjunto de dados rápido com seus próprios dados de resposta de inferência, consulte. Crie um conjunto de dados imediato para uma avaliação do RAG no Amazon Bedrock As seções a seguir mostram exemplos de AWS CLI comandos e arquivos JSON usados para criar trabalhos somente de recuperação e avaliação. retrieve-and-generate
Crie um trabalho de avaliação somente para recuperação com seus próprios dados de resposta de inferência
Execute o AWS CLI comando a seguir usando o arquivo JSON de exemplo.
aws bedrock create-evaluation-job --cli-input-json file://
my_eval_job.json
{
"jobName": "my_rag_eval"
,
"roleArn": "arn:aws:iam::111122223333:role/service-role/Amazon-Bedrock-IAM-Role-Amazon-Bedrock-IAM-Role-20250218T063974"
,
"applicationType": "RagEvaluation",
"evaluationConfig": {
"automated": {
"datasetMetricConfigs": [
{
"taskType": "General",
"dataset": {
"name": "text_dataset",
"datasetLocation": {
"s3Uri": "s3://amzn-s3-demo-bucket/input/retrieval-only/retrieve-eval-byoir.jsonl"
}
},
"metricNames": [
"Builtin.ContextCoverage",
"Builtin.ContextRelevance"
]
}
],
"evaluatorModelConfig": {
"bedrockEvaluatorModels": [
{
"modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0"
}
]
}
}
},
"inferenceConfig": {
"ragConfigs": [
{
"precomputedRagSourceConfig": {
"retrieveSourceConfig": {
"ragSourceIdentifier": "my_rag_source"
}
}
}
]
},
"outputDataConfig": {
"s3Uri": "s3://amzn-s3-demo-bucket/output/"
}
}
Crie um trabalho retrieve-and-generate de avaliação com seus próprios dados de resposta de inferência
Execute o AWS CLI comando a seguir usando o arquivo JSON de exemplo.
aws bedrock create-evaluation-job --cli-input-json file://
my_eval_job.json
{
"jobName": "my_rag_eval"
,
"roleArn": "arn:aws:iam::111122223333:role/service-role/Amazon-Bedrock-IAM-Role-Amazon-Bedrock-IAM-Role-20250218T063974"
,
"applicationType": "RagEvaluation",
"evaluationConfig": {
"automated": {
"datasetMetricConfigs": [
{
"taskType": "General",
"dataset": {
"name": "text_dataset",
"datasetLocation": {
"s3Uri": "s3://amzn-s3-demo-bucket/input/retrieve-and-generate/rng-eval-byoir.jsonl"
}
},
"metricNames": [
"Builtin.Correctness",
"Builtin.Completeness",
"Builtin.Helpfulness",
"Builtin.LogicalCoherence",
"Builtin.Faithfulness",
"Builtin.Harmfulness",
"Builtin.Stereotyping",
"Builtin.Refusal",
"Builtin.CitationCoverage",
"Builtin.CitationPrecision"
]
}
],
"evaluatorModelConfig": {
"bedrockEvaluatorModels": [
{
"modelIdentifier": "us.meta.llama3-1-70b-instruct-v1:0"
}
]
}
}
},
"inferenceConfig": {
"ragConfigs": [
{
"precomputedRagSourceConfig": {
"retrieveAndGenerateSourceConfig": {
"ragSourceIdentifier": "my_rag_source"
}
}
}
]
},
"outputDataConfig": {
"s3Uri": "s3://amzn-s3-demo-bucket/output/"
}
}