목록AI & ML/학습하기 (6)
Ssul's Blog
오픈소스 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발신]'을 넣으면 바로 스팸으로 분류.... 특정 부분에 과도하게 집중하고 있는 ..
0. 배경 Pretrained 모델과 downstream task를 통해서 등장한 수 많은 AI언어 모델들. OpenAI는 gpt라는 pretrained된 모델에 파인튜닝(instruct, RLHF, PPO)을 통해 ChatGPT를 만들었고, 스탠퍼드 대학은 페북이 공개한 Llama라는 pretrained된 모델을 파인튜닝해서, Alpaca라는 모델을 만들었다. 그리고, 그 성능을 확인했다. 확실히 그전까지 챗봇과는 다른 ai스러움을 느낄수 있었다. 이러면서, 이제 가장 큰 화두는 Domain 특화 챗봇. 의료영역은 의료데이터를 학습한, 의료부문에 특화된 챗봇을, 금융영역은 금융데이터를 학습한, 금융부분에 특화된 챗봇을... 교육, 게임... 모든 영역이 자신의 분야에 특화된 모델을 만들고 싶어하고 있다..
0. 들어가며 최근에 멘탈헬스 스타트업에 개발총괄로 합류하면서, AI 기술을 활용한 다양한 방안들을 마련중. 그중 빠르게 테스트 하려고 하는 것은, AI가 가벼운 심리상담을 해주는 것과 특정 심리상담사의 상담스킬을 사용하는 특화 챗봇 두개. 첫번째는 시중의 LLM이 똑똑하기는 하지만, 상담에 특화되지 않았기 때문에 커스터마이징이 필요. 두번째는 특정인의 말투, 지식을 학습해야 하기 때문에... 다른 맥락에서 커스터마이징이 필요. 이 두가지 미션을 현재의 기술발전과 리소스제한 상황에서 어떻게 달성할 수 있을까? [기존 상업용 LLM(GPT, Bard...)활용 전략] 1. 상업LLM + Prompt engineering하기 방법: 따로 파인튜닝 없이, system메세지 설정 및 prompt원샷정도 주어서 ..
업무상 파인튜닝 성능을 알아봐야 할 일이 생김. 그래서 파인튜닝 경험기를 작성한다. #1. 파인튜닝 개념 제대로 알기 1-1. pre-train 모델 - downstream task pre-train모델은 엄청난 파라미터를 가지고 있는 거대모델로 생각하면 된다. gpt나 dalee2같은. downstream task는 pre-train된 모델을 가지고, 조금 더 추가 훈련시켜서 내가 원하는 작업(task)를 수행하는 것을 말한다. 문서의 종류를 분류하거나, 문장의 감정을 분석하는 것 같은. 1-2. 전이학습(transfer learning) 종류 이해하기 Fine-tuning - downstream task 데이터를 학습하면서 pre-train 파라미터 전체가 수정됨 Prompt-tuning - down..