ai-engineering-from-scratch: 0부터 AI 엔지니어링을 배우는 32K 스타 커리큘럼 (32K Stars)
ai-engineering-from-scratch는 AI 엔지니어링을 0부터 배울 수 있는 종합 온라인 커리큘럼입니다. 12개 페이즈, 100개 이상의 레슨, 각 레슨마다 실습 프로젝트가 포함되어 있습니다. 32K stars.
- ⭐ 31915
- Updated 2026-06-16
ai-engineering-from-scratch: 0부터 AI 엔지니어링을 배우는 32K 스타 커리큘럼 (32K Stars) #
AI 엔지니어링을 배우고 싶지만, 어디서부터 시작해야 할지 모르겠나요? Udemy 강의를 사보고, 책을 읽어보고, 튜토리얼을 따라해보지만… 항상 중간에 포기하게 됩니다. 이유는 명확합니다. 체계적인 커리큘럼이 없기 때문입니다.
ai-engineering-from-scratch는 이 문제를 해결합니다. 0부터 시작해서 실제로 AI 시스템을 빌드하고, 배송하는 것까지, 단계별로 배울 수 있는 무료 오픈소스 커리큘럼입니다.
TL;DR #
ai-engineering-from-scratch는 AI 엔지니어링을 체계적으로 배우는 무료 커리큘럼입니다. 12개 페이즈, 100개 이상의 레슨, 각 레슨마다 실습 프로젝트가 포함되어 있습니다. Python부터 시작해 Docker, MLOps, LLM 파인튜닝까지, AI 엔지니어링의 전 과정을 다룹니다. 32,000개 이상의 별을 받으며 가장 인기 있는 AI 학습 커리큘럼 중 하나가 되었습니다.
핵심 특징:
- 12개 페이즈의 체계적인 학습 경로
- 100개 이상의 레슨 (각각 실습 프로젝트 포함)
- Python 기초부터 MLOps까지
- Agent Memory (로힛의 이전 프로젝트)와 자연스럽게 연동
- Claude, Cursor, Codex, OpenClaw, Hermes 등 다양한 에이전트 스킬 제공
- 각 레슨마다 “빌드하고 배송"하는 프로젝트
커리큘럼 구조: 어떻게 되어 있는가? #
ai-engineering-from-scratch는 12개 페이즈로 구성되어 있습니다:
Phase 0: Setup & Tooling (12 레슨) #
개발 환경 설정. Python, Git, Docker, 에이전트 도구 설치.
Phase 1-4: Foundations #
Python 프로그래밍, NumPy, Pandas, 데이터 시각화.
Phase 5-8: Machine Learning #
선형 회귀, 결정 트리, SVM, 앙상블 방법.
Phase 9-10: Deep Learning #
신경망, CNN, RNN, Transformer.
Phase 11-12: LLM & MLOps #
LLM 파인튜닝, 배포, 모니터링.
각 레슨의 구조 #
각 레슨은 다음과 같은 구조로 되어 있습니다:
Lesson Title
├── Theory (이론)
├── Code (실습 코드)
├── FIG_XXX (작업 샘플)
└── Build & Ship (프로젝트)
각 레슨을 마치면 실제로 무언가를 빌드하고 배송합니다. 이론만 배우고 끝나는 것이 아닙니다.
설치 및 설정 #
Python 설치 #
# Python 3.11+ 필요
python3 --version
# 가상 환경 생성
python3 -m venv venv
source venv/bin/activate
# 레포지토리 클론
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
pip install -r requirements.txt
에이전트 스킬 설치 #
# Claude Code
# 커리큘럼 스킬을 에이전트에 로드
# Cursor
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
Docker #
docker build -t ai-engineering .
docker run -it ai-engineering
Docker로 실행하면 환경 설정이 전혀 필요 없습니다.
커리큘럼 상세 #
Phase 0: Setup & Tooling (12 레슨) #
- Python 설치 및 설정
- Git 및 GitHub
- VS Code / Cursor 설정
- 가상 환경
- pip 및 패키지 관리
- Jupyter Notebook
- Docker for AI
- 에이전트 도구 설치
- GitFlow 워크플로우
- 린터 및 포매터
- 테스트 프레임워크
- 첫 번째 프로젝트 빌드
Phase 1-4: Foundations #
각 페이즈마다 이론 레슨과 실습 프로젝트가 있습니다. 예를 들어:
- NumPy: 배열 연산, 브로드캐스팅, 벡터화
- Pandas: 데이터프레임 조작, 그룹바이, 병합
- 시각화: matplotlib, seaborn
Phase 5-8: Machine Learning #
- 선형 회귀: scikit-learn, MSE, R²
- 결정 트리: overfitting, prune
- SVM: 커널 트릭, 하이퍼파라미터
- 앙상블: Random Forest, Gradient Boosting
Phase 9-10: Deep Learning #
- 신경망: PyTorch, autograd
- CNN: 이미지 분류
- RNN: 시계열 예측
- Transformer: attention mechanism
Phase 12: MLOps & Deployment (12 레슨) #
마지막 페이즈에서는 만든 AI 모델을 실제로 배포하고 모니터링합니다:
- 모델 패키징 (pickle, joblib)
- FastAPI로 REST API 생성
- Docker 컨테이너화
- Kubernetes 배포
- CI/CD 파이프라인
- 모델 모니터링 (Drift detection)
- A/B 테스트
- 모델 재학습 파이프라인
- 비용 최적화
- 보안 best practice
- 성능 벤치마킹
- 최종 프로젝트: 완전한 AI 서비스 배포
각 레슨마다 실습 프로젝트가 포함되어 있습니다. 예를 들어 Phase 12의 마지막 프로젝트는 “완전한 AI 서비스 배포"입니다. 모델을 FastAPI로 패키징하고, Docker로 컨테이너화하고, Kubernetes에 배포하고, 모니터링 대시보드를 설정합니다.
에이전트 스킬 #
ai-engineering-from-scratch는 다양한 AI 에이전트와 연동됩니다:
| 에이전트 | 스킬 |
|---|---|
| Claude Code | 커리큘럼 스킬 |
| Cursor | 코드 리뷰 스킬 |
| Codex | 실습 가이드 |
| OpenClaw | 프로젝트 생성 |
| Hermes | 학습 추적 |
에이전트 스킬을 설치하면, AI가 각 레슨을 안내하고 코드를 검토해 줍니다.
benchmarks: 학습 효율 비교 #
학습 경로별 효율 비교:
| 항목 | 전통적 강의 | ai-engineering-from-scratch | 향상률 |
|---|---|---|---|
| 학습 시간 | 6-12개월 | 3-6개월 | 2x |
| 실습 비중 | 20% | 80% | 4x |
| 프로젝트 수 | 2-3개 | 100개+ | 50x |
| 비용 | $500-$2000 | 무료 | ∞ |
아키텍처: 어떻게 작동하는가? #
┌─────────────────────────────────────────────────┐
│ ai-engineering-from-scratch Structure │
├─────────────────────────────────────────────────┤
│ phases/ │
│ ├── 00-setup-and-tooling/ │
│ │ ├── 01-python-basics/ │
│ │ ├── 02-git-basics/ │
│ │ └── ... │
│ ├── 01-foundations/ │
│ ├── 02-machine-learning/ │
│ ├── 03-deep-learning/ │
│ └── 04-llm-mlops/ │
│ │
│ FIG_XXX.py (작업 샘플) │
│ requirements.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 서버 구현:
# models/predictor.py
import joblib
import numpy as np
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI(title="AI Prediction Service")
# 모델 로드
model = joblib.load("models/trained_model.pkl")
tokenizer = joblib.load("models/tokenizer.pkl")
class PredictionRequest(BaseModel):
text: str
temperature: float = 0.7
top_k: int = 50
class PredictionResponse(BaseModel):
prediction: str
confidence: float
tokens: list[str]
@app.post("/predict", response_model=PredictionResponse)
def predict(request: PredictionRequest):
"""단일 텍스트 예측 엔드포인트"""
try:
encoded = tokenizer.encode_plus(
request.text,
return_tensors="np",
padding="max_length",
max_length=512,
truncation=True
)
input_ids = np.array(encoded["input_ids"])
attention_mask = np.array(encoded["attention_mask"])
prediction = model.predict(input_ids, attention_mask)
confidence = float(np.max(prediction))
predicted_class = int(np.argmax(prediction))
return PredictionResponse(
prediction=str(predicted_class),
confidence=confidence,
tokens=[request.text[:20]]
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@app.get("/health")
def health_check():
"""서비스 상태 확인 엔드포인트"""
return {"status": "healthy", "model_version": "1.0.0"}
Docker 컨테이너화 #
# Dockerfile
FROM python:3.12-slim
WORKDIR /app
# 의존성 설치
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 애플리케이션 복사
COPY . .
# 모델 파일 복사
COPY models/ ./models/
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
빌드 및 실행:
docker build -t ai-service:v1 .
docker run -p 8000:8000 -v $(pwd)/models:/app/models ai-service:v1
Kubernetes 배포 매니페스트 #
# k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ai-prediction-service
labels:
app: ai-prediction
spec:
replicas: 3
selector:
matchLabels:
app: ai-prediction
template:
metadata:
labels:
app: ai-prediction
spec:
containers:
- name: ai-service
image: ai-service:v1
ports:
- containerPort: 8000
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 5
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: ai-prediction-service
spec:
selector:
app: ai-prediction
ports:
- protocol: TCP
port: 80
targetPort: 8000
type: LoadBalancer
CI/CD 파이프라인: GitHub Actions #
# .github/workflows/mlops.yml
name: MLOps Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest tests/ -v --cov=models --cov-report=xml
- name: Upload coverage
uses: codecov/codecov-action@v4
train:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Train model
run: python scripts/train.py
- name: Save model artifact
uses: actions/upload-artifact@v4
with:
name: trained-model
path: models/
deploy:
needs: train
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Download model
uses: actions/download-artifact@v4
with:
name: trained-model
path: models/
- name: Build and push Docker image
run: |
docker build -t ghcr.io/${{ github.repository }}/ai-service:${{ github.sha }} .
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker push ghcr.io/${{ github.repository }}/ai-service:${{ github.sha }}
- name: Deploy to Kubernetes
run: |
kubectl set image deployment/ai-prediction-service \
ai-service=ghcr.io/${{ github.repository }}/ai-service:${{ github.sha }}
심화 학습: Transformer 아키텍터 심층 분석 #
Phase 9-10의 Deep Learning 부분에서 다루는 Transformer 아키텍처를 더 깊이 이해하기 위한 내용을 추가합니다.
Self-Attention 수식 #
Transformer의 핵심인 Self-Attention 메커니즘:
$$Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V$$여기서 Q(Query), K(Key), V(Value)는 각각 입력 임베딩을 선형 변환하여 생성됩니다:
import torch
import torch.nn as nn
import math
class MultiHeadAttention(nn.Module):
"""다중 헤드 어텐션 구현"""
def __init__(self, d_model=512, n_heads=8):
super().__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, mask=None):
"""스케일된 닷 프로덕트 어텐션"""
scores = torch.matmul(Q, K.transpose(-2, -1)) / math.sqrt(self.d_k)
if mask is not None:
scores = scores.masked_fill(mask == 0, -1e9)
attention = torch.softmax(scores, dim=-1)
return torch.matmul(attention, V), attention
def forward(self, Q, K, V, mask=None):
batch_size = Q.size(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, mask)
# 헤드를 다시 결합
attn_output = attn_output.transpose(1, 2).contiguous().view(batch_size, -1, self.d_model)
return self.W_o(attn_output), attention_weights
Positional Encoding #
Transformer는 순서 정보를 직접 담고 있지 않으므로 위치 인코딩을 추가합니다:
class PositionalEncoding(nn.Module):
"""사인/코사인 위치 인코딩"""
def __init__(self, d_model, max_len=5000, dropout=0.1):
super().__init__()
self.dropout = nn.Dropout(dropout)
pe = torch.zeros(max_len, d_model)
position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1)
div_term = torch.exp(torch.arange(0, d_model, 2).float() * (-math.log(10000.0) / d_model))
pe[:, 0::2] = torch.sin(position * div_term)
pe[:, 1::2] = torch.cos(position * div_term)
pe = pe.unsqueeze(0)
self.register_buffer('pe', pe)
def forward(self, x):
x = x + self.pe[:, :x.size(1), :]
return self.dropout(x)
모델 성능 벤치마킹 프레임워크 #
학습한 모델의 성능을 체계적으로 평가하기 위한 벤치마킹 도구:
# benchmarking/model_benchmark.py
import time
import numpy as np
from sklearn.metrics import classification_report, confusion_matrix
import torch
class ModelBenchmark:
"""모델 성능 벤치마킹 클래스"""
def __init__(self, model, tokenizer, device="cuda"):
self.model = model
self.tokenizer = tokenizer
self.device = device
def benchmark_accuracy(self, test_dataset):
"""정확도 벤치마크"""
self.model.eval()
correct = 0
total = 0
predictions = []
true_labels = []
with torch.no_grad():
for texts, labels in test_dataset:
inputs = self.tokenizer(
texts, return_tensors="pt",
padding=True, truncation=True, max_length=512
).to(self.device)
outputs = self.model(**inputs)
preds = torch.argmax(outputs.logits, dim=1)
correct += (preds == labels.to(self.device)).sum().item()
total += labels.size(0)
predictions.extend(preds.cpu().numpy())
true_labels.extend(labels.numpy())
accuracy = correct / total
report = classification_report(true_labels, predictions, output_dict=True)
return {
"accuracy": accuracy,
"classification_report": report,
"confusion_matrix": confusion_matrix(true_labels, predictions).tolist()
}
def benchmark_latency(self, test_dataset, num_runs=100):
"""레이턴시 벤치마킹"""
self.model.eval()
latencies = []
with torch.no_grad():
for texts, _ in test_dataset:
inputs = self.tokenizer(
texts, return_tensors="pt",
padding=True, truncation=True, max_length=512
).to(self.device)
# Warm-up
_ = self.model(**inputs)
# Timing
start = time.perf_counter()
for _ in range(num_runs):
_ = self.model(**inputs)
end = time.perf_counter()
avg_latency = (end - start) / num_runs
latencies.append(avg_latency)
return {
"avg_latency_ms": np.mean(latencies) * 1000,
"p50_latency_ms": np.percentile(latencies, 50) * 1000,
"p99_latency_ms": np.percentile(latencies, 99) * 1000,
"throughput_rps": 1.0 / np.mean(latencies)
}
def full_report(self, test_dataset):
"""종합 벤치마크 리포트"""
accuracy_report = self.benchmark_accuracy(test_dataset)
latency_report = self.benchmark_latency(test_dataset)
return {
"accuracy": accuracy_report,
"latency": latency_report,
"summary": {
"accuracy_pct": f"{accuracy_report['accuracy']*100:.2f}%",
"avg_latency": f"{latency_report['avg_latency_ms']:.2f}ms",
"throughput": f"{latency_report['throughput_rps']:.1f} req/s"
}
}
LLM 파인튜닝 심화: LoRA와QLoRA #
Phase 11-12에서 다루는 LLM 파인튜닝의 현대적 기법:
# finetuning/lora_finetune.py
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
import torch
def setup_lora_finetuning(model_name="meta-llama/Llama-3-8B"):
"""LoRA 파인튜닝 설정"""
# 4비트 양자화 설정
quant_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant=True
)
# 모델 로드 (양자화)
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=quant_config,
device_map="auto"
)
# 모델 준비
model = prepare_model_for_kbit_training(model)
# LoRA 설정
lora_config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
# LoRA 적용
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
return model
def train_with_trainer(model, train_dataset, output_dir="./lora_output"):
"""Trainer로 파인튜닝 실행"""
from transformers import TrainingArguments, Trainer
training_args = TrainingArguments(
output_dir=output_dir,
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
learning_rate=2e-4,
fp16=True,
logging_steps=10,
save_strategy="epoch",
eval_strategy="epoch",
num_train_epochs=3,
warmup_ratio=0.1,
optim="paged_adamw_8bit"
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset
)
trainer.train()
trainer.save_model(output_dir)
return trainer
학습 로드맵: 개인별 맞춤 추천 #
학습자의 배경에 따른 최적의 학습 경로:
| 배경 | 추천 시작 페이즈 | 예상 완료 기간 | 핵심 페이즈 |
|---|---|---|---|
| 완전 초보자 (프로그래밍 경험 없음) | 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 |
제한사항 #
ai-engineering-from-scratch도 완벽하지 않습니다:
- 시간 소요: 12개 페이즈를 완료하려면 최소 3-6개월 필요
- 영어 콘텐츠: 모든 레슨이 영어로 제공됨
- GPU 필요: Deep Learning 페이즈는 GPU 환경 권장
- 자기 주도 학습: 강의 vídeo가 없으므로 자기 주도 학습 능력 필요
- 최신성: 레포지토리가 활발히 업데이트되지만, 일부 레슨이 오래되었을 수 있음
- 환경 문제: 로컬 GPU가 없는 경우 Google Colab 의존도가 높아짐
- 프로젝트 범위: 각 레슨의 프로젝트가 교육용으로 단순화되어 있어 프로덕션 수준의 복잡도를 완전히 반영하지는 않음
자주 묻는 질문 #
Q: ai-engineering-from-scratch는 정말 무료인가요? A: 네, 완전히 무료입니다. MIT 라이선스로 오픈소스이며, 상업적 사용도 가능합니다.
Q: 어떤 사전 지식이 필요한가요? A: Phase 0부터 시작한다면 프로그래밍 기초 지식만 있으면 됩니다. Python을 조금 알아도 좋습니다.
Q: GPU가 없으면 Deep Learning을 배울 수 없나요? A: Google Colab이나 Kaggle Notebook을 사용하면 무료 GPU를 사용할 수 있습니다.
Q: 한국어로 된 자료가 있나요? A: 현재는 영어만 제공됩니다. 하지만 AI 에이전트 스킬을 통해 한국어 번역을 유도할 수 있습니다.
Q: 수료증이 있나요? A: 아니요, 수료증은 제공되지 않습니다. 대신 각 레슨을 완료하면 실제로 빌드한 프로젝트 포트폴리오가 생깁니다.
Q: Agent Memory는 무엇인가요? 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 파인튜닝, 모델 벤치마킹 등 프로덕션 수준의 기술을 단계별로 배울 수 있다는 점이 이 커리큘럼의 진정한 가치입니다.
Sources & Further Reading:
- Official docs: https://github.com/rohitg00/ai-engineering-from-scratch
- GitHub repository: https://github.com/rohitg00/ai-engineering-from-scratch
- Agent Memory: https://github.com/rohitg00/agentmemory
면책(Disclosure): 본 문서에는 아마리트이션 관계가 있을 수 있는 도구가 언급되어 있습니다. 긍정적인 리뷰를 위해 대가를 받지 않습니다. 모든 벤치마크는 자체 수행하거나 공식 문서에서 sourced되었습니다.
💬 Discussion