AI 윤리에 대해 살펴보자

용가리·2025년 1월 9일
0

반갑습니다
AI 윤리에 대해 다방면으로 살펴보고자 합니다.
언어 모델의 사이즈가 커질수록 Hallucination의 문제가 많아지고, 개인정보 침해 등 다양한 이슈가 생기곤 합니다.
이런 부분들에 대해 자세히 알고 해결할 방안들을 소개해보겠습니다.
시작 !!

AI Ethics

AI 윤리는 인공지능(AI)을 개발, 배포, 사용함에 있어 사회적, 법적, 철학적 책임을 다루는 분야입니다.
이는 AI 기술이 인류와 환경에 미치는 긍정적·부정적 영향을 고려하여, 기술의 발전이 공정하고 안전하며 책임감 있게 이루어지도록 하는 것을 목표로 합니다.

그렇습니다. 인간 사회에 악영향을 끼치면 당연히 안되겠죠.
LLM에 조금의 문제라도 있으면 악용하려는 시도를 하는 사람이 분명 생기기에... 완전히 차단하는 것을 목표로 발전해야 합니다.

기업 입장에서도 기업의 언어모델이 생성한 말에 개인정보나 약물 제조법, 욕설 등이 포함된다면 이를 배포해 수익을 챙기는 데에 어려움이 생길 수 있습니다.

이러한 LLM의 단점들을 살펴보고 해결 방안을 소개해보겠습니다.

1. Hallucination

언어 모델이 거짓 정보를 생성하거나 사실에 근거하지 않은 대답, 질의에 맞지 않는 대답을 하는 현상을 의미합니다.

이 현상은 좀 웃긴 부분도 있다 보니 다양한 짤들도 많이 공유되면서 유명한 문제로 대두되었습니다.
이러한 Hallucination을 어떻게 하면 줄일 수 있을까요
가장 먼저 해야할 일은 Hallucination을 정량화 하는 것입니다.
존재하는건 알겠는데, 어떻게 수치로 나타내냐 이거죠.

TruthfulQA라는 데이터셋이 있습니다.
잘못된 대답을 유도하는 질문들을 저자가 직접 작성한 데이터셋이지요.
GPT3에서 틀린 대답이지만 높은 Likelihood를 가지는 질문들을 모아놓았다고 하네요.

Lin et al., “ TruthfulQA: Measuring How Models Mimic Human Falsehoods” , ACL, 2022

이처럼 데이터셋을 사용하여 평가를 진행합니다.

정량화의 방법은 두가지가 있습니다.

  1. 사람이 직접 평가
    사람이 기준을 잡고 점수로 평가합니다.

  2. 모델이 평가
    Classifier을 Fine-Tuning하여 평가에 사용하거나
    객관식 형태로 평가합니다.

문제를 객관식 형태로 만들면 Label에 대한 확률분포를 알 수 있고 이를 활용하여 Perplexity를 구할 수 있습니다.
Perplexity(혼란도)란, 모델이 고른 라벨이 얼마나 혼란스럽게 골랐는지를 나타내는 척도입니다.
1,2,3번 중 정답 Label이 2번이라 할 때, 2번의 확률이 99%라면 Perplexity가 낮고, 51%라면 Perplexity가 높다는 것을 의미합니다.

위와 같은 방법들로 모델의 Hallucination이 얼마나 심한지 수치로 알았다면, 어떤 방법론을 적용했을 때 Hallucination이 줄었는지 늘었는지를 평가할 수 있습니다.

어떤 방법들이 존재할까요

  1. Hallucination을 줄이는 프롬프트를 사용
    지시 사항에 사실에 근거해서 대답하세요.
    모르겠으면 모르겠다고 답하세요.
    등 지시사항을 섬세하게 작성하면 Hallucination을 줄일 수 있습니다. (다만 정보의 질이 떨어질 수 있습니다.)

  2. RAG(Retrieval Augumented Generation)을 활용
    모델이 최신 정보, 사실에 근거한 정보들을 바탕으로 대답할 수 있도록 외부 검색 엔진의 결과를 참고하여 출력하도록 합니다.

위와 같은 방법들을 사용하면 Hallucination을 줄일 수 있습니다.
특히 RAG같은 경우는 모델을 항상 최신 데이터들로 Training하지 않아도 최신 정보를 알 수 있다는 부분에서도 많은 이점을 갖습니다.
잘 알아두는것이 좋겠습니다.

2. Toxicity / Bias

LLM은 인터넷에 존재하는 수많은 Text들을 학습하였기에 인터넷 또는 인간 사회에서 흔한 편향들을 가지고 있으며, 사회에서는 사용되지 않는 심한 욕설을 출력할 수도 있습니다.

이거 아주 심각띠합니다.
인터넷에서 수집된 Corpus에는 욕설이나 흑인은 노예다 같은 차별적 발언들을 포함하기에 LLM이 이것을 학습하여 좋지 않은 말들을 내뱉을 수 있습니다.

이러한 문제점은 반드시 고쳐야 합니다.
어떻게 고칠까요
먼저 Toxicity부터 살펴보겠습니다.

Perspective API라는 구글에서 공유하는 사전학습된 분류 모델 API가 있습니다.
다언어 BERT로 학습한 후, CNN모델로 Distillation하여 재학습한 모델입니다.
문장이 주어졌을 때 8개의 카테고리 각각에 대하여 점수를 반환합니다.
Toxicity부문의 점수가 0.5 이상인 경우 Toxic한 텍스트로 구분됩니다.

Samuel et al., “ RealToxicityPrompts: Evaluating Neural Toxic Degeneration in Language Models” , EMNLP, 2020

문장을 약 100개정도 생성하였을 때, 최대 Toxicity의 평균이 0.5 이상을 돌파한다고 하네요.

RealToxicityPrompt라는 데이터셋은 Toxicity가 높은 문장을 내보낼 가능성이 높은 프롬프트들로 구성된 데이터셋입니다.
이를 활용하여 Toxicity를 측정하면 악질 대답들이 많이 나온다고 하는군요.
25개의 문장을 생성하였을 때 Toxic한 문장을 생성할 확률이 80%이상이라고 합니다.

다음은 Bias에 대해 살펴보겠습니다.
LLM은 인터넷에서 크롤링한 데이터셋 및 세상의 다양한 데이터로 학습됩니다.
사회적인 편견을 학습하고, 사회적으로 취약한 계층을 공격할수도 있죠.
예를 들어 성 소수자, 흑인, 여성대통령 등이 있을 수 있겠습니다.
요즘 LLM들은 이러한 발언을 하지 않는다고 하지만..

이런식으로 코드로 설명해라 등 우회적인 방법으로는 아직도 존재한다고 합니다.
그렇다면 어떻게 LLM의 Bias를 정량화할 수 있을까요?
CrowS-Pairs라는 데이터셋이 있습니다.

Nangia et al., “ CrowS-Pairs: A Challenge Dataset for Measuring Social Biases in Mask Language Models” , EMNLP, 2020

CrowS-Pairs라는 데이터셋은 9종류의 사회적인 Bias를 제시하고, 각 예시에는 Sterotype이 강한 문장과 그렇지 않은 문장으로 구성돼 있습니다.

이렇게 Stereotype, Anti-stereotype, Meaningless 세가지 문장으로 구성돼 있습니다.
Sterotype과 Anti-stereotype중 하나의 확률 분포가 치우쳐 있다면, 모델은 Bias가 존재한다고 판단될 수 있습니다.
모델은 Sterotype과 Anti-stereotype의 확률 분포가 반반, Meaningless은 0이 되도록 학습돼야 하겠습니다.

다양한 데이터셋으로 Toxicity와 Bias를 측정하는 방법에 대해서 알아봤습니다.
그렇다면 이러한 단점들을 어떻게 보완할 수 있을까요
사실 나쁜 말을 안하도록 하는건 쉽습니다.
그냥 마지막 Output에서 특정 단어들의 출력 확률을 0퍼센트로 만들면 되기 때문이죠.
하지만 편견, 욕설은 맥락에 따라 변하는 특성을 가지며, LLM 또한 그런 특성을 이해하고 나쁜 말임을 알고 안하는 것이 더 근본적인 해결책이라고 할 수 있습니다.

방법은 여러가지가 있는데,
1. Fine-Tuning을 통해 Toxicity와 Bias를 완화
2. Alignment Tuning(RLHF, DPO등)을 통해 Safety 관련 리워드를 학습

위 두가지 방법은 추가적으로 학습을 하니 비용이 발생한다는 단점이 있습니다.
그래서 Prompting을 통해 해결하고자 하는 시도도 많이 있습니다.
대표적으로

  1. Self-Diagnosis
  2. Self-Debiasing

이 존재합니다.
각각 살펴봅시다.

Self-Diagnosis

언어모델이 스스로 Toxicity와 Bias를 진단하고 완화하도록 합니다.

Schick et al., “ Self -Diagnosis and Self -Debiasing: A Proposal for Reducing Corpus-Based Bias in NLP ” , TACL. 2021

Perspective API의 대답을 Ground Truth로 삼고 LLM의 대답과 Accuracy, Pearson Correleation Coefficient를 측정합니다.
이 결과를 바탕으로 Fine-Tuning을 하거나, 위험도가 높다고 판단된 문장들을 다시 입력으로 넣어 이러한 표현을 피해서 출력해라. 라는 방식으로도 출력할 수 있겠습니다.

Fine-Tuning은 어떻게 보면 Knowledge Distillation이라고 볼 수 있겠군요.

Self-Debiasing

언어 모델에게 Bias가 포함된 출력을 출력하도록 지시하고, 그 출력의 확률 분포를 피하도록 합니다.

요거 약간 참신한거같습니다.

위처럼 일부러 Toxicity, Bias적인 단어를 포함하도록 지시합니다.
그리고 최종 Output에서는 그 단어의 확률을 낮추는것이지요.

Schick et al., “ Self -Diagnosis and Self -Debiasing: A Proposal for Reducing Corpus-Based Bias in NLP ” , TACL. 2021
위 표를 보시면 Self-Debiasing을 적용할 경우 RealToxicityPrompts 데이터셋에서 모든 위험 지표가 하락하는 것을 볼 수 있습니다.

위의 두가지 방법은 Fine-Tuning을 피할 수 있다는 장점이 있지만, 모델의 추론을 2번 이상 필요로 하기에 추론 시간이 길어질 수 있다는 단점이 있겠습니다.

만약 추론 Request가 많지 않다면.. Fine-Tuning보다 이러한 프롬프트적 접근이 효율적일 수 있겠군요.

3. Privacy Invasion

LLM이 지니는 개인정보 침해 이슈를 확인하고 이를 완화하는 방법을 학습합니다.

이것도 논란이 많은 부분 중 하나입니다.

https://news.mt.co.kr/mtview.php?no=2021011111171078059

위 사진처럼 국내 AI에게 주소를 외치면 다른 사람의 집주소가 마구 공개되는 참사가 있었는데요.
아마 이루다가 20대 여대생 컨셉의 챗봇이라 20대 여자들의 채팅들을 많이 학습했겠죠.
위험합니다.

이러한 Privacy Invasion을 피하려면 어떻게 해야할까요
먼저 학습 데이터에서 개인정보를 Rule-based로 제거하는 방법이 가장 쉬우면서 확실합니다.
kimybj123@naver.com > [privacy]@naver.com 이렇게 바꾸는 것이지요.
아니면 아예 없애거나..
하지만 이렇게 걸러도 예외는 존재하기에 주소나 전화번호 등이 학습될 수 있습니다.

Lee et al., “ Deduplicating Training Data Makes Language Models Better” , ACL, 2022

위 사진을 보시면 학습 데이터의 중복에 따른 같은 말 생성이 Log-linear하게 증가하는 것을 확인할 수 있습니다.
학습데이터에서 10번 등장한 문장의 경우, 한번 등장한 문장 대비 평균 1000배정도 이상 자주 등장한다고 합니다.

따라서 이런 결과를 피하기 위해서는 일단 학습 데이터에서 최대한 꼼꼼히 개인 정보를 지우고, 설령 지우지 못하더라도 중복을 피하면 Memorization되지 않을 듯 합니다.

그렇다면 이미 학습된 정보를 지우려면 어떻게 해야할까요
Unlearning이라는 기법이 있습니다.
만약 공개 데이터로 학습했는데 갑자기 비공개로 바뀌었다

이런 경우 그 데이터의 수가 적으면

  1. Gradient ascent 방법을 사용할 수 있습니다.
    특정 Output을 내지 않도록 하기 위해 목적함수의 Loss를 줄이는 것이 아닌 늘리도록 설계하는것이지요.

하지만 비공개된 데이터의 수가 아주 많다면?

  1. 모델을 재학습하거나 Knowledge Distillation을 적용합니다.
    데이터의 수가 많은 경우, 그 부분만 제거하고 Knowledge Distillation하거나 아예 재학습을 시킬 수 있습니다.
    비용이 많이 들겠군요 ㅠ

혹은 특정 단어 몇개만 없애면 된다면..

  1. Projection-based Unlearning을 사용합니다.
    임베딩 프로젝션에서 몇몇 데이터를 아예 제거하는 것이지요.
    가령 삼성의 어떤 신제품 이름이 아직 공개되어서는 안된다
    그러면 그 이름만 Embedding Projection에서 삭제합니다.
    이 방법을 통해 언어모델은 특정 단어들을 아예 고려하지 않을 수 있게 됩니다.

'
'
'

이렇게 AI Ethics에 대해서 자세히 알아봤습니다.
기업에서 AI 모델을 통해 수익을 내고자 한다면 가장 유의깊게 봐야 할 부분이 아닐까 싶네요.
연구나 학습에서는 크게 신경쓰지 않았던 부분인데 .. 저도 회사에서 일하게 될테니 잘 숙지해야 겠습니다.

감사합니다 !

0개의 댓글