20230609 estsoft {권택순CTO}

  • 오늘은 이스트소프트 권택순 CTO 특강이 예정되어있다고 한다. 장고 해야하는데.. 뭐어? 8시간 내내 특강이라고??? 아이고야
  • 장고, 플라스크 등 프레임워크 만든 사람이 요즘 어떤 얘기를 하고 어떤 고민을 하고 있는지 모니터링 해야 한다.
  • https://civitai.com 생성형 AI의 탄생. 이 서비스는 일반인들이 만들어낸거다. 자기들끼리 공유하고.
  • 가짜와 진짜의 구분이 무의미해진다. 인식이 아니라 생성의 단위에서 똑같아진다면. 인감도장은 위조했는지 아닌지 감별이 된다. 그것은 감별사의 resolution이 조작가의 것보다 높아서 그래. 근데 이게 똑같아지면 감별이 불가능해진다는것.
  • 저거만 보고 같은 진짜인지 이젠 무의미해진다. 중요해지지 않는다면 무엇이 유의미하고 무엇이 중요하지?
    • 로지코믹스 - 버트런드 러셀의 삶을 통해 보는 수학의 원리
      • 조지 부울 "AND OR NOT 만 만들면 끝이다."
      • 논리는 언어로 표현 가능하고, 합의가 가능하다. "명제: 참과 거짓을 구분할 수 있는 문장"
    • 기계학습을 다시 묻다
      • 확률적으로 세상이 어떻게 돌아갈것인지를 예측. 어떻게 다뤄야 하고 그런 로직들을 컴퓨터에게 어떻게 일을 시켜야 할지가 기계학습 (머신러닝).
  • 컴퓨터가 못하는 일이 뭐죠?
    • 개랑 고양이 사진 보여주고 구분하지 못한다는거. 근 50년동안 똘똘한 사람들이 붙어도 해결못함. ==> 이거 못하는구나. 얼추 거의 맞추는 거, 사람들은 다 할 수 있는데 컴퓨터는 못하는구나.
    • 합리적 판단만 내리고 그런것들을 추구하는 사람들이 꺾인 순간. 논리에서 지지마라, 그렇다면 친구를 잃을 것이다
    • object removal 누구나 알아, 최근에야 포토샵에서 들어왔는데, 논리적이고 합리적인 사람 입장에서는 물체를 지운 자리를 채운다는 것 자체가 말이 안되는 것이다. "답이 여러개인 문제는 문제도 아니야". 하지만 일반인들 입장에서는 "그까이꺼 대충" 맞추면 그만.
    • inpainting: 사진의 일부를 지우고 다시 채우기
    • outpainting: 사진의 조각을 가지고 전체 채우기
  • 지금 AI는...
    • 라이트형제가 새를 겁나 많이 봤을때의 그 단계에 와 있다.
    • 그렇다면 우리는? 사람의 뇌를 겁나 많이 봐야지.
  • 게임시장이 커지면서 그래픽 카드의 가성비가 높아졌다. => 쿠다 API가 2008년에 발표됐다. => 누군가 그래픽 카드를 가지고 신경망을 돌리기 시작했다.
    • 같은 일을 하는데 병렬로 수행하는 코어가 혼자서 고클럭의 코어보다 에너지를 적게 쓰고 일을 더 많이 할 수 있다.
  • 사람 얼굴을 찾기 위해 68개의 특징점을 찾아야 한다. 근데 raw 데이터는 많은데 학습시킬 라벨이 없다... ==> 비지도학습의 도입
    • 라벨링 전용 팀에 의뢰를 맞길 수 있다. 데이터 클렌징 팀.
    • openai, google 같은 곳에서는 그냥 양으로 승부하는 경우도 있다.
  • 라벨을 스스로 다는 SSL (Self Supervised Learning)
    • 사람이 안하고 기계가 할 수 있는 일들부터 pre-training.
    • GPT도 Generalized Pre-Training의 약자로, 스스로 학습할 수 있는 언어모델을 의미한다.
  • 생성모델: 고양이를 그려!
    • 그냥 인식할 때 쓰던 뉴럴 네트워크 사용하니까 되더라.
    • Image to Image translation
      • 흑백을 컬러로 바꿔줘
      • 대충 그린 윤곽으로부터 실제 그림으로 만들어줘
      • 낮을 밤으로 바꿔줘
  • 딥러닝은 기억했다가 뱉어낼 때 보관을 한다. 일반적인 리스트의 인덱싱과는 차이점이 있다. ls['tiger']를 보고 유사점을 본 뒤에 가중치의 형태로 뱉는다.
    • 계산과 메모리는 근본적으로 똑같다. f('dog')f['dog']는 근본적으로 똑같다.
  • pytorch
    • 일렬로 쭉 세운 2D 사진을 갖다가 벌인지, 개미인지 구분하는 신경망을 모델링해보자.
    • weight(가중치) 변경하는 것이 학습이다.
  • CNN (Convolutional Neural Network) wiki
    • 사진을 보고 그 사진을 해설하는 모델. 그 모델의 입력이 있을 때 Edge를 먼저 보는구나! 그렇다면 컨볼루션 마스크를 씌워 에지를 보자꾸나.
    • 필터를 학습하는 딥러닝 모델임. 컨볼루션(합성곱) 필터란, 이미지로부터 단순한 형태를 추출할 수 있는 필터(예를 들면 에지검출)를 사용하는 것을 의미한다.
    • locality: 모든 신호는 인접한 신호와 비슷할 확률이 높다는 전제 하에 진행하고, 신호의 변화량이 크다면 그것은 유의미한 정보라고 볼 수 있다.
    • Convolution, Max Pooling 차이가 무엇인가요?
      • Max Pooling: maximum 신호만 가져온다, 가중치 합도 아니고 사진 데이터가 여러 방향,사이즈,으로 치우쳐 있는 경우에도 fault tolerance 하도록
      • translation invariance: 위치가 달라도 동일한 시그널
      • rotation/viewpoint invariance: 보는 방향이 달라도 동일한 시그널이어야 한다.
      • illumination invariance: 광원이 달라도 동일한 시그널이어야 한다.
  • Auto Incoder
    • IT (Information Technology) 정보의 표현은 직관적이고 쉽다. 왜 대부분의 사진은 BMP로 유통될까? => 압축이 안 되어 있어서. 메시지를 어떻게 표현하느냐를 다루는 도메인이다. 모든데이터는 언제나 raw한 포맷으로 시작된다. 하지만 우리 목적에 맞게 얘를 변환하는데, 사이즈를 줄인다거나 에러가 끼거나 훼손되어도 복원가능하기 위해 인코딩이라는 작업을 진행한다.
    • encoder: code를 만드는 놈이다. eg, jpeg/png encoder
      • WHY 압축? ==> 정보의 양을 줄일 수 있어서.
      • 예전엔 구리선을 순수하게 만드는 방법이었지만 요새는 에러를 끼고도 안전하게 정보를 전송할 수 있게 만드는 저시기가 있다.
    • decoder: code로부터 해체하는 놈이다.
    • Deep Learning도 IT이다. Encoding, Decoding이다. 에러와 잡음을 줄이고 사람의 직관과 똑같게 만들어주자.
    • 원본을 인코딩 하여 디코딩 했을 때의 loss 비율을 가지고 스스로 학습.
    • denoising autoencoder = 원본에 임의로 노이즈를 준다. 그 상태로 인코딩을 한다. 그리고 이것을 디코딩 했을 때 노이즈 없는 결과를 볼 수 있게된다.
  • https://segment-anything.com
    • 파일을 아무거나 올리면 내부에서 인코딩을 한다. 인코딩을 한 뒤에 다양한 방식 (점을 찍는다거나 상자를 그리거나 언어로 묘사하면)의 프롬프트에 따라 디코딩 된 결과를 리턴할 수 있다.
  • https://prompthero.com | https://openai.com/dall-e-2 | https://github.com/CompVis/latent-diffusion | https://github.com/CompVis/stable-diffusion
    • 텍스트로 이미지 만들기 dall-e는 유료이고 닫힌소스인데 이 기술과 동일한 걸 만든 latent-diffusion을 바탕으로 stable-diffusion을 만들어 오픈소스로 뿌려버렸다. 사용자들이 자기네 모델을 만들어 배포하기 시작했고, 그것을 가지고 스스로 fine-tuning을 하게 됐는데, 그것을 서비스하는 업체가 바로 https://civitai.com
      • fine-tuning 하는 과정을 LoRA라고 하는 transformer 기반 언어모델을 가지고 진행할 수 있다.
    • source image를 가지고 에지검출, 에지와 글로 쓴 프롬프트를 가지고 아예 새로운 그림을 생성할 수 있다.
      • 어떻게 원본사진과 텍스트만 가지고 새로운 사진을 만들어낼 수 있던 걸까? ===> Multi Model, 서로 연관성 없어 보이는 두 모델이 동시에!
        • CLIP (Contrastive Language-Image Pre-Training대조적 언어-이미지 사전 교육)
        • 텍스트 인코더 & 이미지 인코더를 동시에 사용, 수많은 텍스트와 이미지로부터 벡터를 만들어 그냥 내적(가중치합)을 수행하면 일종의 유사도를 뽑아낼 수 있다. 두 벡터가 수직이면 0이 나오는 것 정도는 알잖아?
        • 5개의 텍스트, 5개의 이미지를 인코딩한 벡터들을 행렬 모양으로 곱셈하면 좌표평면에서의 같은 공간으로 몰아버릴 수 있게된다. ==> 분류기를 만드는 데 쓸 수 있겠다.
        • stable-diffusion같은 애들이 CLIP을 엔진으로 가져올 수 있다. ==> 분류기? 그거론 부족해. 우린 생성까지 한다.
  • NVIDIA의 미션
    • 너네가 상상하던 것들을 내가 그려주겠어.
    • 게임업계 => 3D 그래픽
    • Deep Learning => 인식 모델, 생성 모델, ...