회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
IT 지식이 무엇보다 중요해진 요즘, 여러분은 어떻게 공부하고 있나요? 가장 먼저 눈길이 가는 건 다양한 IT 강의 영상일 겁니다. 강의를 제공하는 교육 기업들과 함께, 요즘IT에서 ‘IT 강의 시리즈’를 준비했습니다. 엄선한 교육 영상을 텍스트로 읽고 필요한 정보를 빠르게 가져가세요.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
IT 지식이 무엇보다 중요해진 요즘, 여러분은 어떻게 공부하고 있나요? 가장 먼저 눈길이 가는 건 다양한 IT 강의 영상일 겁니다. 강의를 제공하는 교육 기업들과 함께, 요즘IT에서 ‘IT 강의 시리즈’를 준비했습니다. 엄선한 교육 영상을 텍스트로 읽고 필요한 정보를 빠르게 가져가세요.
이번 강의는 ‘서비스 향 AI 모델 개발하기’입니다. AI 스타트업 업스테이지의 CTO이자, 전 네이버 클로바 임원인 이활석 님의 특강을 텍스트로 옮겼습니다. 실제 서비스에서 쓰는 AI 모델 개발 과정부터 올바른 조직 구성 방법까지, 이론이 아닌 AI 개발의 실재를 만나 보세요. 전체 영상은 네이버 부스트코스에서 확인할 수 있습니다.
안녕하세요, ‘서비스 향 AI 모델 개발하기’ 특강을 진행할 이활석입니다. 현재 업스테이지 CTO로 일하고 있고, 전에는 네이버 클로바에서 일한 적 있습니다.
오늘은 서비스 목적으로 AI를 개발하는 것이 학습 목적의 모델 개발과 얼마나 다른지 중점적으로 알아보고자 합니다. 본격적으로 실제 회사에서 서비스 목적으로 AI를 개발하는 일에 대해 상세히 알아볼게요. 한번 달려가 볼까요?
일반적으로 “학습 과정에서 AI 모델을 개발한다”는 일은 다음과 같이 도식화할 수 있습니다. 먼저 학습용 데이터셋(training dataset)이 주어지고요, 이 모델의 성능을 측정하기 위한 테스트 데이터셋과 평가 방법이 주어져 있습니다. 이런 환경에서 가장 뛰어난 성능을 내기 위한 모델 구조를 새롭게 디자인하는 일을 보통 ‘모델링(modeling)’이라고 부르죠.
그 결과, 어떠한 AI 모델 하나를 확보할 수 있을 겁니다. 이제 컴퓨터 비전(CV), 자연어 처리(NLP) 분야에 적용해서 모델링 해보고, 시계열 데이터에 대해서도 모델링 해보면서 열심히 학습하겠죠.
그런데 “보통 서비스를 위한 AI를 개발한다”라고 할 때는 학습 데이터셋이 없는 경우가 많습니다. 물론 준비된 경우도 있겠지만, 실무에서는 없는 경우가 꽤 많죠. 그다음에 테스트 데이터셋이랑 어떻게 테스트 할지에 대한 방법도 정해져 있지 않은 경우도 많아요. 이게 실제 서비스를 개발할 때 맞닥뜨리는 상황입니다.
그 대신 주어지는 다른 하나가 있습니다. 그게 뭐냐 하면, 서비스 요구 사항이에요. “어떠한 서비스를 만들고 싶은데 AI로 가능할까요?”라는 서비스 요구 사항만 모델링 팀으로 오게 됩니다.
어떻게든 모델을 개발해야 하는 상황에서 처음 할 일은 학습 데이터셋을 준비하는 일입니다. AI를 개발할 때 데이터 없이는 할 수가 없잖아요. 그래서 학습 데이터셋을 잘 준비해야 하죠.
이 과정을 더 정확히 얘기해 보면, 먼저 서비스 요구 사항이 있고, 그 요구 사항으로부터 어떤 학습 데이터셋을 모아야 하는지 구체화하는 과정이 있습니다. 학습 데이터셋의 종류는 무엇이어야 하는지, 종류별로 수량은 어느 정도 확보해야 하는지가 필요하죠. 또 대부분 교사 학습(또는 지도 학습, Supervised Learning) 방식으로 학습을 시키기 때문에 데이터셋 별로 정답을 어떻게 할지 역시 정해야 합니다. 그렇게 정하는 기준은 다시, 서비스 요구 사항으로부터 나와야 합니다.
이해를 돕기 위해 제가 예시를 하나 들어 볼게요. 서비스 기획팀에서 AI 기술팀으로 기획안을 하나 가지고 왔어요. 기획안을 보니 ‘수학 공식(수식)을 사진으로 찍어서 인식하는 기술을 만들고 싶다’라고 합니다.
그러면 저 요구 사항에서 시작해 어떤 학습 데이터셋을 모아야 할지, 질의응답으로 구체화시켜 나가야 됩니다. 다음과 같은 질문을 던질 수 있겠죠.
“어떤 수식을 말씀하시나요?”
사칙 연산이 될 수도 있고, 굉장히 어려운 딥러닝 역전파(Back Propagation) 수식이 될 수도 있고, 수식도 정말 다양한 종류가 있잖아요. 그래서 어떤 수식을 원하는지 이제 물어볼 수 있겠죠.
그러면 서비스 기획팀은 이제 기획안에 따라 “초중고 수학으로 생각하고 있다”라고 답변해 줄 겁니다. 이 말이 어떤 힌트가 될까요? 학습 데이터셋을 모을 때, 적어도 초등학교 관련된 수식, 중학교에 관련된 수식, 고등학교에 관련된 수식들이 골고루 잘 모여 있어야 된다, 라는 정보를 담고 있죠.
이는 곧 학습 데이터셋의 종류를 뜻합니다. 이처럼 개발자는 질의응답을 통해 학습 데이터셋에 대한 정보를 뽑아내야 합니다.
더 질문할 수도 있겠죠. 예를 들어, “수식을 인식한다고 했는데, 그렇게 인식한 수식을 구체적으로 어떻게 사용할 계획인가요?”라고 물어볼 수 있을 겁니다.
서비스 기획팀에서 자기들이 이제 조사를 해봤더니 “학생들이 수식을 컴퓨터 상에서 타이핑하는 걸 요즘 굉장히 힘들어하는 것 같다, 그래서 ‘만약 사진만 찍어도 AI가 대신 입력해 주면 어떨까’라는 생각이 들어 관련 서비스를 만들려고 한다” 이렇게 답했다고 하겠습니다. 드디어 우리가 만든 AI 기술에 대한 목적이 나온 겁니다.
일반적으로 컴퓨터에서 수식을 입력할 때는 레이텍(LaTeX)*이란 표현 방식을 많이 씁니다. 곧 ‘수식 이미지를 입력받고 그 안에 있는 수식을 레이텍으로 변경하면 된다’는 정보를 알 수 있습니다. 즉, 학습 데이터셋에서 정답에 해당하는 부분이 레이텍 문자열(LaTeX String)이라는 것이죠.
*레이텍(LaTeX): 문서 작성에 사용하며 특히 수식, 그래프, 다이어그램 작업에 많이 쓰이는 시스템
이제 AI 개발팀은 학습 데이터셋을 모으기 시작할 겁니다. 여러 자료를 참고해 수식 이미지의 종류를 찾겠죠. 그러면 처음에는 인쇄된 수식만 생각했는데 찾다 보니 손글씨 수식이 많이 보인다는 것을 깨닫게 됩니다. 이럴 때는 다시 “혹시 학생들이 손으로 쓴 수식도 인식해야 하나요?”라고 기획팀에 질문해야 합니다. 기획에 따라 답변을 줄 텐데요, 이번에는 ‘손글씨 수식도 인식해야 한다’라는 경우를 한번 살펴 볼게요.
이제 학습 데이터셋 준비를 위한 정보가 조금 더 모였습니다. 수식의 콘텐츠는 ‘초등학교, 중학교, 고등학교의 수식’입니다. 또 표현 방식은 ‘인쇄된 것과 손 글씨 모두 해야 한다’라고 알 수 있죠. 학습 데이터셋의 종류가 구체화 되어가는 겁니다.
사실 더 많은 변화가 있습니다. 실제 사진을 보면 함께 찍힌 그림자도 신경 써야 할 듯합니다. 열심히 공부하다 보니 형광펜을 칠한 경우도 있겠죠. 또 수식을 예쁘게, 온전히 다 찍으면 좋겠는데 잘려 있는 부분도 있을 겁니다. ‘이런 것도 인식하고 모두 대응해야 할까?’ 생각이 문득 듭니다.
더 있죠. 화이트로 지우고 그 위에 적은 경우도 대응해야 하는지, 종이가 구겨져 있거나 휘어져 있을 때도 대응해야 할지, 또 촬영하다 보면 회전된 상태로 찍을 수도 있는데 이는 어떻게 대응해야 할지 판단해야 합니다.
서비스 기획팀에 이런 걸 물어보면 어떤 답이 올까요? 보통 “모두 다 대응해 주세요.”라는 답이 옵니다. 그렇듯 학습 데이터셋의 종류를 정할 때, 서비스 기획팀과 굉장히 많은 이야기를 해야 합니다.
대응해야 하는 종류는 정말 많습니다. 그런 만큼 어떻게 종류를 정의하고 종류별로 몇 장을 수집할 건지 잘 정해야 합니다.
이번 수식 인식 모델 개발을 위해서는 이런 첫 번째 안을 낼 수 있습니다.
“콘텐츠는 초등, 중등, 고등으로 나누겠습니다.”
“표현 방식은 프린트된 것, 인쇄된 것, 또는 손 글씨 이렇게 나눠 한번 모아보겠습니다.”
콘텐츠와 표현 방식을 정리하니 학습 데이터셋은 총 6종으로 구분할 수 있습니다. 이어 종류별로 몇 장을 모을지 정한 다음, 데이터를 모으기 시작하는 거죠.
꼭 이렇게 모으지 않아도 됩니다. 앞에서 보았듯이 이미지 자체에 노이즈가 굉장히 많습니다. 그래서 노이즈라는 관점으로 깨끗한 이미지냐, 그림자가 있느냐, 회전돼 있느냐 이런 걸로 또 구분을 할 수가 있어요. 여기까지 구분하면 총 9종의 데이터셋이 나옵니다. 9종별로 각각 몇 장을 모아야 할지 또 정하는 겁니다.
사실 이렇게 종류와 수량을 정하는 건 아주 어려운 일입니다. 이를 어떻게 정할지 자세히 들어가면, 그것만 해도 따로 시간을 내서 말해야 합니다. 그러니 이 정도만 다룰게요.
데이터셋의 종류와 수량을 정했다고 하겠습니다. 다음으로 살펴볼 것은 기술 모듈 설계입니다.
지금까지 들은 기획을 종합해 보니 “입력으로 들어온 수식 이미지에 담겨 있는 내용을 레이텍 스트링으로 출력하는 기술 모듈을 만들어 달라”, 이것이 서비스 기획팀의 요구 사항으로 보입니다.
하지만 막상 데이터를 모으기 시작하면, 생각지도 못한 경우가 발견됩니다.
직접 수식 사진을 찍는다고 해볼게요. 초등학생인 동생이 풀고 있는 문제집을 찍으려고 보니, 수식이 여러 개 있습니다. 우리가 생각한 기술 모듈에는 이미지 하나에 수식 하나가 나와야 합니다.
그렇게 찍으려고 보니 촬영이 굉장히 어렵습니다. 포커스가 안 맞는다든가, 수식이 너무 크다든가 이런 문제점이 있죠. 그래서 이미지를 획득하는 관점에서는 하나를 찍기보다 여럿이 담겨 있는 걸 딱 찍는 것이 훨씬 편할 거예요. 이런 효율성을 봤을 때는 이렇게 여러 수식이 나와도 사진을 한 장만 찍는 게 큰 도움이 됩니다.
다만 이런 시나리오로 사진을 찍는다고 했을 경우, 기존의 기술 모듈에 하나를 더 추가해야 합니다. 전체 이미지를 촬영하고, 그 전체 이미지에 있는 모든 수식 영역의 위치를 검출하는 모듈, 즉, 수식 영역 검출 기술 모듈이 또 하나 필요한 것이죠.
수식 영역 검출 모듈을 추가하면 결괏값으로 수식 영역들이 나올 겁니다. 그 수식 영역별로 이미지를 잘라낼 수가 있고요. 이렇게 잘라낸 이미지에는 수식 하나만 담겨 있습니다. 이제 앞서 설계한 기술 모듈, 이미지 안의 수식을 레이텍으로 바꿔 주는 그 기술 모듈과 연동할 수 있습니다.
전체 원본 이미지에는 이미지 하나에 수식이 하나, 혹은 여러 개 있습니다. 첫 번째 기술 모듈인 수식 영역 검출을 통과하면 해당 수식 영역의 위치를 알 수 있습니다. 이를 잘라내면 하나의 이미지 안에 한 수식만 담겨 있게 됩니다. 곧 이 수식의 의미를 파악해 레이텍으로 바꿔주면, 결과물인 레이텍 문자열이 나올 겁니다.
이런 흐름을 보면 이제 좀 자연스럽죠. 사용자가 사진을 찍고, 그 안에 수식 영역이 한 개든 여러 개든 위치를 알 수 있고, 각각 영역별로 수식을 레이텍으로 표현할 수 있다. 사용자 경험 관점에서 굉장히 자연스러운 게 나온 겁니다.
지금까지 흐름을 기반으로 이제 학습 데이터셋의 정답에 대해 얘기해 볼게요. 학습 데이터셋의 정답은 AI 모델별로 정의할 필요가 있습니다. 즉, AI 모델이 익혀야 할 출력이 곧 학습 데이터셋에서의 정답입니다.
1. 수식 영역 검출 모델의 정답 데이터
첫 번째 기술 모듈인 수식 영역 검출 모델을 AI로 만들려고 합니다. 이 모델의 입출력을 살펴보면 다음과 같습니다.
입력은 당연히 전체 이미지입니다. 출력값은 수식 영역들의 위치가 되겠죠. 그래서 이 출력값을 만들어 줘야 하는데요, 여기서 수식 영역을 어떻게 정의할 것일지는 또 다른 문제입니다.
수식 영역은 어떻게 봐야 할까요? 쉽게 그냥 직사각형으로 표현하겠다, 이렇게 생각할 수 있죠. 하지만 엄밀히 ‘직사각형으로 표현한다’는 말은, 저 영역을 좌상단 점의 위치와 우하단 점의 위치, 이렇게 점 두 개로 표현한다는 뜻입니다. 이 경우 AI 모델의 출력값은 점 2개, 즉 좌표값 2개입니다. 숫자로 얘기하면 숫자 4개를 추정하는 AI 모델이 되겠죠.
그런데 저 표현이 전부는 아니겠죠? 가끔은 회전된 상태로 수식이 들어올 수 있습니다. 이처럼 회전도 대응하려면 직사각형에 각도 값을 함께 표현하면 됩니다. 직사각형에 각도 값을 더해 회전을 대응합니다.
“아니다. 종이가 구겨진 경우도 있으니까 임의의 사각형으로 수식 영역들을 정의해 보겠다”라고 할 수도 있습니다. 이때는 점 4개로 수식 영역을 표시할 수 있습니다. 그러면 점 4개에 대한 정보를 추정하는 것이 AI 모델의 정답이 될 수 있습니다.
혹은 이렇게 점의 위치로 표현하는 것이 아닌 아예 픽셀 단위로 영역 정보를 표현할 수도 있습니다. 수식 영역에 해당하는 부분은 1, 아주 밝은 값으로 표현할 수 있고 수식 영역이 아닌 경우는 아예 검은색(0)으로 표현할 수 있습니다. 이런 식으로 세팅하면 AI 모델은 일종의 세그멘테이션(segmentation) 태스크를 수행합니다.
지금 말한 네 가지 정의 방법 중에 무엇을 선택할 것인가, 이런 일은 사실 모델 구조 설계 영역입니다. 즉, 출력물이 무엇인지에 따라 그 출력을 잘 추정하기 위한 AI 모델도 구조가 바뀌어야 합니다. 그래서 이렇게 데이터셋의 정답은 모델 설계와 굉장히 많이 맞물려 있습니다.
2. 레이텍 검출 모델의 정답 데이터
두 번째 기술 모듈에 대해서도 얘기해 볼게요. 우선 이미지 안의 수식을 이해해서 레이텍으로 바꿔보겠다, 이 모델의 입출력을 정의해야 합니다. 입력은 수식 이미지 하나입니다. ‘하나’라는 말은 이미지 안에 수식이 하나만 있다는 뜻입니다. 출력물은 당연히 레이텍 문자열입니다.
이렇게 보면 굉장히 명확합니다. 그런데 이런 설계로는 AI 모델 하나로 저 입출력상을 바로 예측하겠다는 말인데요, 사실 이런 방식은 기술적으로 어려울 수 있습니다. 그래서 꼭 모델 하나로 만들기보다 여러 모델 조합으로 도전할 수도 있겠죠. 나름 성능이 검증된 다양한 모델 조합으로 출력을 최종 예측하면 어떨까, 생각해 보는 겁니다.
예를 들어, 검출기, 인식기, 정렬기, 변환기, 다음과 같은 네 가지 AI 모델의 조합으로 최종 입출력상을 추정할 수 있습니다.
우선 첫 번째, 수식 이미지 하나가 들어오면 검출기는 무엇을 할까요? 레이텍 심볼별로 위치 박스를 추정할 수 있습니다. 엑스(x) 박스 하나, 플러스 기호(+) 박스 하나, 이런 식으로 검출할 수가 있죠. 그다음, 인식기에서는 각 박스가 어떤 레이텍 심볼에 해당하는지 분류하는 태스크를 수행합니다. 여기까지, 이제 수식 안에 있는 심볼별로 위치가 나오고, 그 심볼이 어떤 의미인지 또 알 수 있게 되었죠. 이 결과를 다시 정렬기를 통해 한 줄로 쭉 정렬할 수가 있습니다. 마지막 변환기를 거치면 최종 출력물로 온전한 레이텍 표현이 나올 수 있습니다.
이런 과정을 거친다면 제가 봤을 때도, ‘검증된 AI 모델로 답을 낼 수 있겠다’라는 생각이 드네요.
다만 이렇게 4가지 모델의 조합으로 수식 이미지에 대한 레이텍 스트링을 추정한다고 했을 경우, 각 AI 모델 4가지 별로 각각 입출력 정의를 또 해줘야 합니다. 또 그에 맞는 학습 데이터셋을 준비해야 하고요.
이렇게 열심히 설명한 이유가 있습니다. 결국 서비스 요구 사항으로부터 학습 데이터셋에 대한 정보를 구체화할 때는 모델링 쪽에서 AI 모델의 설계 정보가 들어와 줘야 해요. 사실 이게 굉장히 중요한 정보인 거죠.
반면 또 AI 모델 설계를 하다 보면, 이 모델의 설계가 맞나 틀리나도 검증을 할 필요가 있어요. 그래서 설계할 때부터 어느 정도 학습 데이터셋이 있어서, 그 데이터를 학습시켜 보고 ‘우리가 생각한 대로 학습이 되는구나’ 이런 걸 또 검증해 볼 필요가 있습니다. 그렇게 맞물려 있습니다.
학습 데이터을 준비하려고 했더니 AI 모델 설계가 필요하고, AI 모델 설계를 검증하려고 했더니 학습 데이터셋이 필요합니다.
그래서 실제로 일할 때는 이 과정이 굉장히 반복적으로 일어납니다. 이를 반복해 가며 점점 학습 데이터셋에 대한 정보를 수렴해 간다고 보면 되죠. 바로 한 번에 모델 설계 딱, 그다음에 학습 데이터 준비 딱, 이렇게는 안 된다는 뜻입니다. 서비스 기획팀, 학습 데이터셋 준비하는 담당자, 모델링 담당자 여럿이 자주 결과를 보고 토론하면서 점점 수렴해 간다, 이렇게 볼 수 있습니다.
이제 여러분이 ‘학습 데이터셋 준비 담당자’라고 가정했을 때, 어떤 일을 겪을지 한번 살펴보겠습니다.
우선 앞에서 말한 대로 서비스 기획자랑 굉장히 많은 커뮤니케이션이 필요합니다. 이렇게 얘기하며 기술 모듈에 대한 기능 요구 사항을 구체화해야 하죠. 학습 데이터셋에 대한 수량과 종류 역시 논의합니다.
그뿐만 아니라 우리는 이제 학습 데이터셋에 대해 말할 때, AI 모델 설계가 나와야 한다는 것도 압니다. 따라서 AI 모델 개발자와 논의해 AI 모델 설계에 대한 정보를 받아내야 합니다. 특히 모델 설계와 관련된 학습 데이터의 정답이 어떻게 나와야 하는지 얘기하겠죠. 학습 데이터 수량이 얼마나 필요한지 정할 때도 모델 관점이 또 필요합니다. 그런 정보에 대해서도 AI 모델 개발자들과 얘기를 나눠야 하죠.
이렇게 얘기를 나누며 학습 데이터셋에 대한 어떤 구체적인 정보가 나왔다, 라고 할게요. 이제 제작을 들어가야겠죠. 요즘은 보통 외주 업체를 많이 씁니다.
1. 작업 가이드 정리하기
이때 외주 업체라고 하면, 여기에 불특정 다수의 많은 분이 연관되어 있습니다. 어떤 작업을 요청했을 때, 다수의 작업자가 열심히 작업에 참여합니다. 그래서 이들이 정해진 대로 그 학습 데이터셋에 대해 정답을 매겨줄 작업 툴이 필요합니다. 이 작업 툴은 기술팀에서 개발한 경우도 있지만, 요즘 데이터셋 제작하는 업체 대부분은 작업 툴을 만드는 능력도 보통 가지고 있습니다. 그래서 작업 툴도 이제 외주 업체에서 개발한다고 볼 수 있죠.
학습 데이터셋 준비 담당자는 외주 업체와 커뮤니케이션하며 여러 가지 일을 합니다. 그중 제일 중요한 게 작업 가이드예요. 그러니까 학습 데이터셋의 정답을 어떻게 매길 것인지, 그에 대한 작업 가이드를 굉장히 잘 정리해서 전달을 해줘야 합니다. 그래야 외주 업체에서 인력을 관리할 때 크게 혼란이 없습니다.
2. 작업 단가 설정하기
곧 박스 하나 치는 것, 타이핑하는 것, 그 자체에 따라 단가가 나옵니다. 그 개별 작업의 단가를 얼마로 할지, 학습 데이터 종류별로 또 몇 장을 모을지 얘기해야 합니다. 작업 단가와 수량은 사실 예산에 있어 굉장히 중요한 포인트 중에 하나입니다.
이를테면 “이 과제에 학습 데이터셋을 준비하는 예산이 총 얼마다”라고 했을 때 그 예산 안에 최대한 많은 수량의 데이터셋을 확보하는 게 좋습니다. 그때 저런 작업 단가가 굉장히 영향을 많이 미치겠죠.
3. 작업자 Q&A 대응하기
모든 준비가 끝나 작업자들이 본격적인 작업을 시작하면 질문이 굉장히 많습니다. “박스는 이렇게 치는 게 맞냐”, “이런 경우는 어떡하냐”, “저런 경우는 어떡하냐” 이런 질문들이 올라오죠. 일부는 외주 업체에서 관리하는 분들이 대응해 주기도 하지만, 또 상당수는 우리 기술팀의 담당자한테 물어오는 경우가 많습니다. 그러면 그런 Q&A 대응을 보통 학습 데이터셋 준비 담당자가 합니다.
이런 질문에 때로는 AI 모델에 밀접한 그런 질문들도 있겠죠. 그럴 때는 이 담당자가 AI 모델 개발자와 얘기해 답변을 준비해야 할 때도 있습니다.
지금까지 다룬 학습 데이터셋 준비 방법을 한번 정리해 보겠습니다.
여기까지 서비스 목적으로 AI를 개발하는 것이 학습 목적으로 모델을 개발하는 것과 얼마나 다른지, 실제 모델 개발의 앞부분을 살펴봤습니다. 결국 모델을 개발한다면 그에 필요한 것은 모델 설계와 맞물려 학습 데이터셋을 만드는 일, 또 이에 앞서 서비스 요구 사항을 명확히 이해하는 것입니다.
그 다음으로 할 일은 테스트 데이터셋과 테스트 방법의 정의입니다. 보통 학습 데이터셋을 구축할 때는, 그 데이터셋의 일부를 테스트 데이터셋으로 사용하는 경우가 종종 있습니다. 물론 아닌 경우도 있기 때문에, 이를 잘 다뤄야 하죠. 이 이야기는 다음 글에서 해보겠습니다.
원본 강의 보러 가기 https://www.boostcourse.org/ai101
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.