본문 바로가기

인공지능

Efficient Streaming Language Models with Attention Sinks 스트리밍 언어 모델의 효율성 향상과 Attention Sinks 언어 모델링은 텍스트를 생성하고 이해하는 데 사용되는 인공지능 알고리즘입니다. 기존 언어 모델은 데이터 처리에 많은 자원을 필요로 하며, 특히 긴 텍스트를 다룰 때 비효율적일 수 있습니다. 긴 텍스트를 처리할 때 기존 모델들은 느려지고 많은 메모리를 필요로 합니다. 이는 특히 모델이 긴 텍스트를 처리하며 정확도를 유지하려고 할 때 더욱 심해집니다. 이에 대한 해결책으로 'Attention Sinks'라는 새로운 개념이 도입되었습니다. 이 기법은 언어 모델이 텍스트의 특정 부분에만 주의를 기울이도록 하여, 불필요한 계산을 줄이고 모델의 속도와 효율성을 향상시킵니다. 이 새로운 방식을 적용한 모델은 긴 텍스트를 더 빠르고 효율적으로 처리할 수 .. 더보기
Mamba: Linear-Time Sequence Modeling with Selective State Spaces Mamba: 단순화된 시퀀스 모델링 Mamba는 새로운 종류의 컴퓨터 알고리즘이며, Albert Gu와 Tri Dao가 개발했습니다. 이 기술은 '선택적 상태 공간'을 사용하여 시퀀스(데이터의 순서)를 모델링합니다. 이것은 기존의 방법들과는 다른 접근 방식입니다. 기존 방식과의 차이점 Transformers: 이전에 많이 사용된 Transformers는 긴 데이터 시퀀스를 처리하는 데 효율적이지만, 계산량이 많고 메모리 요구사항이 높습니다. Recurrent Neural Networks (RNNs): RNN은 데이터 시퀀스를 처리하는 데 널리 사용되지만, 긴 시퀀스에는 효율적이지 않고 학습이 어려울 수 있습니다. Mamba의 특징 선택적 상태 공간: Mamba는 선택적 상태 공간을 활용하여 기존 방식의 .. 더보기
GEM Pooling class GeM(nn.Module): def __init__(self, p=3, eps=1e-6): super(GeM, self).__init__() self.p = nn.Parameter(torch.ones(1)*p) self.eps = eps def forward(self, x): return self.gem(x, p=self.p, eps=self.eps) def gem(self, x, p=3, eps=1e-6): return F.avg_pool2d(x.clamp(min=eps).pow(p), (x.size(-2), x.size(-1))).pow(1./p) def __repr__(self): return self.__class__.__name__ + \ '(' + 'p=' + '{:.4f}'.for.. 더보기
Segforemer 참고 https://blog.kubwa.co.kr/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-segformer-simple-and-efficient-design-for-semantic-segmentation-with-transformers-d7169e030323 더보기
LORA https://arxiv.org/abs/2106.09685 LoRA: Low-Rank Adaptation of Large Language Models An important paradigm of natural language processing consists of large-scale pre-training on general domain data and adaptation to particular tasks or domains. As we pre-train larger models, full fine-tuning, which retrains all model parameters, becomes le arxiv.org 참고 https://kyujinpy.tistory.com/83 더보기
Chapter 10 Various artificial intelligence 인공지능이 활용되고 있는 다양한 영역을 소개하고 기본적인 인공지능 리뷰를 끝내려한다. 먼저 소개할 것은 Adversarial Attacks이다. 위의 이미지가 햇갈리는가? 개와 머핀, 개와 대걸래의 사진이다. 우리는 명확하게 인식하지만 컴퓨터는 명확하게 인식하지 못한다. Adversarial Attack이란 이미지 분류와 같은 인공지능 모델을 속이기 위해, 입력에 감지할 수 없는 노이즈를 추가하여 모델의 결과를 변경하는 것이다. 다음 그림과 같이 많은 형태의 Adversarial Attack이 있다. Adversarial examples는 기계 학습 모델에 대한 보안 우려를 일으킨다. - 하나의 네트워크를 속이기 위해 만들어진 공격은 다른 네트워크도 속인다. - 공격은 물리적 세계에서도 작동한다. - 심.. 더보기
Chapter 9 Hyperparameter Optimization 우리는 지금까지 모델 구조에 대해서 이야기했다. 안에 들어가는 변수들에 대한 조정을 크게 다루지 않았다. 예를들어, Learning rate, Momentum rate, Dropout, Normalization, Number of layers, number of nodes에 대해서 말이다. 하지만 이 변수들을 효과적으로 setting하는 방법이 있을까? 현재는 없다고 알고 있다. 예시를 한번 들어보자. 우리가 3-layer perceptron을 만들었다고 하자. 그렇다면 다음의 hyperparameter들을 최적화해야 될 것이다. • Learning rate: 𝜂 • Momentum rate: 𝑟 • Dropout probability: 𝑝 • Number of nodes in the first hidd.. 더보기
Chapter 8 Small Nets and EfficientNet 우리는 지금까지 모델에 layer들이 추가되는 방식에 대해서 설명했다. 얼마나 더 큰 모델을 만들고 이것들이 잘작동하는지 말이다. 하지만 큰 모델들은 컴퓨터나 클라우드에서 사용가능하다. 이는 어디에서나 해당 모델을 사용할 수 없다는 말이다. 가령 인터넷이 끊기는 지역이라던가 컴퓨터가 없는 밖에서는 말이다. 그렇다면 핸드폰에서 인공지능을 사용하면 어떨까? 왠만한 곳에서 학습도 가능하고 실제 사용도 가능하지 않을까? 이렇게 해서 나온 것이 MobileNet이다. MobileNet-V1 MobileNet-V1을 이해하려면 이전에 설명했던 것들을 기억해야한다. 먼저, Depthwise Separable Convolution이다. 우리는 이를 통해 총 연산을 줄이는 것을 알고 있다. 이를 활용하면 아래 그림의 왼.. 더보기