기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 수집 피드백 액세스 및 분석
v3.0.0부터 배포 대시보드는 중첩된 피드백 스택을 배포하여 대시보드와 함께 배포된 텍스트 및 Bedrock 에이전트 사용 사례가 LLM/에이전트가 생성하는 응답에 대한 피드백 수집 기능을 갖도록 합니다. 특히 사용자는 선택적 설명과 함께 긍정적 또는 부정적 피드백을 제공할 수 있습니다. 사용자가 부정적인 피드백을 제공하는 경우 '부정확', '미완료 또는 부족', '유해' 및/또는 '기타'와 같은 부정적인 범주 중 하나를 추가로 선택할 수 있습니다.
사용자가 피드백을 제공하면 피드백은 사용 사례 ID, 연도 및 월로 분할된 S3 버킷에 저장됩니다. 사용 사례 ID는 배포 대시보드에서 찾을 수 있으며 피드백 S3 버킷은 배포 대시보드 스택의 피드백 중첩 스택 출력에서 찾을 수 있습니다.
배포 스택 그림 - 피드백 버킷 이름 찾기
사용자 피드백은 최소한의 정보가 포함된 API 요청으로 전송됩니다.
{ "useCaseRecordKey": "a1b2c3d4-e5f6g7h8", "conversationId": "12345678-1234-1234-1234-123456789012", "messageId": "87654321-4321-4321-4321-210987654321", "rephrasedQuery": "What are the key features of the Generative AI Application Builder on AWS?", "sourceDocuments": [ "s3://bucket-name/document1.pdf", "s3://bucket-name/document2.pdf" ], "feedback": "positive", "feedbackReason": [ "Incomplete or insufficient" ], "comment": "The response was helpful but could include more details about important features." }
그런 다음이 페이로드는 배포 시 사용 사례의 올바른 구성을 useCaseRecordKey 식별하는를 사용하여 Lambda에 의해 처리됩니다. 이 구성은 실제 userInput 및를 검색하는 데 추가로 사용되는 ConversationTable 이름(모든 대화 및 인적 및 AI 메시지 시퀀스 포함)과 같은 피드백에 대한 특정 세부 정보를 가져오는 데 사용됩니다llmResponse. Bedrock Agent 사용 사례의 agentAliasId 경우 agentId 및 ,이 구성을 사용하는 텍스트 사용 사례의 경우 modelProviderbedrockModelId, 등과 같은 추가 세부 정보도이 피드백 레코드에 연결됩니다. 이 구성에 액세스하는 방법에 대한 자세한 내용은 아래의 사용자 지정 피드백 매핑 섹션을 참조하세요. 수신되는 각 피드백 요청은 JSON 객체로 저장되며 텍스트 사용 사례의 경우 샘플 피드백 레코드는 다음과 같을 수 있습니다.
{ "useCaseId": "12345678-1234-1234-1234-123456789012", "useCaseRecordKey": "c07a2e3b-2f31b1e0", "userId": "22345678-1234-1234-1234-123456789012", "conversationId": "dd51de5d-5af1-4ec6-91d2-aadf14352109", "messageId": "32345678-1234-1234-1234-123456789012", "userInput": "What are its key features?", "rephrasedQuery": "What are the key features of the Generative AI Application Builder on AWS?", "llmResponse": "Generative AI Application Builder on AWS can help you build production ready enterprise chatbots rapidly.", "feedback": "negative", "feedbackReason": [ "Incomplete or insufficient" ], "comment": "The response was helpful but could include more details about important features.", "timestamp": "2025-05-22T18:48:08.340Z", "feedbackId": "42345678-1234-1234-1234-123456789012", "useCaseType": "Text", "modelProvider": "Bedrock", "bedrockModelId": "amazon.nova-lite-v1:0", "ragEnabled": "false" }
또는 Bedrock Agent 사용 사례의 경우 다음과 같습니다.
{ "useCaseId": "12345678-1234-1234-1234-123456789012", "useCaseRecordKey": "c07a2e3b-2f31b1e0", "userId": "22345678-1234-1234-1234-123456789012", "conversationId": "dd51de5d-5af1-4ec6-91d2-aadf14352109", "messageId": "32345678-1234-1234-1234-123456789012", "userInput": "What are its key features?", "llmResponse": "Generative AI Application Builder on AWS can help you build production ready enterprise chatbots rapidly.", "feedback": "negative", "feedbackReason": [ "Incomplete or insufficient" ], "comment": "The response was helpful but could include more details about important features.", "timestamp": "2025-05-22T18:48:08.340Z", "feedbackId": "42345678-1234-1234-1234-123456789012", "useCaseType": "Agent", "agentId": "AHFXUJCAK1", "agentAliasId": "KSEDKOS0BL" }
그런 다음이 피드백을 추가 처리, 분석 및 모델 재훈련/피드백 루프에 사용할 수 있습니다. 사용자 지정 매핑을 추가하여 피드백 lambda에 저장되는 피드백 레코드를 개선할 수도 있습니다.
사용자 지정 피드백 매핑
배포 대시보드에는 키를 사용하여 배포 대시보드 스택의 스택 출력에서 찾을 수 LLMConfigTable 있는가 포함되어 있습니다LLMConfigTableName. LLMConfigTable에는 배포 대시보드 마법사를 통해 사용 사례를 배포하는 동안 관리자가 선택한 설정에 따라 각 사용 사례에 대한 구성이 포함되어 있습니다. 각 사용 사례 구성은 로 식별됩니다useCaseRecordKey. 다음은의 샘플 사용 사례 구성 레코드입니다LLMConfigTable.
{ "key": "2dd76cfa-bc1a14da", "config": { "ConversationMemoryParams": { ... }, "FeedbackParams": { "CustomMappings": { "NumberOfDocs": "$.KnowledgeBaseParams.NumberOfDocs", "ScoreThreshold": "$.KnowledgeBaseParams.ScoreThreshold" }, "FeedbackEnabled": true }, "IsInternalUser": "true", "KnowledgeBaseParams": { "KendraKnowledgeBaseParams": { "ExistingKendraIndexId": "d2831033-667f-4539-ab28-e6c7c7c5988b", "RoleBasedAccessControlEnabled": false }, "KnowledgeBaseType": "Kendra", "NumberOfDocs": 5, "ReturnSourceDocs": false, "ScoreThreshold": 0.3 }, "LlmParams": { "BedrockLlmParams": { "BedrockInferenceType": "QUICK_START", "ModelId": "amazon.nova-lite-v1:0" }, "ModelParams": {}, "ModelProvider": "Bedrock", "PromptParams": { ... }, "RAGEnabled": true, "Streaming": false, "Temperature": 0.1, "Verbose": false }, "UseCaseName": "test-rag-usecase", "UseCaseType": "Text" } }
사용 사례에 대해 피드백이 활성화된 경우이 구성에는 FeedbackParams 모든 추가 필드의 JSONPaths를 피드백 S3 버킷에 저장된 피드백 JSON 레코드에 추가할 수 있는 CustomMappings 객체가 포함됩니다. 예를 들어 위의 샘플 사용 사례 구성의 경우 CustomMappings에는 ScoreThreshold JSONPaths의 루트config로 로 시작하는 CustomMappings 객체에 NumberOfDocs 및 JSONPaths가 추가로 포함되어 있습니다. 이 구성을 사용하면 피드백 S3 버킷에 저장된 각 JSON 레코드가 이미 제공된 필드를 제외하고 이러한 2개의 추가 값을 가져오기 시작합니다.
피드백 데이터 분석
피드백 데이터는 S3에 JSON 객체로 저장됩니다. 다음은이 피드백 데이터에 대한 액세스와 실행 가능성을 높이기 위한 몇 가지 접근 방식입니다.
AWS Glue 및 Amazon Athena 사용
AWS Glue
AWS Glue를 사용하면 S3 버킷의 데이터를 검사하고, 스키마를 추론하고, 카탈로그에 모든 관련 메타데이터를 기록하는 AWS Glue 크롤러를 생성할 수 있습니다. 그런 다음 Amazon Athena와 같은 서비스를 사용하여 데이터를 쿼리할 수 있습니다.
AWS Glue 데이터 카탈로그를 사용하여 피드백 S3 버킷을 Amazon Athena와 연결하는 단계는 AWS Athena 설명서를 참조할 수 있습니다. S3 Amazon Athena AWS Glue 또한 Glue의 보다 강력한 기능 중 일부를 사용하여이 데이터에 대해 ETL(Extract Transform & Load) 작업을 수행하고 이를 분석 또는 모델 재훈련 사용 사례에 적합한 형식으로 변환할 수 있습니다. Glue를 사용하면 특정 피드백 유형으로 레코드를 필터링하고, 누락된 정보를 채우고,이 데이터를 다른 S3 버킷 또는 다른 AWS 데이터 스토어와 같은 다른 스토리지 위치에 로드하는 등의 작업을 수행할 수 있습니다.
참고
사용 사례에 따라 피드백 데이터가 희소할 수 있으므로 비용을 최적화하기 위해 매일 밤이 아닌 주기적으로(예: 매주) 실행되도록 Glue 크롤러를 예약하는 것이 좋습니다.
솔루션의 CloudWatch 대시보드 사용
또한 사용 사례별로 긍정적 및 부정적 피드백, 부정적 피드백 이유 범주 등에 대한 추세를 제공할 수 있는 솔루션과 함께 패키징된 CloudWatch 대시보드에 액세스할 수 있습니다. AWS CloudWatch 콘솔의 대시보드에서 사용 사례 이름을 사용하여이 대시보드를 찾을 수 있습니다.
사용 사례 CloudWatch 대시보드를 보여줍니다.
이 대시보드에서 추가 위젯을 빌드하거나 Amazon Quick Sight 대시보드를 생성할 수도 있습니다.
피드백 데이터 분석 모범 사례
-
S3 버킷에 데이터 수명 주기 정책을 구현하여 이전 피드백 데이터를 저렴한 스토리지 계층에 아카이브
-
각 사용 사례에 대해 별도의 분석을 생성하여 모델별 개선 기회를 식별합니다.
-
부정적인 피드백이 허용 수준을 초과할 때 알림을 트리거하는 피드백 임계값 설정
-
이해관계자 및 모델 개선 팀과 공유하기 위해 중요한 인사이트를 주기적으로 내보내기