ai-engineering-from-scratch: 0부터 AI 엔지니어링을 배우는 32K 스타 커리큘럼 (32K Stars)

ai-engineering-from-scratch는 AI 엔지니어링을 0부터 배울 수 있는 종합 온라인 커리큘럼입니다. 12개 페이즈, 100개 이상의 레슨, 각 레슨마다 실습 프로젝트가 포함되어 있습니다. 32K stars.

  • ⭐ 31915
  • 업데이트 2026-06-16

ai-engineering-from-scratch GitHub OG

처음부터 시작하는 AI 엔지니어링: 0부터 AI 엔지니어링을 배우는 32K 스타 커리큘럼(32K 별) #

AI 엔지니어링을 배우고 싶지만, 어디서부터 시작해야 할지 모르겠나요? Udemy 강의를 사보고, 책을 읽어보고, 튜토리얼을 따라해보지만… 항상 중간에 포기하게 됩니다. 이유는 명확합니다. 체계적인 커리큘럼이 없기 때문입니다..

ai-engineering-from-scratch는 이 문제를 해결합니다. 0부터 시작해서 실제로 AI 시스템을 빌드하고, 배송하는 것까지, 단계별로 배울 수 있는 무료 오픈소스 커리큘럼입니다.

요약 #

ai-engineering-from-scratch는 AI 엔지니어링을 체계적으로 배우는 무료 커리큘럼입니다. 12개 페이즈, 100개 이상의 레슨, 각 레슨마다 실습 프로젝트가 포함되어 있습니다. Python부터 시작해 Docker, MLOps, LLM 파인튜닝까지, AI 엔지니어링의 전 과정을 다룹니다. 32,000개 이상의 별을 받으며 가장 인기 있는 AI 학습 커리큘럼 중 하나가 되었습니다.

핵심 특징::

  • 12개 페이즈의 체계적인 학습 경로

  • 100개 이상의 레슨 (각각 실습 프로젝트 포함)

  • 파이썬 기초부터 MLOPs 까지

  • Agent Memory (로힛의 이전 프로젝트)와 자연스럽게 연동

  • 클로드, 커서, 코덱스, 오픈클로, 헤르메스 등 다양한 에이전트 스킬 제공

  • 각 레슨마다 “빌드하고 배송"하는 프로젝트

커리큘럼 구조: 어떻게 되어 있는가? #

scratch는 12 개 페이즈로 구성되어 있습니다의 AI 엔지니어링:

0단계: 설정 및 도구(12개 레슨) #

개발 환경 설정. Python, Git, Docker, 에이전트 도구 설치.

1-4단계: 기초 #

파이썬 프로그래밍, NumPy, 판다, 데이터 시각화.

5-8단계: 머신 러닝 #

선형 회귀, 결정 트리, SVM, 앙상블 방법.

9-10단계: 딥러닝 #

신경망, CNN, RNN, 트랜스포머.

11-12단계: LLM 및 MLOps #

LLM 파인튜닝, 배포, 모니터링.

각 레슨의 구조 #

각 레슨은 다음과 같은 구조로 되어 있습니다:



수업 제목
├-- 이론 (이론)
├── Code (실습 코드)
├-- FIG_XXX (작업 샘플)
└-- 건조 및 배송(프로젝트)

각 레슨을 마치면 실제로 무언가를 빌드하고 배송합니다. 이론만 배우고 끝나는 것이 아닙니다.

설치 및 설정 #

파이썬 설치 #



# 파이썬 3.11+ 필요
python3 --버전

# 가상 환경 생성
python3 - m venv venv
소스 정맥/빈/activate

# 레포지토리 클론
git 클론 https://github.com/rohitg00/ai-engineering-from-scratch.git
scratch의 AI 엔지니어링 CD
pip 설치 -r 요구 사항.txt

에이전트 스킬 설치 #



# 클로드 코드
# 커리큘럼 스킬을 에이전트에 로드

# 커서
git 클론 https://github.com/rohitg00/ai-engineering-from-scratch.git

Docker #



도커 빌드 - 타이 엔지니어링 .
도커 런 - 인공지능 공학

Docker로 실행하면 환경 설정이 전혀 필요 없습니다.

커리큘럼 상세 #

0단계: 설정 및 도구(12개 레슨) #

  1. Python 설치 및 설정

  2. Git 및 GitHub

  3. VS 코드 / 커서 설정

  4. 가상 환경

  5. pip 및 패키지 관리

  6. 주피터 노트북

  7. AI용 도커

  8. 에이전트 도구 설치

  9. GitFlow 워크플로우

  10. 린터 및 포매터

  11. 테스트 프레임워크

  12. 첫 번째 프로젝트 빌드

1-4단계: 기초 #

각 페이즈마다 이론 레슨과 실습 프로젝트가 있습니다. 예를 들어:

  • NumPy: 배열 연산, 브로드캐스팅, 벡터화

  • Pandas: 데이터프레임 조작, 그룹바이, 병합

  • 시각화: 매트플롯립, 씨본

5-8단계: 머신 러닝 #

  • 선형 회귀: 스키킷 학습, MSE, R²

  • 결정 트리: 과적합, 가지치기

  • SVM: 커널 트릭, 하이퍼파라미터

  • 앙상블: 랜덤 포레스트, 그라디언트 부스팅

9-10단계: 딥러닝 #

  • 신경망: 파이토치, 오토그라드

  • CNN: 이미지 분류

  • RNN: 시계열 예측

  • 트랜스포머: 주의 메커니즘

12단계: MLOps 및 배포(12개 레슨) #

마지막 페이즈에서는 만든 AI 모델을 실제로 배포하고 모니터링합니다:

  1. 모델 패키징 (피클, 잡립)

  2. FastAPI 로 REST API 생성

  3. Docker 컨테이너화

  4. 쿠버네티스 배포

  5. CI/CD 파이프라인

  6. 모델 모니터링(드리프트 감지)

  7. A/B 테스트

  8. 모델 재학습 파이프라인

  9. 비용 최적화

  10. 보안 모범 사례

  11. 성능 벤치마킹

  12. 최종 프로젝트: 완전한 AI 서비스 배포

각 레슨마다 실습 프로젝트가 포함되어 있습니다. 예를 들어 Phase 12의 마지막 프로젝트는 “완전한 AI 서비스 배포"입니다. 모델을 FastAPI로 패키징하고, Docker로 컨테이너화하고, Kubernetes에 배포하고, 모니터링 대시보드를 설정합니다.

에이전트 스킬 #

AI 엔지니어링-처음부터 끝까지 는 다양한 AI 에이전트와 연동됩니다:

| 에이전트 | 스킬 |

|———-|——|

| Claude Code | 커리큘럼 스킬 |

| Cursor | 코드 리뷰 스킬 |

| Codex | 실습 가이드 |

| OpenClaw | 프로젝트 생성 |

| Hermes | 학습 추적 |

에이전트 스킬을 설치하면, AI가 각 레슨을 안내하고 코드를 검토해 줍니다.

벤치마크: 학습 효율 비교 #

학습 경로별 효율 비교:

| 항목 | 전통적 강의 | ai-engineering-from-scratch | 향상률 |

|——|————-|—————————-|——–|

| 학습 시간 | 6-12개월 | 3-6개월 | 2x |

| 실습 비중 | 20% | 80% | 4x |

| 프로젝트 수 | 2-3개 | 100개+ | 50x |

| 비용 | $500-$2000 | 무료 | ∞ |

아키텍처: 어떻게 작동하는가? #



┌─────────────────────────────────────────────────┐
│        AI 엔지니어링-처음부터 처음부터 끝까지 구조 │
├─────────────────────────────────────────────────┤
│  상/│
│  ├── 00-setup-and-tooling/                      │
│  │   ├── 01-python-basics/                      │
│  │ ├-- 02-깃-basics/│
│  │   └── ...                                    │
│  ├-- 01-재단/│
│  ├-- 02-기계 학습/│
│  ├-- 03-딥러닝/│
│  └-- 04-llm-mlops/│
│                                                  │
│  FIG_XXX.py (작업 샘플) │
│  요구 사항.txt │
│  README.md │
└─────────────────────────────────────────────────┘

각 페이즈는 독립적으로 학습할 수 있습니다. 원하는 페이즈부터 시작하면 됩니다.

사용 사례 #

사례 1: 완전 초보자 #

Python부터 시작해 12개 페이즈를 순서대로 학습합니다.

사례 2: 기존 개발자 #

Machine Learning 페이즈부터 시작하여 AI 엔지니어링으로 전환합니다.

사례 3: 데이터 사이언티스트 #

Deep Learning과 LLM 페이즈로 전문성을 확장합니다.

사례 4: 스타트업 founder #

AI 제품을 빠르게 프로토타이핑하기 위해 practical MLOps 페이즈만 학습합니다.

사례 5: 대학 교수 #

강의 커리큘럼으로 사용합니다. 각 레슨을 수업 과제로 사용하고, 에이전트 스킬로 학생들의 코드를 자동 검토합니다.

사례 6: 프리랜서 개발자 #

AI 엔지니어링을 새로운 서비스로 확장합니다. 커리큘럼을 따라 하며 실력을 쌓은 후, Upwork나 Fiverr에서 AI 프로젝트를 수주합니다.

Phase 12 심화: MLOps 파이프라인 구축하기 #

ai-engineering-from-scratch의 Phase 12는 실제 프로덕션 환경에서 AI 모델을 운영하는 방법을 가르칩니다. 여기서는 MLOps 파이프라인을 구체적으로 어떻게 구축하는지 자세히 다룹니다.

FastAPI 모델 서버 구축 #

학습한 모델을 REST API로 제공하는 FastAPI 서버 구현:



# 모델/predictor.py 
joblib 가져오기 
numpy를 np로 가져오기 
fastapi import FastAPI, HTTPException에서 
pydantic import BaseModel에서 

app = FastAPI(title="AI 예측 서비스") 

#모델로드 
모델 = joblib.load("models/trained_model.pkl") 
tokenizer = joblib.load("models/tokenizer.pkl") 

클래스 PredictionRequest(BaseModel): 
텍스트: str 
온도: 플로트 = 0.7 
top_k: 정수 = 50 

클래스 PredictionResponse(BaseModel): 
예측: str 
자신감: 플로트 
토큰: 목록[str] 

@app.post("/predict", response_model=PredictionResponse) 
def 예측(요청: PredictionRequest): 
"""단일선택 예측 포인트""" 
시도해 보세요: 
인코딩 = tokenizer.encode_plus( 
요청.텍스트, 
return_tensors="np", 
패딩="최대_길이", 
최대 길이=512, 
잘림= 
) 

input_ids = np.array(encoded["input_ids"]) 
attention_mask = np.array(encoded["attention_mask"]) 

예측 = model.predict(input_ids, attention_mask) 
신뢰도 = float(np.max(예측)) 
예측_클래스 = int(np.argmax(예측)) 

예측응답( 
예측=str(예측_클래스), 
자신감=자신감, 
토큰=[request.text[:20]] 
) 
e와 같은 예외를 제외하고: 
HTTPException 발생(status_code=500, 세부정보=str(e)) 

@app.get("/건강") 
def health_check(): 
"""서비스 상태 확인 종료포인트""" 
반환 {"status": "healthy", "model_version": "1.0.0"}

Docker 컨테이너화 #



# 도커파일
출처: 파이썬:3.12-슬림

WorkDIR / 앱

# 의존성 설치
복사 요구 사항 .txt.
RUN pip 설치 --no-cache-dir -r 요구 사항.txt

# 애플리케이션 복사
복사 . .

# 모델 파일 복사
복사 모델/ ./모델/

노출 8000

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

빌드 및 실행:



도커 빌드 - t ai-service: v1 .
도커 실행 -p 8000:8000 -v $(pwd)/models:/앱/models AI 서비스:v1

Kubernetes 배포 매니페스트 #



# k8s/deployment.yaml 
api버전: 앱/v1 
종류: 배포 
메타데이터: 
이름: ai-prediction-service 
라벨: 
: AI 예측 
사양: 
복제본: 3 
선택기: 
일치 라벨: 
: AI 예측 
템플릿: 
메타데이터: 
라벨: 
: AI 예측 
사양: 
컨테이너: 
- 이름 : ai-service 
이미지: ai-service:v1 
포트: 
- 컨테이너 포트: 8000 
자원: 
요청: 
메모리: "512Mi" 
CPU: "250m" 
한도: 
메모리: "1Gi" 
CPU: "500m" 
활성 프로브: 
httpGet: 
경로: /건강 
포트: 8000 
초기 지연초: 30 
기간초: 10 
준비 상태프로브: 
httpGet: 
경로: /건강 
포트: 8000 
초기 지연초: 5 
기간초: 5 
--- 
api버전: v1 
종류: 서비스 
메타데이터: 
이름: ai-prediction-service 
사양: 
선택기: 
: AI 예측 
포트: 
- 프로토콜: TCP 
포트: 80 
타겟 포트: 8000 
유형: LoadBalancer

CI/CD 파이프라인: GitHub 액션 #



# .github/workflows/mlops.yml 
이름: MLOps 파이프라인 

: 
푸시: 
가지: [메인] 
풀 요청: 
가지: [메인] 

직업: 
테스트: 
실행: 우분투 최신 
단계: 
- 용도: actions/checkout@v4 

- 이름: Python 설정 
용도: actions/setup-python@v5 
: 
파이썬 버전: '3.12' 

- 이름: 설치 종속성 
실행: pip install -r 요구 사항.txt 

- 이름: 테스트 실행 
실행: pytest 테스트/ -v --cov=models --cov-report=xml 

- 이름 : 업로드 취재 
용도: codecov/codecov-action@v4 

기차: 
요구사항: 테스트 
실행: 우분투 최신 
단계: 
- 용도: actions/checkout@v4 

- 이름: 열차 모델 
실행: python scripts/train.py 

- 이름: 모델 아티팩트 저장 
용도: actions/upload-artifact@v4 
: 
이름: 훈련된 모델 
경로: 모델/ 

배포: 
필요: 기차 
실행: 우분투 최신 
if: github.ref == '참조/헤드/메인' 
단계: 
- 용도: actions/checkout@v4 

- 이름 : 다운로드 모델 
용도: actions/download-artifact@v4 
: 
이름: 훈련된 모델 
경로: 모델/ 

- 이름: Docker 이미지 빌드 및 푸시 
실행: | 
docker build -t ghcr.io/${{ github.repository }}/ai-service:${{ github.sha }} . 
echo "${{ 비밀.GITHUB_TOKEN }}" | 도커 로그인 ghcr.io -u ${{ github.actor }} --password-stdin 
docker push ghcr.io/${{ github.repository }}/ai-service:${{ github.sha }} 

- 이름: Kubernetes에 배포 
실행: | 
kubectl 이미지 배포/ai-prediction-service 설정 \ 
ai-service=ghcr.io/${{ github.repository }}/ai-service:${{ github.sha }}

심화 학습: Transformer 아키텍터 심층 분석 #

Phase 9-10의 Deep Learning 부분에서 다루는 Transformer 아키텍처를 더 깊이 이해하기 위한 내용을 추가합니다.

셀프 어텐션 수식 #

트랜스포머 의 핵심인 셀프 어텐션 메커니즘:

$$Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V$$

여기서 Q(Query), K(Key), V(Value)는 각각 입력 임베딩을 선형 변환하여 생성됩니다:



수입 토치 
torch.nn을 nn으로 가져오기 
수학 가져오기 

클래스 MultiHeadAttention(nn.Module): 
"""다중 헤드 어텐션 구현""" 

def __init__(self, d_model=512, n_heads=8): 
슈퍼().__init__() 
self.d_model = d_model 
self.n_heads = n_heads 
self.d_k = d_model // n_heads 

self.W_q = nn.Linear(d_model, d_model) 
self.W_k = nn.Linear(d_model, d_model) 
self.W_v = nn.Linear(d_model, d_model) 
self.W_o = nn.Linear(d_model, d_model) 

def scaled_dot_product_attention(self, Q, K, V, 마스크=없음): 
"""스케일된 닷프로덕트 어텐션""" 
점수 = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(self.d_k) 

마스크가 None이 아닌 경우: 
점수 = 점수.masked_fill(마스크 == 0, -1e9) 

주의 = torch.softmax(점수, 희미함=-1) 
torch.matmul(attention, V), 주의 반환 

def 앞으로(self, Q, K, V, 마스크=없음): 
배치_크기 = Q.크기(0) 

# 미래의 멀티헤드로 파티 
Q = self.W_q(Q).view(batch_size, -1, self.n_heads, self.d_k).transpose(1, 2) 
K = self.W_k(K).view(batch_size, -1, self.n_heads, self.d_k).transpose(1, 2) 
V = self.W_v(V).view(batch_size, -1, self.n_heads, self.d_k).transpose(1, 2) 

#어텐션작업 
attn_output, attention_weights = self.scaled_dot_product_attention(Q, K, V, 마스크) 

# 머리를 다시 뽑다 
attn_output = attn_output.transpose(1, 2).contiguous().view(batch_size, -1, self.d_model) 

self.W_o(attn_output), attention_weights를 반환합니다.

위치 인코딩 #

Transformer는 순서 정보를 직접 담고 있지 않으므로 위치 인코딩을 추가합니다:



클래스 위치 인코딩(n.Module):
    """사인/코사인 위치 인코딩"""
    
    def __init__(자기, d_model, max_len=5000, dropout=0.1):
        슈퍼 ()._init_()
        자기 dropout = nn.드롭아웃(드롭아웃)
        
        pe = torch.zeros(max_len, d_model)
        위치 = torch.arange(0, max_len, dtype=torch), float 해제(1)
        div_term = torch.exp(torch.range(0, d_model, 2). float() * (-math.log(10000.0) / d_model)
        
        pe[:, 0:2] = torch.sin(위치 * div_term)
        pe[:, 1:2] = torch.cos(위치 * div_term)
        pe = pe.unsqueeze(0)
        self.register_buffer('pe', pe)
    
    앞으로(자기, x):
        x = x + self.pe [:, :x.size(1), :]
        자아를 되찾다. dropout(x)

모델 성능 벤치마킹 프레임워크 #

학습한 모델의 성능을 체계적으로 평가하기 위한 벤치마킹 도구:



# 벤치마킹/model_benchmark.py 
수입 시간 
numpy를 np로 가져오기 
sklearn.metrics에서 Classification_report, Confusion_matrix 가져오기 
수입 토치 

클래스 ModelBenchmark: 
"""모델 성능 벤치마킹 클래스""" 

def __init__(self, 모델, 토크나이저, 장치="cuda"): 
self.model = 모델 
self.tokenizer = 토크나이저 
self.device = 장치 

def benchmark_accuracy(self, test_dataset): 
"""정확도 벤치마크""" 
self.model.eval() 
정확함 = 0 
총계 = 0 
예측 = [] 
true_labels = [] 

torch.no_grad() 사용하여: 
텍스트의 경우 test_dataset의 라벨: 
입력 = self.tokenizer( 
텍스트, return_tensors="pt", 
패딩=True, 잘림=True, max_length=512 
).to(self.device) 

출력 = self.model(**입력) 
preds = torch.argmax(outputs.logits, 희미한 = 1) 

올바른 += (preds == labels.to(self.device)).sum().item() 
전체 += labels.size(0) 
예측.확장(preds.cpu().numpy()) 
true_labels.extend(labels.numpy()) 

정확도 = 정확함 / 전체 
보고서 = 분류_보고서(true_labels, 예측, 출력_dict=True) 

반환 { 
"정확도": 정확도, 
"분류_보고": 보고, 
"confusion_matrix": 혼동_매트릭스(true_labels, 예측).tolist() 
} 

def benchmark_latency(self, test_dataset, num_runs=100): 
"""레이턴시 벤치마킹""" 
self.model.eval() 
대기 시간 = [] 

torch.no_grad() 사용하여: 
텍스트의 경우 _ test_dataset에 있음: 
입력 = self.tokenizer( 
텍스트, return_tensors="pt", 
패딩=True, 잘림=True, max_length=512 
).to(self.device) 

# 워밍업 
_ = self.model(**입력) 

# 타이밍 
시작 = time.perf_counter() 
_ 범위 (num_runs): 
_ = self.model(**입력) 
 = time.perf_counter() 

avg_latency = ( - 시작) / num_runs 
대기 시간.추가(avg_latency) 

반환 { 
"avg_latency_ms": np.mean(대기 시간) * 1000, 
"p50_latency_ms": np.percentile(대기 시간, 50) * 1000, 
"p99_latency_ms": np.percentile(대기 시간, 99) * 1000, 
"throughput_rps": 1.0 / np.mean(대기 시간) 
} 

def full_report(self, test_dataset): 
"""종합 벤치마크 기자""" 
Accuracy_report = self.benchmark_accuracy(test_dataset) 
Latency_report = self.benchmark_latency(test_dataset) 

반환 { 
"정확도": 정확도_보고, 
"대기 시간": 대기 시간_보고, 
"요약": { 
"accuracy_pct": f"{accuracy_report['accuracy']*100:.2f}%", 
"avg_latency": f"{latency_report['avg_latency_ms']:.2f}ms", 
"처리량": f"{latency_report['throughput_rps']:.1f} 요청/초" 
} 
}

LLM 파인튜닝 심화: LoRA와QLoRA #

Phase 11-12에서 다루는 LLM 파인튜닝의 현대적 기법:



# 미세 조정/lora_finetune.py 
peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training에서 
변환기에서 AutoModelForCausalLM, BitsAndBytesConfig 가져오기 
수입 토치 

def setup_lora_finetuning(model_name="meta-llama/Llama-3-8B"): 
"""LoRA 파인튜닝 설정""" 

# 4 비트 복잡하게 설정 
퀀트_config = BitsAndBytesConfig( 
load_in_4bit=, 
bnb_4bit_Quant_type="nf4", 
bnb_4bit_compute_dtype=torch.float16, 
bnb_4bit_use_double_Quant= 
) 

#모델로드 (양자화) 
모델 = AutoModelForCausalLM.from_pretrained( 
모델_이름, 
양자화_구성=퀀트_구성, 
device_map="자동" 
) 

#모델준비 
모델 = prepare_model_for_kbit_training(모델) 

# LoRA 설정 
lora_config = LoraConfig( 
r=16, 
lora_alpha=32, 
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"], 
lora_dropout=0.05, 
편견="없음", 
task_type="CAUSAL_LM" 
) 

# LoRA적용 
모델 = get_peft_model(모델, lora_config) 
model.print_trainable_parameters() 

반환 모델 

def train_with_trainer(모델, train_dataset, output_dir="./lora_output"): 
"""Trainer로 파인튜닝 달리기""" 
Transformers에서 TrainingArguments, Trainer 가져오기 

training_args = TrainingArguments( 
출력_디렉터리=출력_디렉터리, 
per_device_train_batch_size=4, 
그래디언트_축적_단계=4, 
학습률=2e-4, 
fp16=맞습니다, 
로깅_단계=10, 
save_strategy="에포크", 
eval_strategy="시대", 
num_train_epochs=3, 
Warmup_ratio=0.1, 
optim="paged_adamw_8bit" 
) 

트레이너 = 트레이너( 
모델=모델, 
args=training_args, 
train_dataset=train_dataset 
) 

트레이너.기차() 
트레이너.저장_모델(output_dir) 
리턴 트레이너

학습 로드맵: 개인별 맞춤 추천 #

학습자의 배경에 따른 최적의 학습 경로:

| 배경 | 추천 시작 페이즈 | 예상 완료 기간 | 핵심 페이즈 |

|——|—————–|—————|————|

| 완전 초보자 (프로그래밍 경험 없음) | Phase 0 | 6-9개월 | 0-12 전체 |

| 일반 개발자 (Python 경험 있음) | Phase 1 | 4-6개월 | 1-8, 11-12 |

| 데이터 분석가 (Pandas 경험 있음) | Phase 5 | 3-5개월 | 5-10, 11-12 |

| ML 엔지니어 (scikit-learn 경험 있음) | Phase 9 | 2-4개월 | 9-12 |

| 연구자 (논문 기반 지식 있음) | Phase 11 | 1-3개월 | 11-12 |

| DevOps 엔지니어 | Phase 12 | 1-2개월 | 12 전체 |

프로젝트 아이디어 모음 #

커리큘럼을 따라하며 빌드할 수 있는 실습 프로젝트:

| 프로젝트 | 관련 페이즈 | 난이도 | 사용 기술 |

|———|———–|——–|———-|

| 스팸 메일 분류기 | Phase 5-6 | ★☆☆ | scikit-learn, TF-IDF |

| 주식 가격 예측 | Phase 7-8 | ★★☆ | LSTM, Prophet |

| 이미지 분류 앱 | Phase 9 | ★★☆ | CNN, PyTorch |

| 챗봇 서비스 | Phase 10 | ★★★ | Transformer, FastAPI |

| 추천 시스템 | Phase 11 | ★★★ | Collaborative Filtering |

| 자율주행 시뮬레이션 | Phase 12 | ★★★☆ | Reinforcement Learning |

| RAG 파이프라인 | Phase 12 | ★★★★ | LangChain, Vector DB |

제한사항 #

scratch도 완벽하지 않습니다의 인공지능 공학:

  • 시간 소요: 12개 페이즈를 완료하려면 최소 3-6개월 필요

  • 영어 콘텐츠: 모든 레슨이 영어로 제공됨

  • GPU 필요: 딥러닝 페이즈는 GPU 환경 권장

  • 자기 주도 학습: 강의 vídeo가 없으므로 자기 주도 학습 능력 필요

  • 최신성: 레포지토리가 활발히 업데이트되지만, 일부 레슨이 오래되었을 수 있음

  • 환경 문제: 로컬 GPU가 없는 경우 Google Colab 의존도가 높아짐

  • 프로젝트 범위: 각 레슨의 프로젝트가 교육용으로 단순화되어 있어 프로덕션 수준의 복잡도를 완전히 반영하지는 않음

자주 묻는 질문 #

Q: 처음부터 처음부터 처음부터 끝까지 는 정말 무료인가요?? A: 네, 완전히 무료입니다. MIT 라이선스로 오픈소스이며, 상업적 사용도 가능합니다.

Q: 어떤 사전 지식이 필요한가요??

A: Phase 0부터 시작한다면 프로그래밍 기초 지식만 있으면 됩니다. Python을 조금 알아도 좋습니다.

Q: GPU가 없으면 Deep Learning을 배울 수 없나요??

A: 구글 콜라브 이나 카글 노트북 을 사용하면 무료 GPU 를 사용할 수 있습니다.

Q: 한국어로 된 자료가 있나요?? A: 현재는 영어만 제공됩니다. 하지만 AI 에이전트 스킬을 통해 한국어 번역을 유도할 수 있습니다.

Q: 수료증이 있나요?? A: 아니요, 수료증은 제공되지 않습니다. 대신 각 레슨을 완료하면 실제로 빌드한 프로젝트 포트폴리오가 생깁니다.

Q: 에이전트 메모리 는 무엇인가요??

A: 로힛의 이전 프로젝트로, AI 에이전트의 지속적 메모리를 제공합니다. ai-engineering-from-scratch와 자연스럽게 연동됩니다.

Q: 어느 정도 시간이 필요한가요??

A: 주 10-15시간 학습 기준으로 Phase 0-6까지 약 2-3개월, 전체 12페이즈 완료까지 4-6개월이 소요됩니다.

Q: 커리큘럼을 순서대로 따라야 하나요??

A: 필수는 아닙니다. 배경 지식에 따라 원하는 페이즈부터 시작해도 됩니다. 다만 Phase 0은 권장합니다.

결론 #

ai-engineering-from-scratch는 AI 엔지니어링 학습의 표준이 될 도구입니다. 12개 페이즈, 100개 이상의 레슨, 각 레슨마다 실습 프로젝트 — 이 모든 것이 무료입니다.

특히 **“Learn it. Build it. Ship it for others.”**라는 철학이 좋습니다. 단순히 지식을吸收하는 것이 아니라, 실제로 무언가를 만들고, 다른 사람과 공유합니다. 이것이 진정한 학습입니다.

32,000개의 별은 이 커리큘럼이 많은 학습자에게 필요하다는 증거입니다. AI 엔지니어링을 배우고 싶다면, 여기서 시작하세요. 오늘 시작하면 6개월 후에는 완전히 다른 개발자가 되어 있을 것입니다.

CI/CD 파이프라인, Kubernetes 배포, LoRA 파인튜닝, 모델 벤치마킹 등 프로덕션 수준의 기술을 단계별로 배울 수 있다는 점이 이 커리큘럼의 진정한 가치입니다.

텔레그램 참여하기

데이터 과학 자동화 | AI 개발 도구 비교


Sources & Further Reading:

면책(Disclosure): 본 문서에는 아마리트이션 관계가 있을 수 있는 도구가 언급되어 있습니다. 긍정적인 리뷰를 위해 대가를 받지 않습니다. 모든 벤치마크는 자체 수행하거나 공식 문서에서 sourced되었습니다.

💬 댓글 토론