Google Colab을 사용하려면

Chrome 같은 브라우저를 실행하고 https://colab.research.google.com/ 사이트에 방문해야만 한다.

 

그런데, Colab을 그냥 내 PC에 설치된 VS Code에서 바로 사용할 수 있다면 얼마나 편하고 좋을까 ?!

그 방법을 알아보자 !!!

 

[ Google Colab is Coming to VS Code ]

25년 11월 13일에 구글에서는 새로운 VS Code Extexsion을 공개했다.

- https://developers.googleblog.com/en/google-colab-is-coming-to-vs-code/

 

 

귀염뽀짝한 하트가 눈길을 붙잡네!? 😅

 

구글에서 공식 배포하고 있으면서 별이 4.5개나 되는 괜찮은 평가를 받고 있는 extension 이다.

https://marketplace.visualstudio.com/items?itemName=Google.colab

 

 

공개 발표만 하고 버려둔 프로젝트가 아니라

아직 상당히 활발하게 계속 기능 추가 등 개발이 이루어지고 있다.

 

[ Install ]

VS Code가 설치되어 있다면, 편하게 extension을 설치할 수 있다.

Marketplace에서 `colab` 검색해서 설치하면 끝이다.

 

 

Jupyter Notebook 파일 하나 만들어서 불러오면 바로 살펴볼 수 있다.

 

 

그런데, 바로 사용할 수 있는 것은 아니고

어떤 kernel을 사용할 것인지 선택을 먼저 해야 한다.

 

kernel이 뭐냐면 작성한 코드를 실행해주는 환경을 의미한다.

 

[ Kernel - Local ]

먼저, 내 PC에 설치된 kernel로 선택하는 것에 대해서 알아보자.

 

`Select Kernel`을 선택하면 나오는 메뉴에서 `Python Environments…` 항목을 선택하자.

 

 

`Create Python Environment` 항목을 선택하면 새로운 Python 가상환경을 구성하도록 해주지만,

지금은 일단 전역 환경(Global Environment)으로 되어 있는 Python을 선택하자.

 

 

Colab 환경에서는 ipykernel 패키지가 필요하다.

 

 

이렇게 하면 로컬 환경에서 Colab 인터페이스를 사용할 수 있게 되지만,

사실 우리가 원하는 것은 로컬 환경이 아니라 구글의 Colab 환경을 사용하려는 것이니... 😍

 

[ Kernel - Colab(CPU) ]

kernel 부분을 클릭하면 다시 Kernel을 선택하는 메뉴가 나온다.

`Select Another Kernel...` 항목을 선택하자.

 

 

`Colab`을 선택해보자.

 

 

`Auto Connect`를 선택해보자.

 

 

Colab 인증이 필요하기에 많은 팝업창들이 뜰 것이다. 진행하면 된다.

 

 

인증 및 권한 허용을 모두 마쳤으면, `Python 3(ipykernel)`을 선택하자.

 

 

지금 내가 선택한 것이 Colab 것인지 의심이 간다면,

kernel 부분을 선택하면 확인 된다.

 

 

어?! 그런데 사실 Colab을 사용하는 중요한 이유 중의 하나는 GPU를 사용해보기 위해서인데 ...

 

 

지금 환경은 CPU 환경인 것이다 !!!

 

[ Kernel - Colab(GPU) ]

GPU를 사용할 수 있는 Kernel로 바꿔보자.

Kernel 부분을 클릭 후 `Select Another Kernel...` 항목을 선택하자.

 

 

`Colab`을 선택

 

 

이번에는 `New Colab Server` 항목을 선택해야 한다.

 

 

`GPU - T4`를 차례대로 선택하면 된다.

 

 

이렇게 만들고 있는 server의 별칭을 지어주면 된다. 귀찮으면 그냥 바로 엔터 !

 

 

이렇게 만들어진 GPU server의 kernel을 선택해주면 된다.

 

 

`!nvidia-smi` 실행해보면 GPU가 붙어 있는 리소스임을 알 수 있다.

 

 

이제, 마음껏 GPU 가지고 놀면 된다 !!!

 

[ File in Colab ]

그런데, 가지고 놀던 중 이상한(?) 상황을 만나게 되었다.

 

Notebook이 있는 디렉토리에 같이 있는 파일을 인식을 못하는 것이다.

 

 

Notebook 파일이나 텍스트 파일은 현재 로컬에 위치하고 있지만

코드를 실행하고 있는 kernel은 원격에 있는 Colab의 것을 사용하고 있기에 맞지 않는 것이다.

 

[ Settings of Colab extension ]

Colab extension의 Settings 항목을 살펴보자.

 

 

아직 한창 개발 중이라서 그런 것인지 대부분의 옵션이 Experimental 항목이다.

 

 

Terminal, Uploading 항목을 활성화 하자.

 

[ Uploading ]

직관적이다 !

로컬에 있는 파일에 오른쪽 버튼 메뉴를 살펴보면, `Upload to Colab` 항목이 있다. 선택 !

 

 

이제는 정상 동작 한다.

 

 

정말 파일이 있는지 확인해보자.

 

 

기본 파일 위치는 `/content` 디렉토리 밑이다.

업로드 잘 되어 있는 것이 보인다.

 

[ Terminal ]

Colab에 있는 server의 terminal에 접근해보자.

상단에 있는 메뉴 버튼 중 가운데에 있는 `Colab`을 선택해보자.

 

 

팝업으로 나오는 메뉴 중 `Open Terminal` 항목을 선택해보자.

 

 

서버가 한 대 생겨버렸다 !!!

 

 

정말 괜찮은 extension을 하나 찾은 것 같다.

회사에서도 사용할 수 있으면 좋겠는데 ... 집에서라도 잘 갖고 놀아야겠다.

반응형

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

 

 

LLM을 현업에서 사용한다고 하면 다들 우려하면서 말하는 것이 바로 "hallucination(환각)" 현상이다.

 

실무에서는 예측 가능한 것이 중요하고, 정확한 것이 중요한데

LLM 특성상 확률로 결정되는 부분들이 있기에 예상을 벗어난 답변을 할 수도 있고

정확하지 않은 것을 사실인 것 처럼 말할 수도 있는 것이다.

 

LLM 자체가 확률을 기반으로 하기에 "hallucination(환각)"을 완전히 없앨 수는 없겠지만

어떻게 하면 줄일 수 있는지 그 방법을 배워야만 하는 것이다.

 

 

"프롬프트 엔지니어링"이라는 제목을 보고

처음에는 ChatGPT와 같은 웹 화면에서 프롬프팅을 하는 것을 예상했는데,

 

이 책은 표지에 hint가 있는 것처럼 LLM API를 사용하는 과정에서의

프롬프트 엔지니어링을 설명해주고 있다.

 

그리고 고맙게도 OpenAI API 뿐만 아니라 Gemini API까지 같이 언급해주고 있어서 실습을 할 때에 마음이 편했다.

 

사실 공부하면서 API 사용하는 것 정도는 커피값 정도 밖에 안되기에 객관적으로는 별 부담이 아닌데

희한하게 OpenAI API 사용하다보면 뭔가 엄청 부담스럽다(나만 그런가!? ^^).

 

소심한 나로써는 우리 구글님께서 제공해주는 Gemini API를 사용하는 것도 챙겨준 저자가 참 고맙다. 

 

 

책에서 추천하는 실습 환경은 "Colab + OpenAI API" 이기 때문에,

사전에 어느 정도 파이썬 프로그래밍에 대해서는 경험해본 사람을 추천한다.

 

처음에 좀 당황스러운 것은 구글 드라이브 주소를 하나씩 타이핑을 해야하는.... 그래서 나는 친절하게 링크를 !!!

- https://drive.google.com/drive/folders/12-NIX1ks8o5bMzCTGRrkE1GphwTq6K3A

 

 

GitHub 주소도 같이 링크를 남겨본다.

- https://github.com/KennethanCeyer/robust-prompting-notebooks

 

 

실제 노트북 코드를 보면 아래와 같다.

 

 

실제 돌려보면 아래와 같이 잘 나온다.

 

 

현업 업무에서 AI Agent 또는 챗봇 같은 것을 개발하다보면

주어진 상황이나 또는 RAG 데이터에 기반해서 정답을 찾아야 하는데

전혀 다른 소리를 하거나 아니면 일반적인 상황에 대한 답변을 하는 경우가 상당히 자주 발생을 한다.

 

이런 것을 컨트롤할 다양한 방법들을 시도해볼 수 있지만,

프롬프트 엔지니어링이 상당히 중요한 부분이면서 가장 강력한 솔루션이 될 수 있다.

 

그리고 그러한 프롬프트 엔지니어링을 배울 수 있는 좋은 책이 바로 여기 있다.

 

"할루시네이션을 줄여주는 프롬프트 엔지니어링"

 

반응형

 

Python은 왠지 한글하고 친하지가 않은 것 같다.

그나마 v3.x 버전이 되면서 많이 편해지긴 했지만, 그래도 한글 관련 이슈가 계속 나오는 느낌적인 느낌이...

 

MachineLearning 공부하게 되면서 많은 분들이 사용하고 있는 matplotlib의 경우에도

기본적으로는 한글 출력에 문제가 있다.

 

Google Colab 및 Local 환경에서 matplotlib 한글 출력이 잘 되도록 해보자.

 

 

1. Google Colab

 

① 기본 상황

  - 한글 부분이 제대로 나오지 않는 것을 볼 수 있다.

 

font error

 

② 폰트 설치

  - 나눔 폰트를 설치해보자.

 

!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

 

install font

 

③ 런타임 재시작

  - 설치된 폰트를 사용하기 위해 "런타임 다시 시작"을 실행하자

 

런타임 다시 시작

 

④ 폰트 적용

  - 이제 한글을 적용해서 그래프를 그려보자.

  - 설치한 폰트를 사용하도록 한 줄 추가가 되어야 한다.

 

plt.rc('font', family='NanumBarunGothic')

 

matplotlib with hangul

 

  - 그런데, 위의 그래프에서 뭔가 이상한 것을 볼 수 있는가?

  - y축의 "-5" 부분이 제대로 출력되지 않았다.

 

⑤ minus 처리

  - 아래와 같은 구문이 추가되면 된다.

import matplotlib as mpl
 
mpl.rcParams['axes.unicode_minus'] = False

 

fix minus

 

 

2. Local (Ubuntu)

Colab과 비슷하지만 약간 차이가 있다.

 

① 기본 상황

  - 코드가 살짝 다르다.

 

import pandas as pd
import matplotlib.pyplot as plt
import warnings

warnings.simplefilter(action='ignore', category=UserWarning)

plt.plot(['서울', '경기', '인천', '광주', '대구', '부산', '울산', '대전', '제주'], [12, 32, -4, 0, 5, 2, 19, 9, 3])
plt.xlabel('x축')
plt.ylabel('y축')
plt.title('제목')
plt.savefig('test.png')

 

execute

 

error

 

② 폰트 설치

  - 나눔 폰트를 설치해보자.

 

$ sudo apt-get install -y fonts-nanum
$ sudo fc-cache -fv
$ rm ~/.cache/matplotlib -rf

 

③ 코드 개선

  - 폰트 및 마이너스 관련 코드 추가해서 재실행해보자.

 

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import warnings

warnings.simplefilter(action='ignore', category=UserWarning)

plt.rc('font', family='NanumBarunGothic')
mpl.rcParams['axes.unicode_minus'] = False

plt.plot(['서울', '경기', '인천', '광주', '대구', '부산', '울산', '대전', '제주'], [12, 32, -4, 0, 5, 2, 19, 9, 3])
plt.xlabel('x축')
plt.ylabel('y축')
plt.title('제목')
plt.savefig('test.png')

 

new graph

 

예쁜 한글 파이팅 !!!

 

반응형


나이먹은 고리타분한 아저씨가 되어버린 나...

수학이 무서워서, 새로운 것 배우기가 무서워서 피해다녔는데...

결국은 AI/ML 공부를 할 수 밖에 없게 되어버렸다.


뭐 이제와서 내가 Modeler가 되거나 Data Engineer가 될 것은 아니지만

인프라쟁이이기에 최소한 MLOps 관련되어서는 알아야 하기에

기본적인 AI/ML 공부는 해야하는 상황에 놓여졌다.


항상 SW 공부할 때 나만의 환경에서 CLI 위주로 하는 스타일이었는데...

그래서 AI/ML 공부도 그렇게 해보려고 했는데,

결국은 Jupyter Notebook의 편리함을 이용하지 않을 수가 없었다.


Jupyter Notebook도 나의 환경에서 설치해서 해볼 수 있지만,

최근 GCP를 사용해볼 이유도 있어서

Colab 환경을 사용해보기로 마음 먹었다.


그러던 中 Kaggle 에서 제공해주는 데이터를 Colab에 넣어야할 상황이 벌어졌는데

Colab과 Kaggle을 바로 연결할 수 있는 방법이 있다고 해서

한 번 알아보았다.


1. Colab

    - 구글에서 무료로 제공해주는 훌륭한 머신러닝 개발환경이다.

    - 제공해주는 환경의 스펙이 아래와 같다고 한다. 와우~!! 대박~!!

        . CPU : 제온

        . Mem : 13GB

        . HDD : 320GB

        . GPU : NVidia Tesla K80

    - https://colab.research.google.com/



2. 준비

    - Colab 접속 후 아래와 같이 "파일 - 새 Python 3 노트"를 선택하자.




3. Kaggle 설치

    - "!"를 앞에 붙이면 시스템 명령어를 사용할 수 있다.

    - 타이핑 후 왼쪽의 화살표(?)를 클릭하면 실행된다.




4. Kaggle 인증키 다운로드

    - Colab에서 Kaggle 데이터를 가져오기 위해서는 접근할 수 있는 권한이 있어야 한다.

    - Kaggle 사이트에서 내 계정에 대한 인증키를 얻어보자.



    - "Edit Profile"을 클릭한 다음



    - "Create New API Token"을 클릭하면, "kaggle.json" 파일이 다운로드 된다.



5. 인증키 업로드

    - 다운로드 받은 인증키를 Colab에 업로드하자.



    - 윗 부분의 "+ 코드"를 선택하면 새로운 라인이 추가된다.

    - 아래 코드를 넣은 뒤 왼쪽 플레이 버튼을 누르면 "파일 선택" 버튼이 나온다.


from google.colab import files

files.upload()


    - "파일 선택"을 누른 뒤 아까 다운로드 받은 Kaggle 인증키 파일을 골라주면 위와 같이 나온다.



6. 인증키 복사하기

    - 업로드된 인증키를 정해진 곳에 넣어줘야 한다.

    - kaggle을 위한 디렉토리를 우선 만들어보자.


!ls -al

!mkdir -p ~/.kaggle

!ls -al ~/


    - 인증키를 복사한 뒤 속성 변경까지 해놓자

!cp kaggle.json ~/.kaggle/kaggle.json

!chmod 600 ~/.kaggle/kaggle.json

!ls -al ~/.kaggle/


    - 위와 같이 한 번에 여러 라인을 넣을 수도 있다.



7. Kaggle 데이터 목록

    - Kaggle 데이터 목록을 살펴볼 수 있다.



!kaggle competitions list



8. Kaggle 데이터 확인하기

    - Kaggle 사이트에서 Dataset을 보면 다운로드를 받을 수 있는 API를 확인할 수 있다.




9. Titanic 데이터 다운로드

    - Colab에 다운로드 받아보자.

    - 주의할 점은 시스템 실행을 위해서 항상 앞에 "!"를 붙여야 한다.



모두들 즐거운 머신러닝 생활~~~~!!!

반응형

+ Recent posts