인공지능의 정의는 다소 모호하여 엄청난 양의 연구 조사를 통한 지식체계라는 의미뿐아니라 다소 혼란하고 비혀실적인 기대감과 때대로 공산과학에서 조장ㅎ는 공포감까지 담는 용어가되버렸다.
우리는 gpt-2언어모델의 문자을 읽고 그 뒷부분을 완성해주는 모습을 보며 지능은 자의식을 포하만 개념이라 생각해왔지만 사실 작업을 수행하는데 자의식은 굳이 필요하지 않다는 점을 알게된다.
에츠허르w데이크스트라는 머신이 생각할 수 있는가 질문에 잠수함이수영할 수 있는지 묻는것과 같다고 답했다.
파이토치 딥러닝 마스터에서 말하는 일반화된 알고리즘 분류는 ai의하위 범주인 딥러닝에 해당한다. 딥러닝은 가르치기에 적합한 예제들을 사용해 심층 신경망이라는 수학적 개체를 훈련시키는 역할을 한다. 대량의 데이터를 사용해 입력과출력이 동떨어진 복잡한 함수들을 근사하는 방법을 사용한다.
십여년까지의 머신러닝으로 분류되는 광범위한 시스템은 다운스트림 알고리즘 즉 일례로 분류긱 새로운 데이터 기반으로 올바른결과물을 낼수있도록 촉진하기 위해 입력데이터를 변환하는작업인 피처 엔지니어링에 크게 의존했다. 0과 1의 손글씨이미지를 구분해내려면 테두리선 분포를 추정하기 위한 필터 집합을 구성해야하고 올바른 숫자를 예측 가능하게끔 훈련시켜야했다. 반면 딥러닝은 원본데이터로부터 자동으로 표현들을 찾아내 0 과 1로 구분하기 위해 데이터와 레이블을 반복훈련시켜 자동으로 개선된다. 학습 시스템은 사저지식을 주입할 필요가 있기 때문에 딥러닝 기술이 부상한다고 해서피처 엔지니어링이 사라지는 것은 아니다. 하지만 우선 데이터를 넣으면 신경망의 능력은 딥러닝을 더 강력하게 만듬으로 딥러닝 실무에서는 수작업으로 표현을 만든게 아닌 신경망 내부 수학적 개체를 조작해 훈련 데이터로부터 자동으로 훈련시키는 것에 집중한다. 수작업의 결과에 비해서도 자동으로 생성된 피처가 훨씬 더 뛰어나다.
파이토치
딥러닝 프로젝트를 위한 파이썬 프로그램 라이브러리, 파이썬 언어를 사용하듯 딥러닝 모델을 표현할 수 있다. 얼리어답터들은 파이토치의 접근성과 사용 편의성을 일리스 첫해부터 알아차렸고 파이토치는 다양한 딥러닝 애플리케이션 중 가장 각광받는 딥러닝 도구로 자리잡았다. 파이토치는 현실에서 고수준작업을 위한 전문적인도구로 전혀 손색이 없다 .파이토치 외에 딥러닝 라이브러리를 추가로 더 배워야할지의 여부는선택에 달려있다.
딥러닝 머신 입려을 추력으로 매핑하는 복잡한 수학함수를 만들기 위해 파이토치는 Tensor 라는 핵심 데이터 구조를 제공한다. tensor는 numpy 배열과 여러면에서 유사한 다차원 배열이며 이 자료구조를 위해 파이토치는 전용 하드웨어를 활용해 수학연산을 빠르게 수행한다. 주요 딥러닝 연구에 대한 최신 논문은 공개저장소 아카이브에서 볼 수 있다.
arXiv.org e-Print archive
arxiv.org
파이토치가 딥러닝을 위해 제공하는 특별한 기능은 gpu로 연산을 가속화하는 것으로 cpu에서보다 50배 빠른 결과를 보여준다. 파이토치는 프레임워크가 아니다. 풍부한 표현력을 염두에 두고 설계되어 새발자는 라이브러리를 사용할때 불필요한 복잡함 업이 정교하게 모델을 구현할 수 있어 파이토치는 연구분야에서 광범위하게 채택되었으며 국제 학회에서도 높은 빈도로 언급된다. 파이토치는 고성능 c++런타임을 갖추기 시작했다. 또 다른 언어를 지원하는 바인딩과 모바일 장비에 배포하기 위한 인터페이스도 늘리고 있다. 266개 논문에서 언급된 텐서플로와 어깨를 나란히 하는 수준이 되었다.
파이토치 첫 베타 버전이 릴리스 되던 당시의 동향은 테아노, 텐서플로 초기의 저수준 라이브러리이고 사용자가 먼저 연산 그래프를 정의한 후 실행하도록 만들어진 모델이었다. 라자냐와 케라스는 테아노를 고수준으로 래핑한 것으로 케라스는 텐서플로우와 cntk 도 래핑했다. 카페와 체이너 다이넷 토치(루아 기반으로 만들어진 파이토치의 원형), mxnet, cntk, dl4j등이 바닥의 많은 빈틈을 메우고 있었다. 2년 후 최초 딥러닝 프레임워크 테아노는 적극적인 개발이 중단되엇고 텐서플로가 케라스를 완전히 흡수해 최상위 클래스 api로 붙이고 eager 모드로 불리는 즉시실행을 제공해 파이토치와 유사한 곗ㄴ방식을 지원해 텐서플로 2.0릴리스에서는 이거 모드가 기본이 되었다. 텐서플로에서 독립하여 개발되 구글의 jax라이브러니는 gpu를 사용한 넘파이 연산과 성능이 비슷하고 자동 미분과 jit기능으로 큰 인기를 끌게 되었다. 파이토치는 카페 2가 자리하며 잿용하던 루아 기반의 토치 저수준 코드를 다 바꾸고 벤더 중립적인 모델을 만들어 포맷을 교환할 수 있게 해주는 onnx 를 지원했다. 토치스크립트 라는 그래프 모드 런타임으로 지연 실행 기능을 추가하고 1.0버전을 릴리즈며 후원기업으로부터 cntk과 체이너를 대체할 프레임워크로 선택받았다.
텐서플로우는 제품호를 위한 견고한 파이프라인과업계전반에 걸쳐 두터운 커뮤니티, 높은 인지도를 확보했고 파이토치는 사용하기 쉬운 장점으 살려 연구와교육 커뮤니티에 침투해 연구원과 졸업생들이 학생을 교육하고 업계에 진출하면서 동력을 얻었다. 흥미로운 점은 토치스크립트나 이거모드 기능이 등장ㅎ며 파이토치와 텐서플로가 각자기능의 서로 흡수해온것인데 실제로는 상세기능이나 사용방법에 꽤 많은 차이가 존재한다.
파이토치의 py는 파이썬에서 왔지만 실제로는 파이썬이 아닌 코드가 많이 들어있다. 성능상의 이유로 대다수 파이토치의 코드는 c++로 컴파일되었고 대규모 병렬 프로그램을 gpu에서 돌릴 수 있는 c++언어스러운 cuda를 사용했다.
파이토치는 다차원배열, 텐서라고 부르는 자료구조를 사용하는 라이브러리다. 텐서를 사용하는 다양한 연산 라이브러리를 torch 모듈로 제공한다. 텐서연산은 cpu나 gpu에서 수행한다. 이때의 cpu에서 수행하던 연산을 gpu로옮기는 과정은 한두개의 함수호추로 가능하다. 특정 텐서에서 수행한 모든 연산은 주어진 입력값을 기준으로 미분값을 자동 계산해준다.
신경망 구축을 지원하는 파이토치 핵심 모듈은 torch.nn에 있으며 공통적인 신경망과 아키텍처 구성요소를 제공한다.
훈련데이터가 모델에 이르기까지 많은 데이터 처리가 필요하다. 가장 먼저 젖ㅇ소를 비롯한 데이터 출처로부터 물리적으로 데이터를 가져오고 각 샘플을 파이토치가 다룰 수잇는 텐서로 변환한다. dataloader 클래스를 잘 활용하면 여러개의 훈련 샘플을 묶어놓은 텐서형태인 배치로 데이터를 묶은 병렬형태로 자식 프로세스가 뜨고배그라운드동장해 훈련루프가 필요할 경우 바로 전달할 수 있도록 준비할 수있다.
훈련루프는 매번 데이터 로더에서 얻은 샘플 모델을 평가하며 기대값과 비교하는데 기준, 손실함수를 사용한다. 파이토치에 torch.nn 에 손실함수도 제공하여 잇ㅇ적인 결과와 비교한 후 다음 출력이 목표 출력을 더 잘 모사하게끔 모델을 조정한다 .이때 자동 미분 엔진을 사용하며 조정을 수행하는 옵티마이저도 torch.optim에서 제공한다.
최근에는 더 큰 모델을 훈련시킬 목적으로 자원을 제공하는 여러 gpu나 여러 컴퓨터와 같은 복잡한 하드웨어를 점점 더 많이 사용하고있으며 복잡한 하드웨어 사용을 위해 torch.nn.parallel.distrivuteddataparallel과 torch.distributed 서브 모듈이 쓰인다.
훈련루프는 재미없어 보이지만 딥러닝 프로젝트에서 가장 많은 시간을 소비하는 부분이며 이 과저이끝나여 모델이 원하는 작업에 맞게 최적화되는 보상을 얻는다.
파이토치는 토치스크립트를 통해 모델을 미리 컴파일하는 방식도 제공한다. 토치스크립트를 사용하면 파이토치는 모델을 직렬화해서 여러 명령어 집합으로 바꾸고 파이썬에 의존하지않고 c++프로그램이나 몹일 기기에서 실행 할 수 있게 된다.
사전에 훈련된 신경망을 신규데이터로 돌려보는것은 최신 노트북이나 pc에서도 무리없이 가능하다. 사전에 훈련된 신경망을 가져다 특화시키기 위해 일부분만 신규데이터로 재훈련시키는 작업을 할때는 굳이 고성능 머신이 아니어도 괜찮다. 인내심이 충분하다면 고사양 하드웨어는 필요없겟지만 gpu에서의 훈련은 실행시간을 지수적으로 줄여준다. 큰 규모의 신경망을 대규모 실세계 데이터 셋으로 처음부터 훈련시키는 경우라면 좋은 gpu를 장착한 워크스테이션에서도 몇시간에서 며칠이 걸릴수있다. 컴퓨터에 장착된 gpu나 여러 gpu가 장착된 클러스터를 사용하는 방법으로 단축이 가능하다. dawnbench, 공개훈련 데이터셋으로 유명한 일반적인 딥러닝 작업을 수행했을때 훈련시간과 클라우드 사용비용을 벤치크한 정보공개.
https://dawn.cs.stanford.edu/dawnbench
DAWNBench
DAWNBench is a benchmark suite for end-to-end deep learning training and inference. Computation time and cost are critical resources in building deep models, yet many existing benchmarks focus solely on model accuracy. DAWNBench provides a reference set of
dawn.cs.stanford.edu
'Book' 카테고리의 다른 글
| 이것이 MySQL이다 - part03_MySQL 고급 (0) | 2026.06.07 |
|---|---|
| 파이토치 딥러닝 마스터 - 1부 - 2장 사전 훈련된 신경망 (0) | 2026.06.05 |
| 이것이 MySQL이다 - part02_MySQL 기본 (0) | 2026.05.30 |
| 혼자 공부하는 파이썬 - Chapter 07 모듈 (0) | 2026.05.26 |
| 혼자 공부하는 파이썬 - Chapter 08 클래스 (0) | 2026.05.26 |