목록AI & ML/학습하기 (13)
Ssul's Blog

최근에 진행하는 R&D프로젝트가사전학습된 LLM의 지식을 활용하여, 약 4,000~5,000건의 데이터만 학습하여,특정 도메인에 특화된 과업을 해결하는 모델을 만드는 것이다.(예: 스팸문자 분류하는 LLM) 그래서 한글을 잘한다고 소문난 모델을 이것 저것 파인튜닝 해보고 있다.- EEVE, Qwen2.5의 경우 gpt-4o-mini를 api로 파인튜닝 한 모델보다 성능이 떨어졌다.- EXAONE3.5를 기점으로 gpt-4o-mini와 비슷하거나 높게 나오기 시작했다. 1. Gemma3 발표이놈의 AI쪽은 허구헛날 새로운 모델이 나오고, 기존 성능을 갱신한다.EXAONE에서 만족하고 다음 진도를 나가려 했는데..... 그래도 Gemma3가 나왔다고 하니 파인튜닝을 안할수 없었다.코드를 열심히 검색해봐도 대..

1. Instruction Fine-Tuning우선 LLM을 튜닝할때는 사전학습이 된 LLM의 지식을 활용하는 것이 핵심이다.그러기 위해서는 기존의 ML(머신러닝)방식의 입력값과 라벨(정답) 데이터만 무수히 많이 가지고 모델을 만드는 것이 아닌,엄청난 양의 사전 학습된 언어 지식을 활용하는 것이 Instruction FT라고 할수 있다. 스팸분류기 모델을 만든다고 했을때, 기존 ML방식으로 데이터 셋을 구성한다면,문자1내용, 스팸문자문자2내용, 스팸문자문자3내용, 정상문자이렇게 데이터 셋(입력값, 라벨)을 구성하고 신경망에 넣어서 스팸과 정상을 구분하는 모델을 만드는 것이다. instruction FT는 사전학습된 모델이 언어능력을 가지고 있기 때문에원래 내가 가지고 있던 데이터셋문자1내용, 스팸문자문자..

지난 설연휴동안 DeepSeek-R1이 아주 핫하다. 엔비디아 주가도 쭉쭉 빠지고....이놈의 AI분야는 공부해야 할께 넘쳐난다. 쉬고 싶다 ㅠ.ㅠ여러 보고서와 논문을 가지고, 구글 NotebookLM과 함께 공부한 내용을 올려본다.그리고 뽀너스로 deepseek-r1 학습방법을 유사하게 구현한 open-r1프로젝트도 함께 공유하여본다. #0. DeepSeek-R1의 파급력/성능많은 블로거들이 정리하였기에 스킵- 학습비용이 싸다(과연 싼것인가? 상대적으로 싸다)- 오픈소스다- 학습방식에서 유의미한 시사점을 던져 줌알아둘 것은 r1은 추론모델이다. 일반적인 gpt-4o, claude-3.5-sonnet과는 다른 gpt-o1과 같은 계열의 모델이다. #1. DeepSeek계열 이해하기1-1. DeepSee..

#1. 패캠에 돈좀 썼음후기이벤트겸 글을 작성하고 있지만, "배우는 것에는 아끼지 말자"라는 모토아래 200만원 가까이 결제한것 같다.때로는 제목에 낚여서 실망한 강연도 있고,어떤 강연은 100이 들어 있을줄 알았는데, 70밖에 안들어 있어서 실망한 강연도 존재한다.하지만, 대부분의 강연은 기대한 수준의 만족감을 주었다. 또한, 기한이 정해져있지않고, 평생 반복해서 시청이 가능한 것이 장점인것 같다.오늘은 여러가지 강연중에 내가 제일 만족했던 강연의 후기를 공유해보고자 한다. #2. 파인튜닝, 그 이상의 지식을 원함AI를 공부하고, 현업에서 적용하는 입장에서 처음 파인튜닝은 새로운 세계였다. 이론적인 공부를 마치고, Pretrain을 하는 것은 나의 영역이 아니라는 것을 인식하고, 파인튜닝에 대한 이..

최근 회사에서 작성한 AI관련 R&D사업 기획안이 선정되어, 해당 R&D의 총괄을 맡게 되었다.추석이후 본격적으로 연세대와 함께 멘탈헬스관련 AI모델의 연구개발에 돌입한다.추석 연휴가 시작되기전 전체적인 로드맵을 그리면서, 내가 써낸 기획안이 실현가능한 수준인지 체크하고 있다(선정을 위해 너무 지른것이 아닌가 체크 또 체크 ;;;) 크게 3가지 과업을 셋팅했는데, 그 중 하나가 감정단어 분류기이다.자연어 데이터안에 있는 감정단어를 AI모델이 인식하여 찾아내고, 분류하는 모델. 0. 문제인식자연어 데이터에서 내가 원하는 감정단어를 어떻게 AI모델이 찾을수 있을까?우선 기계적인 코딩으로는 쉽다. 감정단어 리스트를 정리하고, 입력된 문장을 단어로 쪼개서, 리스트와 비교하면서 단어를 찾아내면 된다.하지만 문제는..

0. 비지니스 기획생성형 AI가 핫하다. 실제 내가 사용해봐도 신기하다.이걸로 무엇을 할 수 있을까? 우리 생활에 어떤 문제점을 해결해 주는 서비스를 만들수 있을까?쌈박한거 하나 만들어서... 은퇴하고 싶은데....ㅋㅋ여튼 이런 고민에서, 은퇴는 힘들것 같지만 나의 어려움을 해결해줄만한 문제를 하나 발견했다.바로 스팸문자... 하루에도 10개가까운 스팸이 날라온다이런 스팸을 LLM이 잘 분류해주면 어떨까?그럼 이걸 우선 만들어보자!! 1. 우선 잘되는지 체크하자사전에 LLM모델이 어느정도 잘하는지 체크해보는게 좋다.나는 체크없이 바로 개발에 들어갔다.이럴경우 LLM이 못하는 과업인지, 아니면 내가 선택한 모델과 학습방법이 잘못된 것인지...판단하기 어렵다.그러니 과업을 실행전, 튜닝없이 LLM으로 실행해..
지난 글을 통해서,Docker 이미지만 있으면 쉽게 서비스를 실행할 수 있는 것을 알게 되었다.docker run httpd간단한 웹서비스 바로 사용 가능. 그렇다면 우리가 만든 서비스 역시- 이미지로 만들고,- 그 이미지를 docker run 를 실행(이미지로 컨테이너 만드는 과정포함)하면- 바로 서비스가 가능한 것이 docker의 매력이다. 그러면 지금부터는 내가만든 웹서비스(프론트앤드/백앤드)를1. 이미지로 만들고,2. 그 이미지를 관리(토커허브)하고,3. 이미지를 가져와서, 컨테이너를 만들고4. 서비스를 실행까지 알아보도록 하겠다. 0. Docker이미지 생성하기public에 올려진 이미지를 컨테이너로 만들어 사용할수 있지만,내가 만든 백엔드/프론트엔드 서비스는 내가 이미지로 만들어야 한다.그 ..

오픈소스 LLM이 매일같이 나오는 상황. 파인튜닝을 해보고 싶다. 하지만, 파인튜닝을 검색해보면, 양자화, PEFT, LoRA 등등 알아야 할것도 많고, 막상 코드를 돌릴려고 하니, 알아야 할 것이 많고 복잡하다. 한번은 스스로 정리가 필요하다고 판다. 거대 언어모델 Gemma-2B(20억개) 파인튜닝하는 과정을 직접 정리해 보도록 하겠다. 0. 목표 구글에서 발표한 비교적 작은 모델인 Gemma-2B를 파인튜닝하여, 문자내용을 보고 spam인지 아닌지를 판별하는 모델을 만들어 보겠다. 물론 classification모델에 Generation모델을 사용하는 것은 오버 스팩일수 있다. 하지만, 파인튜닝 학습이기도 하고, 사람처럼 어려운 스팸도 걸러내는 LLM의 능력을 보고자 한다. 1. 셋팅 허깅페이스 로..

FAISS는 Chroma_db와 함께 로컬에서 사용하기 벡터데이터 저장 및 검색 도구 chroma_db는 지난번에 다뤘기에 오늘은 FAISS를 사용해보고자 한다. FAISS는 메타에서 만든것 벡터데이터를 생성하고, 저장하고, 검색하는 순서를 정리해보면 기존 자료 임베딩 > 벡터db에 저장 > 벡터db에서 가장 유사한것 검색하여 찾기 이런 순서로 진행된다 #1. 텍스트 데이터를 적절한 모델을 사용하여 임베딩(예: 안녕하세요 > [1,8,10,100,.....]) 내가 가지고 있는 자료를 임베딩하는 과정이고, 여러번 하면 임베딩모델 사용료가 나오니, 전략을 잘 구상해서, 한방에 잘 임베딩 하고, 그 임베딩값을 잘 저장해두자. 용량이 많이 않아서, 책 5권을 적절하게 분할해서, openai의 새로나온 임베딩 ..

문장이 입력되면 스팸문자인지, 정상문자인지 확인하는 모델을 만들어보자. 앞전에는 PLM에 LoRA를 붙여서, 파인튜닝 후 스팸문자분류 모델 만들었음 #0. 성능비교 우선 결과부터 이야기해보면, [Gemma-2B+LoRA파인 튜닝으로 만든모델(GPU의 한계로 0.8epoch모델)] - test data에 대한 정확도 68% - 내가 직접 생성한 문자에 대한 구분... 체감상 잘함 [LSTM, CNN으로 만든모델(각각 5epoch)] - test data에 대한 정확도 99% - 내가 직접 생성한 문자에 대한 구분... 체감상 못함. 조금만 치팅을 넣어서 문자를 만들면 바로 스팸으로 분류 (예: 일상 대화문자 맨 앞에 '[Web발신]'을 넣으면 바로 스팸으로 분류.... 특정 부분에 과도하게 집중하고 있는 ..