본문 바로가기

ML

(55)
[개인프로젝트] 나만의 추천시스템 만들기 (2) 이전 포스팅  :  https://uiandwe.tistory.com/1483 1편에 이어 추천시스템 개선을 해보려 합니다.이번 주요 사항은 sklearn의 기본 vector 함수를 사용하는게 아닌, bert모델을 사용하여 vector 임베딩을 하고, 해당 벡터 값을 통해 추천시스템을 만드는겁니다. bert 모델을 사용한 간단한 추천 구현전체적인 로직은 다음과 같습니다.  1편과 내용이 똑같아서 코드는 제외했습니다. 아래의 내용은 이번 글에서는 제외했습니다. 1. 데이터 수집 : wanted에서 데이터를 수집해 옵니다. (크롤링)                 2. 수집된 내용을 사용자 평가 (기본 데이터로 쓰임)                                    3. 데이터 저장 : 이미지 ..
[개인프로젝트] 나만의 추천시스템 만들기 (1) 요즘 한창 원티드를 기웃 거리고 있는 중, 추천 포지션과 기업들이 이상하게 나오는게 눈에 띄었다.이력서에 넣지도 않은 프론트엔드 관련 jd의 합격 예측이 90%가 넘어가는거.대체 왜? 라는 의문과 함께 한번 나만의 추천을 만들어볼까? 하는 마음에 시작하게 되었다. 1. 추천시스템?서비스에는 다양한 종류의 콘텐츠 및 상품을 추천하는 서비스들이 있습니다. 기본적으로는 아이템기반과 유저 기반을 나눌수 있습니다.유저기반 : 나와 비슷한 사람이 본 컨텐츠를 추천아이템 : 내가 본 아이템과 비슷한 아이템 추천이중에서 나는 다른 사람의 데이터는 알수 없으므로, 아이템 기반으로 가닥을 잡았습니다.  구축하려는 것은 Multi-stage recommendation system을 통해 범용 시스템을 개발해보려 합니다. 다..
[MLOps] Triton을 활용한 모델 배포 스마일게이트에서 제공한 데이터를 기반으로 욕설분류 bert 모델을 만들었다. 기본 소스는 다음과 같다.https://colab.research.google.com/drive/1NKYYVSex__vde-lnYCmsRmyHjJhV6cKt?usp=sharing#scrollTo=Wi1qd6i8__Jl[위의 설명은 이전 포스팅인 https://uiandwe.tistory.com/1395 에 있다]  1.Triton Inference Server  Triton Inference Server는 GPU 장비를 효과적으로 사용하면서 리소스 비용을 절약하기 위해 일종의 GPU전용 서버를 하나 만들어서 다양한 모델들을 서빙할수 있도록 돕는 추론 서버 역활을 맡은 고성능 추론에 최적화된 오픈소스 소프트웨어입니다. 다양한 모델..
Failed to initialize NVML: Driver/library version mismatch nvidia-smi 실행시  오류 발생Failed to initialize NVML: Driver/library version mismatch 해결책 먼저 현재 nvidia 실행중인 프로세서를 모두 kill 한다.sudo lsof /dev/nvidia* kill -9  다시 lsof 로 검색시 나오는게 없으면 다음으로 진행sudo lsof /dev/nvidia*  nvidia 관련 모듈 재시작sudo rmmod nvidia_drmsudo rmmod nvidia_modesetsudo rmmod nvidia_uvmsudo rmmod nvidiasudo modprobe nvidia  정상 동작 확인$ nvidia-smi  끝
[논문리뷰] KNOWLEDGE SOLVER: TEACHING LLMS TO SEARCH FORDOMAIN KNOWLEDGE FROM KNOWLEDGE GRAPHS https://arxiv.org/pdf/2309.03118 나의 결론 : graph search를 통해 LLM의 성능을 향상 시킬수 있다 (파인튜닝시에도 유용하게 사용할 수 있다) AbstractChatGPT 및 GPT-4와 같은 대규모 언어 모델(LLM)은 다양한 작업을 해결할 수 있습니다. 그러나 LLM은 때때로 작업을 수행하기 위한 도메인별 지식이 부족하여 추론 중 환각을 유발하기도 합니다. 이전 연구에서는 도메인별 지식 부족 문제를 완화하기 위해 외부 지식 기반에서 검색된 지식에 대해 그래프 신경망(GNN)과 같은 추가 모듈을 학습시켜 도메인별 지식 부족 문제를 완화했습니다.하지만 추가 모듈을 통합하려면1) 새로운 도메인을 접할 때 추가 모듈을 재학습2) LLM의 강력한 능력을 충분히 활용하지 못..
[논문 리뷰] RoBERTa: A Robustly Optimized BERT Pretraining Approach https://arxiv.org/pdf/1907.11692 결론기존 BERT 성능을 다음을 통해 향상 시킬 수 있었음• 더 많은 데이터에 대한 더 큰 배치 사이즈를 사용해 더 오래 학습• NSP 삭제• Dynamic Masking• 더 많은 sequence로 학습을 통해성능 향상    요약언어 모델 사전 학습은 상당한 성능 향상을 가져왔지만 다양한 접근 방식을 신중하게 비교하기는 어렵습니다. 훈련은 계산 비용이 많이 들고, 종종 다양한 크기의 비공개 데이터 세트에서 수행되며, 많은 주요 하이퍼파라미터와 학습 데이터 크기의 영향을 측정합니다. 그 결과, BERT는 훈련이 상당히 부족했으며, 그 이후에 발표된 모든 모델의 성능과 일치하거나 능가할 수 있는 것으로 나타났습니다.이전에 간과되었던 설계 선택의 중..
ml를 쉽게 쓰기 위한 프론트 작업 몇주전 위의 영상을 보고 충격을 받았었다.내가 원하는건 "신기술을 통한 제품"을 만드는게 아니라 "사용자가 사용하기 쉬운 서비스"가 목표였었는데 말이다."너무 기술에만 매몰되어 있었을까?"하는 생각과 함께 누구나 접근하기 쉽게 하자는 생각이 들었다. 현재 팀에서는 LLM에 대한걸 내가 주도적으로 만들고, 기획자나 라벨러분들의 의견을 코딩하고, 결과값만 보여주는 형식으로 진행되고 있었다.결국 요청한 결과값을 보기위해서는 "내가 코딩하고 결과값까지 시간이 걸린다.""기획자와 라벨러가 바로 볼수 있게 만들면 되지 않아?" 이 쉬운 작업을 왜 안하고 있었을까? 하는 생각과 함께 오랜만에 프론트를 들여다 보았다. 지금 팀에서는 react를 프론트로 하고 있어서, react+zustand 조합으로 공부했다. (대충..
[논문 리뷰] SPLADE: Sparse Lexical and Expansion Modelfor First Stage Ranking 3줄 요약 SPLADE를 사용하면 fine-tuning 필요 없이 더 빠르고 정확한 검색이 가능합니다. 하지만 기존 성능에 비해 크게 향상은 되지 않고 잘못된 semantic 검색도 야기됩니다. Abstract 문서와 쿼리에 대한 희소 표현을 학습하는 것에 대한 관심이 높아지고 있다. 명시적 희소성 정규화와 용어 가중치에 대한 새로운 랭커를 제시하여 고도로 희소한 표현과 비교하여 경쟁력 있는 결과를 이끌어낼수 있다. introduction SPLADE는 효율적인 문서 확장을 수행하며, 고밀도 모델을 위한 복잡한 훈련 파이프라인에 대해 경쟁력 있는 결과를 보여준다. 희소 정규화를 제어하여 효율성(부동 소수점 연산 횟수)과 효과 사이의 균형에 영향을 줄 수 있는 방법을 보여줍니다. RELATED WORKS ..