Cyp Blog

· AI/Basic
Attention Is All You Need 는 Transformer 기술을 소개하는 논문으로서, 이전에 한차례 리뷰한 바가 있다. 이 중 CrossAttention 에 대한 한국어 포스팅이 많지 않아보여 작성해본다. Transformer 는 Translation, VC, STT, TTS등 시계열 데이터를 처리하는데에 있어 사용할 수 있다. 즉 Decoder 의 출력은 Text 가 될수도 있고, Mel Spectrogram 형태가 될수도 있으며, 아마 '영상' 쪽으로도 출력을 내는게 가능할 것이다. (여기서는 번역을 기준으로 작성하겠다.) 붉은박스로 표시한 CrossAttention 은 좌측의 Encoder 단에서 나오는 출력이, 우측의 Decoder 단으로 들어가는 구조이다. 먼저 코드를 살펴보자. ..
· Tools/Etc
Filen 은 독일에서 운용하는 Cloud Storage 서비스로, 몇몇 장단점을 가지고 있다. 장점1. 보안기본적으로 Cloud Storage 서비스 제공사들은, 수사기관의 요청에 따라 데이터를 제공해야 할 의무가 있다. 예로 사용자가 아래와 같은 파일을 가지고 있다고 의심되는 경우이다.아동포르노마약거래스너프필름물론 저런 파일을 공유하는 사용자들을 검거하는건 좋다.하지만 문제는 저런 파일들을 검열하기 위해 정상적인 유저들의 파일들을 살펴볼 수 있다는 점이다. 가족사진, 내가 짠 소스코드, 백업용 보안키 등등을 Cloud 측에서 확인할 수 있다는것은 사용자 입장에서 매우 찜찜하다. 이는 내가 아는 거의 모든 Cloud 의 운영 방침이다.대표적으로 OneDrive, Google Dr..
· AI/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 을 다뤄본 경험이 있다면 행..
· AI/Article
해당 논문은 LoRA 를 개선한 버전인 AdaLoRA 에 대해 제안하는 논문이다. 1. 서론기존 Full Fine-Tuning, LoRA 는 NLP 에서 중요한 패러다임이 되었으나, 일반적으로 '모든' parameter 를 미세 조정하기에 최적의 조정을 수행할 수 없다는 단점이 있다.이러한 문제를 해결하기 위해 가중치 행렬 간 parameter 자원(budget) 을 중요도 점수에 따라 적응적으로 할당하는 AdaLoRA 를 제안한다. 특히 AdaLoRa 는 특이값 분해(Singular Value Decomposition, SVD)의 형태로 증분 업데이트를 parameter 화 한다. 이러한 접근 방식을 통해 중요하지 않은 업데이트의 특이값을 효과적으로 가지치기할 수 있으며, 이는 본질적으로 p..
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 < N; ++i) { s..
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 이다. 위 지식을 기반으로 아래 코..
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..
· AI/Article
1. 서론 자연어 처리는 시간이 가면 갈수록 중요해지고 있다. Text to Speech, Speech to Text, Translation, GPT 에 이르기까지 그 발전 가능성은 무궁무진 하다. 특히 핵심적인 혁신은 모델 자체를 수정하거나, parameter 를 증가시키는 데에서 오는 경우가 많지만, 그럼에도 불구하고 fine-tuning 은 중요하다. 하지만 모델의 사이즈가 점점 커져감에 따라 전체 fine-tuning 은 매우 버거운 작업이 되었다. 예로 GPT-3 의 한 모델은 175B 개의 parameter 가 존재하는데, 이런 무지막지한 모델을 fine-tuning 하는것은 어지간한 대규모 연구소 수준이 아니면 버거운 일이다. 때문에 저자들은 pre-trainied 된 모델의 가중치를 'fr..
· AI/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..
· AI/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..
Cyp
'분류 전체보기' 카테고리의 글 목록