분류 전체보기(830)
-
LLM) Streamlit Tokenizer APP
최근 인공지능 분야에서 언어 모델의 발전은 눈부십니다. 이러한 모델들은 텍스트를 처리하기 위해 고유한 방식으로 단어를 토큰화하는 토크나이저를 사용합니다. 본 글에서는 Python의 인기 라이브러리인 Streamlit을 사용하여 여러 LLM 토크나이저를 비교하는 웹 애플리케이션을 만들어서 배포했습니다.이 앱은 Hugging Face의 transformers 라이브러리를 통해 다양한 토크나이저를 로드하고, 사용자가 입력한 텍스트에 대해 토큰화를 수행합니다. 사용자는 웹 인터페이스를 통해 원하는 토크나이저를 선택하고, 토크나이저의 세부 정보 및 토큰화된 결과를 비교할 수 있습니다. 기술 스택Streamlit: 파이썬을 사용한 빠르고 간편한 웹 앱 개발을 가능하게 하는 라이브러리.Transforme..
2024.04.19 -
LLM) 모델에서 사용하는 GPU 계산하는 방법
LLM에서 GPU를 얼마나 사용하는지 궁금할 때가 있다. LLM 학습할 때는 크게 1.모델 2. 옵티마이저 3. 그래디언트 4. 활성함수의 합으로 이루어져 있다고 하고 LLM 평가할 때는 1. 모델 만을 보통 고려한다. 그 다음에 고려하는 부분은 모델에서 precision을 얼마나 할 지에 따라서 GPU 양의 차이가 크다. 밑에 영상처럼 파라미터를 줄이기 위해서 Quantization 하는 경우도 많다. 사이트 공유 이때 어떻게 계산하는지 알려주는 사이트를 찾아서 공유한다. 모델을 선택하고, 입력과 출력 등 설정을 하게 되면 각각 gpu를 얼마나 쓰는 지 알려주는 앱이다. HTML 삽입 미리보기할 수 없는 소스 참고 https://huggingface.co/blog/hf-bitsandbytes-integ..
2024.04.15 -
LLM) Training 방법중 ORPO(Monolithic Preference Optimization without Reference Model) 알아보기
LLM 학습 방법을 찾는 중에, SFT, DPO, RLHF는 알고 있었는데, ORPO라는 것을 찾게 되었고, 잠깐 봤을 때, 방법론이 효율적인 것 같아서 정리해보고자 한다. 최근에 LLM 모델에서 좀 더 사람의 선호에 맞게 학습하는 방법들이 등장하고 있습니다. 기존에 RLHF, DPO, IPO, KTO 같은 방식이 생기고 있고, 기존에 RLHF방식보다는 저렴하게 할 수 있게 있습니다. DPO, IPO 역시 기존에 RLHF 방식보다는 저렴하지만, 결국 이것도 2개의 모델이 필요합니다. 1개의 모델은 Supervised Fine-Tuning(SFT) 단계를 위한 모델 즉, 우리가 원하는 TASK에 대답을 할 수 있도록 훈련하는 것 다른 모델은 SFT 모델을 참고하여 사람이 좀 더 선호하는 모델을 만드는 것이..
2024.04.14 -
LLM) Mixed-Precision 개념 및 학습 방법 알아보기
LLM 같은 거대 모델을 학습할 때는 학습 속도를 어떻게 빠르게 할지가 중요합니다. 하지만 학습을 하다 보면 필요한 리소스 역시 증가해서, 이러한 리소스를 줄이면서 학습하는 것에 대한 연구들이 진행되고 있습니다. 이번에는 실제로 이러한 방법을 많이 사용하는 것 같아서 어떻게 동작하는 지 알아보고자 내용을 정리하려고 합니다. 그중에서 나온 게 바로 더 낮은 정밀도를 사용하는 방법에 대한 것이 나왔습니다. 일단 기존에 우리가 NN 모델을 학습할 때는 전통적으로 IEEE 단정밀도 형식(FP32)을 사용했습니다. 여기서는 FP32를 다 쓰는 게 아니라 혼합된 정밀도(Mixed Precision)를 쓰면 더 효율적이라는 겁니다 즉 FP32 와 FP16을 같이 써서 극복하자입니다. Sign : 부호 / Expone..
2024.04.13 -
React) Nomad 실전형 리액트 훅(Custom) 내용 정리해보기
Nomad 선생님의 강의를 듣고 예시와 각각의 개념에 대해서 정리해보기로 하였습니다. https://nomadcoders.co/react-hooks-introduction/lobby 해당 영상을 통해 유용한 Hook들을 알게 되었고, 기존에 많이 사용하는 useRef, useState, useEffect 에 대한 개념을 더 잘 이해하게 된 것 같습니다. 기존에 이러한 내용을 모르고 만든 부분들에서 개선점을 확인할 수 있었고, 초보자에게 유용한 내용이였습니다. 그래서 관련 내용에 대한 개념이랑 예시 코드들을 정리해봤습니다. Custom Hook 이란 정의 Custom Hook은 React에서 제공하는 기본 Hook을 조합하거나, 특정 작업을 위한 추가 로직을 포함하여 사용자가 직접 만든 재사용 가능한 Ho..
2024.03.16 -
[Obsidian] imgur plugin을 통한 이미지 중앙 배치 및 사이즈 조정하는 방법
obsidian을 사용하게 되면 해당 노트에 이미지를 삽입해서 내용을 추가하고 싶은 경우가 있다. 그럴 때 사용할 수 있는 유용한 플러그인은 바로 imgur이다. https://github.com/gavvvr/obsidian-imgur-plugin GitHub - gavvvr/obsidian-imgur-plugin: Pastes images right to imgur.com Pastes images right to imgur.com. Contribute to gavvvr/obsidian-imgur-plugin development by creating an account on GitHub. github.com 사용자는 해당 플러그인을 사용하게 되면 이미지를 복사해서 붙여 넣으면 imgur에 저장해서 사용..
2024.03.13 -
React 기반 Time Block Schedule 앱
어릴 때 시간표 만드는 것을 생각하며, 각 시간대에 어떤 것을 할 지 기획하는 것을 앱으로 만들어봤습니다. 시간이 될 때 더 많은 기능들을 추가하거나 기존 것에 결합할 예정입니다. (https://sungreong.github.io/react-time-block-schedule/) HTML 삽입 미리보기할 수 없는 소스 기능 목록 추가 기능(시작시간,종료시간,날짜) 목록 시계 형태에 추가하는 기능 현재 시간 기준 얼마나 진행하고 있는 지 확인하는 기능 시각화 기능 시계 형태 기능 달력 형태 기능 목록 기능 업로드 기능 다운로드 기능 선택하여 상세 보기 기능 진행 상태 확인하기 예시 파일 (csv, json)
2024.02.29 -
LLM) PEFT 학습 방법론 알아보기
PEFT 방법론에 대해서 다양한 것 같아서 정리해보고자 합니다. 다음은 PyTorch, Transformers 및 UnSloth를 사용한 PEFT를 사용한 세부 조정 접근 방식에 대한 개요를 포함한 글입니다. 소개 이 글은 대형 언어 모델(Large Language Models, LLMs)을 세세하게 조정하는 중요성과 그 과정에 대한 탐색을 다룹니다. GPT-3, Llama 2 및 Mixtral과 같은 사전 훈련된 모델을 특정 응용 분야에 맞게 조정하는 방법과 그 세부 사항을 소개합니다. 감정 분석, 명명된 개체 인식, 언어 번역과 같은 다양한 응용 분야에 대한 모델의 맞춤화 가능성을 탐구합니다. 적절한 사전 훈련된 모델 선택, 과제별 목표 설정, 데이터셋 구성 및 하이퍼파라미터 조정의 중요성을 강조하며..
2024.02.25 -
정보성) cuda11.4 와 맞는 torch version 2.0.1
cuda 11.4일 때 pytorch 2.0 대를 쓰고 싶어서 인터넷에서 찾아봤고 공유드린다. 바로 2.0.1이다(2024.02.25 기준) (python 3.10) pip install torch==2.0.1 그렇다면 어떻게 찾을 수 있을까? - 모르겠다..ㅎ 일단 재 설치되는 기준으로 보면 아래와 같은 것들이 설치가 되기는 했다. pip list | grep cuda cuda 11.7 관련한 것들을 자동으로 설치하는 것 같다. Collecting nvidia-cuda-nvrtc-cu11==11.7.99 (from torch==2.0.1) Downloading nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB..
2024.02.25 -
REACT 와 NEXTJS 정의 및 비교 그리고 프로젝트 목적별 적합 여부
NextJS는 리액트를 위해 만든 오픈소스 자바스크립트 웹 프레임워크입니다. 많은 사람들이 NextJS를 사용하고 있고, 여러가지 장점이 있어서 사용하긴 하지만 여전히 React로도 많이 개발을 하는 것 같습니다. 그래서 NextJS가 좋으면 다 그걸 쓰면 되는데, React로도 개발할까가 궁금했고 그러한 내용을 한번 정리해보고자 합니다. NextJS란? Vercel에서 만든 Next.js는 오픈 소스이며 JavaScript 프레임워크로, React를 사용하여 빠르고 사용자 친화적인 웹 애플리케이션 및 정적 웹 사이트를 개발할 수 있습니다. 실제로, 이는 Node.js와 Babel을 기반으로 하며, React와 통합하여 Single Page Applications를 개발할 수 있습니다. 이를 통해 서버 ..
2024.02.19 -
NextJS 14기반 영화 웹 서비스(Vercel)
nomad 선생님의 next js 기본 강의를 들으면서, 하나씩 따라해보면서 프론트를 만들어봤습니다. React와 NextJS로 둘 다 비슷한 것을 만들어보면서, NextJS가 훨씬 더 편하게 만들 수 있다는 것을 깨닫는 시간이였고, CSS를 어떻게 만드냐에 따라서 퀄리티가 이렇게 차이가 난다는 것을 다시 느낀 시간이였습니다. 알려준 내용을 활용해서 좀 더 수정해보는 시간을 통해 익숙해지면 다른 것도 만들어봐야겠네요! 배포하는 것도 강의에 추가되었는데, 요즘은 정말 쉽게 배포하네요... 2024.02.17 - [일상/간단앱] - Vercel을 이용해서 프론트 배포해보기 (배포 화면) (https://nextjs-learn-movie-mini-app.vercel.app/) 추가(20240220) 제작진 추..
2024.02.17 -
Vercel을 이용해서 프론트 배포해보기 (배포 화면)
Vercel이란? Vercel은 Next.js 개발 팀에서 만든 프론트엔드 배포 플랫폼 빌드와 배포 그리고 호스팅을 해주는 서비를 제공합니다. 가정 1. 일단 사전 조건으로는 github에 배포할 레포지토리고 존재한다는 가정으로 시작한다. 2. 로컬에서 npm run build를 할 때 정상적으로 build 폴더가 생겼다는 가정에서 시작한다. Package.json 에서 Vercel 에서 배포하기 위해 필요한 Script 추가 그리고 거기에는 vercel을 사용하기 위한 필수적인 설정을 해야 한다.(build, start)를 고정으로 해야 함. "scripts": { "dev": "next dev", "build" : "next build", "start" : "next start" }, Vercel 가..
2024.02.17