좋은 기회가 되어서 정말 간만에 길벗출판사의 도서를 리뷰하게 되었다.

 

개인적으로 좀 바쁜 시기였음에도 불구하고, 도저히 피할 수 없는 너무나 매력적인 조건들이라 리뷰 신청을 하지 않을 수 없었다.

- 최근 진행하고 있는 스터디에서 트랜스포머를 건드려보고 있는데, 직접 만들어보는 GPT 라니 !!!

- 개인적으로 공부할 때 가장 좋아하는 스크래치 부터 직접 구현해보는 방식이다 !!!

- 원서의 출처가 MANNING 이라면.... 최소한 기본 이상은 될거라는 믿음이 있다 !!!

- 소스코드 구현도 PyTorch 기반으로 했다. 와우 !!!

- 내가 너무나 추종하는 박해선님이 옮긴이로 참여한 책이다 !!! 우와 !!!

- 박해선님이 참여했다면 ... 하나 하나 꼼꼼하게 다시 만들어 주시는 샘플 코드들이 기대되고 ... !!!

- 박해선님이 참여했다면 ... 혹시 동영상 강의도 기대를 ?! ?!

 

 

표지를 보곤 출간한지 좀 오래된 책인 것 같은 느낌이 들었지만,

원서 "Build a Large Language Model (From Scratch)"를 살펴보니 24년 10월 29일에 출간되었다.

 

음... 그냥 교과서 같은 느낌의 표지 디자인이라고 생각해야겠다! ㅋㅋ

 

 

개인적으로 열렬한 팬심을 갖고 있는 박해선님의 책이라 무조건 믿음 이다 !!! ^^

 

저자인 '세바스찬 라시카'의 그동안의 저서들과 이번 책을 봤을 때 교과서 스타일을 좋아하는 것으로 보이기에

박해선님의 스타일과 너무 잘 맞는, 말 그대로 찰떡궁합인 것 같다.

 

 

원서가 출간된지 거의 1년만에 번역본이 출간된 것이다보니 AI 시대에 있어서 1년이라는 시간이 살짝 걱정되지만

최근 LLM의 근간이 되는 그 뿌리에 대한 내용이기도 하고,

코드에 있어서의 문제는 박해선님이 충분히 그 간극을 매꿔주시고 부족한 것은 보충해주셨을 것이라 문제 없을 것이다.

 

 

LLM 관련 샘플 코드들의 경우 라이브러리 버전 맞추기라던지, GPU 리소스의 문제가 있기 때문에

종종 Colab에서만 실행 가능하거나, 실습 환경 구축하는 것에 많은 제약이 있기도 하는데

친절하게도 일반적인 환경에서도 실습 가능하도록 세심히 배려해주셨다.

 

소스코드는 아래 링크와 같이 박해선님의 저장소에서 찾아볼 수 있다.

https://github.com/rickiepark/llm-from-scratch

 

 

이 책은 표지뿐만 아니라 챕터 구성이나 그 내용, 심지어 목차의 타이틀만 봐도 "교과서"의 냄새가 많이 난다.

나쁜 의미가 아니라 LLM에 대해서 공부하는 사람에게는 너무나 좋은 너무나 충실한 책이라는 의미이다.

 

 

개인적으로 풀컬러 책을 좋아하기에 조금 아쉽기는 하지만,

그래도 흑백으로만 하지는 않고, 주황색으로 포인트를 주었다.

 

 

이 책은 부록이 살짝 숨어있다.

책의 뒷 부분을 보면 "워크북"이 분리가 된다.

 

 

그렇다 !!! 이 책은 정말 교과서 였던 것이다 !!!

책을 잘 공부했는지 연습문제도 제공을 해준다 !!!

 

음... 문제의 퀄리티가 엄청 고급스럽지는 않은 것 같은데,

그래도 제대로 공부했는지 확인하는 용도로는 충분히 괜찮은 것 같다.

 

 

혹시나, 하고 찾아봤는데

역시나 박해선님은 나의 기대를 져버리지 않고 동영상 강의를 제공해주셨다.

https://www.youtube.com/playlist?list=PLJN246lAkhQhgakhcxz-5GwG_NYuJgSv1

 

 

교과서 책이라서 그러신 것인지, 별도 강의도 운영을 하신다. (이것은 물론 유료 강의이다 ^^)

http://www.inflearn.com/course/lt밑바닥부터-만들면서-배우는-llm-1

 

 

 

아! 그리고, 현재 이 책의 경우 아직 초판이기에 정오표 확인이 정말 중요하다.

https://tensorflow.blog/llm-from-scratch/

 

 

오타도 물론 있지만, 소스코드 부분에 있어서 생각보다 많은 부분의 정오표가 기록되어 있다.

공부할 때 빼놓지 말고 필독 !!!

 

 

 

이 책을 보면 설명도 정말 잘 되어있고 그림으로 설명하는 부분도 정말 세심하게 많이 신경써서 표현된 것을 알 수 있다.

 

하지만, 조금 아쉬운 점은 지나친 한글화 작업이다.

뭔가 의도하신 바가 있으셔서 그렇게 하셨을 것이라 생각은 하지만,

공부하는 입장에서 지나친 한글화는 오히려 더 햇갈리거나 나중에 더 어려움을 느끼게 된다.

 

예를 들어, "layer normalization" 같은 경우 "층 정규화"라고 사용하는 것이 크게 어색하지는 않은데

"causal attention" 같은 경우 "코잘 어텐션"이라고 한글로 사용을 하게 되면 상당히 많이 어색하다.

 

구글에서 "코잘 어텐션"이라고 검색해도 잘 나오지도 않는다.

오히려 "인과적 어텐션"이라고 검색하는 것이 더 많은 결과가 나온다.

 

아직 대중화(?)되지 않은 용어의 경우에는 그냥 본래 단어(영어)로 표현하는 것이 더 좋지 않을까 생각해본다.

 

(하지만, 미천한 내가 알지 못하는 이유가 있을 거라는 생각은 한다. 셀프 어텐션과 뭔가 pair가 되어야 한다거나 하는...)

 

 

마지막으로 이 책에 대해서 총편을 해보자면,

LLM을 공부하고자 하는 사람이라면 교과서로 생각하고 무조건 구매해서 꼼꼼하게 공부해야 하는 책이다 !!!

반응형

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

 

 

그렇지 않아도 최근에 LLM과 연관된 스터디를 하고 있던 중에 만나게 된 반가운 책

"NLP와 LLM 실전가이드"

 

 

원서의 제목은 "Mastering NLP from Foundations to LLMs"인데,

한글로 번역하자면... '기초부터 LLM까지, 자연어 처리 완전 정복!' 정도로 될 것 같다 ^^

 

여기서 또 하나 주목해야할 이름이 보인다. "박조은"

데이터분석, Kaggle, Python 같은 것들을 공부하신 분들이라면 한 번쯤은 들어보셨을 이름 ^^

그래서인지 아래와 같이 동영상 강의도 유튜브로 계속 올려주고 계신다. 와우~

 

 

그리고, 실습을 위한 노트북 파일도 새롭게 손봐서 따로 올려주셨다.

- https://github.com/corazzon/Mastering-NLP-from-Foundations-to-LLMs

 

 

원래 제공하는 실습 파일과 비교해보는 것도 재미(?)가 있을 수 있다.

 

 

위에서 볼 수 있는 원서의 표지 그림을 보면 알겠지만

이 책의 본질은 NLP(자연어 처리) 책이다.

그 기반이 되는 수학적인 요소들을 포함해 LLM까지 언급하고 있는 것이다.

 

 

책에서는 "대상 독자"를 아래와 같이 말하고 있다.

 

 

내가 생각했을 때에는 "NLP(자연어 처리)와 관련된 전체적인 내용을 훑어보고 싶은 사람"이라고 말해야 하지 않나 싶다.

 

이 책의 목차는 다음과 같다.

 

CHAPTER   1   자연어 처리 개요 살펴보기
CHAPTER   2   머신러닝과 자연어 처리를 위한 선형대수, 확률, 통계 마스터하기
CHAPTER   3   자연어 처리에서 머신러닝 잠재력 발휘하기
CHAPTER   4   자연어 처리 성능을 위한 텍스트 전처리 과정 최적화
CHAPTER   5   텍스트 분류 강화: 전통적인 머신러닝 기법 활용하기
CHAPTER   6   텍스트 분류의 재해석: 딥러닝 언어 모델 깊게 탐구하기
CHAPTER   7   대규모 언어 모델 이해하기
CHAPTER   8   대규모 언어 모델의 잠재력을 끌어내는 RAG 활용 방법
CHAPTER   9   대규모 언어 모델이 주도하는 고급 응용 프로그램 및 혁신의 최전선
CHAPTER 10   대규모 언어 모델과 인공지능이 주도하는 과거, 현재, 미래 트렌드 분석
CHAPTER 11   세계적 전문가들이 바라본 산업의 현재와 미래

 

전체 목차와 함께 이 책의 쪽수 424쪽인 것을 보면 알겠지만

"기초 수학부터 실전 AI 문제 해결까지" 살펴볼 수 있는 책인 것은 맞지만

깊이 있게까지 살펴보려면 다른 자료들을 더 많이 찾아봐야할 것이다.

 

기초 수학부터 언급한다고 하여 좋아할 사람도 있고, 싫어할 사람도 있을텐데....

그냥 말 그대로 한 번 쭉 훑어보고 지나가는 수준의 수학이기 때문에

너무 큰 기대도 너무 큰 걱정도 할 필요는 없을 것 같다.


이 책은 원서 제목 그대로가 딱 적당한 제목인 것 같다.

 

"Mastering NLP from Foundations to LLMs"

(기초부터 LLM까지, 자연어 처리 완전 정복!)

반응형

GitHub에서 여러 LLM 모델들을 가지고 놀 수 있는 서비스를 제공하고자 하고 있어서

이것을 소개해보려 한다.

 

아직은 정식 서비스를 하고 있지 않아서인지, 메뉴가 꼭 꼭 숨어있다.

 

아! 아직은 Preview 상태라서 해당 메뉴가 보이지 않는 분들이 계실 수도 있다.

그런 분들은 그냥 이런게 곧 나오겠구나~하고 구경 먼저 해보시길 ^^

 

일단 로그인을 하고...

GitHub

 

왼쪽 위 메뉴 버튼을 눌러 펼친 다음에

"Marketplace"를 선택하자.

Menu

 

Marketplace 메뉴들을 보면 "Models"를 발견할 수 있다.

Models

 

여러 LLM 모델들을 볼 수 있는데,

일단 친근한 GPT-4o를 선택해보자.

OpenAI GPT-4o

 

오른쪽 위의 "Playground" 버튼을 선택해보자.

Playground

 

System prompt를 비롯해서 Max Tokens라던지, Temperature 등 여러 parameter들을 설정할 수도 있다.

직접 프롬프트를 입력하면 대기시간 없이 즉시 응답을 해준다.

prompt

 

한글 출력이 깨지는 것이 있는데, model의 잘못인지 GitHub에서의 출력 문제인지는 불분명하다.

 

말만 들어봤던 Mistral 모델을 가지고도 한 번 해봤다.

한글도 잘 알아듣고, 결과도 나름 괜찮네!?

Mistral

 

현재 GitHub Models에서 사용해볼 수 있는 model들은 다음과 같다.

 

이걸 가지고 뭔가 재미난 것들을 해볼 수도 있을 것 같은데...

Preview 기간이 끝나면 당연하게도 유료 서비스가 될 것 같아서 ^^

반응형

그냥 막 갑자기 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

AI 특히 LLM, NLP를 공부하는 사람들이라면 최소한 한 번 이상 들어봤을 '허깅페이스(HuggingFace)'

  - https://huggingface.co/

https://huggingface.co/

 

2016년도에 설립된 뉴욕에 본사가 있는 프랑스계 미국 회사이며,

자연어 처리(NLP: Natural Language Processing), 특히 트랜스포머(Transformer)에 중점을 둔 커뮤니티라고 할 수 있다.

 

 

 

HuggingFace가 어떤 의미일까!?

 

이모지를 보면 한국어로는 '포옹하고 있는 얼굴'로 나오는 것이 있다.

이것이 HuggingFace의 정체이다!!! ^^

Emoji

 

허깅페이스는 작년(23년) 8월 2억3500만 달러(약 3113억원)의 자금을 투자 받았으며

45억 달러(약 6조)의 시장 가치를 평가받았다. 어마어마 하다.

 

그리고, 투자 기업 목록을 보면

구글과 엔비디아, 아마존, AMD, 인텔, IBM, 퀄컴, 세일즈포스 등 AI 개발 하면 떠오르는 테크 기업들이 대부분 포함됐다.

 

 

 

대체 허깅페이스가 무엇이기에 이렇게 많은 업체들이 관심을 갖고 투자를 하고 있을까?!

 

허깅페이스 사이트의 상단 메뉴를 살펴보자.

https://huggingface.co/

 

허깅페이스 사이트에서 제공해주는 기능은 다음 3가지라고 할 수 있다.

  - Models / Datasets / Spaces

 

 

▷ Models

Models

 

자연어 처리 외에도 다양한 유형의 모델들을 등록하고 다운로드 받을 수 있다.

  - Multimodal

  - Computer Vision

  - Natural Language Processing

  - Audio

  - Tabular

  - Reinforcement Learning

  - Other

 

무려 73만여개의 모델들이 등록되어 있는 것을 확인할 수 있다.

 

성능 좋은 LLM 모델을 오픈 공개한다고 하면 일단 허깅페이스에 등록하는 것이 거의 정해진 수순이다.

최근 애플에서도 모델을 오픈했고, 당연하게 허깅페이스에 등록했다고 기사가 나왔다.

apple model

 

지난달에 등록했던 OpenELM과 몇 일 전 등록한 coreml 모델들을 확인할 수 있다.

 

관심있는 모델을 선택하면 상세 정보 페이지가 나온다.

Meta-Llama-3-8B

 

Model Card를 통해 학습데이터에 대한 정보라던지, 어떻게 활용할 수 있는지 등 자세한 설명을 볼 수 있다.

 

 

 

▷ Datasets

Datasets

 

모델보다는 좀 부족한 17만여개의 Datasets도 업로드/다운로드 할 수 있다.

 

마찬가지로 Dataset card를 통해 자세한 정보를 확인해볼 수 있다.

ft-instruction-synthesizer-collection

 

이미지나 오디오 형식의 feature도 보고, 듣기 편하게 제공해준다.

 

 

 

▷ Spaces

Spaces

 

가장 인상적인 Spaces !!!

AI Apps들을 등록하고 사용해볼 수 있다.

 

ai-comic-factory

 

Japanimation 스타일로 AI를 공부하는 스토리를 그려달라고 했더니 저런 결과물을 생성해줬다 ^^

 

구글과 제휴를 했다고 하더니(24년 1월) GCP 리소스를 이용해 이런 서비스도 제공해줄 수 있나보다.

하지만, App 실행하다보면 GPU 할당 받기 위해 잠시 기다리라는 메시지가 종종 나오기는 한다.

 

 

 

▷ Docs

Docs

 

학생 또는 개발자라면 좀 더 관심 깊게 봐야하는 것은 Docs 메뉴이다.

심지어 한글도 비교적 충실히 제공해준다. (물론 유명한 컨텐츠에 한해서 ^^)

Transformers

 

그런데, 내용을 잘 보면 알겠지만, 일반적인 튜토리얼이 아니다.

HuggingFace를 활용하는 방법들을 설명해주는 내용들이다.

 

그렇다!!!

허깅페이스의 매력은 파이썬 패키지에 있다.

transformers

 

허깅페이스에 등록된 모델, 데이터셋 등을 편하게 사용할 수 있다.

추론도할 수 있고, fine-tuning을 해볼 수도 있고, 아니면 내가 다시 학습을 시켜볼 수도 있다.

 

 

 

여기까지 살펴본 결과 .... 

허깅페이스는 ML-Hub / AI-Hub / LLM-Hub 등의 명칭으로 불러야 할 것 같다.

AI Platform 이라고 정의하는 글도 본 것 같다.

 

다음에는 허깅페이스를 이용해서 파인튜닝 해보는 내용을 정리해보려고 한다.

이번 글은 여기에서 ... 이만~

반응형

'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
Gemini 잔소리꾼 만들기  (1) 2024.11.08

+ Recent posts