분류 전체보기 (11) 썸네일형 리스트형 라마 모델, 코드와 그림으로 이해하기 파트 3 - RoPE를 중심으로 안녕하세요, 수달이입니다. 벌써 시리즈의 세 번째 글이네요. 오늘은 그동안 배운 것들을 종합하여 LlamaModel 클래스를 완성해 보겠습니다. 우선 구성요소부터 살펴볼까요? تLlamaModel 구성요소 살펴보기def __init__(self, config: LlamaConfig): super().__init__(config) self.padding_idx = config.pad_token_id self.vocab_size = config.vocab_size self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx) self.layers = nn.ModuleList( .. 라마 모델, 코드와 그림으로 이해하기 파트 2 안녕하세요, 수달이입니다. 라마 모델 이해하기 두 번째 파트! 오늘은 디코더 (Decoder) 모듈에 대해 다루겠습니다. 디코더의 8할은 어텐션 (Attention) 모듈이라고 할 수 있는데요. 지난 포스팅을 열심히 읽으신 분이라면 이미 디코더의 반 이상은 이해하신 셈이죠. ت 그럼 가벼운 마음으로 시작해 볼까요?디코더 구성요소 살펴보기def __init__(self, config: LlamaConfig, layer_idx: int): super().__init__() self.hidden_size = config.hidden_size self.self_attn = LlamaAttention(config=config, layer_idx=layer_idx) self.mlp = Llam.. 라마 모델, 코드와 그림으로 이해하기 파트 1 안녕하세요, 수달이입니다. 오늘부터 메타 라마(Llama) 모델의 아키텍처를 깊-게 살펴보는 새로운 시리즈를 시작하겠습니다. 논문으로 공부하는 것도 좋은 방법이지만, 이번 시리즈에서는 이미지와 HuggingFace Transformer 코드를 활용하여 좀 더 쉽게 배워보고자 합니다. 그럼 공부 순서부터 함께 볼까요? LlamaAttentionLlamaDecoderLayerLlamaModelLlamaForCausalLM최근 언어 모델들은 대부분 트랜스포머를 기반으로 하는데요. 이 트랜스포머의 핵심인 어텐션 모듈부터 시작해서, 점차 범위를 넓혀 디코더, 베이스 모델, 언어 모델링 모델 순으로 살펴보겠습니다. 나무에서 시작하여 숲을 이해하는 눈을 키우는 것이죠. 그럼 어텐션 모듈부터 시작해 볼까요? 출-발.. [Position Embedding] RoPE 로타리 포지션 임베딩 오늘의 토픽으로 들어가기 전에 지난 글을 빠르게 복습해 보겠습니다. LLM 세계의 대부 같은 모델, Transformer의 핵심은 self-attention이었죠. self-attention은 타겟 단어 앞/뒤의 모든 단어를 동시에 고려할 수 있어서, 왼쪽에서 오른쪽으로 프로세싱을 하는 이전의 모델들보다 좋은 성능을 보인다고 배웠습니다. 단, 지난 글에서 언급하지 않은 중요한 디테일이 하나 있는데요. 바로, self-attention은 position-agnostic, 즉 이웃 단어들의 정확한 위치를 알지 못한다는 점입니다 [2]. 즉, 이웃 단어들의 존재유무만 알 뿐 그 단어가 내 앞에 있는지, 그렇다면 얼마나 떨어져 있는지에 대한 개념이 없습니다. Position Embedding하지만, 문장에서는.. [Attention] Sliding Window Attention 슬라이딩 윈도우 어텐션 머신러닝, 딥러닝, AI를 공부하는 사람이라면 모를 수 없는 페이퍼, Attention Is All You Need! 이 페이퍼의 핵심은 self-attention이라는 개념입니다. 한 단어씩 한국어로 풀어보자면, 나 (self) 에 대한 관심 (attention) 인데요. 즉, self-attention은 자기 자신 (언어 모델에선 입력 문장이겠죠?) 의 이곳저곳에 주의를 기울이는 것입니다. Self-Attention 너무나도 유명한 너문장의 왼쪽에서 오른쪽으로, 일종의 "방향성"을 가지고 있었던 이전 아키텍쳐들 (예. RNN, LSTM) 과는 다르게, self-attention은 방향성 없이 앞/뒤 모든 위치의 단어를 고려할 수 있다는 점에서 획기적인 아이디어였습니다. 예를 들어, "어제 화성에 갔.. 추천 시스템 06. Matrix Factorization 행렬 분해 두 행렬(매트릭스)을 곱하는 방법! 알고 계시나요? 이미 빠삭하신 분들은 다음 섹션으로 바로 넘어가셔도 좋지만, 기억이 가물가물하거나 수학을 일찍 포기해버리셨던 분들을 위해 행렬의 곱셈에 대한 설명으로 글을 시작하겠습니다. Matrix Multiplication. 행렬의 곱셈. 두 수의 곱셈과 달리 두 행렬의 곱셈은 순서가 매우 중요합니다. 두 수 2와 3은 어느 수를 앞에 두어도 곱셈 결과가 같지만 ($2 \times 3 = 3 \times 2 = 6$), 두 행렬 A, B 간의 곱셈은 어떤 행렬을 앞에 두냐에 따라 결과가 달라집니다 ($ A \cdot B \neq B \cdot A $). 곧 설명할 두 행렬의 모양에 대한 룰을 지키지 못할 경우, 곱셈 연산 자체를 수행할 수 없기도 합니다. 따라서 어.. 추천 시스템 05. Item-based Collaborative Filtering 아이템 기반 협업 필터링 안녕하세요, 수달이입니다 😊. 지난번 포스팅에서 다룬 유저 기반 협업 필터링의 단점을 기억하시나요? 바로 확장성(scalability)이 부족하다는 점이었죠. 거대 웹사이트들에게는 수백만의 유저를 대상으로 유저 간의 유사성을 연산하는 것이 다소 부담스러울 수 있습니다. 그래서 미국의 이커머스 기업인 아마존은 이러한 한계를 극복하고자 유저 기반 협업 필터링을 대체할 새로운 방법, 아이템 기반 협업 필터링 Item-based Collaborative Filtering을 개발했는데요. 이번 포스팅에서는 이 알고리즘에 대해 얘기해보겠습니다. 그거 산 사람들은 이것도 사던데? 인터넷 쇼핑 자주 하시나요? 코로나가 시작된 이후 저는 식재료를 포함하여 거의 모든 것을 택배로 받아보고 있는데요. 필요한 것만 딱 구매하.. 추천 시스템 04. User-based Collaborative Filtering 유저 기반 협업 필터링 안녕하세요, 수달이입니다. 벌써 추천 시스템에 관한 세 번째 포스팅이네요! (👏👏 ) 가장 고전적인 방법인 인구통계학적 필터링부터 시작하여, 선형대수를 활용(벡터의 내적)하여 조금 더 개인화된 추천을 제공해주는 컨텐츠 기반 필터링까지. 점점 추천 방법들이 고도화되고 있다는 것이 느껴지시나요? 오늘부터는, 우리의 머신러닝 지식을 한 단계 더 높여줄, 다소 복잡할 수 있지만 실제 산업에서 널리 쓰이고 있는 협업 필터링 Collaborative Filtering에 대해서 공부해보겠습니다. 너와 나의 콜라보 협업 필터링의 핵심 아이디어는 "나와 취향이 비슷한 사람들의 의견을 참고한다"는 것입니다. 너와 나의 취향이 "콜라보(협업)"하여 새로운 추천을 제시하는 것이죠. 음악 추천을 예로 들자면, 플레이리스트에 수.. 이전 1 2 다음