728x90
728x90
※ 혹시 본문 내용 중, 틀린 내용이 있다면 언제든지 알려주시면 감사하겠습니다. 🙇♂️
논문 제목: A Simple Recipe for Multilingual Grammatical Error Correction
논문 출처: https://aclanthology.org/2021.acl-short.89/
💁♂️ 왜 읽으셨나요?
- Microsoft Speller100 모델을 알게 된 후, Google에서는 어떤 오류 교정 연구가 수행되었는지 알고자 했다.
- 본 논문이 ACL2021에 accepted 된 short 논문이어서 눈길이 갔다.
📌 연구 키워드
- 자연어처리 (NLP, Natural Language Processing)
- 문법 오류 교정 (GEC, Grammatical Error Correction)
- Seq2Seq (Sequence-to-Sequence)
- Self-supervised Learning
🕵️ 내용 정리
- 논문 핵심
- 간단한 방법으로 4개 언어 GEC 벤치마크에서 SOTA 달성
- SOTA 달성한 모델이 언어마다 달라서 잘 봐야 한다
- CLANG-8 데이터셋 공개
- 간단한 방법으로 4개 언어 GEC 벤치마크에서 SOTA 달성
- 연구 배경
- 최신 GEC 연구는 seq2seq 모델이 활발하게 이용된다
- 오류 있는 텍스트를 복원하는 관점으로 문법 오류 교정 (Grammatical Error Correction)
- seq2seq 모델은 많은 양의 데이터가 있을 때 좋은 성능을 보인다.
- 그러나 GEC 연구 분야에서는 활용 가능한 고품질 데이터가 적다.
- 현재 공개된 데이터조차도 품질이 많이 부족한 편
- 그래서 인위적으로 오류 데이터(synthetic error)를 생성하는 방법이 GEC 연구와 함께 다뤄진다.
- 최신 GEC 연구는 seq2seq 모델이 활발하게 이용된다
- 접근 방법
- 다국어 오류 교정 모델 gT5 제안
- Pre-training
- mT5 (Xue et al., 2020) 언어 모델의 사전 학습 데이터 mC4 데이터 사용
- Paragraph 단위였던 데이터를 sentence 단위로 나누어 학습에 활용
- 7가지 오류를 만드는 노이즈 함수(Noising function) 정의
- drop spans of tokens
- swap tokens
- drop spans of characters
- swap characters
- insert characters
- lower-case a word
- upper-case the first character of a word
- 노이즈를 복원하는 방법으로 사전 학습 수행
- 이 방식은 raw text만 있으면 수행할 수 있으므로, 리소스가 적은 언어에서도 활용 가능한 장점이 있다.
- Fine-tuning
- 학습 데이터
- 여러 가지 학습 전략 실험
- 학습 전략 1
- 모델: Pre-trained mT5
- 데이터: sentence 단위로 분리한 mC4 말뭉치 + Fine-tuning 데이터
- 학습 전략 2
- 모델: Pre-trained mT5
- 데이터: mC4 말뭉치 + Fine-tuning 데이터
(『but annotating them with different prefixes』 이게 무슨 말인지 모르겠다)
- 학습 전략 3
- 모델: 저자들이 직접 사전학습 시킨 gT5
- 데이터: Fine-tuning 데이터
- 학습 전략 3이 가장 높은 성능을 보였다.
- 단지 비용계산적 측면에서 가장 비쌈
- 학습 전략 1
- Fine-tuning 방법에 뭔가 특별한 기법이 있지는 않다.
- Pre-training
- CLANG-8 데이터 공개
- 영어 GEC를 위해 공개된 데이터 중 LANG-8이 있다
- 언어 학습자가 작성한 에세이를 다른 학생이 교정한 것
- 그러나 LANG-8은 품질이 좋지 않다.
- 문법 교정은 전문 지식이 필요한 작업이지만, LANG-8은 그렇지 못했다.
- 한국 사람이라고 해서 모든 사람이 문법 전문가는 아니니까
- 불완전한 교정 또는 과한 교정 등이 포함돼 있다.
- 예시
- It is cloudy or rainy recently . → It is It ’s been cloudy or and rainy recently .
- 『It is』를 삭제하고 『It's been』만 남겨야 한다.
- 『or』을 삭제하고 『and』만 남겨야 한다
- 쉽게 말해 수정을 하다만 것
- 예시
- 문법 교정은 전문 지식이 필요한 작업이지만, LANG-8은 그렇지 못했다.
- 그러면 gT5-xxl을 이용해, LANG-8의 정답을 교정하자 → CLANG-8
- 말 그대로 LANG-8을 교정(Clean)했기 때문에 Cleaned Lang-8 Corpus이다.
- 즉 LANG-8과 CLANG-8은 정답만 다른 데이터인 것
- CLANG-8의 의의는 지식 증류(Knowledge Distillation)를 위한 데이터라는 것
- CLANG-8 데이터를 학습하는 것만으로도 gT5 xxl 거대 모델의 지식을 학습할 수 있다.
- 이게 말이 되나 싶다면, self-instruct 연구를 참조하자.
- 본 논문의 Google 저자들이 위 연구를 참조했는지는 알 수 없지만, 최근 연구 트렌드 중 하나는 거대 언어 모델의 지식을 작은 모델로 distillation 시키는 것이다.
- 실제로 최근 스탠포드 대학교의 Alpaca 모델은 META의 LLaMa 모델의 출력 결과를 학습해, 더 작은 모델로 비슷한 성능을 낼 수 있다는 연구를 알리기도 했다.
- ACL에 논문이 accpted 된 이유 중에는 이런 점도 크게 작용하지 않았을까
- 말 그대로 LANG-8을 교정(Clean)했기 때문에 Cleaned Lang-8 Corpus이다.
- 영어 GEC를 위해 공개된 데이터 중 LANG-8이 있다
- 다국어 오류 교정 모델 gT5 제안
- 실험
- 영어를 제외한 언어에서 SOTA 달성 (*표2 참조)
- 사실 의미 있는 지표인지 잘 모르겠다
- 왜냐하면, 현재 SOTA 모델들의 체코어, 독일어, 러시아어 실험이 없으니까.
- 무엇보다 gT5 xxl (11B) 모델의 파라미터 수를 생각하면 오히려 고개가 갸우뚱
- 하지만 아래 표가 말하는 건 저자들이 왜 CLANG-8 데이터를 만들었냐는 점
- 영어 데이터들 까보니까 과적합 되기 쉽더라!
- 근데 왜 다른 영어 데이터는 내버려두고 LANG-8만 건들였지...?
- LANG-8보단 CLANG-8 데이터가 유효하다
- CLANG-8은 LANG-8보다 오류율이 크게 줄어들었다. (*표3 참조)
- 기존 LANG-8 정답에는 오류 포함된 정답이 있었다는 것
근데 CLANG-8-s가 뭔지 잘 모르겠다
- 기존 GEC 모델을 CLANG-8로 학습하면 성능이 더 오른다 (*표4 참조)
- FELIX모델을 LANG-8과 CLANG-8로 학습한 결과를 살피면, 성능 차이가 크다
- 두 데이터 모두 source 문장은 동일하고 정답만 다른 데이터라는 걸 고려할 때, CLANG-8은 gT5 xxl의 지식이 FELIX 모델로 distillation 되었다 볼 수 있다.
- CLANG-8은 LANG-8보다 오류율이 크게 줄어들었다. (*표3 참조)
- GEC 연구에서도 모델 크기가 커질수록 성능이 오른다 (*표4 참조)
- 기존 GEC 연구에서는 모델 파라미터 크기별 성능 보고된 연구가 많이 없었는데, 감사하게도 Google 연구원 분들이 고생해 주셨다.
- 4개 언어 GEC benchmark에서 SOTA 달성
- 실험 결과를 잘 봐야 한다.
- 영어는 T5 xxl (13B) 모델과 CLANG-8 데이터를 활용해 영어 SOTA 모델을 달성
- 그 외 언어만 gT5 xxl (11B) 모델로 SOTA를 달성한 것
- 즉 이 논문의 핵심은 CLANG-8이라 봐도 좋지 않을까
- 영어를 제외한 언어에서 SOTA 달성 (*표2 참조)
🤔 이 글을 통해 배울 수 있는 점
- 개념적인 것
- 문법 오류 (Grammatical Error)는 문장 내 문법 오류나 기타 연관된 오류를 고치는 작업이다.
(Grammatical Error Correction (GEC) is the task of correcting grammatical and other related errors in text) - 본 연구는 사용자가 작성한 텍스트의 문법성과 가독성을 개선하기 위해 다뤄진 연구다.
(Its ability to improve grammaticality and readability of user generated text) - 본 연구는 문법 오류를 작성하기 쉬운 비원어민, 어린이, 언어 장애가 있는 사람들에게 유효하다.
(This is of particular importance to non-native speakers, children, and individuals with language impairments)
- 문법 오류 (Grammatical Error)는 문장 내 문법 오류나 기타 연관된 오류를 고치는 작업이다.
- GEC 연구에서도 모델 파라미터가 커질수록 성능이 향상되며, Knowledge Distillation 방법도 함께 고려해 볼 수 있다.
- GEC 연구 데이터셋의 이슈는 계속된다...
- 영어도 이 정도면 한국어에서는 어떻게 연구하냐 🥹
- 영어도 이 정도면 한국어에서는 어떻게 연구하냐 🥹
❓ 여전히 궁금한 부분
- CLANG-8-s가 도대체 뭐지...
320x100
'자연어처리(NLP) > Spell and Grammatical Correction' 카테고리의 다른 글
[리뷰] GECToR – Grammatical Error Correction: Tag, Not Rewrite (0) | 2023.05.01 |
---|---|
[리뷰] 다국어 검색 철자 오류 교정 인공지능 모델, 마이크로소프트(Microsoft) - Speller100 (0) | 2023.04.01 |