전체 글

· 알쓸신잡
오늘은 다양한 LLM 모델들을 로컬에서 사용할 수 있는 ollama를 설치해보고자 한다. 또한 웹 UI로도 실행시킬 수 있어 로컬 Chat gpt처럼 사용할 수 있다! 우선 Linux와 Mac은 쉽게 설치해서 사용할 수 있는데 windows 버전은 아직 공개되지 않았다고 한다. 그러나 window에서 WSL(Windows System for Linux) 기능을 이용하여 윈도우에서 리눅스 환경을 실행할 수 있어 ollama를 사용할 수 있다. 1. WSL 기능 활성화 우선 제어판에 들어가서, `Windows 기능 켜기/끄기`를 검색한다. (혹은 제어판->프로그램 및 기능) 이후, `Linux용 Windows 하위 시스템`과 `가상 머신 플랫폼`을 활성화 시켜주고 pc를 재부팅해준다. 다음으로 power s..
Linear Regression 은 $y=Wx+b$로 표시되는 선형식으로 $x$와 $y$사이의 관계를 찾는 모델이다. 분류와는 다르게 회귀 모델은 선형식의 계산결과 자체가 예측값이다. 이 선형회귀의 관계식을 찾을 때 실제 현실에서는 오차가 0일 수없기 때문에 선형회귀란, 오차가 가장 적게 되는, 즉 관계를 가장 잘 대변하는 식을 찾는 것이라고 할 수 있다. 따라서 오차가 가장 적게 되도록 학습을 진행하며 가장 많이 사용되는 Loss function은 `MSE:Mean Squared Error`이다. 각 loss function에 대한 설명은 아래에 자세하게 설명하였다. 간단하게만 말하자면, MSE는 outlier 데이터가 있다면 오차가 매우 크게 나오기 때문에 미리 이상치등을 제거해줘야 한다. Evalu..
0. 등장배경 Random Forest를 아주 간단하게 설명하자면, Decision Tree가 모여서 더 좋은 결과를 내는 모델이다. 자세하게 말하자면 Random Forest는 CART모델의 단점을 극복하기 위해 제시된 모델로서, Decision Tree 하나로는 training data에 너무 쉽게 overfitting 되고, 이에 여러 개의 Decision Tree를 사용하여 다수결을 사용하는 방식으로 보완하고자 하였다. 이렇게 단일 모델 여러 개를 모아서 더 좋은 판단을 하는 방법론은 `Model Ensemble`이라고 한다. 이때 단순 DT를 모은 것이 아니다. 왜냐면 같은 데이터에 대해서 만들어진 DT는 같은 결과를 출력하게 된다. 이에 다양성을 추가해 주기 위하여 2가지 기법을 사용하였다. ..
· ML & DL/NLP
0. 등장배경 Transformer: 트랜스포머는 2017년 구글이 발표한 "Attention in all you need"에서 발표된 모델로, Seq2Seq의 구조인 인코더 디코더 형태를 따르면서도 Attention으로만 구현된 모델이다. 이 모델은 RNN구조를 사용하지 않았음에도 번역 성능에서도 RNN보다 우수한 성능을 보여줬으며 지금까지도 다양한 분야에서 사용된다. RNN, LSTM, Seq2Seq 등의 언어모델들은 연속적인 입력에 대한 모델링을 개선하여 자연어처리 분야에서 많은 성과를 가져왔으며, Seq2Seq 등의 모델들은 시간에 의존적인 입력시퀀스에 따라 hidden state를 생성하여 입력을 처리하는 구조이며, 가변적인 입/출력을 처리하는데 효과적이었다. 그러나 고정된 크기의 context..
텐서란 데이터의 배열(array)을 의미한다. 1. 텐서의 연산 1-1. 사칙연산 텐서의 사칙연산은 단순하게 원소 단위로 연산하는 것을 의미한다. 다음과 같이 같은 행, 열에 있는 원소들끼리 사칙연산을 수행하면 된다. 1-1-1. 사칙연산 코드 tensor_a = torch.tensor([[1, -1], [2, 3]]) tensor_b = torch.tensor([[2, -2] ,[3, 1]]) print('덧셈') print("a+b : \n", tensor_a + tensor_b) print("torch.add(a,b) : \n", torch.add(tensor_a, tensor_b)) print('뺄셈') print("a-b : \n", tensor_a - tensor_b) print("torch...
오늘은 다양한 데이터 증강 기법들에 대하여 간단하게 정리하였다. 일반적으로 데이터가 충분하지 않다면 과적합이 일어나기 때문에 충분한 양의 데이터를 확보하는 것은 중요하다. 그러나 더 이상 새로운 데이터를 얻을 수 없는 경우, 데이터 증강기법등을 사용해 볼 수 있다. 다만 데이터 증강을 진행할 때 함부로 데이터를 변형하여 증폭시키면 안되고, 해당 데이터의 도메인을 잘 고려해서 처리해야 한다. 예를 들어 객체 인식을 하고 있는데, 이미지를 크롭 하였는데 해당 영역에 객체가 없거나 숫자 6을 돌려서 9로 만들어버리는 등 문제가 생길 수도 있으므로 적절한 기법을 이용해야 한다. 이미지 데이터 증강 기본적으로 이미지 데이터 증강 기법에는 `Resize:사이즈조절`,`Rotation:회전`,`Flipping:뒤집기..
모델에서 최적화의 목표는 손실함수(Loss function)의 값을 최소로 만들어줄 수 있는 가중치 Weight를 효율적으로 찾는 것이라고 여러 번 말했었다. $$ w^* = \arg\min_w L(w) $$ 이러한 최적화 알고리즘 중 경사하강법, 스토케스틱 경사하강법, 미니배치 경사하강법을 이전에 알아봤었다. Gradient Descent: 경사하강법 딥러닝에서 손실 함수의 값이 최소가 되도록 모델의 파라미터를 조정하는 최적화 알고리즘에 대하여 정리해 봤다. 우선 최적화알고리즘에 쓰이는 경사하강법을 알기 전에 미분에 대하여 먼저 changsroad.tistory.com 이번에는 경사하강법을 발전시킨 다양한 옵티마이저들을 알아보겠다. 1. Gradient Descent 손실함수의 기울기를 계산하여, 기울..
창빵맨
Let's be Developers