전체 글 57

[Fine-Tuning] LLM 파인튜닝 솔루션 - Unsloth

LLM을 클라우드 환경이나 Google Colab에서 파인튜닝하는 과정에서 종종 라이브러리 간 의존성 충돌로 인해 실행 오류가 발생하고, 높은 메모리 사용량과 긴 학습 시간이 문제가 되곤 합니다. 이러한 문제를 해결할 수 있는 보다 효율적인 방법을 찾던 중, 단일 GPU 환경에서도 최적의 성능을 제공하는 "Unsloth"를 접하게 되어 소개해 보겠습니다.1. Unsloth란 무엇인가?Unsloth는 LLM(대형 언어 모델) 파인튜닝을 보다 효율적으로 수행할 수 있도록 설계된 혁신적인 도구입니다. Michael과 Daniel Han 형제가 개발한 이 프로젝트는 적은 자원으로도 강력한 성능을 발휘할 수 있도록 최적화되어 있으며, 학습 속도 향상과 메모리 사용량 절감을 주요 목표로 하고 있습니다.Unsloth..

Fine-Tuning 2025.02.26

[Fine-Tuning] LLM fine-tuning (/w Elice Cloud) (2)

저번 글에 이어서 이번엔 파인 튜닝을 통해 추론 성능을 상승시켜보도록 하겠습니다. 어떻게 접근할지 고민하다가 누가 Dacon에 "Gemma-2-2B-it Full Finetuning 모델"을 공유 해주어서 이 코드를 먼저 실행 해 보았습니다. !pip install transformers==4.40.1 accelerate==0.30.0 bitsandbytes==0.43.1 auto-gptq==0.7.1 autoawq==0.2.5 optimum==1.19.1 -qqq !pip uninstall -y torch torchvision torchaudio!pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu..

Fine-Tuning 2025.02.24

[Fine-Tuning] LLM fine-tuning (/w Elice Cloud) (1)

Dacon에서 진행하는 "난독화된 한글 리뷰 복원 AI 경진대회"를 뒤늦게 접하게 되어 LLM을 활용한 문제해결능력을 기르고자 경진대회에 참여하기로 하였습니다. 핵심 주제는 "식별하기 어렵게 쓴 한글 리뷰를 원래 한글 리뷰로 복원하는 AI 알고리즘 개발" 이었습니다. 데이터셋과 샘플 코드를 모두 제공해주었기에 이를 먼저 실행해보았습니다. import pandas as pdimport torchfrom transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, pipelinetrain = pd.read_csv('./drive/MyDrive/data_set/open/train.csv', encoding = 'utf-8-sig')t..

Fine-Tuning 2025.02.19

[DeepLearning] 언어 모델 최적화 개념 정리

언어 모델을 효과적으로 활용하려면 모델을 최적화하고 경량화하는 과정이 중요합니다. 이번 포스트에서는 모델의 추론 과정, KV 캐시, 양자화, 지식 증류 등의 개념을 직관적으로 정리해보겠습니다.1. 언어 모델이 텍스트를 생성하는 방식1.1 언어 모델이 텍스트 생성을 마치는 이유EOS(End of Sequence) 토큰 생성문장이 끝났음을 알리는 특수 토큰을 생성할 경우 텍스트 생성을 종료합니다.최대 길이 도달사용자가 설정한 최대 토큰 길이에 도달하면 텍스트 생성을 종료합니다.1.2 자기 회귀적(Auto-Regressive) 모델언어 모델은 입력된 텍스트를 기반으로 다음 토큰을 하나씩 순차적으로 예측합니다. 즉, 이전에 생성된 토큰들을 다시 모델 입력으로 넣어 다음 토큰을 예측하는 과정을 반복합니다.2. 중..

DeepLearning 2025.02.14

[DeepLearning] 용어 정리

공부하면서 생소한 용어나 원활한 플로우 이해를 돕기 위한 포스팅 공간을 마련하였습니다. 계속 수정해가면서 내용이 추가될 예정입니다. 파라미터(Parameter)모델의 파라미터는 머신러닝 모델이 학습을 통해 조정하는 값들로, 모델의 예측 성능을 결정하는 중요한 요소입니다. 파라미터는 모델의 구조에 따라 다르며, 주로 가중치(weights)와 편향(biases)으로 구성됩니다.가중치(Weights)입력 데이터의 각 특징(feature)에 곱해지는 값입니다. 가중치는 모델이 입력 데이터의 중요도를 학습하는 데 사용됩니다.편향(Biases)모델의 출력에 더해지는 상수 값입니다. 편향은 모델이 데이터를 더 잘 맞추기 위해 조정됩니다.예시: 선형 회귀 모델[ y = w_1 x_1 + w_2 x_2 + b ] ( w..

DeepLearning 2025.02.12

[DeepLearning] 제목 기반 카테고리 예측 모델 개발

본 내용은 하단 참고자료에 작성된 책에 대한 내용을 기반으로 다시한번 정리한 내용입니다. 예제를 통해 연합뉴스 기사의 제목을 바탕으로 카테고리를 예측하는 딥러닝 모델을 개발하는 과정을 정리하였습니다. 이를 위해 데이터셋 로드부터 모델 학습 및 평가까지의 전체 과정을 단계별로 설명하며, 주요 개념과 코드 실행 결과를 함께 살펴보도록 하겠습니다. 1. 모델 학습에 사용할 연합뉴스 데이터셋 다운로드모델 학습을 위해 KLUE 데이터셋의 YNAT 서브셋을 사용합니다. datasets 라이브러리의 load_dataset 함수를 이용하여 데이터를 로드합니다.from datasets import load_datasetklue_tc_train = load_dataset('klue', 'ynat', split='train..

DeepLearning 2025.02.09

[RAG] gemini api error

이전에 google의 gemini model을 활용해 Rag를 구현한 코드가 있는데, 오랜만에 실행시켜보니 에러가 발생해서 원인과 해결과정을 정리해 보았습니다. 오류가 작성한 코드는 아래와 같았습니다. from langchain.chains.query_constructor.base import ( StructuredQueryOutputParser, get_query_constructor_prompt,)from langchain_openai import ChatOpenAIfrom langchain_google_genai import ChatGoogleGenerativeAIllm = ChatGoogleGenerativeAI(temperature=0, model="gemini-1.5-flash") ..

RAG 2025.01.24

[AWS] s3에 이미지 업로드

1. 이미지 추출2. 이미지 업로드3. 이미지 클라이언트에게 전달 이전 포스팅에서 만들었던 s3를 활용해 자취방 이미지들을 s3에 업로드해서 사용해보도록 하겠습니다. 1. 이미지 추출먼저 pdf에서 이미지를 추출해보도록하겠습니다. 전에 upstage의 document parser를 사용해봤었는데 이미지만 추출하는게 아니라 텍스트,이미지 등을 종류별로 추출해서 마크다운, html 형식으로 변환해주다보니 이미지 추출쪽에서는 성능이 부족한 상황을 경험했습니다. 따라서 이번엔 이미지 추출만을 목적으로 하는 라이브러리를 사용해서 성능에 중점을 맞추고 진행해보았습니다. 1 ) PyMuPDFPyMuPDF 는 PDF에 포함된 원본 이미지 파일을 별도의 변환 없이 추출합니다. 변환 과정이 없기 때문에 속도와 품질 모두 ..

CampusMeet 2025.01.03

[AWS] s3

1. s3 용어2. s3 버킷 생성 프로젝트 진행도중 이미지를 저장하고 관리해야할 일이 생겨서 AWS의 s3 시스템을 사용해보도록 하였습니다. 1. s3 용어 1) 버킷객체를 저장하는 공간 2) 객체이미지나 동영상 같은 파일 3) 버킷명유일한 이름 4) 객체 키객체 식별자 (모든 객체가 하나씩 가짐) 2. s3 버킷 생성본격적으로 aws 콘솔에 접속해서 버킷을 생성해보도록 하겠습니다.  s3 서비스는 사용한만큼 요금이 지불되기 때문에 현재 사용중인 프리티어 기준에 맞게 이미지 용량을 사용할 생각입니다. 버킷 이름 규칙에 맞게 이름을 지정하고 넘어가줍니다.  다른 값들은 추가로 건들이지않고 테스트를 위해 태그를 하나 생성해주었습니다. 버킷이 잘 만들어진 모습을 볼 수 있습니다. 이제 버킷을 들어가서 이미지..

AWS 2025.01.03

[Backend] Access Token & Refresh Token

1.  Access Token과 Refresh Token의 필요성2. JWT 인증 체계 설계3. 결론 이전 블로그에서 JWT에 대해서 알아보았습니다. 그렇다면, 이러한 JWT가 일반적으로 많이 사용되는 곳이 어디일까?를 생각해보면 인증 체계였습니다. JWT인 Access Token과 Refresh Token을 만들고 이를 이용해 인증 체계를 구축한 과정에 대해 말씀드리도록 하겠습니다.1.  Access Token과 Refresh Token의 필요성Access Token 하나만 가지고도 인증할 수 있지 않을까? 라는 생각이 들 수 있지만, 실제로는 하나의 토큰으로는 여러 문제점들이 발생할 수 있습니다. Access Token만 사용한다고 가정해보겠습니다. Payload에 사용자 정보를 담아 통신 간에 JW..

Backend 2024.12.12