목록분류 전체보기 (348)
미누에요

ChatGPT 등과 같은 AI 툴이 널리 사용되면서 LLM에 대해 정말 많은 언급이 이루어지고 있고, 여러 AI 기술 중 LLM에 대해서 관심을 갖는 사람들이 증가하고 있다.나도 그 중 하나이다. 이번 게시글에서는 연구실에서 간단하게 해본 LLM 파인튜닝에 대한 이야기를 담아보고자 한다.(참고로, 나는 AI에 대한 깊은 지식이 있지 않기에, 내용을 100% 신뢰하지는 말기 바란다.) LLM(Large Language Model)LLM, 그놈의 LLM 도대체 LLM이란 무엇일까 ? 영어로 된 약자를 풀어서 보면 단순하게 이해할 수 있다. Large Language Model, 즉 겁나 큰 언어모델이라는 뜻이다.수많은 양의 언어 데이터가 모델에 학습되어 있다. 여기서 말하는 수많은 데이터는 기본적으로 bi..

현재 개인적으로 공부 차 프로젝트를 진행 중인데, 이 프로젝트 중 Button 컴포넌트를 제작하고 있었다. 현재 TypeScript + module.scss를 사용하고 있는데, tsx 파일에서 특정 색상값을 변수 형식으로 넘겨주고, scss 파일에서 해당 값을 사용하고 싶었다.즉, tsx에서 변수를 넘겨받아 scss에서 사용하고 싶었던 것이다. const ImageCircle = styled.div` --size: ${props => props.size}px; width: var(--size); height: var(--size); border-radius: var(--size); background-image: url(${props => props.src}); backg..

개발을 하다보면 REST API라는 용어를 많이 보게 된다.나도 이때까지 무슨 API인지 제대로 모르고 있었는데, 이번 기회에 정리해보고자 한다. REST가 뭔가 ?REST(Representational State Transfer)는 자원을 이름으로 구분하고, 해당 자원을 주고받는 것을 의미한다.여기서 자원은 그림, 이미지, 텍스트 등을 의미하고, 그 자원의 이름으로 해당 자원을 표현하게 된다.웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식기본적으로 웹과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대로 활용할 수 있음모든 자원에 고유한 URI 가 등록됨 REST 의 구성 요소자원(Resources) : 각 자원들은 고유한 HTTP URI를 가지고 있으며, 해..

최근에 LLM을 파인튜닝해보고 있다.그 중 이번에 사용한 Unsloth에 대해서 기록해보고자 한다. Unsloth Unsloth는 파인튜닝을 위한 Python 라이브러리이다.파인튜닝을 할 때, 기존 LLM을 불러와 특정 추가적인 데이터셋으로 학습을 시키게 되는데, 기존 모델의 크기가 보통 굉장히 크기 때문에 추가적으로 학습을 시킬 때 컴퓨터 자원을 많이 필요로 할 수밖에 없다. 이러한 문제점을 해결하기 위해 보다 가볍고, 최적화한 도구인 Unsloth를 사용하는 것이다. 파인튜닝이 뭔데 ?파인튜닝이란 기존 모델에 새로운 데이터들을 추가적으로 학습하여 특정 분야에 답변을 더 잘하도록 만드는 방식이다.Unsloth 공식 웹페이지에서는 "도메인 지식을 향상시켜 특정 작업에 대한 성능을 향상시키는 것, 역전..

LLM 파인튜닝을 하던 중 아래와 같은 에러를 맞이했다.NotImplementedError: Cannot copy out of meta tensor; no data! 왜 이런 에러가 뜨는지 몰라서, 구글링을 했다. 코드 상으로 문제는 없었다. 그래서 더 의문이었다. https://stackoverflow.com/questions/77547377/notimplementederror-cannot-copy-out-of-meta-tensor-no-data NotImplementedError: Cannot copy out of meta tensor; no database_model = AutoModelForCausalLM.from_pretrained( 'meta-llama/Llama-2-7b-chat-hf', t..

웹 프론트엔드 개발자로 수많은 프로젝트를 진행하다 보면 컴포넌트의 사이즈를 정할 때 px을 사용하지 말라고 많이 들었을 것이다. px은 정적인 단위로, 데스크톱, 태블릿, 모바일까지 다양한 기기로 웹페이지를 접속하는 현 시점에서 불리하기 때문이다.그와 동시에, rem 혹은 em을 사용하라는 말도 들어봤을거라 생각한다. remrem은 root 폰트 사이즈를 1rem으로 계산하여 사용하는 방식이다. 부모 폰트 사이즈를 기준으로 하는 em과는 다르게, 가장 상위에 존재하는 root의 폰트 사이즈를 기준으로 하기에 보다 일관적인 UI를 나타낼 수 있다. 하지만 나는 개발을 하면서 왜 rem이 반응형인지 의문이 들기 시작했다.root 의 폰트 사이즈를 기준으로 철저히 계산된 정적인 값이 아닌가? 하지만 언제까지나..

비교적 최근 AI 시장을 떠들썩하게 했던 그 DeepSeek. AI 의 세계는 너무 깊고 심오하기에 컴퓨터공학전공의 기준에서, 적당히 호기심을 가지고 있는 입장에서 가볍게 파고들어 보았다. DeekSeek가 무엇인가DeekSeek는 중국 헤지펀드 회사 환팡퀀트 소속 인공지능 연구 기업의 이름이다.기업의 이름이자, 해당 기업에서 만든 AI 모델의 이름이기도 하다. 현재 시중에서 많이 거론되는 모델은 DeekSeek V3, DeepSeek R1이 있다. 신생 기업인가 ? 왜 이전까지는 들어보지 못했던거지 ?2025년 1월, DeekSeek R1 모델이 출시되고, 사람들이 DeekSeek라는 중국의 기업에 대해 관심을 가지기 시작했다. 하지만 그 전부터 DeepSeek는 꾸준히 모델 연구를 이어오고 있었다..

최근 프로젝트를 하던 중 다른 팀원의 코드에 interface를 사용하여 props를 받는 부분을 보았다. typescript를 아직 많이 사용해보지 않아 기본적으로 type을 사용하고 있었는데, 이 코드를 보고 interface와 type은 각각 어떨 때 사용하는거지 ? 라는 의문이 들어 찾아보게 되었다. type 을 사용하는 경우단순히 원시 값, 튜플(tuple) 등을 선언할 때!type Name = string; type은 일반적으로 모든 선언에 사용할 수 있다.선언해둔 것을 확장할 수 없다.type Student = { name:string; stdNo:string;};type Student = { age: number;}; // Error 또한 type으로 선언한 것들은 선언적 확장(..

프론트엔드 개발을 하다보면 처음에 배웠던 JavaScript 외에도 TypeScript라는 것을 사용하게 된다.이름만 들었을 때, type이 추가된건가 ? 싶다. 이에 대해서 차근차근 정리해보자. TypeScriptTypeScript는 JavaScript의 상위 집합이다. 즉 쉽게 말해서, JavaScript에서 type을 추가하여 확장한 언어라고 생각하면 좋다. JavaScript에다 타입 관련 기능을 추가한 언어이므로, 기존 JavaScript에서 사용하던 문법들을 100% 사용할 수 있다. TypeScript 공식 웹 페이지에서는 TypeScript의 강점을 위처럼 서술하고 있다.JavaScript에 추가적인 문법을 통해 타입 안정성을 확보하여 에러를 빠르게 잡을 수 있다.TypeScript는 J..

작년 여름방학에 LG AIMERS라는 아주 좋은 프로그램을 알게 되었고, 5기를 진행하며 내가 많이 부족하다는 걸 깨달았었다.그리고 그 후로 머신러닝/딥러닝 관련 스터디를 진행하며 내가 잘 알지 못하는 부분에 대한 학습을 진행하였고, 올해 초에 LG AIMERS 6기를 진행하게 되었다. 처음에 수강하는 강의의 내용은 5기와 완벽하게 동일해서, 빠르게 넘어갔다.그리고 시작된 온라인 해커톤....이번에는 elice가 아닌, dacon에서 진행되었다! 나는 처음에 엄청난 삽질을 했다.....코드에서 자꾸 train데이터에서 선택한 Feature가 test 데이터에 존재하지 않아 학습시킨 모델에 test 데이터를 넣지 못하고 있다는 것. 처음에 RandomForest 점수가 0.60, XGboost가 0...