Software 1.0은 기존 소프트웨어 개발방식으로써, 다음과 같은 개발 과정을 따른다.
⇒ 사람이 어떤 연산을 할지 고민하여 (함수)를 정한다. 즉, 해를 찾는 함수를 사람이 직접 방정식을 작성하는 방식이라고 생각하면 된다.
성능 = 코드
Software 2.0은 기계가 학습하도록 소프트웨어를 설계하는 방식이다.
⇒ 사람이 문제해결 범위 내의 네트워크를 설정해놓고 (모델링) , 데이터가 그 범위내에서 해법을 찾아가도록 하는 것 (학습)
성능 = 코드 + 데이터
“데이터의 질이 곧 성능이다”
보통 리서치는 정해진 데이터셋/평가방식에서 더 좋은 모델을 찾는 일을 한다.
실제 서비스개발시에는 데이터셋은 준비되지 않고, 요구사항만 존재한다.
현업에서는 데이터에 대한 중요성이 매우 크게 작용한다.
Data-centric vs Model-centric
Data-centric (모델은 고정시킨 채로) 데이터 수정을 통한 모델 성능 향상
Model-centric (데이터 고정) 모델 수정을 통한 성능 향상
모델 성능을 결정짓는 요소
개발단계 : Data-centric 50% + Model-centric 50%
유지보수단계 : Data-centric 80% + Model-centric 20%
→ 서비스를 한번 Deploy 하면, 모델을 바꾸는건 쉽지 않다. → 데이터를 주로 바꾼다.
데이터 관련 업무가 힘든 이유
Software 2.0 IDE 에서 필요한 기능