Upgrade to Pro — share decks privately, control downloads, hide ads and more …

한국어 오픈 도메인 질의응답 시스템 2.0

kakao
December 08, 2022

한국어 오픈 도메인 질의응답 시스템 2.0

#NLP #OpenDomainQuestionAnswering

카카오엔터프라이즈 AI Assistant 팀에서는 대량의 텍스트 데이터 내에서 이용자가 물어보는 내용에 대한 답을 빠르고 정확하게 찾아주는 시스템인 오픈도메인 질의응답 모델을 연구하고 있습니다. 본 세션에서는 AI Assistant팀의 오픈도메인 질의응답 모델에 대해 소개하고, 빠른 속도와 높은 정확도를 어떻게 달성했는지 설명합니다.

발표자 : phil.i
카카오엔터프라이즈 AI Assistant 팀 필입니다. 질의응답 시스템을 비롯한 다양한 한국어 자연어처리 기술을 연구하고 있습니다.

kakao

December 08, 2022
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1. Copyright 2022. Kakao Corp. All rights reserved. Redistribution or public

    display is not permitted without written permission from Kakao. 한국어 오픈 도메인 질의 응답 시스템 2.0 if(kakao)2022 이민철 phil.i 카카오엔터프라이즈
  2. 1. 오픈 도메인 질의응답 시스템이란? 2. 기존 시스템의 구조 및

    한계 3. 검색 모듈 개선 4. 기계 독해 모듈 개선 5. 효율적으로 서빙하기
  3. 오픈 도메인 질의응답 시스템이란? 한정되지 않은 범위에서 오픈 도메인 질의

    응답 적절한 답변을 출력하는 시스템 임의로 들어오는 이용자의 질문에 대해
  4. 기존 시스템의 구조 – 검색 모듈 참고: if Kakao2019 <기계

    독해 및 웹검색에 기반한 한국어 오픈 도메인 질의 응답 시스템> 마우스는 누가 만들었어? 질문 유형: who 키워드: 마우스, 만들다 답변 유형: 단답형 1 질의 특성 분석기
  5. 2 기존 시스템의 구조 – 검색 모듈 참고: if Kakao2019

    <기계 독해 및 웹검색에 기반한 한국어 오픈 도메인 질의 응답 시스템> 질문 유형: who 키워드: 마우스, 만들다 답변 유형: 단답형 검색 질의 생성기 검색 질의: 마우스 만들다, 마우스 제작, 마우스 발명, …
  6. 3 기존 시스템의 구조 – 검색 모듈 참고: if Kakao2019

    <기계 독해 및 웹검색에 기반한 한국어 오픈 도메인 질의 응답 시스템> 웹 검색 및 검색 결과 전처리기 문서1 마우스를 사용해 화면의 특정 부분 을 가리킨다는 아이디어는 1960 년대 초반 미국인 발명가 더글러스 엥겔바트에게서 나왔으며, … 문서2 컴퓨터 마우스를 발명한 더글러스 엥겔바트(88·사진)가 2일 미국 캘리포니아 자택에서 숨을 거뒀다. 그는 … 문서N 더글러스 엥겔바트가 1968년 대 중에게 처음으로 마우스를 공개하 자, 사람들은 충격에 빠졌다. … 검색 질의: 마우스 만들다, 마우스 제작, 마우스 발명, …
  7. 기존 시스템의 구조 – 기계 독해 모듈 참고: if Kakao2019

    <기계 독해 및 웹검색에 기반한 한국어 오픈 도메인 질의 응답 시스템> 4 기계 독해 시스템 문서1 마우스를 사용해 화면의 특정 부분 을 가리킨다는 아이디어는 1960 년대 초반 미국인 발명가 더글러스 엥겔바트에게서 나왔으며, … 문서2 컴퓨터 마우스를 발명한 더글러스 엥겔바트(88·사진)가 2일 미국 캘리포니아 자택에서 숨을 거뒀다. 그는 … 문서N 더글러스 엥겔바트가 1968년 대 중에게 처음으로 마우스를 공개하 자, 사람들은 충격에 빠졌다. … Q: 마우스는 누가 만들었어? 문서1 내의 정답 더글러스 엥겔바트 문서2 내의 정답 더글러스 엥겔바트 문서N 내의 정답 엥겔바트
  8. 키워드 기반 검색의 한계 전통적인 키워드 검색에서는 BM25 기반의 알고리즘

    사용 질의와 후보 문서 사이에서 일치하는 키워드를 바탕으로 적합 문서 판단 따라서 의미가 동일해도 키워드가 다르면 검색 결과가 달라진다! Q: 개발자 Q: 제작자 Q: 만든이 Q: 발명가 Result: 4.90M Result: 2.20M Result: 33.0M Result: 0.39M 적합 문서를 놓치지 않기 위해 일반적으로 ‘질의 확장’을 사용 그러나 질의를 확장할 수록 검색되는 결과는 많아지나, 그 중 가장 적합한 문서가 무엇인지 알기는 더 어려워진다
  9. 기존 기계 독해 모델의 한계 한글은 한국어의 공식문자로서, 세종이 한국어를

    표기하기 위하여 창제한 문자인 '훈민정음'을 20세기 초반 이후 달리 이르는 명칭이다. Q: 세종이 한국어를 표기하기 위해 창제한 문자가 뭐야? A: 훈민정음 Q: 세종대왕이 만든 글자가 뭐야? A: 공식문자 Q: 정조가 한국어를 표기하기 위해 창제한 문자가 뭐야? A: 훈민정음 Q: 세종대왕이 한글을 만들었지? A: 훈민정음
  10. 기존 시스템과의 비교 기존 시스템 2.0 검색 모듈 구조 키워드

    기반 검색 딥러닝 모델을 이용한 검색 + 키워드를 이용한 필터링 검색 결과 규모 대량이지만 부적합 문서도 다수 소량이지만 적합 문서 위주로 추출 기계 독해 모듈 구조 GloVe + CNN + Transformer Splinter(Transformer기반 PLM) 정답을 찾을 수 없는 질문 처리 불가하여 무조건 정답 추출 정답을 찾을 수 없는 경우를 판단 가능 예/아니오 질문 처리 불가 예/아니오로 답변하며, 그 근거문장도 찾아줌 서빙 프레임워크 C++로 직접 구현 모델을 ONNX로 변환, ONNXRuntime을 커스텀화하여 사용
  11. Dense Passage Retrieval(DPR) Query Model Passage Model Q: 마우스는 누가

    만들었어? P: 최초의 마우스는 스탠포드 연구소에서 근무하던 … [0.12, -0.13, … , 0.75] [0.39, -0.05, … , 0.12] 내적 유사도: 12.90 Dense Vector
  12. DPR 모델을 잘 훈련시키기 질의1 – 문서1 질의2 – 문서2

    질의3 – 문서3 … 질의1 문서1 적합 In-Batch Negative Sampling(IBNS) 부적합문서를 랜덤하게 추출하여 훈련에 사용 모델을 잘 훈련시키기에는 난이도가 너무 낮다!
  13. Adaptive Batch Scheduling Choi, D., Shin, M., Kim, E., &

    Shin, D. R. (2021). Adaptive batch scheduling for open-domain question answering. IEEE Access, 9, 112097-112103. 모델이 보기에 유사한 문서들 중 적합문서가 아닌 것들을 부적합문서로 선택하여 훈련에 사용하자! 첫 Epoch에는 In-Batch Negative Sampling을 사용 그 후 매 Epoch마다 Adaptive Batch Scheduling을 적용
  14. DPR의 한계 수 많은 질문을 한정된 임베딩 벡터로 압축 학습

    때 자주 본 질문 유형이나 명사에 대해서는 잘 변별할 수 있음 학습 때 보지 못한 질문 유형이나 새로운 명사에 대해서는 변별력이 떨어짐
  15. Keyword + DPR 검색 질문에서 필수 키워드를 추출 후 필수

    키워드를 포함하는 문서를 대상으로 DPR 검색을 수행해보자
  16. Keyword + DPR 검색 @1 @3 @5 @10 Keyword Only

    56.81 71.77 76.27 81.54 DPR Only 67.29 79.42 83.22 87.49 DPR + Keyword 78.87 87.45 90.07 92.88 질문에서 필수 키워드를 추출 후 필수 키워드를 포함하는 문서를 대상으로 DPR 검색을 수행해보자 (KLUE MRC Dev셋 평가)
  17. 사전학습 언어모델 도입 화가 가 그림 을 그린다 [MASK] 가

    [MASK] 을 그린다 화가 그림 BERT BERT 원본 손상 복원
  18. 사전학습 언어모델 도입 화가 가 음식 을 그린다 화가 가

    그림 을 그린다 [MASK] 가 [MASK] 을 그린다 Generator (BERT) 원본 손상 복원 ELECTRA Discriminator (ELECTRA) 판별 원본 원본 교체 원본 원본
  19. 사전학습 언어모델 도입 패러프레이징 다중 문장 추론 답변 불가 종합

    KoBERT 61.99 60.85 64.36 62.43 KoELECTRA 65.29 64.16 67.65 65.73 (KLUE MRC Dev셋 평가)
  20. SPLINTER 정치권 [Q1] 찬반대립.. 대선이슈 관측 정부가 원전확대정책을 고수하겠다는 입장을

    분명히 하면서 찬반 논란이 확산될 것으로 보인다. 지식경제부 홍석우 장관은 25일 오 후 방영되는 보도전문채널'뉴스Y'프로그램'초대석Y'에서 정부의 [Q2]는 바뀐 것이 없다며 원전을 계속 늘려나갈 것이라고 밝혔다. 지난 22일 강원 삼척과 경북 영덕이 신규 원전 후보지로 낙점되면 서 지역 여론이 갈리고 [Q3]과 시민사회를 중심으로 찬반 갈등이 심화하는 가운데 공개된 언급이어서 주목된다. 원전을 운영하는 한국수력원자력도 최근 참고자료를 통해 이런 정 책 방향을 거듭 확인했다. 일본 후쿠시마 원전 사고로 원전 안전성 에 대한 우려가 증가했지만 안정적 전력수급, [Q4], 기후변화 대응 을 고려할 때 원자력이 가장 현실적 대안이라는 논거에서다. 물론 한층 더 강화된 안전성을 확보하고 정보의 투명성을 확대하면 서 국민 신뢰를 바탕으로 주요 현안을 추진해 나간다는 복안이다. 이처럼 원전정책 기조가 유지될 필요성은 이미 지난 3월말 원자력 안전위원회와 지경부 차원에서 일찌감치 확인됐다. • 반복적으로 등장하는 토큰 Span 중 하 나만 제외하고 나머지는 모두 Masking • Masking된 토큰의 최종 출력을 가지 고 원 단어 Span의 위치를 찾도록 모 델을 학습 • 사전 학습 목적이 추출형 질의 응답 과 제와 유사하기 때문에 BERT와 동일한 크기의 모델일지라도 성능이 더욱 개선 된다. Ram, O., Kirstain, Y., Berant, J., Globerson, A., & Levy, O. (2021). Few-shot question answering by pretraining span selection. arXiv preprint arXiv:2101.00438.
  21. SPLINTER 패러프레이징 다중 문장 추론 답변 불가 종합 KoBERT 61.99

    60.85 64.36 62.43 KoELECTRA 65.29 64.16 67.65 65.73 SPLINTER v1 68.73 69.63 74.25 70.70 SPLINTER v5 70.04 71.48 72.66 71.23 SPLINTER v6 73.78 74.03 71.09 73.00 SPLINTER v6 + Distillation 75.58 76.13 71.47 74.44 (KLUE MRC Dev셋 평가)
  22. 예/아니오/답변불가 질문 처리하기 설명 의문문 ‘예/아니오’가 아닌 구체적인 설명을 요구하는

    질문 ‘마우스는 누가 만들었어?’ ‘예/아니오’의 답변을 요구하는 질문 ‘마우스는 앵겔버트가 만들었어?’ 판정 의문문
  23. 예/아니오/답변불가 질문 처리하기 설명 의문문 ‘예/아니오’가 아닌 구체적인 설명을 요구하는

    질문 ‘마우스는 누가 만들었어?’ ‘예/아니오’의 답변을 요구하는 질문 ‘마우스는 앵겔버트가 만들었어?’ 판정 의문문 추출형 QA 모델로 해결 가능 ???
  24. 예/아니오/답변불가 질문 처리하기 판정 의문문을 다루는 모델을 확장하는 건 어렵지

    않다. 그런데 모델의 학습데이터는 어떻게 확보할 수 있을까?
  25. 예/아니오/답변불가 질문 처리하기 전제 가설 관계 10층에 건물사람들만 이용하는 수영장과

    썬베드들이 있구요. 건물사람들은 수영장과 썬베드를 이용할 수 있습니다. 함의 흡연자분들은 발코니가 있는 방이면 발코니에서 흡연이 가능합니다. 어떤 방에서도 흡연은 금지됩니다. 모순 10층에 건물사람들만 이용하는 수영장과 썬베드들이 있구요. 수영장과 썬베드는 유료입니다. 중립 (KLUE NLI 데이터셋)
  26. 예/아니오/답변불가 질문 처리하기 전제/지문 가설/질문 관계/답변 10층에 건물사람들만 이용하는 수영장과

    썬베드들이 있구요. 건물사람들은 수영장과 썬베드를 이용할 수 있습니다. 함의 건물사람들은 수영장과 썬베드를 이용할 수 있습니까? 예 흡연자분들은 발코니가 있는 방이면 발코니에서 흡연이 가능합니다. 어떤 방에서도 흡연은 금지됩니다. 모순 어떤 방에서도 흡연은 금지됩니까? 아니오 10층에 건물사람들만 이용하는 수영장과 썬베드들이 있구요. 수영장과 썬베드는 유료입니다. 중립 수영장과 썬베드는 유료입니까? 알 수 없음 KLUE NLI 데이터셋을 자동 변환
  27. 예/아니오/답변불가 질문 처리하기 Q: 마우스는 누가 만들었어? 유형 분류: 답변불가

    / 설명 / 예 / 아니오 정답: 더글라스 엥겔바트 근거: 일반적으로 알려진 마우스는 스탠퍼 드 연구소의 더글러스 엥겔바트가 ... 디스플레이 시스템을 위한 위치 지시기, 통칭 마우스는 평면 위에서 2차원 움직임을 인식할 수 있도록 한 컴퓨터 입력장치이다. …
  28. 예/아니오/답변불가 질문 처리하기 Q: 마우스는 엥겔바트가 만들었어? 유형 분류: 답변불가

    / 설명 / 예 / 아니오 정답: 예 근거: 일반적으로 알려진 마우스는 스탠퍼 드 연구소의 더글러스 엥겔바트가 ... 디스플레이 시스템을 위한 위치 지시기, 통칭 마우스는 평면 위에서 2차원 움직임을 인식할 수 있도록 한 컴퓨터 입력장치이다. …
  29. 예/아니오/답변불가 질문 처리하기 Q: 엥겔바트는 마우스를 왜 만들었어? 유형 분류:

    답변불가 / 설명 / 예 / 아니오 정답: 알 수 없음 근거: 알 수 없음 디스플레이 시스템을 위한 위치 지시기, 통칭 마우스는 평면 위에서 2차원 움직임을 인식할 수 있도록 한 컴퓨터 입력장치이다. …
  30. 최종 구축 모델의 성능 패러프레이징 다중 문장 추론 답변 불가

    Yes F1 No F1 Support F1 SPLINTER YNS-base 76.18 76.73 71.30 88.87 85.50 73.20 KLUE-RoBERTa- large 75.58 86.63 - * SPLINTER Y/N/S 모델은 Dev셋에 대해 평가한 것 * KLUE-RoBERTa-large는 공식 사이트에 보고된 Test셋에 대한 결과
  31. 서빙용 플랫폼 선택 GPU CPU vs Throughput이 높음 대규모 입력에

    효율적 상대적으로 고비용 Latency가 낮음 소규모 입력에 효율적 상대적으로 저비용
  32. 모델 양자화 0.07 ⋯ −0.30 ⋮ ⋱ ⋮ 0.21 …

    1.67 Activation 0.05 ⋯ 0.25 ⋮ ⋱ ⋮ −1.91 … 0.02 Weight Bias 0.37 ⋯ −0.15 Dense Linear Layer의 연산 과정 [ 512 , 768 ] [ 768 , 3072 ] [3072] Shape: seq_length hidden_dim In_dim out_dim out_dim
  33. 모델 양자화 5 ⋯ −22 ⋮ ⋱ ⋮ 16 …

    127 Activation 3 ⋯ 17 ⋮ ⋱ ⋮ −128 … 1 Weight Bias 0.37 ⋯ −0.15 Per-Tensor Quantization × 0.0131 × 0.0149 Weight와 Activation을 int8 범위의 정수로 바꿔 행렬 연산을 수행 float32 연산 대비 최대 4배까지 가속 가능 (AVX512-VNNI 장비에서) Activation 및 Weight에 Scale 파라미터를 각각 1개씩만 사용하기 때문에 오차가 큼
  34. 모델 양자화 5 ⋯ −22 ⋮ ⋱ ⋮ 16 …

    127 Activation 3 ⋯ 127 ⋮ ⋱ ⋮ −128 … 10 Weight Bias 0.37 ⋯ −0.15 Per-Channel Quantization × 0.0131 Weight의 Column별로 다른 Scale 파라미터를 사용 Weight의 정확도 손실을 최소화 일반적으로 널리 쓰이는 양자화 기법 × 0.0149 × 0.0020
  35. 모델 양자화 30 ⋯ −128 ⋮ ⋱ ⋮ 16 …

    127 Activation 3 ⋯ 127 ⋮ ⋱ ⋮ −128 … 10 Weight Bias 0.37 ⋯ −0.15 Per-Token Quantization × 0.0131 Activation의 Row별로 다른 Scale 파라미터를 사용 Weight뿐만 아니라 Activation의 정확도 손실도 최소화 PyTorch나 ONNXRuntime에서는 기본적으로 아직 지원하지 않는 양자화 기법 Int8 GEMM Kernel을 잘 수정하면 추가적인 비용 없이 Per-Token Quantization연산 가능 × 0.0149 × 0.0020 × 0.0023
  36. 레이어 퓨전 자주 사용되는 여러 레이어들의 조합을 하나의 레이어로 합쳐서

    연산을 효율화하는 것 커스텀 퓨전 레이어 설명 Requanti- zation Linear 이후 이어지는 Quantize 레이 어를 하나로 결합 LinearBias Gelu Linear 후 이어지는 Bias, Gelu 레이어 를 하나로 결합 JointQA 정답 영역의 시작 지점과 끝 지점을 선택 하는 레이어를 하나로 결합
  37. ONNXRuntime 최적화 결과 평균 Latency(ms) 상대 속도 개선 Dev EM

    원본 268.3 1.00 74.90 +ONNX 기본 양자화(Per-Channel) 138.9 1.93 73.82 +Per-Token 양자화 139.9 1.91 74.23 +Gelu AVX512 & 퓨전 132.4 2.03 +JointQA 레이어 퓨전 97.7 2.74 +FindMinMax AVX512 87.6 3.06 +LayerNorm AVX512 +QEmbedding AVX512 82.8 3.24 + SelfAttention 양자화 75.0 3.58 + Requantization AVX512 퓨전 67.5 3.97 (Intel Xeon Gold 5220에서 8 thread로 구동)
  38. 정리 검색 모듈 키워드 검색에 DPR을 추가하여 검색 성능 개선

    기계 독해 모듈 질의응답에 적합한 PLM을 도입 판정 의문문 & 정답 유무 처리하도록 모델 확장 NLI를 비롯한 다양한 데이터셋을 활용하여 훈련 데이터 증강 서빙 ONNXRuntime을 도입하여 서빙 프로세스 단순화 Per-Token 양자화 구현하여 성능 개선 ONNXRuntime에 커스텀 최적화 적용하여 속도 개선
  39. 향후 계획 시스템 정확도 추가 향상 긴 문서에 대한 지원

    추가 다양한 문서 유형에 대한 모델 개발