개드립

즐겨찾기
최근 방문 게시판

정보)이루다 내부는 어떻게 생겼을까?.araboza

136147535_220100973021089_5081424219187494098_o.jpg

(솔직히 이루다 흥행은 디자인부 캐리다. 개귀엽게 그렸음.)

 

 

출처: 이루다 개발진 블로그

https://blog.pingpong.us/ranker-model/

 

..와 더불어 이제부터 본 개붕이가 얼마나 전공지식을 쉽고 짧게 풀어쓸수 있는지도 함께 알아보도록 하자.

 

선 3줄요약:

1. 유저가 문자를 보내면

2. 지금까지의 유저와 이루다간의 대화내용을 전부 스캔하고

3. a)데이터베이스에서 b)제일 그럴듯한 답변c)딥러닝으로 찾은뒤 답장한다.

 

사실 이 글은 여기서 끝내도 됨. 왜냐고? 진짜 저 세줄요약이 다임ㅋㅋㅋㅋㅋ 나머지는 정확도를 올리기 위한 개발자들의 처절한 몸부림에 불과함

 

그러나 강건너 불구경이 제일 재밌는 법. 이 개발자들이 이루다를 만들어내기 위해 어떤 수학적 몸부림을 쳤는지 디테일하게 알아볼까?

 

a) 데이터베이스에서

 

모델을 학습하기 위해 총 2억 개의 세션(문맥 + 응답)을 선별하였습니다.

 

일단 이루다가 뭘 보고 학습했는지부터 알아보자. 블로그에서는 자세한 디테일은 알려주지 않고 2억개의 문맥+응답 데이터셋만 선별해서 학습했다고 함. 그러면 우리가 할수 있는건 추론 뿐인데, 다른 블로그 포스트에 따르면

 

저희가 처음에 루다를 기획했을 때, 루다 페르소나에 대한 여러 고민이 있었어요. 일단 주 사용자층이 넓게는 10~30대, 좁게는 10대 중반~20대 중반으로 생각했기 때문에 가운데인 20살 정도가 사용자들이 친근감을 느낄 수 있는 나이라고 생각했어요.

 

..이라고 하네. 즉, 예상을 해 본다면 개발자들은 거대한 데이터베이스 중에서 20대 여성이 주체인 대화만 뽑으니 2억개 학습 데이터가 확보됐다고 볼수 있음. 2억개 정도면 구글같은 인터넷 전체를 대상으로 학습시키고 있는 애들보다야 당연히 적은 숫자지만 그래도 학습 시키기에는 차고 넘침. 부럽다 ㅅㅂ 데이터 어디서 구했누??? 페이스북한테 돈주고 샀나?

 

 

b) 제일 그럴듯한 답변을

 

 

810836_533242_1724.jpgDesktop_Screenshot_2020.08.27_-_21.50.30.96.png

 

원빈과 로버트 패틴슨은 우리 개붕이들과 비교하면 압도적으로 잘생겼다는건 누구나 다 아는 사실이다. 그리고 둘이 각각 "다른 방향으로" 잘생겼다는것도 모두 동의할 것이다. 만약에 "다른 방향"으로 잘생겼다면, 그 방향의 각도는 얼마나 될까? 애초에 수학과 거리가 멀어보이는 사람 얼굴인데 둘 사이에 각도라는게 존재는 할까?

 

이제부터 슬슬 재밌어지기 시작함. 이루다가 어떻게 제일 그럴듯한 답변을 뽑아내는지 생각해보기 전에, 다음 질문을 한번 고민해보자.

 

사람 얼굴은 몇차원일까?

"3차원 아님?" 당연히 물리적으로는 3차원이지만, 여기서 말하는 차원은 그 데이터를 표현하는데 필요한 숫자의 갯수임.

 

3차원 공간에 있는 점 하나를 표현하기 위해선 x, y, z 숫자 세개가 필요하므로 3차원.

 

하지만 같은 공간에 있는 삼각형은 점 하나마다 숫자가 3개 필요하니 총 9차원짜리 데이터임.

 

본 개붕이는 대학을 미국에서 다니고 있어서 한국 수능에 과목이 몇개 있는지는 정확히 모르지만 구글 검색을 해보니 한국사, 국어, 수학, 영어 + 탐구영역 2개 + 제2외국어가 있다고 하니 개붕이들의 수능 점수는 최대 7차원짜리 데이터가 됨.

 

(이쯤 와서 눈치챈 게이들도 있겠지만 현실에 있는 대부분의 데이터는 초고차원 데이터임. 사람 뇌가 직관적으로 볼수 없는 데이터다 보니 수학의 힘을 빌리는 거. 응용수학에서는 몇십년동안 하고있던걸 요즘 AI라고 포장해서 완전 신기술인거마냥 팔고있는거임.)

 

그래서 아무튼 사람 얼굴은 몇차원일까(=사람 얼굴은 숫자 몇개로 표현이 가능할까)?

 

 

해법 1. 단순하게 생각해서 얼굴 사진 안에 얼굴 있잖아? 그럼 표현 된거지? 그러므로 사진을 이루는 픽셀 갯수 = 사람 얼굴 차원 이다!

 

imagematrix.png

 

어거지같지만 이론적으로 틀린건 아니다. 아무튼간에 표현 했으니까 됐지 뭘 더 바람?

 

하지만 실용적으로는 장점보다 단점이 더 많음. 한번 장단점을 비교해볼까?

 

장점: 단순함. 이미지로 곧바로 변환 가능함. 모든 얼굴을 표현할수 있음(사진이니까)

 

단점: 한국 증명사진 최소 픽셀 크기가 94x113 인데 그러면 94x113=10622차원임. 아무리 생각해도 사람 얼굴 표현하는데 숫자가 만개나 필요할것 같진 않음. 존나게 비효율적인것도 있고 무엇보다도 차원이 커질수록 수학 연산들이 우리가 생각한대로 작동하지 않게 되고 데이터 구조가 비선형적일 가능성이 커짐(차원의 저주).

 

장점보다 단점이 너무 커서 다른 방법이 필요함. 다른 방법이 필요한데... 그 해답은 심즈같은 게임들의 커스터마이징에서 찾아볼수 있음.

 

 

해법 2. 요즘 게임 커마 보면 대부분의 얼굴 표현할수 있더만? 그러므로 커마 슬라이더 갯수 = 표현하는데 필요한 숫자 갯수 = 얼굴 차원이다!

 

Change-Your-Appearance-in-Skyrim.jpg

 

확실히 이런식으로 표현하니 10622차원에서 많이 줄었음. 근데 단점이 없는건 아님.

 

장점: 검은사막같은 게임들 커마 슬라이더 갯수 많아봐야 50개~60개 하지 않음? 그러면 ~60차원까지 많이 줄었으니 177배 줄었음. 쌉이득이네?

 

단점: 대부분의 얼굴이지 모든 얼굴이 아님. 1번 해법으로 하면 모든 얼굴을 표현할수 있지만 이 해법으로는 길가다가 보이는 진짜 창의적으로 못생긴 애들 외모는 표현해내기 힘듬. 

 

 

즉, 이 문제는 숫자의 갯수를 최소화시키면서 최대한 많은 얼굴 범위를 커버할수 있는 방법을 찾는 문제임. 근데 공돌이들이 성형외과 의사도 아니고 그걸 어떻게 알어?

 

어? 근데? 최소화 시키면서 최대화 시킨다? 최적화 문제네? 문제에서 솔솔 나는 미적분의 냄새를 맡은 컴공들은 이걸 수학적으로 발견할 방법을 찾아냈고 그게 뭐냐면

 

 

해법 3. ???: 네? 이걸 100배 이상으로 압축시키고 멀쩡하게 복원시키라고요? 제가요?

 

 

0_uq2_ZipB9TqI9G_k.png

 

 

뭐긴뭐야 인공신경망 딥러닝이지.

 

오토인코더(Autoencoder)라고 불리는 형태인데 학습 알고리즘은 다음과 같아(비전공자 ver.).

 

  1. 인공 신경망을 위와 같이 중간에 병목이 생기도록(압축을 시키도록) 디자인을 한다
  2. 해법 1의 이미지를 통째로 신경망에 집어넣는다(위 사진에서는 28x28=784차원 이미지)
  3. 그리고 신경망보고 최대한 원래 이미지를 복구시키라고 한다
  4. 그러면 이 신경망은 복구를 최대한 잘해내기 위해서 제일 효율적인 압축법을 터득한다
  5. 병목 부분에서 주어진 차원에 맞는 제일 효율적인 데이터 표현법이 등장하게 된다

 

이런식으로 만들어진 표현법은 설계를 제대로 했으면 이런것도 가능함

 

 

무엇보다도 이렇게 학습되어서 나온 데이터들은 벡터처럼 다룰 수 있음. 이게 굉장히 중요한데, 곧 있으면 알게 될거임. 그 전에 질문의 답먼저 내놓고 가자.

 

그래서 사람 얼굴은 몇차원짜리 데이터냐?

 

인공지능 말에 따르면 대략 100차원임. 숫자 100개 이내로 거의 모든 사람 얼굴을 정확하게 표현해낼수 있었음.

 

 

근데 지금 포인트는 그게 아니야. 얼굴을 벡터처럼 다룰수 있다니까??? 벡터에서 가능한 연산은 전부다 된다는 소리라니까??? 수학 좀 치는 애들은 이게 얼마나 개쩌는건지 알수 있는데

 

 

123.PNG

 

얼굴끼리 더하거나

 

 

124.PNG

 

서로 뺄수도 있고

 

 

Faces-of-the-fourth-column-are-acquired-by-subtracting-the-second-column-from-first_Q320.jpg

 

당연히 여러개를 동시에 더하고 뺄수도 있고

 

 

 

220px-Dot_Product.svg.png

 

내적도 쌉가능하고.. 어? 내적? 내적을 구할수 있으면 각도도 구할수 있지 않나?

 

맞아. 얼굴끼리의 각도는 이렇게 구할수 있어.

 

0_1CRCixWSa2RTWpl4.png

얼굴 두개 사이의 거리를 계산해서 유사도를 측정할수도 있고

(대부분 딥러닝을 이용한 연예인 닮은꼴 찾기 웹사이트가 이렇게 작동함)

 

어..유사도? 유사도면

 

3. a)데이터베이스에서 b)제일 그럴듯한 답변을 c)딥러닝으로 찾은뒤 답장한다.

 

제일 '그럴듯한'(=거리가 가깝거나 각도가 비슷한) 답변을 찾는데 쓸수 있지 않나?

 

맞아. 

 

 

c) 딥러닝으로 찾은뒤 답장한다

 

bi-encoder.png

 

*실제 이루다 내부 모델은 이거보다 더 복잡하나 기본적인 형태는 이거랑 거의 똑같다. 궁금하면 블로그에 가보도록

 

여기까지 따라왔으면 위에 있는 다이어그램이 어느정도 이해가 될거야.

 

    1)A(유저가 친 채팅)와 B(이루다가 친 채팅)을 합쳐서 대화 문맥 인코더에 집어넣어서 벡터 표현으로 바꾼뒤에

 

    2)데이터베이스에 있는 (최대 2억개의) 답변 후보들의 벡터 표현을 전부 비교를 한 뒤


    3)두 벡터의 각도가 제일 좁은(=현재 문맥과 제일 비슷한 방향을 가지고 있는) 답변을 내놓는거임.

 

0_6tiGwCmZclFesyDe.png

 

이런식으로. 

 

그럼 이 방법론의 품질을 좌지우지하는거는 인코더인데... 얘네들이 뭘 썼냐면

 

GoogleBert_1920.jpg

 

 

구글이 내놓은 버트(BERT)라는 언어버전 오토인코더 비슷한놈을 썼음. 사실 지금 구글 검색도 버트 기반 벡터 유사도 검색으로 바뀐지 1년쯤 됐음. 몰랐지? 어느날 갑자기 구글 검색 성능이 엄청 좋아진걸 느낀 사람이 있을텐데, 그때가 이때임

 

(근데 버트가 무슨 비법소스마냥 감춰져있는건 아니고 오히려 무료배포중임. 개붕이들도 지금 당장 파이썬 깔고 버트 라이브러리 다운로드해서 쓰는거 쌉가능함.)

 

그리고 개발자 블로그 들어가서 읽어보면 알겠지만 지금까지 내가 설명한게 커다란 빅픽쳐쯤 되고 여기에 더불어서 hard negative니 하는 학습법을 써서 훨씬 더 성능을 끌어올렸음. 하여간 대단해... AI 트렌드에 늦게 탑승했는데도 이런 회사가 나오긴 하는구나.

 

 

결론+내생각

 

요즘 뭐 이루다 성희롱이다 뭐다 하는 이슈가 많이 올라오는데 글을 읽어봤으면 알겠지만 이루다는 결국엔 행렬 연산 집합체일 뿐인데다가 그 근본은 구글 검색과 다를게 없음ㅋㅋㅋ 현재 기술력으로는 감정 이입해도 안쪽팔릴만한 기계학습 모델은 없고 무엇보다도 성희롱 관련 논란은 "야동을 보면 변태가 된다"나 "게임을 많이하면 폭력적이게 된다"라는 논지와 전혀 다를게 없다고 생각함. 

 

그리고 개인적으로 수학이 정말로 중요한 학문이고 앞으로 훨씬 더 중요해질 거라는걸 개붕이들이 느꼈으면 좋겠음. "뭐 씨 미적분 기벡 배워서 뭐에다 쓰냐?" 이런데 쓴다...  특히 급식개붕이들은 수학공부를 학부시절에 피똥싸기 싫으면 일찍 준비하는게 좋을거라 생각해.

 

그럼 이만!

 

 

 

 

121개의 댓글

2021.01.11
@아니그게아니지

나도.. 헐레벌떡 들어왔는데

2
2021.01.11
@티끌모아풍성

ㅋㅋㅋㅋㅋㅋㅋㅋ

0
2021.01.11
@아니그게아니지

은밀하고 부드러운 핑크빛....

0
2021.01.11
@아니그게아니지

이게 이루다의 xx이다 이거지?

0
2021.01.11

개붕이 글 진짜 잘쓴다. 컴공은 아니지만 프로그래밍을 어찌저찌 업으로 삼고있는 사람인데(사실상 복붙 코딩), 이런글 보면 수학공부 하고싶어진다. 20대 후반이지만 이런 수학공부는 조금씩이라도 해야지만 미래에 먹고살것가텨

0
2021.01.11

GAN이넹

0

야 좋은 글 ㅊㅊ

0
2021.01.11

재밌게 잘 읽고 갑니다

0

작성자의 지식의 깊이가 매우 깊음 + 설명 잘함 = 비전공자들도 재밌게 볼 수 있음

 

좋은 글 잘봤음 ㅊㅊ

0
2021.01.11
0
2021.01.11

처음에 읽을땐 어려운데 워낙 설명을 잘해놔서 2~3번 반복해서 읽으면 아직도 어려움

1
2021.01.11

작성자의 지식의 깊이에 감탄함ㅋㅋ

비전공자들도 이해시킬정도로 설명하는게 쉬운게아닌데 쏙쏙 이해되넹

0

뭔소리야 대체

 

이과인가?

0
2021.01.11

이게 지식 섹스지... 존경스럽다

0
2021.01.11

거리에는 유클리디아 거리 , 맨하탄 거리 , 해밍 거리 등이 있다

거리에 따라서 유사도나 정확도를 뽑아내서 그걸로 써먹는거

0

글 ㅈㄴ게 흥미롭네. 스크랩 해놓고 읽는다

0

얼마전에 배운거라 더 흥미롭네 ㅋㅋ

인공지능 스피커도 그렇고 요즘 이런게 핫하구만

0
2021.01.12

생각해보니... 학부시절 배웠던 선형대수랑 OR개념들 다 들어가있네..... 경로값문제에서 해법찾는 알고리즘 손떼고 휴리스틱으로 파길 잘한듯... 내 대가리로는 확실히 무리인듯 싶네

0
2021.01.12

Aiㅇㄷ

0
무분별한 사용은 차단될 수 있습니다.
제목 글쓴이 추천 수 날짜
맛도리 인데 은근 먹어본 사람이 많지 않은 음식 28 잭다니엘 17 1 분 전
최근 난리난 0칼로리 음료 23 기여운걸조아하는사람 31 3 분 전
황사 체감 23 무료스핀 30 4 분 전
전현여친 피설 외모는 좀 그런 남자 15 프라당 22 5 분 전
다람쥐 출산 장면 28 양춘식 25 6 분 전
드라마속 문화대혁명 보고 중국 왜곡하지 말라며 비판하는 중... 72 므르므르므 65 25 분 전
클리앙 난민들이 병신도 아니고 바로 정치 떡밥 풀겠냐 40 준구 62 25 분 전
퇴사했는데 회사에서 월급을 안보내줌.jpg 29 개드립잼썽 62 28 분 전
그동안 개드립에서 본 글 36 Alien 50 29 분 전
공개적으로 애플 비판하는 미국 법무부 장관의 사이다 발언 67 개붕끌러 101 32 분 전
클리앙에서 오신 분들 필독 26 헤애네 60 35 분 전
34살 공무원녀 결혼조건. 78 오뚜기푸엥카레 50 35 분 전
금일자 뉴진스 근황ㄷㄷ 72 이타헨아잉 46 41 분 전
F컵 여자보다 귀한 것.jpg 31 뭐라해야하냐 59 42 분 전
클리왕에서 온 난민이면 개추 ㅋㅋ 43 지랄하면욕함 102 47 분 전
ㅇㅎ,ㅆㄷ)던전에서 얀데레 미소녀가 덮치는.manhwa 68 사익 40 50 분 전
매즈 미켈슨 충격적인 근황 29 준구 42 51 분 전
아파트 계단 운동을 하면 안되는 이유 64 카즈하 80 52 분 전
중국 정부가 발표한 중국인들의 소득 근황 ㄷㄷㄷㄷㄷㄷ.JPG 111 소리빙빙 51 56 분 전
요트로 세계일주하던 한국 아저씨의 '반전' 61 책한권만읽은무서... 86 59 분 전