📚 배운 것
오늘 Rancher Desktop, Docker, Ollama를 사용하여 로컬 환경에서 AI 언어 모델을 실행하고 API를 통해 상호작용하는 방법을 배웠다.
🛠️ 환경 설정
- 도구: Rancher Desktop, Taddy(Docker GUI), Postman(API 클라이언트)
- 제약 조건: 약 1.1GB 가용 메모리
🔄 실행 단계
-
Ollama 컨테이너 실행 :
docker pull alpine/ollama
docker run -d -p 11434:11434 -v ~/.ollama/root/.ollama --name ollama alpine/ollama
-
AI 모델 다운로드 :
docker exec -ti ollama ollama pull gemma:2b
- 처음에는 llama3.2 모델을 시도했으나 메모리 부족 오류(3.5GB 필요, 1.1GB 가용)
- 리소스 제약에 맞는 gemma:2b 모델로 전환하여 성공
-
API 요청 전송 :
POST http://localhost:11434/api/generate
Content-Type: application/json
Body: {
"model": "gemma:2b",
"prompt": "Tell me a short story about a robot."
}
-
응답 확인 ✅: 모델이 토큰 단위로 스트리밍 방식으로 로봇에 관한 이야기를 생성
💡 배운 기술적 개념
-
Docker 컨테이너 관리 :
- 컨테이너 실행, 중지, 삭제 및 명령 실행 방법
- 볼륨 마운트를 통한 데이터 지속성 관리
- 메모리 제한 설정 (
--memory=4g)
-
리소스 최적화 :
- 하드웨어 제약 조건에 맞는 AI 모델 선택
- 메모리 사용량이 다른 다양한 모델 옵션 (llama3.2: 3.5GB vs gemma:2b: 1.4GB)
-
API 통신 :
- REST API를 통한 AI 모델과의 상호작용
- JSON 형식의 요청 및 응답 처리
- 스트리밍 응답 처리 방법 (
done: false → done: true)
🔍 문제 해결 경험
- 메모리 오류 식별 및 해결: 더 작은 모델로 전환
- 모델 이름 오류: 정확한 모델 이름 확인 및 수정
- API 엔드포인트 이해:
/api/generate와 /api/chat 차이점
🌟 시사점 및 응용 가능성
- 클라우드 API에 의존하지 않고 로컬에서 AI 실행 가능
- 리소스 제한이 있는 환경(에지 컴퓨팅, 개인 서버)에서도 AI 모델 활용 가능
- 개인정보 보호가 중요한 상황에서 데이터를 외부로 보내지 않고 AI 활용 가능
- 커스텀 애플리케이션에 AI 기능 통합 방법 습득
💻 코드 주요 포인트:
# 메모리 부족 오류 발생 시
{
"error": "model requires more system memory (3.5 GiB) than is available (1.1 GiB)"
}
# 해결책: 더 작은 모델 사용
docker exec -ti ollama ollama pull gemma:2b
📚 배운 것
오늘 Rancher Desktop, Docker, Ollama를 사용하여 로컬 환경에서 AI 언어 모델을 실행하고 API를 통해 상호작용하는 방법을 배웠다.
🛠️ 환경 설정
🔄 실행 단계
Ollama 컨테이너 실행 :
docker pull alpine/ollama docker run -d -p 11434:11434 -v ~/.ollama/root/.ollama --name ollama alpine/ollamaAI 모델 다운로드 :
docker exec -ti ollama ollama pull gemma:2bAPI 요청 전송 :
응답 확인 ✅: 모델이 토큰 단위로 스트리밍 방식으로 로봇에 관한 이야기를 생성
💡 배운 기술적 개념
Docker 컨테이너 관리 :
--memory=4g)리소스 최적화 :
API 통신 :
done: false→done: true)🔍 문제 해결 경험
/api/generate와/api/chat차이점🌟 시사점 및 응용 가능성
💻 코드 주요 포인트: