본문 바로가기
인공지능/ChatGPT

채팅 AI를 사용하여 한국어 텍스트 증강하기 (GPT-3.5, Bard, Clova X비교)

by judy@ 2023. 9. 5.

목차

    배경

    모바일 앱으로 쓰여진 한국어로 구성된 문장들을 여러 개 보유하고 있는데, 유사한 의미를 가지나 다르게 표현된 여러 개의 문장이 필요했다. 이렇게 기존 데이터로 유사한 데이터를 생성하는 것을 데이터 증강(augmentation)이라고 한다. 증강은 주로 비전 분야에서 많이 사용되었으나, 최근에는 거대 언어 모델이 발전함에 따라 자연어 분야에서도 필요로 한다고 한다. 영어는 우선 데이터도 많고, 연구가 많이 이루어졌으며, 단어의 구성이 비교적 단순하여 데이터 증강이 쉬운 편이지만, 한국어는 그렇지 않다. 알파벳을 나열하는 영어와 달리, 자음소의 조합이 하나의 음절을 이루고, 이 음절의 조합에 따라 단어가 구성되기 때문이다. 그래서 한국어 자연어 처리를 위한 라이브러리가 따로 있기도 하며, 일반적인 텍스트 증강 라이브러리로는 쉽게 증강이 되지 않는다.

     

    아래는 nlpaug라는 라이브러리와 multi-language를 지원하는 distillbert를 활용하여 문장을 재표현한 예시이다.

     

    원문장:

    성분 따지려면 창포물로 세수하고 머리 감으셈 천연 그자체임

    재표현된 문장 (insertion):

    도 성분 연 따지려면 인 창포물로 시 세수하고 [UNK] 머리 누 감으셈 지 천연 그 그자체임

    재표현된 문장 (substitute):

    ఓ 전 도 한 도 해 그 단

    가히 충격적이며, 위 데이터를 증강한 데이터라고 말할 수는 없을 것이다. 이보다 복잡하지만 정교한 결과를 내는 한국어 텍스트 증강 기법이 있으나, 구현이 복잡하거나 목적에 부합하지 않아서 대신에 채팅 AI과 프롬프트 엔지니어링을 통해 한국어 텍스트를 증강해보고자 한다.

     

    채팅 AI를 통한 한국어 텍스트 증강

    현재 가장 많이 사용되며, 한국어가 지원되는 채팅 AI로는 OpenAI의 ChatGPT, Google의 Bard, 그리고 따끈따끈하게 공개된 Naver의 Clova X가 있다. 같은 프롬프트를 사용하여 증강을 시도해보았으며, 결과적으로는 Bard를 통해서 가장 기대와 가까운 결과를 얻을 수 있었다. 기대하는 문장의 조건은 아래와 같다.

     

    기대 조건

    - 원본 문장과 유사한 한국어 문장을 생성한다.

    - 같은 의미를 가지나 다르게 표현되어야 한다.

    - 동의어 대체, 삽입, 삭제가 가능하나 문장의 의미가 반전되면 안된다.

    - 개인 메모로, 개인의 말투가 반영되어야 한다.

    - 문장이 읽혀야 한다. (언어적 특성이 반영되지 않은 단순 변형은 안된다)

     

    데이터는 AI 허브의 온라인 구어체 말뭉치 데이터 중 하나를 사용하였다. 

     

    프롬프트

    - 아래 프롬프트에서 quote (" ") 사이에 데이터를 넣으면 됨

    - 기대하는 조건 중 하나가 말투의 반영이므로, 아래와 같은 문장을 예제로 사용함

    동의어 대체, 단어의 삽입, 삭제를 사용하여 아래 문장을 augmentation하고 싶어. 제시한 문장과 의미가 유사해야 하고, 문장의 말투를 유지해야 하며, 10개의 문장으로 재표현 해줘.

    "성분 따지려면 창포물로 세수하고 머리 감으셈 천연 그자체임"

     

    1. ChatGPT: 원문장의 길이나 표현이 크게 바뀌지 않고, 주로 단어를 바꾸는 형태로 문장을 재구성함. 증강된 문장의 다양성이 떨어지고, 말투는 유지되지 않으나 안정적으로 생성함.

    1. "성분을 검토하려면 창포물로 세수하고 머리 감아보세요. 그 자체로 천연이에요." 
    2. "성분을 확인하고 싶다면 창포물로 세수하고 머리 감으세요. 정말로 천연 그대로에요." 
    3. "성분을 살펴보려면 창포물로 세수하고 머리 감으세요. 자연 그 자체입니다." 
    4. "성분 조사하고 싶으면 창포물로 세수하고 머리 감아봐요. 그건 정말 자연 그 자체에요." 
    5. "성분을 확인하려면 창포물로 세수하고 머리 감아보세요. 이것은 순수한 천연입니다." 
    6. "성분을 검사하려면 창포물로 세수하고 머리 감아봐요. 그게 바로 자연 그 자체에요." 
    7. "성분을 살펴보려면 창포물로 세수하고 머리 감으세요. 이게 정말로 천연입니다." 
    8. "성분 확인하려면 창포물로 세수하고 머리 감아보세요. 이건 정말로 자연 그 자체에요." 
    9. "성분을 조사하고 싶다면 창포물로 세수하고 머리 감아봐요. 이것이 진정한 천연입니다." 
    10. "성분 따지려면 창포물로 세수하고 머리 감으세요. 자연스러운 것 그대로에요."

     

    2. Bard: 배경 지식을 활용해 서술적 표현을 추가함. 질의 형태로 바꿔야겠다는 똥고집이 있고, 특정 문장은 변화가 없고 나머지 문장의 내용을 늘여서 표현함 (직접 설명하기도 함)

    알겠습니다. 다음과 같은 문장들을 10개 만들어 보았습니다.

    - "성분 따지기 귀찮으신가요? 그럼 창포물로 세수하고 머리 감으셈. 천연 그 자체입니다."
    - "화학 성분 싫으신가요? 그럼 창포물로 세수하고 머리 감으셈. 천연 그 자체입니다."
    - "천연 그 자체를 원하신가요? 그럼 창포물로 세수하고 머리 감으셈. 창포물은 예로부터 민간요법으로 사용되어 온 천연 약재입니다."
    - "두피와 모발 건강 생각하시나요? 그럼 창포물로 세수하고 머리 감으셈. 창포물에는 두피와 모발 건강에 좋은 성분이 풍부합니다."
    - "경제적이지만 건강하게 세안하고 싶으신가요? 그럼 창포물로 세수하고 머리 감으셈. 창포물은 간편하게 구할 수 있고 가격도 저렴합니다."
    - "우리 전통의 아름다움을 지키고 싶으신가요? 그럼 창포물로 세수하고 머리 감으셈. 창포물은 예로부터 우리 민족이 사용해 온 천연 약재입니다."
    - "깨끗하고 건강하게 세안하고 싶은데 성분까지 따지기 귀찮으신가요? 그럼 창포물로 세수하고 머리 감으셈. 천연 그 자체니까요."
    - "화학 성분 없이도 깨끗하고 건강하게 세안하고 싶은데 천연 그 자체를 원하신가요? 그럼 창포물로 세수하고 머리 감으셈. 창포물이 딱입니다."

    이 문장들은 "성분 따지려면 창포물로 세수하고 머리 감으셈 천연 그자체임"과 의미가 유사하면서도, 동의어를 사용하여 표현되었습니다. 또한, 원문의 말투를 유지하기 위해 일부 단어를 바꾸거나 문장을 늘여서 표현했습니다.

    위의 문장들 중에서 마음에 드는 문장이 있으신가요?

     

    3. Clova X: 우선 개수 10개를 못맞췄고, 말투를 반영하지 못함. 갑분 창포물 칭찬 타임 + 문장의 의미가 점진적으로 변화하고 있다.

    성분을 따진다면 창포물로 세수하고 머리를 감는 것이 천연 그 자체이다.
    창포물은 천연 성분으로 이루어져 있어 피부와 머리카락에 좋다.
    창포물로 세수하고 머리를 감으면 건강한 피부와 머리카락을 유지할 수 있다.
    창포물은 자연에서 얻을 수 있는 천연 재료로, 피부와 머리카락에 좋은 성분을 가지고 있다.
    창포물로 세수하고 머리를 감으면 피부와 머리카락이 건강해지고, 천연 성분으로 인해 피부와 머리카락에 자극이 적다.
    창포물은 피부와 머리카락에 좋은 천연 성분을 함유하고 있어, 건강한 피부와 머리카락을 유지하는 데 도움이 된다.
    창포물로 세수하고 머리를 감으면 자연스러운 향기와 함께 건강한 피부와 머리카락을 유지할 수 있다.
    창포물은 피부와 머리카락에 좋은 천연 성분을 함유하고 있어, 피부와 머리카락을 보호하고 건강하게 유지하는 데 도움이 된다.
    창포물로 세수하고 머리를 감으면 자연에서 얻을 수 있는 천연 성분으로 인해 피부와 머리카락에 자극이 적고, 건강한 피부와 머리카락을 유지할 수 있다.
    창포물은 피부와 머리카락에 좋은 천연 성분을 함유하고 있어, 피부와 머리카락을 건강하게 유지하고, 자연스러운 향기를 느낄 수 있다.
    창포물로 세수하고 머리를 감으면 피부와 머리카락이 건강해지고, 천연 성분으로 인해 피부와 머리카락에 자극이 적다.
    창포물은 피부와 머리카락에 좋은 천연 성분을 함유하고 있어, 건강한 피부와 머리카락을 유지하는 데 도움이 된다.
    창포물로 세수하고 머리를 감으면 자연스러운 향기와 함께 건강한 피부와 머리카락을 유지할 수 있다.
    창포물은 피부와 머리카락에 좋은 천연 성분을 함유하고 있어, 피부와 머리카락을 보호하고 건강하게 유지하는 데 도움이 된다.
    창포물로 세수하고 머리를 감으면 자연에서 얻을 수 있는 천연 성분으로 인해 피부와 머리카락에 자극이 적고, 건강한 피부와 머리카락을 유지할 수 있다.
    창포물은 피부와 머리카락에 좋은 천연 성분을 함유하고 있어, 피부와 머리카락을 건강하게 유지하고, 자연스러운 향기를 느낄 수 있다.

     

    결론

    - 더 많은 예제를 시험해봐야겠지만, 채팅 AI 만으로도 자연스러운 text augmentation이 가능하다.

    - 다양성을 추구한다면 Bard, 조건에 부합하고 원 문장을 최대한 유지하고 싶다면 GPT-3.5를 통해 위 조건에 부합하는 증강이 가능하다.

    - clova는 한국어 특화라고 하였지만, 아직까지는 많이 보완이 필요할 것으로 보인다..크흠..!

    반응형