Skip to content

Latest commit

Β 

History

History
198 lines (150 loc) Β· 6.45 KB

ubuntu.md

File metadata and controls

198 lines (150 loc) Β· 6.45 KB

wsl 기반 ubuntu ν™˜κ²½μ—μ„œ AI-Sakana ν”„λ‘œμ νŠΈ

λ³Έ λ¬Έμ„œλŠ” λ‹€μŒκ³Ό 같은 ν•˜λ“œμ›¨μ–΄μ™€ μš΄μ˜μ²΄μ œμ—μ„œ ν…ŒμŠ€νŠΈ ν•˜κ³  μžˆλ‹€

# intel CPU : Intel(R) Core(TM) i5-10600KF CPU @ 4.10GHz   4.10 GHz
# λ©”λͺ¨λ¦¬ : DDR4 32G
# 메인 HDD : M.2 SSD
# GPU : nVidia A2000 (λ©”λͺ¨λ¦¬ 6G)
# OS : Windows 11 Pro, 23H2, OS Build 22631.4169

wsl(Windows Subsystem for Linux) μ΄λž€

wsl : μœˆλ„μš° ν•˜μœ„μ‹œμŠ€ν…œ λ¦¬λˆ…μŠ€, Windows Subsystem for Linux, μœˆλ„μš° 10, 11 ν™˜κ²½μ—μ„œ λ¦¬λˆ…μŠ€λ₯Ό μ„€μΉ˜ν•  수 μžˆλŠ” ν™˜κ²½

Windows 10 버전 2004 이상(λΉŒλ“œ 19041 이상) λ˜λŠ” Windows 11 μ—μ„œ μ œκ³΅ν•˜λŠ” κ°œλ°œν™˜κ²½

wsl μ„€μΉ˜

μœˆλ„μš°λ₯Ό 처음 μ„€μΉ˜ν•˜λ©΄ wsl 이 기본적으둜 ν™œμ„±ν™” λ˜μ–΄ μžˆμ§€ μ•Šλ‹€

μœˆλ„μš° power shell 을 κ΄€λ¦¬μž λͺ¨λ“œλ‘œ μ‹€ν–‰ν•˜μ—¬ λͺ…령을 μˆ˜ν–‰ν•˜μ—¬ wsl 을 μ„€μΉ˜ν•œλ‹€

wsl --install

κ³΅μ‹λ¬Έμ„œμ—λŠ” 이 λͺ…λ ΉμœΌλ‘œ wsl 이 μ„€μΉ˜λ˜κ³  ubuntu linux κ°€ μ„€μΉ˜λœλ‹€κ³  λ˜μ–΄ μžˆμœΌλ‚˜ windows 11 ν™˜κ²½μ—μ„œ μ‹€ν–‰ν•œ κ²°κ³Ό ubuntuλŠ” 기본적으둜 μ„€μΉ˜λ˜μ§€ μ•Šκ³ , λ³„λ„λ‘œ μ„€μΉ˜ν•΄ μ£Όμ–΄μ•Ό ν•œλ‹€.

ubuntu μ„€μΉ˜

wsl μ„€μΉ˜κ°€ μ™„λ£Œλœ ν›„ ubuntu λ₯Ό μ„€μΉ˜ν•œλ‹€

wsl ν™˜κ²½μ— μ„€μΉ˜ν•  수 μžˆλŠ” linux λ°°ν¬νŒμ„ μ°Ύμ•„λ³΄μž

wsl --list --online

alt text

이 ν”„λ‘œμ νŠΈμ—μ„œλŠ” ubuntu 24.04.lte 버전을 μ„€μΉ˜ν•˜μ˜€λ‹€.

wsl --install Ubuntu-24.04

ubuntu μ‹€ν–‰ν•˜κΈ°

alt text

λ°”νƒ•ν™”λ©΄μ—μ„œ 마우슀 우클릭 터미널 μ—΄κΈ°λ₯Ό 선택

alt text

터미널 μ°½μ—μ„œ ubuntu-xx λ₯Ό μ„ νƒν•˜λ©΄ linux shell 창이 λ‚˜νƒ€λ‚œλ‹€.

alt text

μ•„λ‚˜μ½˜λ‹€ μ„€μΉ˜

μ§€κΈˆλΆ€ν„°μ˜ λͺ…령은 linux shell μ—μ„œ μž…λ ₯ν•΄μ•Ό ν•œλ‹€

νŒ¨ν‚€μ§€ 정보 μ—…λ°μ΄νŠΈ(λ°˜λ“œμ‹œ sudo, root κΆŒν•œ)

sudo apt update

shell down 둜그 도ꡬ인 curl μ„€μΉ˜(λ°˜λ“œμ‹œ sudo, root κΆŒν•œ)

sudo apt install curl -y

μ•„λ‚˜μ½˜λ‹€ μ„€μΉ˜(sudo, root κΆŒν•œμ΄ μ•„λ‹ˆμ–΄λ„ λœλ‹€.)

curl --output anaconda.sh https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh

κ³΅μ‹μ‚¬μ΄νŠΈλ₯Ό ν†΅ν•˜μ—¬ μ˜΅μ…˜μ„ ν™•μΈν•˜μž : https://docs.anaconda.com/anaconda/install/linux/

μ•„λ‚˜μ½˜λ‹€ Archive : https://repo.anaconda.com/archive/

μ•„λ‚˜μ½˜λ‹€ μ„€μΉ˜ ν›„ μ‹œμŠ€ν…œ μ—…κ·Έλ ˆμ΄λ“œλ₯Ό ν•œλ²ˆ μ‹€ν–‰

sudo apt update
sudp apt upgrade

CUDA 용 torch 재 μ„€μΉ˜

https://pytorch.org/get-started/locally/ 여기에 μ ‘μ†ν•˜μ—¬ μžμ‹ μ˜ GPU 에 λ§žλŠ” CUDA 용 torch λ₯Ό μ°Ύμ•„μ„œ 재 μ„€μΉ˜ν•œλ‹€

alt text

Run this command ν•­λͺ©μ˜ 슀크립트λ₯Ό λ³΅μ‚¬ν•˜μ—¬ shellμ—μ„œ μ‹€ν–‰ν•œλ‹€. μ΄λ•Œ 끝뢀뢄에 λ°˜λ“œμ‹œ --upgrade λ₯Ό 뢙인닀

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 --upgrade

conda에 CUDA 도ꡬ (재) μ„€μΉ˜

ν”„λ‘œμ νŠΈ κ³΅μ‹λ¬Έμ„œμ—λŠ” μƒλž΅λœ λΆ€λΆ„μœΌλ‘œ 이 과정을 μƒλž΅ν•˜λ©΄, λͺ¨λΈ 컴파일과 λͺ¨λΈ ν›ˆλ ¨κ³Όμ •μ„ μ‹€ν–‰ ν•  수 μ—†λ‹€

conda install cuda -c nvidia/label/cuda-12.4

ν”„λ‘œμ νŠΈ μ‹œμž‘

user home 으둜 이동

cd
pwd
# /home/user

Ai-Scientist git clone

git clone https://github.com/callor/Callor-sakana.ai-2024.git

μ•„λ‚˜μ½˜λ‹€ κ°€μƒν™˜κ²½ λ§Œλ“€κΈ°

conda create -n ai_scientist python=3.11
conda activate ai_scientist

leTex 도ꡬ μ„€μΉ˜

이 λ„κ΅¬λŠ” μ΅œμ’…μ μœΌλ‘œ PDF νŒŒμΌν˜•νƒœλ‘œ 된 논문을 μƒμ„±ν• λ•Œ ν•„μš”ν•˜λ‹€

# Install pdflatex
sudo apt-get install texlive-full

ν”„λ‘œμ νŠΈ μ˜μ‘΄μ„± νŒ¨ν‚€μ§€ μ„€μΉ˜

AI-Scientist ν΄λ”μ—μ„œ μ‹€ν–‰

# Install pypi requirements
pip3 install -r requirements.txt

requirements.txt 에 torch μ„€μΉ˜μ½”λ“œκ°€ μžˆμœΌλ‚˜, CUDA 버전과 ν˜Έν™˜μ΄ λ˜μ§€ μ•ŠλŠ” κ²ƒμœΌλ‘œ 보인닀 λ‹€μŒ λͺ…λ ΉμœΌλ‘œ μžμ‹ μ˜ ν•˜λ“œμ›¨μ–΄, μš΄μ˜μ²΄μ œμ— λ§žλŠ” torch λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•œλ‹€. μ΄λ•Œλ„ λ°˜λ“œμ‹œ --upgrade μ˜΅μ…˜μ„ 끝에 λΆ™μ—¬μ•Ό ν•œλ‹€

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 --upgrade

conda 의 κ°€μƒν™˜κ²½μ— CUDA λ₯Ό λ‹€μ‹œ ν•œλ²ˆ μ„€μΉ˜ν•œλ‹€.

이 과정을 μƒλž΅ν•˜λ©΄ 도쀑에 였λ₯˜κ°€ λ‚˜λŠ” κ²½μš°κ°€ μžˆλ‹€

conda install cuda -c nvidia/label/cuda-12.4

ν™˜κ²½λ³€μˆ˜ μ„ΈνŒ…

ν˜„μž¬ 폴더에 env.sh νŒŒμΌμ„ μƒμ„±ν•œ ν›„ openAI API Key 와 Semantic Scholar API Key λ₯Ό μ €μž₯ν•œλ‹€

export OPENAI_API_KEY="USER OPEN AI KEY"
export S2_API_KEY="USER Sementic Schola API KEY"

ν™˜κ²½λ³€μˆ˜ μ„ΈνŒ…μ„ μœ„ν•˜μ—¬ λ‹€μŒ λͺ…령을 μž…λ ₯ν•œλ‹€

Linux 터미널을 λ‹€μ‹œ μ‹€ν–‰ν•œ 경우 λ‹€μŒ λͺ…령을 λ‹€μ‹œ μ‹€ν–‰ν•΄ 주자
source env.sh

ν™˜κ²½λ³€μˆ˜ μ„ΈνŒ…μ΄ λ˜μ—ˆλŠ”μ§€ λ³€μˆ˜ 확인을 ν•œλ‹€

OPENAI_API_KEY κ°’κ³Ό SS API KEY 값이 화면에 λ‚˜νƒ€ λ‚˜λŠ”μ§€ ν™•μΈν•œλ‹€

echo $OPENAI_API_KEY
# sk-proj-******

$ echo $S2_API_KEY
# Ep9******

ν”„λ‘œμ νŠΈ 진행

κΈ°λ³Έ λͺ¨λΈ 데이터셋 컴파일 ν•˜κΈ°

# Prepare NanoGPT data
python data/enwik8/prepare.py
python data/shakespeare_char/prepare.py
python data/text8/prepare.py

κΈ°μ€€μ„  생성(nanoGPT κΈ°μ€€)

κΈ°μ€€μ„  생성은 사전 ν•™μŠ΅λ‹¨κ³„λ‘œ source 에 제곡된 3가지 dateset 을 μ°Έμ‘°ν•˜μ—¬ ν•™μŠ΅ν•œλ‹€.

κΈ°μ€€μ„  생성은 1회 μ‹€μ‹œν•œλ‹€

cd templates/nanoGPT && python experiment.py --out_dir run_0 && python plot.py

entwik8, shakespeare_char_input, text8 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ ꡬ체적 λͺ¨λΈ 생성을 μœ„ν•œ κΈ°μ€€μ„  λͺ¨λΈμ„ μƒμ„±ν•œλ‹€

이 κ³Όμ •μ—μ„œ 1번 μ‹€ν–‰ν• λ•Œ μ•½ 3-4μ‹œκ°„ κ°€λŸ‰ μ†Œμš”κ°€ λœλ‹€. GPU, λ©”λͺ¨λ¦¬ λ“± μ‹œμŠ€ν…œ μ„±λŠ₯에 따라 μ‹œκ°„μ°¨μ΄κ°€ 많이 λ‚œλ‹€.

이 κ³Όμ •μ—μ„œλŠ” openAI 의 API λ₯Ό ν™œμš©ν•˜μ§€ μ•ŠλŠ”λ‹€. GPU 의 μ‚¬μš©λŸ‰μ΄ 100%μ—μ„œ μ§„ν–‰λ˜λŠ” 것을 λ³Ό 수 μžˆλ‹€

alt text

반볡 μ‹€ν—˜ ν•™μŠ΅ : λ³Έ ν•™μŠ΅

μƒμ„±λœ κΈ°μ€€μ„  ν•™μŠ΅λͺ¨λΈκ³Ό openAI 와 Semantic schola API λ₯Ό μ‚¬μš©ν•˜μ—¬ 본격적인 ν•™μŠ΅μ„ μ‹€ν–‰ν•œλ‹€.

λ³Έ ν•™μŠ΅μ€ μ½”λ“œμƒ 5회 μ‹€ν–‰λ˜λ©°, λ³Έ ν•™μŠ΅μ΄ μ™„λ£Œλ˜λŠ”λ°λŠ” μ•½ 35μ‹œκ°„ 정도가 μ†Œμš”λœλ‹€

If you use openAI's gpt-4o-xx

python launch_scientist.py --model "gpt-4o-2024-05-13" --experiment nanoGPT --num-ideas 3