Files
AI_Devlop/AI_Web_Scraper/run_guide.md

212 lines
6.7 KiB
Markdown

# AI 웹 정보 수집 시스템 실행 가이드
이 가이드는 Google Colab Pro 환경에서 시스템을 실행하는 방법을 설명합니다.
## 1. 사전 준비
### 1.1 Google Colab Pro 설정
- Google Colab Pro 계정으로 로그인
- 런타임 유형을 "GPU"로 설정 (A100 권장)
- Python 3.8 이상 사용
### 1.2 Google Drive 설정 (간단한 방법 - 권장)
Google Colab에서는 다음 코드로 쉽게 Google Drive를 마운트할 수 있습니다:
```python
from google.colab import drive
drive.mount('/content/drive')
```
이 방법은 별도의 API 설정 없이 데이터를 저장할 수 있어 간단합니다. 데이터를 `/content/drive/MyDrive/AI_Data` 폴더에 자동으로 저장합니다.
### 1.3 Google Drive API 설정 (고급 방법)
더 정교한 제어가 필요한 경우 Google Drive API를 사용할 수 있습니다:
1. Google Cloud Console (https://console.cloud.google.com/) 접속
2. 새 프로젝트 생성 또는 기존 프로젝트 선택
3. "Google Drive API" 활성화
4. "OAuth 2.0 클라이언트 ID" 생성
5. 클라이언트 ID를 다운로드하여 `credentials.json`으로 이름 변경
6. 데이터를 저장할 Google Drive 폴더 생성 및 폴더 ID 확인
- 폴더 URL에서 ID 추출: `https://drive.google.com/drive/folders/[FOLDER_ID]`
### 1.4 프로젝트 파일 업로드
Colab에 프로젝트 파일들을 업로드하거나 GitHub에서 클론:
```bash
!git clone https://github.com/your-repo/AI_Web_Scraper.git
%cd AI_Web_Scraper
```
### 1.5 Google Drive 마운트
시스템 실행 전에 다음 코드를 실행하여 Google Drive를 마운트하세요:
```python
from google.colab import drive
drive.mount('/content/drive')
```
## 2. 환경 설정
### 2.1 필요한 패키지 설치
```bash
!pip install -r requirements.txt
```
최신 버전으로 업데이트(권장):
```bash
!pip install -U transformers accelerate bitsandbytes huggingface-hub
```
### 2.2 설정 파일 수정 (선택사항)
기본적으로 데이터는 `/content/drive/MyDrive/AI_Data`에 저장됩니다. 다른 경로를 원하시면 `config.json``drive_mount_path`를 수정하세요:
```json
{
"data_storage": {
"drive_mount_path": "/content/drive/MyDrive/MyCustomFolder"
}
}
```
또는 실행 시 `--save-path` 옵션으로 지정할 수 있습니다.
## 3. 시스템 실행
### 3.1 기본 실행 (AI가 스스로 주제 선정)
```bash
python main.py
```
이 경우 AI가 현재 흥미로운 기술 트렌드 3개를 스스로 선정하여 조사합니다.
### 3.2 AI가 스스로 주제 선정하도록 명시적 실행
```bash
python main.py --auto-topics
```
### 3.3 특정 주제로 실행
```bash
python main.py --topics "인공지능" "머신러닝" "딥러닝"
```
### 3.4 설정 파일 지정
```bash
python main.py --config ./custom_config.json
```
### 3.5 저장 경로 지정
```bash
python main.py --save-path "/content/drive/MyDrive/MyCustomFolder"
```
이렇게 하면 데이터를 지정한 폴더에 저장합니다.
### 3.6 Hugging Face 토큰(필요 시)
일부 모델은 접근 토큰이 필요할 수 있습니다. 필요하다면 다음과 같이 환경 변수로 설정하세요.
```bash
export HF_TOKEN=hf_********************************
```
Colab 셀에서 설정 예:
```python
import os
os.environ["HF_TOKEN"] = "hf_********************************"
```
## 4. 실행 과정 설명
1. **모델 다운로드**: Hugging Face에서 `jxm/gpt-oss-20b-base` 모델을 다운로드
2. **AI 에이전트 초기화**: 모델을 로드하고 도구들을 설정
3. **정보 수집**: 각 주제에 대해 AI가 스스로 웹을 탐색하며 정보 수집
4. **데이터 저장**: 수집된 데이터를 마운트된 Google Drive의 지정된 폴더에 자동 저장
## 5. 모니터링 및 디버깅
### 5.1 로그 확인
실행 중 출력되는 로그를 통해 진행 상황을 확인할 수 있습니다.
### 5.2 Colab GPU 모니터링
```bash
!nvidia-smi
```
### 5.3 메모리 사용량 확인
```bash
!free -h
```
## 6. 문제 해결
### 6.1 모델 다운로드 실패
- Colab의 디스크 공간 확인
- 모델 크기가 크므로 충분한 공간 확보
- 모델 접근 권한(토큰) 필요 여부 확인: 필요 시 `HF_TOKEN` 설정
- 네트워크 일시 오류일 수 있으므로 런타임 재시작 후 재시도
### 6.2 메모리 부족 오류 해결
모델이 클 경우 GPU 메모리가 부족할 수 있습니다. 다음 방법으로 해결하세요:
#### 6.2.1 GPU/CPU 메모리 공동 활용
시스템이 자동으로 GPU(20GB)와 CPU(60GB)를 함께 사용하여 모델을 분산 적재합니다.
#### 6.2.2 메모리 설정 커스터마이징
`config.json`에서 메모리 할당을 조정할 수 있습니다:
```json
{
"model_settings": {
"max_memory": {
"gpu": "25GB",
"cpu": "50GB"
}
}
}
```
#### 6.2.2 수동 설정
`config.json`에서 양자화 설정을 조정할 수 있습니다:
```json
{
"model_settings": {
"use_quantization": true,
"quantization_bits": 8
}
}
```
#### 6.2.3 더 작은 모델 사용
메모리가 여전히 부족하다면 `config.json`에서 모델을 더 작은 것으로 변경:
```json
{
"model_name": "microsoft/DialoGPT-medium"
}
```
또는 양자화된/경량화된 공개 모델을 사용하면 메모리 요구량이 크게 줄어듭니다.
## 7. 확장 및 커스터마이징
### 7.1 새로운 도구 추가
`ai_agent.py``tools` 리스트에 새로운 도구를 추가할 수 있습니다.
### 7.2 모델 변경
`config.json`에서 `model_name`을 다른 모델로 변경 가능합니다.
### 7.3 크롤링 전략 수정
`web_scraper.py`에서 크롤링 로직을 커스터마이징할 수 있습니다.
## 8. 주의사항
- 모델 다운로드에 시간이 오래 걸릴 수 있습니다.
- Google Drive API 사용량 제한에 유의하세요.
- 대량의 데이터를 수집할 경우 Colab 세션 시간 제한을 고려하세요.
- 개인정보 보호 및 저작권을 준수하세요.
- 일부 웹사이트는 자동화된 크롤링을 차단할 수 있습니다. 과도한 요청을 피하고 robots.txt를 준수하세요.
- Selenium 실행에 문제가 있으면 Chrome/ChromeDriver 설치 상태를 확인하세요.
## 10. 참고 사항 (동작 방식)
- 모델 다운로드는 메모리에 올리지 않고 Hugging Face의 `snapshot_download`로 파일만 동기화합니다.
- 실제 모델 로딩은 실행 시점에 `AIAgent`가 수행하며, 가능한 경우 GPU/CPU 자동 분산(`device_map="auto"`), 실패 시 CPU로 폴백합니다.
- 간단한 웹 검색은 DuckDuckGo HTML 결과를 파싱하여 링크를 추출합니다(외부 유료 API 불필요).
## 9. 지원
문제가 발생하거나 추가 기능이 필요한 경우 다음 정보를 포함하여 문의하세요:
- 오류 메시지
- 실행 환경 (Colab Pro, GPU 유형)
- 재현 단계