임베딩과 벡터란최근 LLM이 대세로 떠오르면서 "임베딩", "벡터" 등의 단어를 듣게 되는 일이 많아졌다. NLP에서 임베딩과 벡터란 무엇일까? NLP에서 사용하는 토큰이란 단어나 형태소 등의 자연어이다. 이 자연어를 기계가 이해할 수 있는 수학적 표현인 벡터로 바꾸는 것을 임베딩이라고 한다. 쉽게 이야기하자면 언어를 숫자로 바꾸는 게 임베딩이다.ChatGPT 등 몇몇 서비스에서는 임베딩 기능도 API를 호출해서 쓸 수 있다. 만약 임베딩을 해야 한다면 좋은 언어 모델을 가진 서비스의 임베딩을 쓰는 게 필수적인데, 이 부분이야말로 LLM에서 가장 공수가 많이 들어간 부분이기 때문이다. 왜 좋은 임베딩을 쓰는 것이 필수적인지를 여러 임베딩 방법을 배우면서 알아보자.One-hot vector임베딩 중 가장 ..
🤖AIML
멀티 프로세싱 도입 계기지금 다니는 랩실에서 몇 십만개나 되는 파일에서 feature를 추출해야 하는 일이 있었는데, linear하게 그냥 차례대로 처리하다보니 너무 오래 걸렸다. 사실 몇 시간 정도만 걸렸으면 딱히 멀티 프로세싱 생각을 못했을 것 같은데, 1~2일 지켜보면서 파일 처리 속도를 계산해보니 거의 일주일이 걸리는 걸로 결론이 나서 도저히 안되겠다 싶어서 멀티 프로세싱을 도입했다.파일이 몇 십만 개라는 점, 우리 랩실 서버에는 CPU가 64개나 있다는 점을 고려하면 진짜 무조건 멀티 프로세싱을 도입했어야 하는 건데, 도대체 이 생각을 왜 못했지? 싶어서 너무 후회스러웠다. AIML에서 파일 전처리하고 feature 추출하는 상황 및 환경이 멀티 프로세싱을 딱 쓰기 좋은 단계인데, 앞으로는 이런..
M3 Max의 변화 애플이 실리콘 라인업을 재구축 중이다. M3 Max에는 더 이상 UltraFusion interconnect가 존재하지 않는다고 한다. UltraFusion interconnect는 여러 개의 칩 다이(낱개로 잘려진 칩)를 결합하는 애플만의 패키징 방식으로, 기존에 M1 Ultra를 만들 때 M1 Max 칩 다이 두 개를 UltraFusion 패키징으로 결합해 강력한 시스템 온 칩(SoC, System on Chip)를 만들 수 있었다. 이 방식은 M2 Ultra 칩을 만들 때도 M2 Max 칩 다이 두 개를 결합하는 식으로 활용되었다. 참고로 위의 사진에서 칩의 맨 아랫 부분에 보이는 실리콘 인터포저가 바로 UltraFusion이다. 어떻게 두 개의 칩이 연결되는지 간단하게 알고 싶..
keras.layers.GlobalAveragePooling1D 레이어란? 다른 사람이 만든 AI 모델 코드를 보는데, 마지막에 output을 내놓기 전에 바로 이 GlobalAveragePooling1D를 거치고 있는데 이게 무슨 뜻인지 모르겠어서 찾아보게 되었다. GlobalAveragePooling1D에 대한 설명을 보면, "시계열 데이터에 대한 전역 평균 풀링 작업"이라고 나와있다. 이렇게만 들으면 알기 어렵다. 다시 풀어서 설명하자면 시계열 데이터를 받아서 각 채널별로 평균(즉 전역 평균) 을 계산해 고정된 길이의 출력을 생성하는 역할을 한다. 이 레이어가 있으면 서로 다른 길이의 입력들이 주어져도 Average 값만을 선택함으로써 output를 고정된 길이로 만들 수 있다. 📌참고: pooli..
keras.layers.Dropout 레이어란? 드롭아웃 레이어는 훈련 중 각 단계에서 빈도율(rate)에 따라 input units을 무작위로 0으로 설정하여 과적합(overfitting)을 방지하는 역할을 한다. 즉, 쉽게 말해서 신경망에서 일부 뉴런을 없애버린다고 보면 된다. 드롭아웃이 과적합을 방지하는 과정은 사진의 해상도를 생각하면 될 것 같다. 해상도가 높은 얼굴 사진은 특정한 한명만 나타낼 수 있지만, 해상도가 낮아지면 디테일이 떨어지면서 인물 얼굴 형태의 보편적인 특성만을 가지게 되는 것과 같다. Dropout에 의해서 0으로 설정되지 않은 inputs은 1 / (1 - rate)로 스케일이 조정된다. 따라서 input data의 총합(sum)은 변경되지 않도록 한다(예를 들어서, drop..