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 da base de conhecimento que calcule métricas para a avaliação.
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.
nota
Os trabalhos de avaliação da base de conhecimento estão em modo de pré-visualização e estão sujeitos a alterações.
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 ter mais informações, consulte Revise as métricas das avaliações da base de conhecimento 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, também deverá escolher um modelo compatível para geração de resposta. Para ter mais informações, consulte Pré-requisitos para criar avaliações da base de conhecimento no Amazon Bedrock
Você deve fornecer um conjunto de dados imediato que deseja usar para a avaliação. Para ter mais informações, consulte Use um conjunto de dados imediato para uma avaliação da base de conhecimento 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 da base de conhecimento que usam LLMs
O exemplo a seguir mostra como criar um trabalho de avaliação da base de conhecimento 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" \
--evaluation-context "RAG" \
--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:"
}
}
}]
}]
}]
}
}
SDKpara 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 Retrieve only boto3. API
import boto3
client = boto3.client('bedrock')
job_request = client.create_evaluation_job(
jobName="fkki-boto3-test1",
jobDescription="two different task types",
roleArn="arn:aws:iam::111122223333
:role/service-role/Amazon-Bedrock-IAM-Role
Amazon-Bedrock-IAM-Role",
evaluationContext="RAG",
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 Retrieve e gerar boto3. API
import boto3
client = boto3.client('bedrock')
job_request = client.create_evaluation_job(
jobName="api-auto-job-titan",
jobDescription="two different task types",
roleArn="arn:aws:iam::111122223333
:role/role-name",
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)