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을 하나 찾은 것 같다.

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

반응형

그냥 막 갑자기 GenAI를 이용해서 뭐라도 하나 간단하게 만들어 보고 싶다는 생각에 막 진행해봤다.

 

0. 실습 환경

- Ubuntu 20.04

 

1. Gemini API

- 우리의 Google님은 간단하게 사용하는 정도는 무료로 제공해주신다.

  . https://ai.google.dev/pricing?hl=ko#1_5flash

Gemini Pricing

 

- 언제나 그렇듯이 API 사용을 위해서는 Key를 생성해야 한다.

  . https://ai.google.dev/aistudio?hl=ko

Google AI Studio

 

- 구글 계정을 통해 로그인 하고 API key를 얻으면 된다.

  . https://aistudio.google.com/apikey

Get API key

 

2. React App 생성

- Vite를 이용해서 React App을 생성하자. 다음 링크를 참고해서 진행하면 된다.

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

 

3. 패키지 설치

- Gemini API 사용을 위해서 패키지를 설치하자.

> npm install @google/generative-ai

> npm install

> npm run dev

npm run dev

 

- 브라우저를 열어서 접속해보자.

WEB

 

4. 파일 생성

- src/ 디렉토리 밑에 파일 하나 새로 만들어서 코드를 작성해보자.

  . 여기에서는 NagBox.jsx 이름으로 만들어봤다.

new file

 

5. 코드 작성

- 다음과 같이 코드를 작성해보자.

import { useState, useEffect } from "react";
import { GoogleGenerativeAI } from "@google/generative-ai";

export default function NagBox() {
  const [response, setResponse] = useState("");
  const [error, setError] = useState(null);
  const [currentTime, setCurrentTime] = useState(new Date());

  const fetchNag = async () => {
    try {
      const genAI = new GoogleGenerativeAI("API KEY");
      const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
      const prompt = "공부를 열심히 할 수 있도록 잔소리를 해주세요.";
      const result = await model.generateContent(prompt);
      const text = result.response.text();
      setResponse(text);
    } catch (err) {
      setError(err.message);
    }
  };

  useEffect(() => {
    fetchNag();

    const nagIntervalId = setInterval(fetchNag, 30000);
    const clockIntervalId = setInterval(() => setCurrentTime(new Date()), 1000);

    return () => {
      clearInterval(nagIntervalId);
      clearInterval(clockIntervalId);
    };
  }, []);

  return (
    <div style={{ position: "relative", minHeight: "100vh" }}>
      {error ? <p>{error}</p> : <p>{response}</p>}
      <div
        style={{
          position: "fixed",
          bottom: 10,
          right: 10,
          backgroundColor: "white",
          padding: "10px",
          borderRadius: "5px",
          boxShadow: "0 0 10px rgba(0,0,0,0.2)",
        }}
      >
        {currentTime.toLocaleTimeString()}
      </div>
    </div>
  );
}

code


- main.jsx 파일도 수정해주자.

import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
// import App from './App.jsx'
import App from './NagBox.jsx'

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <App />
  </StrictMode>,
)

 

code

 

- 웹브라우저로 결과를 확인해보자.

WEB

 

이모지를 사용하라고 하지도 않았는데...

우와... 잔소리를 하라고 했지, 나의 자존감을 꺾으라고는 안했는데... 우와~~~~ 제미나이, 대단하네!!!

 

 

기본적인 코드는 아래 사이트를 참고했습니다.

- https://www.codedex.io/projects/generate-a-poem-with-google-gemini

 

반응형

'AI_ML > LLM' 카테고리의 다른 글

HuggingFace - LLAMA 3.2 for Korean  (2) 2024.11.12
HuggingFace - Learn - NLP Course #3  (3) 2024.11.11
HuggingFace - Learn - NLP Course #2  (0) 2024.11.10
HuggingFace - Learn - NLP Course  (1) 2024.11.09
HuggingFace (허깅페이스 소개)  (0) 2024.06.24

Youtube를 보다가 갑작스레 보게 된 재미난 영상 하나가 있었다.

 

출처: https://www.youtube.com/watch?v=y-xopqwEe3I&t=13s&ab_channel=GoogleforDevelopers

 

으잉?! IT 뉴스를 이런 감성으로 전달한다고!?

위 영상의 출처는 다음과 같다.

  - https://www.youtube.com/@GoogleDevelopers

 

출처: https://www.youtube.com/@GoogleDevelopers

 

여기에서 특히 재미있는 것은 "Google Developer News tl;dr"인데,

Web, Mobile, AI, Cloud 관련 소식들을 정말 깔끔하고 재미있게 소개해주고 있다.

 

지루하고 어렵지 않냐고!?

영상에서는 정말 간략하고 핵심적인 내용만 소개하고 자세한 소식은 각자 찾아볼 수 있도록 링크로 제공해준다.

 

출처: https://www.youtube.com/watch?v=coZ6VVJZ2R0&ab_channel=GoogleforDevelopers

 

구글 관련된 소식만 알려주는 것 아니냐고!?

뭐 맞는 말이긴 한데.... 개발자 세상에서 Google이 관여 안된 것을 찾는 것이 더 어렵지 않을까!?

출처: https://www.youtube.com/watch?v=coZ6VVJZ2R0&ab_channel=GoogleforDevelopers

 

TensorFlow도 Google 거다. (이거 모르는 사람 많지 않나!? 나만 몰랐나?! ^^)

Chrome에서 3rd-party Cookie 지원을 24년 1분기부터 순차적으로 종료할건데, 웹 개발하는 사람 모두 알아야 하지 않나!?

AWS를 더 많이 쓰긴 하지만, GCP 기반으로 개발하는 사람들도 많지 않나!?

 

뭐, 구글 소식만 알아도 훌륭한 개발자이지 않을까 한다 ^^

 

그러니, 구독과 좋아요~..... ^^

(Google에서 따로 후원 받지 않았습니다!!!! 아! 애드센스..... 받은건가?????)

 

영어가 부담스러우면 자동 번역하면 되니까 부담 없이 구독해서 정보를 얻으면 좋을 것 같다.

 

한글 좋아하는 저같은 개발자들을 위해 추가적으로 공유하자면

한국 개발자를 위한 블로그도 별도로 운영되고 있다. 최신 업데이트도 꾸준히 되고 있다.

  - https://developers-kr.googleblog.com/

 

출처: https://developers-kr.googleblog.com/

 

한국 개발자를 위한 페이스북도 운영하고 있다.

  - https://www.facebook.com/googlefordevskr/

 

출처: https://www.facebook.com/googlefordevskr/

 

한국 개발자들을 위한 공식 사이트는 다음과 같다.

  - https://sites.google.com/view/gdeveloperskorea/홈

 

출처: https://sites.google.com/view/gdeveloperskorea/홈

 

국내에서는 공식적으로 14개 GDG(Google Developer Groups)가 굴러가고 있는데,

최근에는 GDG SongDo가 이벤트도 많이 하면서 활발한 것 같다.

 

Google for Developers Korea의 공식 유튜브 채널도 있긴한데, 최근 업데이트는 잘 안되고 있다.

  - https://www.youtube.com/channel/UCZU3wmgRuH9gc2E3jhvEE_g

 

출처: https://www.youtube.com/channel/UCZU3wmgRuH9gc2E3jhvEE_g

 

이 글을 포스팅하는 시점에서 유용한 정보 하나 더!

Devfest Cloud 2023이 23년 12월 9일에 있다.

  - https://festa.io/events/4385?fbclid=IwAR12BFTRSFTI9LUbLd8eclbtvm_jIAJ82reVs-8mbECKtWTdzbeuKRoVtnw

 

출처: https://festa.io/

 

개발자 여러분들에게 조금이나마 도움이 되기를 기원해보며 포스팅합니다!!!

반응형

 

출처: https://goomics.net/251/

 

인도로 다니는 자전거, 자전거 도로를 걷는 사람들... 위트있는 그림이다.

 

그런데, 그림을 잘보면... 그림에 나오는 저 장소가 어디인지 맞출 수 있다.

 

컬러풀한 자전거를 보면 ... 그렇다! Google 이다.

 

 

 

구글 내부의 이야기를 들려주는 재미있는 Comics를 볼 수 있는 사이트가 있다.

 

https://goomics.net/

 

Goomics

 

goomics.net

 

 

단행본으로도 나왔다.

 

https://www.amazon.com/Goomics-Googles-corporate-revealed-internal/dp/0988523841

 

Goomics: Google's corporate culture revealed through internal comics

Goomics: Google's corporate culture revealed through internal comics

www.amazon.com

 

 

게시된 그림들을 보면 느낀점은...

 

"저기도 결국은 사람 사는 곳이구나~"

"우리 회사랑 똑같네 뭐~"

 

^^

 

반응형


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

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

결국은 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에 다운로드 받아보자.

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



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

반응형


머신러닝에 대해서 공부를 한다고 하면,

예전에는 (아직도) R 등과 같은 수학에 맞춰진 언어를 소개하기도 하지만 대부분은 Python을 추천한다.


사실은 Python이라는 언어 자체가 중요한 것이 아니라

머신러닝을 할 때 필요한 많은 기능(?)들을 제공해주는 라이브러리들이 중요한데

Pandas, Numpy 라이브러리가 워낙에 잘 되어 있어서 Python을 사용하라고 하는 것이다.

물론 Python이라는 언어 자체도 매력적이긴 하지만...



이에 대해서 공부를 하고자 하는 분들에게 드리는 좋은 정보~


Google에서 무려 한국어로 제공해주는 "머신러닝 단기집중과정" 온라인 강좌

https://developers.google.com/machine-learning/crash-course


그 중에서도 Pandas에 대해서 직접 실습해가며 배울 수 있는 정말 멋진 과정

- https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb?utm_source=mlcc&utm_campaign=colab-external&utm_medium=referral&utm_content=pandas-colab&hl=ko



그런데, 위의 내용 말고도 좋은 강좌가 하나 더 있다.

머신러닝에 대해서 공부하다보면 누구나 알게 되는 Kaggle !!


 Kaggle에서도 Pandas에 대해서 친절한 강좌를 제공해준다.

https://www.kaggle.com/learn/pandas


4시간이면 끝낼 수 있단다~!! ^^ (필자는 멍청해서 4일은 걸릴듯... ㅠㅜ)




모두들 즐거운 머신러닝 공부시간 되세요~


반응형

구글의 마스터 플랜을 고해상도로 복원한 사이트
http://undergoogle.com/tools/GoogleMasterPlan.html


이미 개인의 프라이버시는 없다라는 전제에서 출발한 Google Master Plan은 독일의 대학 학사 논문으로 Ozan Halici와 Jurgen Mayer에 의해서 제작된 동영상이다.
http://podcast.co.kr/entry/구글의-야망을-담은-3분짜리-비디오-Google-Master-Plan
http://masterplanthemovie.com/





반응형

+ Recent posts