Filen 후기
·
Tools/Etc
Filen 은 독일에서 운용하는 Cloud Storage 서비스로, 몇몇 장단점을 가지고 있다. 장점1. 보안기본적으로 Cloud Storage 서비스 제공사들은, 수사기관의 요청에 따라 데이터를 제공해야 할 의무가 있다. 예로 사용자가 아래와 같은 파일을 가지고 있다고 의심되는 경우이다.아동포르노마약거래스너프필름물론 저런 파일을 공유하는 사용자들을 검거하는건 좋다.하지만 문제는 저런 파일들을 검열하기 위해 정상적인 유저들의 파일을 살펴볼 수 있다는 점이다. 가족사진, 내가 짠 소스코드, 백업용 보안키 등등을 Cloud 측에서 확인할 수 있다는것은 사용자 입장에서 매우 찜찜하다. 이는 내가 아는 거의 모든 Cloud 의 운영 방침이다.대표적으로 OneDrive, Google Drive 도 마찬가지이며 M..
행렬 기초
·
Artificial Intelligence/Basic
이전 포스팅의 주제인 AdaLoRA 는 행렬에 대해 잘 알지 못하면 그 원리를 근본까지 이해하기 힘든 구성을 지니고 있다. 최종적으로 이해는 했지만 이를 정리해 두지 않으면 한달만 지나면 다 까먹을 것이기 때문에 기록해 둔다.행렬역행렬전치행렬대칭행렬항등행렬(단위행렬)대각행렬직교행렬및 행렬연산 특성에 관해서 설명한다.  1. 행렬(matrix)$$\begin{equation}    \begin{bmatrix}     a_{11} & a_{12} & a_{13}  \\    a_{21} & a_{22} & a_{23}  \\    a_{31} & a_{32} & a_{33}  \\    \end{bmatrix}  \end{equation}$$행렬에 관해서 모르는 사람은 없으리라 본다. Excel 을 다뤄본 ..
[리뷰] AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning
·
Artificial Intelligence/Article
해당 논문은 LoRA 를 개선한 버전인 AdaLoRA 에 대해 제안하는 논문이다. 1. 서론기존 Full Fine-Tuning, LoRA 는 NLP 에서 중요한 패러다임이 되었으나, 일반적으로 '모든' parameter 를 미세 조정하기에 최적의 조정을 수행할 수 없다는 단점이 있다.이러한 문제를 해결하기 위해 가중치 행렬 간 parameter 자원(budget) 을 중요도 점수에 따라 적응적으로 할당하는 AdaLoRA 를 제안한다. 특히 AdaLoRa 는 특이값 분해(Singular Value Decomposition, SVD)의 형태로 증분 업데이트를 parameter 화 한다. 이러한 접근 방식을 통해 중요하지 않은 업데이트의 특이값을 효과적으로 가지치기할 수 있으며, 이는 본질적으로 paramet..
[C++] 백준 2002 문제 해설
·
Algorithm/BACKJOON
2002번: 추월입력은 총 2N+1개의 줄로 이루어져 있다. 첫 줄에는 차의 대수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 대근이가 적은 차량 번호 목록이 주어지고, N+2째 줄부터 N개의 줄에는 영식이www.acmicpc.net처음에는 별생각없이 풀었고, 나중에 다들 map 을 쓴다는걸 알게되어서 추가하였다.두가지 버전 모두 첨부한다.map(X)#include #include int main(){ int N; bool visited[1000] = {false, }; std::vector input; std::vector output; std::cin >> N; std::string temp; // 입력 로직 for(int i = 0; i > temp; input.push_..
[C++] 백준 14501 문제 해설
·
Algorithm/BACKJOON
14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 해당 문제에 대해서 여러 풀이가 존재하지만, 이 풀이가 가장 좋아보이기에 주석을 달아 포스팅 해 본다. 해당문제에서 명심해야 할 점은 그냥 최고 급여만 출력하면 된다는 점이다. 날짜는 기록할 필요도 없다. 힌트는 '거꾸로' 계산하는 것이다. 예로 문제 내용을 보면 7일과 6일은 근무일을 넘어가기에 계산에 포함시켜야될 필요도 없다. 5일 = 15 O 4일 = 20 + 15 O 3일 = 10 + 20 + 15 O 2일 = 20 < (10 + 20 + 15) X 1일 = (10 + 20 + 15) == (10 + 20 + 15) O 따라서 최고로 나올 수 있는 값은 45 이다. 위 지식을 기반으로 아래 코..
[C++] 백준 1260번 문제 해설
·
Algorithm/BACKJOON
1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net DFS, BFS 관련된 문제로 간단한 문제이다. 해석은 주석으로 기재 해 두었으며 코드의 흐름따라 주석과 함께 코드를 읽어보면 쉽게 이해가 될 것이다. #include #include // 이론상 정점의 개수는 1,000 개 이며 1 < N < 1000 이므로 1001 지정. // 간선의 개수는 10,000 개 미만임. // map 을 기준으로 1,000 x 1,000 = 1,000,000 의 간선 지정이 가능. #defin..
[리뷰] LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
·
Artificial Intelligence/Article
1. 서론자연어 처리는 시간이 가면 갈수록 중요해지고 있다. Text to Speech, Speech to Text, Translation, GPT 에 이르기까지 그 발전 가능성은 무궁무진 하다. 특히 핵심적인 혁신은 모델 자체를 수정하는 데에서 오는 경우가 많지만, 그럼에도 불구하고 fine-tuning 은 중요하다.하지만 모델의 사이즈가 점점 커져감에 따라 전체 fine-tuning은 매우 버거운 작업이 되었다. 예로 GPT-3 의 한 모델은 175B 개의 parameter가 존재하는데, 이런 무지막지한 모델을 fine-tuning 하는것은 어지간한 대규모 연구소 수준이 아니면 버거운 일이다.때문에 저자들은 pre-trainied 모델의 가중치를 'freeze' 하고 transformer 아키텍처의 ..
모델 훈련시 Epoch 와 Steps 의 차이
·
Artificial Intelligence/Basic
모델을 훈련할때 평가과정은 보통 epoch 로 진행하는데, 간혹 특정 예제들은 steps 로 진행되기도 한다. 예로 Seq2SeqTrainingArguments 의 설정 옵션을 살펴보면 evaluation_strategy (str or IntervalStrategy, optional, defaults to "no") - The evaluation strategy to adopt during training. Possible values are: "no": No evaluation is done during training. "steps": Evaluation is done (and logged) every eval_steps. "epoch": Evaluation is done at the end of e..
batch_size 란?
·
Artificial Intelligence/Basic
여러 모델을 학습시키는데에는 batch_size 옵션을 지정해 주어야 한다. 나의 경우 Transformer 를 학습시킬때 사용되는 Seq2SeqTrainingArguments 의 batch_size 옵션을 지정하기 위해 batch_size 의 계념에 관해 살펴보았다. Seq2SeqTrainingArguments 에서 batch_size 옵션은 per_device_train_batch_size (int, optional, defaults to 8) : The batch size per GPU/XPU/TPU/MPS/NPU core/CPU for training. 로서, 이는 '모델이 한번에 학습하는 데이터 샘플수' 이다. 이러한 batch_size 를 지정하는데는 아래와 같은 장, 단점이 존재한다. 큰 b..
[리뷰] TRIAAN-VC
·
Artificial Intelligence/Article
TRIAAN-VC 논문은 any-to-any voice conversion 을 수행하는 모델이다.나는 IEEE 에서 여러 VC 논문들을 찾아보았다. 특히 2020년 이후에 제작된 any-to-any 모델들을 중점적으로 살펴보았다.그간 VC 관련 논문들을 꽤 많이 읽어보았고, 그에 따른 결론은 '구조가 어떻게 되든 일단 성능이 최고인 것을 찾자' 였다. Speech 데이터를 생성하는 모델은 성능을 평가하기가 '까다롭다'.  보통 많은 청취자를 동원해서 직접 사람이 통계적으로 평가를 하는 MOS 지표를 토대로 평가한다. 좀 비 과학적으로 보일 수 있어도, MOS 점수가 내가 주관적으로 느끼는 모델의 실제 성능과 엇나간 적은 없다.어쨋든 IEEE 에서 여러 논문들을 검색해 본 결과, 일부 모델들은 MOS 점수..