간만에 Server 버전을 설치해야할 상황이 생겨서 기록을 남겨보고자 한다.

 

https://ubuntu.com/download/server

 

현재 정확한 버전은 22.04.02 LTS 이다.

Server 버전임에도 용량이 1.8GB 라니 .... 대박이구만...

 

일단 아래 과정은 Windows 10 Host 환경의 VirtualBox 7.0.6 버전에서 진행을 했다.

 

운영체제는 Ubuntu (64-bit) 로 선택해야 한다.

 

VirtualBox - OS

 

지금 필요로 하는 환경이 낮은 Spec이어야 해서 2GB 메모리로만 설정을 했고,

core가 2개 이상이어야 해서 일단 2개로 선택했다.

 

VirtualBox - HW

 

디스크 용량은 어짜피 동적 용량이기에 조금은 여유있게 설정해주는 것이

혹시 모를 나중에 대비해 바람직한 선택이다.

 

VirtualBox - HDD

 

네트워크 설정은 "NAT"를 선택하는 것이 일반적이지만,

여기에서는 "어댑터에 브리지"를 선택해서 Host와 동일한 레벨에서 IP를 받을 수 있도록 하겠다.

(집에서 공유기를 쓰는 환경이라고 하면 공유기로부터 IP를 직접 받도록 하는 것)

 

VirtualBox - Network

 

이제 다운로드 받은 Ubuntu Server ISO 이미지를 등록해서 부팅 및 설치를 진행하자.

별도로 설명하지 않은 부분은 기본 설정으로 진행한 것이다.

 

Ubuntu Server

 

IP도 잘 받아온 것을 볼 수 있다.

 

IP

 

기본이 LVM 이다. 흐음... 그냥 가자.

 

LVM

 

기본 설정은 free 공간을 두는데, 그냥 전체를 다 사용하는 것으로 변경해보자.

 

Before

 

ubuntu-lv 설정을 아래와 같이 잡아주면 된다.

 

edit

 

after

 

OpenSSH server 설치는 필수다!!!

 

OpenSSH server

 

설치가 끝나면 Close 해줘야 한다.

 

Close

 

재부팅 하면 아래와 같이 에러 화면이 나오기도 한다.

걱정하지 말자.

 

cloud-init

 

엔터 한 번 치고

앞에서 입력한 계정 및 패스워드 치면 로그인 된다.

 

login

 

기분 나쁘게 에러 발생한 패키지부터 삭제하자

 

$ sudo apt purge cloud-init

 

sudo 했을 때 패스워드 입력하는게 기분나쁘니(?) 해결하자.

 

$ sudo visudo

 

제일 밑에 아래와 같이 (각자 계정으로) 입력해놓고 저장하면 된다.

 

whatwant ALL=(ALL) NOPASSWD:ALL

 

패키지 전체적으로 업데이트 및 업그레이드 하자.

 

$ sudo apt update

$ sudo apt upgrade

 

아래와 같은 화면이 나올 수 있는데, 그냥 바로 OK 하자.

 

 

필요 없는 것들 지우고 깔끔히 재부팅하자.

 

$ sudo apt autoremove

$ sudo reboot

 

 

Server에서 굳이 한글이 필요할까 싶지만, 그래도 세종대왕님을 생각하며...

 

$ sudo apt install language-pack-ko

$ sudo locale-gen ko_KR.UTF-8

$ sudo dpkg-reconfigure locales

$ sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX

 

locale

 

네트워크 관련 도구들을 사용하기 위해 net-tools 패키지를 설치하자.

 

$ sudo apt install net-tools

 

많이 쓰는 git 패키지도 설치하고, 기본 환경 설정까지 해놓자.

 

$ sudo apt install git

$ git config --global user.name "whatwant"
$ git config --global user.email "whatwant@gmail.com"

 

우리는 한국에 살고 있으니, TimeZone을 맞춰보자.

 

$ sudo timedatectl

               Local time: 금 2023-04-14 16:14:51 UTC
           Universal time: 금 2023-04-14 16:14:51 UTC
                 RTC time: 금 2023-04-14 16:14:51
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

 

정확한 TimeZone 명칭을 확인해보고,

 

$ sudo timedatectl list-timezones | grep Seoul

Asia/Seoul

 

설정해주면 된다.

 

$ sudo timedatectl set-timezone Asia/Seoul

$ sudo timedatectl

               Local time: 토 2023-04-15 01:16:05 KST
           Universal time: 금 2023-04-14 16:16:05 UTC
                 RTC time: 금 2023-04-14 16:16:05
                Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

 

심지어 "System clock synchronized: yes"라고 되어있는 것을 보면 시간 동기화 설정도 이미 되어있다!

 

 

 

개인적인 취향에 따른 설정도 추가적으로 해보자.

 

vi를 싫어하고 nano를 사용하기에 nano 기본 설정값을 넣어보겠다.

 

$ nano ~/.nanorc

 

tab을 공백 4칸으로 설정하는 것이다.

 

set tabsize 4
set tabstospaces

 

root 권한으로 사용하는 경우, 특히 sudo 사용할 때를 위해서 추가적으로... (내용은 동일)

 

 $ sudo nano /root/.nanorc

 

 

지극히 개인적인 취향으로 작업 공간 설정도 해놓겠다.

 

$ sudo mkdir /srv/workspace
$ sudo mkdir /srv/install

$ sudo chown whatwant:whatwant /srv/workspace/
$ sudo chown whatwant:whatwant /srv/install/

 

Server 환경이니만큼 굳이 zsh 등까지는 설치하지 않겠다.

 

 

추가적으로 VirtualBox Guest-Additions를 설치해보자.

GUI 환경이 없기에 생략할 수도 있긴 한데.... 그래도 성능 향상이 있다고 하니 해보자.

 

게스트 확장 CD 이미지

 

우리는 지금 Server 버전의 Ubuntu이기에 직접 마운트 작업을 해줘야 한다 ^^

 

$ sudo mkdir /media/cdrom

$ sudo mount /dev/cdrom /media/cdrom

 

해당 디렉토리로 이동해보자.

 

$ cd /media/cdrom/

$ ls -al

total 41763
dr-xr-xr-x 5 root root     2570  1월 12 01:28 .
drwxr-xr-x 3 root root     4096  4월 15 13:40 ..
-r--r--r-- 1 root root     1049  8월 23  2022 AUTORUN.INF
dr-xr-xr-x 2 root root     1252  1월 12 01:28 NT3x
dr-xr-xr-x 2 root root     2828  1월 12 01:28 OS2
-r--r--r-- 1 root root      592  1월 12 01:28 TRANS.TBL
-r--r--r-- 1 root root  2202917  1월 11 23:38 VBoxDarwinAdditions.pkg
-r-xr-xr-x 1 root root     4225  1월 11 23:35 VBoxDarwinAdditionsUninstall.tool
-r-xr-xr-x 1 root root  5968312  1월 11 23:36 VBoxLinuxAdditions.run
-r--r--r-- 1 root root  9332736  1월 11 23:38 VBoxSolarisAdditions.pkg
-r-xr-xr-x 1 root root 15755216  1월 12 01:27 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x 1 root root  9227840  1월 12 01:08 VBoxWindowsAdditions-x86.exe
-r-xr-xr-x 1 root root   243728  1월 11 23:38 VBoxWindowsAdditions.exe
-r-xr-xr-x 1 root root     6849  1월 11 23:35 autorun.sh
dr-xr-xr-x 2 root root     1468  1월 12 01:28 cert
-r-xr-xr-x 1 root root     5097  1월 11 23:35 runasroot.sh
-r--r--r-- 1 root root      259 10월  2  2021 windows11-bypass.reg

 

Guest-Additions를 설치하기 위해서 필요한 패키지들을 먼저 설치해줘야 한다.

 

$ sudo apt install -y dkms build-essential linux-headers-generic linux-headers-$(uname -r)

 

이제 설치를 진행하면 된다.

 

$ sudo ./VBoxLinuxAdditions.run

 

무슨 이상한 에러메시지가 나올 수 있으나 쫄지 말자.

GUI 환경이 없기에 발생하는 것이다.

 

재부팅하고 잘 설치되었는지 확인까지 해보자.

 

$ sudo reboot

---

$ lsmod | grep vbox

vboxguest             434176  0

$ modinfo vboxguest

filename:       /lib/modules/5.15.0-69-generic/misc/vboxguest.ko
version:        7.0.6 r155176
license:        GPL
description:    Oracle VM VirtualBox Guest Additions for Linux Module
author:         Oracle and/or its affiliates
srcversion:     55B45B43FE1759D12174E93
alias:          pci:v000080EEd0000CAFEsv00000000sd00000000bc*sc*i*
depends:
retpoline:      Y
name:           vboxguest
vermagic:       5.15.0-69-generic SMP mod_unload modversions

 

여기까지~ 끝~

반응형

ChatGPT의 인기에 힘입어

이제는 AI/ML을 공부하지 않는 분들도 누구나 알고 있다는 트랜스포머(Transformer)

 

너무나 훌륭한 공부 자료들이 많기에

여기에서는 그 자료들을 알아보도록 하겠다.

 

 

1. Paper

- "Attention Is All You Need"

  . https://arxiv.org/abs/1706.03762#

- 2017년도에 Ashish Vaswani 외 7명이 작성한 15 pages, 5 figures 구성된 논문

  . 논문에 포함된 그림의 수준이 정말 '역시 구글'이다.

 

model architecture

 

 

2. Review

- [딥러닝 기계 번역] Transformer: Attention Is All You Need (꼼꼼한 딥러닝 논문 리뷰와 코드 실습)
  . https://www.youtube.com/watch?v=AA621UofTUA 

  . 구독자가 16만명이 넘는 "동빈나"님의 멋진 리뷰

 

- Transformer 외에도 나동빈님의 많은 리뷰들이 담겨있다.

  . https://github.com/ndb796/Deep-Learning-Paper-Review-and-Practice#natural-language-processing-자연어-처리

 

 

동빈나 - Transformer 리뷰

 

- Code Practice

  . https://github.com/ndb796/Deep-Learning-Paper-Review-and-Practice/blob/master/code_practices/Attention_is_All_You_Need_Tutorial_(German_English).ipynb 

  . 위 링크에서 "Open in Colab"을 선택하면 Colab을 통해서 실행해볼 수 있다.

  . "Drive로 복사" 선택

Colab

 

  . 오래 전에 만들어진 코드이다 보니 지금 실행하면 맞지 않는 부분이 있으니 아래와 같이 수정하자.

import spacy

# spacy_en = spacy.load('en') # 영어 토큰화(tokenization)
# spacy_de = spacy.load('de') # 독일어 토큰화(tokenization)

spacy_en = spacy.load('en_core_web_sm')
spacy_de = spacy.load('de_core_news_sm')

 

 

3. More Detail

- 트랜스포머(Transformer) 심층 분석

  . https://wandb.ai/wandb_fc/korean/reports/-Transformer---Vmlldzo0MDIyNDc
  . 아래와 같이 몇 몇 부분에 대한 개선 방안을 엿볼 수 있다.

 

 

sample

 

- Transformer Positional Encoding

  . https://hongl.tistory.com/231

  . Positional Encoding에서 사용되는 sin/cos 함수에 대한 고찰

 

Transformer Positional Encoding

 

- Tensorflow 공식 가이드

  . https://www.tensorflow.org/text/tutorials/transformer?hl=ko

 

tensorflow

 

  . Colanb에서 실행을 선택하면 아래와 같이 예쁘게 표현된 encoder-decoder 애니메이션을 볼 수 있다.

 

encoder-decoder

 

 

4. Visualize

- Jay Alammar: The Illustrated Transformer

  . https://jalammar.github.io/illustrated-transformer/

 

The Illustrated Transformer

 

 

5. Extra

- Hugging Face

  . https://huggingface.co/

  . 자연어 처리를 공부/활용하는 분이라면 누구나 아는 그 곳

 

Hugging Face

 

- Transformers (신경망 언어모델 라이브러리) 강좌

  . https://wikidocs.net/book/8056

  . Hugging Face 사용법을 배울 수 있는 너무나 좋은 교재

 

Transformer 강좌

 

- Transformers.js

  . 트랜스포머를 브라우저에서 실행할 수 있도록 해주는 JS

  . https://xenova.github.io/transformers.js/

  . BERT, ALBERT, DistilBERT, T5, T5v1.1, FLAN-T5, GPT2, BART, CodeGen, Whispe 등 지원

 

Transformer.js

 

여기까지~

반응형

ChatGPT로 온세상이 떠들썩하다.

얼마전 발표한 GPT-4는 어지간한 인간보다 더 똑똑하다고 난리다.

 

이런 GPT와 같은 언어 모델의 바탕이 되는 것이 바로 트랜스포머(Transformers)이다.

 

과거(?) 딥러닝을 공부한다고 하면

이미지 처리를 위한 CNN 계열들 공부하고, 시계열 데이터를 다루기 위한 RNN 계열들 공부하고...

나중에 가면 음성처리 하던지 이미지 디텍션이라던지 하는 도메인별 특성에 따른 연구/공부를 하곤 했는데,

요즘은 그냥 무조건 그 끝은 전부 트랜스포머이다.

 

음성처리와 같은 것들도 그냥 End-to-End Model을 트랜스포머로 구성하곤 한다.

 

말 그대로 그냥 닥치고 트랜스포머인 세상이다.

 

표지

 

NLP를 공부하면서 Transformer를 공부한다고 하면

논문부터 찾아서 encoder가 어쩌고 decoder가 어쩌고 Self-attention이 뭐고.... 공부를 하곤 하는데,

 

우리가 직접 GPT 같은 것을 만들어야 한다면 이런 공부가 필수이겠지만

OpenAI와 같은 충분한 인력과 자본이 없다면

지금 우리에게 필요한 것은 활용이다.

 

초판

 

원서를 찾아보면 2022년 1월에 초판이 나왔고, 22년 5월에 Revised Color Edition이 나왔다.

번역본은 아마도 22년 5월에 나온 Revised Edition을 기반으로 했을테니, 아직은 1년이 되지 않은 책이다 ^^

 

옮긴이

 

옮긴이는 개인적으로 너무나 좋아하는 박해선님이다.

박해선님의 책은 무조건 추천!!! 와아~~~!!!

 

NLP 성장 동력

 

NLP 혁명의 성장 동력은 트랜스포머, 사전 훈련한 모델, 허깅페이스의 3가지라고 한다.

 

저자 자랑

 

결국은 책 자랑인데 ^^

트랜스포머 개발자와 허깅페이스 개발자들이 모여서 책을 썼으니

이 책은 킹왕짱 !!!

 

거기에다가 옮긴이가 박해선님이라니 !!!

정말 울츠라 슈퍼 초 킹왕짱 !!!

 

대상 독자

 

이 책은 절대 입문서가 아니다.

그리고 활용을 주 목적으로 한다.

 

예제 코드

 

위의 3개 사이트는 그냥 그런게 있다라고 하면 된다.

그런데, 3번째로 나와있는 '페이퍼스페이스 그레이디언트 노트북'이라는 곳은

처음 듣는 것이라 접속을 해봤더니 '404'로 페이지를 찾을 수 없었다.

 

- https://www.paperspace.com/gradient/notebooks

 

위 주소로 접속할 수 있었는데, 뭐 사실 그냥 구글 코랩이면 충분하지 싶다 ^^

 

github

 

박해선님의 책을 좋아하는 이유는 정말 정말 충실한 예제 코드 제공이다.

꼼꼼히 직접 실행해보시며 만들어주시는 예제는 정말 정말 애정이다.

 

타임라인

 

정말 긴 시간인 것 같지만 Transformer가 세상에 나온지는 얼마되지 않았다.

그리고 InstructGPT/GPT-3.5 이어서 얼마전 나온 GPT-4까지 ...

 

전이 학습

 

허깅페이스를 활용해서 우리가 해볼 것은 위와 같은 전이 학습이다.

 

허깅페이스

 

허깅페이스를 통해 데이터셋을 다운로드 받을 수 있다.

별것 아닌 것처럼 보이지만, 정말 편리하다.

 

결론

 

각 챕터의 뒷 부분에는 위와 같은 결론을 제공해준다.

그냥 단순한 summary가 아니라 참고 자료도 제공해주고, 어떤 의미가 있는지도 친근하게(?) 정리해준다.

 

아키텍처

 

흔하게 볼 수 있는 이미지가 아니라,

나름의 방법으로 표현된 아키텍처를 볼 수 있어서 좋았다.

 

 

이 책을 살펴보면서 느낀점은 다음과 같다.

딥러닝 공부를 하면서 트랜스포머가 무엇인지 맛을 본 분들에게 활용에 대해서 안내해주는 친절한 가이드.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

반응형

우연히 보게된 노마드 코더(Nomad Coders)의 유튜브.

파이썬 코드만가지고 JS, React, NextJS 인터랙티브 웹앱을 만들어주는 프레임워크가 나타났단다.

 

 

최근 정말 많은 주목을 받고 있는 오픈소스 프로젝트인 것은 분명한 것 같다.

 

https://pynecone.io/

 

Pynecone: The easiest way to build web apps.

Completely customizable. All Pynecone components are fully customizable. Change the colors, fonts, and styles to match your project. Styling guide ->

pynecone.io

 

발음이 같은 'pinecone'을 상징하는 솔방울을 로고로 사용하고 있다 ^^

 

공식 웹사이트도 Pynecone을 사용해서 만들었다고 한다.

왠지 Unix is Not Unix 같은 느낌인데!? 아닌가?! ^^

 

 

Pynecone은 파이썬으로 작성한 코드를

React/NextJS로 컴파일을 하는 방식이기에 성능이 뛰어나며 그래서 node를 필요로 하고 있다.

 

보다 더 나은 성능을 위해 node를 bun으로 교체하는 작업을 하고 있지만

아직 100% 호환성을 보장하지 못하기에 당분간은 node를 계속 필요로 할 것이라고 한다.

 

 

서두가 길었다.

이제 직접 한 번 사용해보자.

 

 

이하 과정은 다음 링크의 내용을 따라갔다.

- https://pynecone.io/docs/getting-started/installation

 

 

0. PoC Environment

  - 이하 과정을 진행한 환경은 Ubuntu 20.04 64bit Desktop 이다.

 

 

2. Prerequisites

  - Python 3.7+

  - NodeJS 12.22.0+

 

  ① Python 여러 버전을 관리할 수 있는 pyenv 기반으로 설치해보자.

    . https://www.whatwant.com/entry/pyenv

    . 설치한 버전은 다음과 같이 했다.

      - v3.8.16

 

  ② node 설치도 여러 버전을 관리할 수 있는 nvm 기반으로 설치를 진행해보자.

    . https://www.whatwant.com/entry/npm

    . 설치한 버전은 다음과 같이 했다.

      - v18.15.0   (Latest LTS: Hydrogen)

 

 

3. Virtual Environment

  - Optional 이라지만, 사실 필수이지 않을까 싶다.

❯ cd ./workdir

❯ python -m venv .venv

source .venv/bin/activate

 

 

4. Installing

  - 이제 pynecone 설치하면 된다!

 pip install pynecone

 

 

5. Create a Project

  - 일단 프로젝트 생성하는 방법부터 알아보자.

 mkdir my_app_name

 cd my_app_name

 pc init

 

 

6. Run the App

  - 일단 한 번 띄워보자.

 pc run

 

  - 브라우저로 확인해보자.

 

 

 

7. Edit

  - 본문을 살짝 살펴보자.

❯ nano my_app_name/my_app_name.py

  - 눈꼽만큼 변경해보자.

"""Welcome to Pynecone! This file outlines the steps to create a basic app."""
from pcconfig import config

import pynecone as pc

docs_url = "https://pynecone.io/docs/getting-started/introduction"
filename = f"{config.app_name}/{config.app_name}.py"


class State(pc.State):
    """The app state."""

    pass


def index() -> pc.Component:
    return pc.center(
        pc.vstack(
            pc.heading("Welcome to WHATWANT!", font_size="2em"),
            pc.box("Get started by editing ", pc.code(filename, font_size="1em")),
            pc.link(
                "Check out our docs!",
                href=docs_url,
                border="0.1em solid",
                padding="0.5em",
                border_radius="0.5em",
                _hover={
                    "color": "rgb(107,99,246)",
                },
            ),
            spacing="1.5em",
            font_size="2em",
        ),
        padding_top="10%",
    )


# Add state and page to the app.
app = pc.App(state=State)
app.add_page(index)
app.compile()

 

  - 포트도 변경하고, debug log도 찍어보자.

❯ pc run --port 8282 --loglevel debug

 

  - http://localhost:8282/

 

 

8. Fast Refresh

  - Pynecone은 실시간으로 변경 사항이 반영된다.

  - 웹브라우저가 띄워져 있는 상황에서, 다른 터미널로 파일을 수정해보자.

❯ nano my_app_name/my_app_name.py

 

  - 파일을 수정한 뒤, 저장을 하면 조금 있다가 브라우저에 자동으로 페이지 내용이 변경된다.

 

 

 

일단 여기까지 살짝 맛만 봤고

시간이 나면 다음 단계로 넘어가보겠다. (시간이 날까?! ^^)

 

반응형

 

AI로 그린 그림이 엄청나게 유행이다.

카툰과 같은 그림 뿐만 아니라 이제는 사진과 같은 실사 느낌의 그림까지 나오고 있다.

 

best-inventions-2022-OpenAI-DALL-E-2

 

AI 그림이라는 것은

자연어 서술로부터 이미지를 생성하는 Machine-Learning 모델로 만들어진 것을 의미하는데,

 

요즘 ChatGPT 라는 것으로 이제는 누구나 알게 된 OpenAI라는 곳에서 개발(?)한

DALL·E 2로 인해서 AI로 그린 그림이 유명해지게 되었고

 

2022년 콜로라도의 미술대회에서 1등을 차지한 그림이

Midjourney 라는 ML 모델로 만들어진 것이라는 것이 밝혀지면서 엄청난 논란이 되었었다.

 

Midjourney

 

이렇게 AI로 그림 그리는 것이 엄청난 유행을 하고 있는데,

명색이 IT로 밥 값을 벌고 있는 입장에서 직접 한 번 다뤄봐야 하지 않을까?!

 

 

 

DALL·E 2, Midjourney 와 같은 모델들은 모두 상용으로 서비스 되고 있다.

하지만, 우리가 원하는 것은?! 오픈소스!!!

 

 

https://github.com/CompVis/stable-diffusion

 

Stable-Diffusion

 

Stable-Diffusion은 2022년 8월에

Stability AI에서 오픈소스 라이선스로 배포한 text-to-image 인공지능 모델이다.

 

오픈소스이지만 상용 모델 못지 않은 성능을 보여주며

더더군다나 비교적 낮은 컴퓨팅 파워 환경에서도 구동이 가능하다 !!!

 

 

그리고, 오픈소스 프로젝트로 공개되었다보니

이를 기반으로 파생된 정말 유용한 프로젝트들이 정말 많다.

 

 

https://github.com/AUTOMATIC1111/stable-diffusion-webui/

 

Stable Diffusion web UI

 

CLI 방식이 아니라 웹 기반의 Interface를 이용해

Stable Diffusion 모델을 편리하게 사용할 수 있도록 만들어 주는 프로젝트이다.

 

그리고 여기에 덧붙여서

Colab에서 구동 가능하도록 해주는 프로젝트도 있다!!!

 

 

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Online-Services

 

Online Services - Colab

 

위 목록 중에서 camenduru를 선택해보자.

 

https://github.com/camenduru/stable-diffusion-webui-colab

 

 

https://github.com/camenduru/stable-diffusion-webui-colab

 

Jupyter Notebook 형태로 제공해주고 있는데,

어떤 것을 선택하면 좋을지는 README 를 참고하면 된다.

 

colab

 

카툰 스타일 보다는 실사와 같은 것들을 해보고 싶어서 "dreamlike-photoreal-2.0"을 선택해 보았다.

Huggingface에 있는 설명들을 참고하자.

 

https://huggingface.co/dreamlike-art/dreamlike-photoreal-2.0

 

음... 뭔지는 잘 모르겠지만

Stable-Diffusion 1.5 버전을 기반으로 해서 만들어진 사진과 같은 이미지를 생성하는 모델이란다.

 

이런 것들을 만들 수 있단다.

 

example

 

그러면, 원하는 모델에 있는 "Open in Colab" 아이콘을 클릭하자.

 

link

 

Colab에서 열리고 나면, "Drive에 사본 저장" 메뉴를 통해 복사해놓자.

 

Drive에 사본 저장

 

상단에 "노트북 설정"을 할 수 있다고 나오는데, 링크를 클릭하자.

 

비공개 출력

 

설정창이 열렸으니

'하드웨어 가속기' 부분에서 GPU를 선택하고

하단에 있는 체크 박스 부분도 설정 해제해놓자.

 

셀 출력

 

위 설정창은 "런타임 유형 변경" 메뉴로도 설정 확인 및 변경 가능하다.

 

런타임 유형 변경

 

자~ 이제 준비는 다 되었다.

런타임 연결(실행)하자.

 

연결중

 

그리고 코드를 실행하면 된다.

 

실행

 

엄청 오래걸리니 (5분~10분 사이) 그동안 유용한 사이트 하나 가입하자.

 

https://civitai.com/

 

https://civitai.com/

 

AI 그림들을 자랑하고 공유하는 곳이다.

 

Tifa

 

따라해보고 싶은 그림이 있으면 그림 오른쪽 하단에 있는 ⓘ 부분을 눌러보면 된다.

 

prompt

 

그러면, 어떤 Prompt, Parameter로 만들었는지 정보를 얻을 수 있다.

 

text-to-image 모델에서 그림을 그리기 위해 사용한 text를 "prompt"라고 지칭한다.

원하지 않는 내용에 대한 설명(text)는 "negative prompt"라고 한다.

 

또한, 원하는 그림에 대한 설명 외에

어떤 sampler인지, Random 함수에 대한 Seed 값이라던지 하는 온갖 설정값들 정보도 중요하다.

 

 

이쯤 했으면 Colab 실행 완료되었을테니, 계속 이어서 진행해보면 ...

 

URL

 

잘 실행이 되었으면, 위와 같은 URL 정보가 보일 것이다.

가운데에 있는 "*.gradio.app" URL을 선택해서 클릭하면 창이 뜰 것이다.

 

Run

 

와우!!!

나만의 AI 그림 생성기가 나타났다 !!!

 

 

어떻게 사용하면 되는지도 알아볼 겸해서, 남들이 만들어 놓은 것을 참조해보자.

CIVITAI에서 우리가 선택한 "dreamlike photoreal 2.0"을 검색해보자.

 

dreamlike photoreal 2.0을 이용해서 만들어진 그림을 찾기 위함이다.

 

Dreamlike Photoreal 2.0

 

찾은 다음에 마음에 드는 이미지 하나 선택해서 ⓘ를 클릭해서 정보를 확인해보자.

 

sample

 

Prompt, Negative prompt를 비롯해서 Sampling Steps, Sampling method, CFG Scale, Seed 값 등도 모두 넣어주자.

 

generate

우와~~~!!! 나온다 !!!

 

당연하게도 완전히 똑같은 그림이 나오지는 않지만, 얼추 비슷한 이미지가 나온다.

 

 

 

이제, 시간과 정신의 방으로 갈 시간이다.

다양하게 이것 저것 바꿔보면서 만들다보면 ... 날짜가 바뀌어 있을 것이다 ^^

 

반응형

제가 정말 정말 좋아하는 번역자이자 작가이신 박해선님이 내놓은 또 하나의 역작이 나왔다.

 

"혼자 공부하는 데이터 분석 with 파이썬"

 

 

요즘은 딥러닝 모델에 대해서 공부하는 것 보다

데이터 분석하는 것이 더 많이 유행하고 있는 듯 하다.

 

이런 분위기에 정말 딱 맞게 나온 책이 아닌가 싶다.

 

우리 회사에서도 DS 인증 프로그램을... @.@

 

 

박해선님은 번역하신 책이든, 직접 작성하신 책이든 항상 정성이 가득하다.

 

실습 내용도 하나 하나 모두 직접 업데이트 해주시고

Youtube로 강의도 제공하여 주시고, 심지어 오픈채팅까지도 운영해주신다니...

 

 

무려 13개의 강의 동영상을 제공해주신다!

- https://www.youtube.com/playlist?list=PLVsNizTWUw7FGzSRCkQrPEEe-ljVXgS7k 

 

 

직접 물어보고 대답을 들을 수 있는 카카오 오픈채팅 !!!

- https://open.kakao.com/o/gBF5aQ1c

 

 

1월 2일, 새해가 시작하자마자 1쇄 발행을 하다니... 너무 한 것 아닌가?! ㅋㅋㅋ

 

 

박해선님은 항상 도식화를 좋아하시는 것 같다 ^^

 

 

딥러닝 모델링에 대해서 공부하려면 수학이 발목을 잡는 것 처럼

데이터 분석에 대해서 공부하려면 파이썬이 발목을 잡는다.

 

발목 잡히지 않으려면 시간을 들여서 제대로 파이썬을 공부해놓는 것이 좋다.

 

 

도식화, 로드맵을 정말 좋아하시는 박해선님! ^^

 

 

오해하면 안된다.

"이 도서가 얼마나 인기가 좋을까요?"는 정말 이 책에 대한 것이 아니라

데이터 분석의 첫 번째 예제일 뿐이다 ^^

 

 

박해선님은 그림도 잘 그리신다~ ^^

 

 

ML/DL

머신러닝과 딥러닝이 막 알려지면서 사람들이 공부를 시작할 때에는

DS(Data Science, 데이터 과학)에 대한 영역이 대중적으로 정착되지 않았었다.

 

지금은 Data Scientist, Data Engineer 직종이 정착된 것 같다.

외부에서 만나는 많은 분들이 "저는 OO에서 데이터 사이언스로 일하고 있어요"라고 하고 있다는...

 

 

책 구성을 보면 정말 정성 가득함이 엿보인다.

 

 

이 책을 보다가 새롭게 배운 지식

 

"Data Analytics(데이터 분석) vs. Data Science(데이터 과학)"

 

 

음 ... 이 정도면 ... Full Stack ... 만능 아닌가 ?!

 

 

Summary 까지 꼼꼼하게 되어 있다.

 

 

혼자서, 또는 다같이 공부할 수 있도록 "확인 문제"도 제공해준다.

주관식은 너무 어렵다는...

 

 

직접 실습을 해볼 수 있도록 GitHub 저장소도 제공해주고, 설명도 친절히 해준다.

 

 

링크까지 꼼꼼히 제공해주는 박해선님!!!

 

 

리뷰 때문에 살펴보다가 알게된 정말 꿀팁 !!!

 

정부 주도로 진행한 데이터들일텐데,

요즘 시대에 아직도 Euc-KR 형식으로 만들어진 데이터 볼 때마다 정말 ... 에휴 ... 할말하않 !!!

 

 

 

이 책은 뭐 두말할 필요 없이 무조건 추천한다.

 

박해선님이 지은 책이라는 것 만으로도 추천하지만,

책 내용 및 책 외부적으로 제공되는 컨텐츠 모두 정말 정성 가득한 책이다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

반응형

 

GitHub Pages 기능을 이용한 개인 포트폴리오 웹서비스를 해보려고

이것 저것 알아보던 중 몇 가지 템플릿을 찾았는데

 

사용법에 등장한 'npm'

 

"응?! npm을 설치해야겠구만!"

 

 

'npm'의 약자는 'Node Package Manager'이다.

 

즉, node.js 기반으로 미리 잘 만들어진 패키지들을 사용하고 싶을 때

의존성 있는 패키지들을 설치하려면 npm을 이용하면 된다.

 

 

다른 프로그래밍 언어들도 각자 나름의 패키지 매니저가 있다.

Language Package Manager
Ruby Gem
PHP Composer
C# NuGet
Java Jpm
Python pip

 

다시 npm 이야기로 돌아와서

node와 npm이 짝궁이라면 node만 설치해도 npm이 같이 설치가 된다는 말인데,

node를 설치하려고 봤더니 정말 다양한 버전의 node가 있다.

 

 

상황에 따라 여러 버전의 node를 사용하게 된다는 것인데,

하나의 시스템에서 여러 버전의 node를 사용하려면 귀차니즘이 발동할 수 있다는...

 

 

그래서, 여기저기 기웃거리다가 찾게된 'nvm'

 

'nvm'의 약자는 'Node Version Manager'이다.

 

 

 

nvm 저장소 주소는 다음과 같다.

  - https://github.com/nvm-sh/nvm

 

nvm

 

 

'nvm' 설치 방법은 다양하게 제공되고 있고

일반적으로는 'curl' 명령어를 이용해서 install script를 실행하는 방식을 가이드하고 있다.

 

하지만, 여기에서는 개인적인 취향으로

깔끔하게 git clone 받아서 직접 설치하는 방법으로 결정했다.

  - https://github.com/nvm-sh/nvm#git-install

 

 

이하 과정은 Ubuntu 20.04 LTS 환경에서 진행했다.

 

❯ git clone https://github.com/nvm-sh/nvm.git ~/.nvm

❯ cd ~/.nvm

git switch -c v0.39.3 tags/v0.39.3

 

개인적으로 zsh을 사용하고 있으므로 이를 기준으로 해서 후속 작업 진행했지만,

bash를 사용하는 경우에도 동일한 과정이다.

 

❯ nano ~/.zshrc

 

...
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

 

위의 내용을 추가해주고, 터미널 재시작하면 'nvm' 명령어를 먹는다.

 

❯ nvm --version
0.39.3

 

nvm에서 설치 가능한 node version 목록을 확인하고 싶다면 다음 명령어를 사용하면 된다.

 

❯ nvm ls-remote

 

최신 버전의 node를 설치하려면 다음 명령어를 통해 가능하다.

 

❯ nvm install node
Downloading and installing node v19.3.0...
Downloading https://nodejs.org/dist/v19.3.0/node-v19.3.0-linux-x64.tar.xz...
####################################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v19.3.0 (npm v9.2.0)
Creating default alias: default -> node (-> v19.3.0)

❯ node --version
v19.3.0

 

특정 버전의 node는 다음과 같이 설치할 수 있다.

 

❯ nvm install 14.7.0
Downloading and installing node v14.7.0...
Downloading https://nodejs.org/dist/v14.7.0/node-v14.7.0-linux-x64.tar.xz...
####################################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v14.7.0 (npm v6.14.7)

❯ node --version
v14.7.0

 

앞에서 설치한 버전으로 변경하고자 한다면 다음과 같이 할 수 있다.

 

❯ nvm use node 19.3.0
Now using node v19.3.0 (npm v9.2.0)

❯ node --version
v19.3.0

 

어디에 설치되어 있는지(실행 파일의 위치를) 확인하고 싶다면 다음과 같이 하면 된다.

 

nvm which 19.3.0
/home/chani22/.nvm/versions/node/v19.3.0/bin/node

 

어?! 여기서 잠깐 !!!

우리가 지금 여기까지 진행한 이유는 npm 설치를 하려던 것이다. npm을 확인해보자.

 

❯ node --version
v19.3.0

❯ npm --version
9.2.0

❯ nvm use node 14.7.0
Now using node v14.7.0 (npm v6.14.7)

❯ node --version
v14.7.0

❯ npm --version
6.14.7

 

중간에 node 버전을 변경해봤더니, npm도 버전이 바뀌었다는 것을 볼 수 있었다.

 

 

여기까지 해서 마무리~!!!

반응형

'Programming > Web' 카테고리의 다른 글

Vite로 React 앱 만들기  (0) 2024.11.07
백엔드 프레임워크 - KeystoneJS  (1) 2023.07.13

 

최근 회사에서 Data Science 교육을 받고 있는데,

마침 그에 알맞는 책을 리뷰하게 되었다.

 

표지

 

Machine-Learning 공부할 때에도 만났었고

Data-Mining 공부할 때에도 만났었는데,

이번에 Data-Science를 공부할 때 또 만났다.

 

징그러운 베이지안 !!!

 

2판

 

초판(1판)이 2014년도에 출간 되었었는데,

2판이 8년만에 2022년 6월에 출간되었다.

 

우와~ 역사가 오래된 책이네...

그렇다는 것은, 베이지안 공부가 필요한 사람이 여전히 꾸준히 많다는 것이겠지.

 

원서의 경우에도 1판은 2013년도에 출간되었고,

2판은 2011년에 출간되었다.

 

대상

 

이 책으로 공부하기 위해서 필요한 것은 오직 "파이썬" !!!

 

목차

 

책 제목에 "베이지안"이 써있다고 해서

"베이지안"에 대해서만 설명하는 책은 아니다.

 

확률, 분포, 포아송, 의사결정분석, 로지스틱 회귀 ...

필요한 것들 다~ 있다 ^^

 

본문

 

친절한 설명과 함께 실행 결과도 예쁘게 보여준다.

 

요약

 

뒷 부분에는 친절하게 요약까지 해주고 있다.

 

연습문제

 

심지어 연습문제도 있다.

 

혼자서 공부하기에도 좋고

스터디로 진행하기에도 좋고

교재로 사용하기에도 좋다.

 

 

더더욱 멋진 것은... 책이 무료 공개되어있다.

http://allendowney.github.io/ThinkBayes2/index.html

 

eBook

 

심지어 친절하게 PDF 다운로드 링크까지도 제공해준다.

 

 

소스코드도 제공된다.

https://github.com/AllenDowney/ThinkBayes2

 

GitHub

 

솔직히 영어 부담만 없다면,

PDF보다 이렇게 노트북으로 보는게 훨씬 더 좋을 것 같다.

 

하지만, 우리는 한글을 사용하는 민족 !!!

일단 책 구매하고

제공되는 리소스들을 이용해서 훨씬 더 열심히 공부하면

몇 배 더 효율적으로 배울 수 있다 !!!

 

 

이 책 말고도

저자 Allen B. Downey님은 쓰신 책들을

무료로 제공해주고 있다.

 

Green Tea Press

https://greenteapress.com/wp/

 

 

파이썬 언어를 가지고 데이터싸이언스 공부를 하신다면

기본 교재로 추천합니다!

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

반응형

+ Recent posts