본문 바로가기

AI

(5)
[AI] AI는 어떻게 '비슷한 의미'를 이해할까? - Cosine Similarity(코사인 유사도) 완벽 이해 검색 엔진을 만들거나 RAG(Retrieval-Augmented Generation)를 공부하다 보면 가장 많이 등장하는 용어 중 하나가 Cosine Similarity(코사인 유사도)이다.처음에는 이름도 어렵고 수학 공식도 복잡해 보여서 이해하기 어렵다.하지만 결론부터 말하면 Cosine Similarity는 아주 간단한 질문 하나를 해결하기 위해 만들어졌다."두 문장은 얼마나 비슷한 의미를 가지고 있는가?"이 질문에 답할 수 있어야 검색 엔진도 만들 수 있고, 추천 시스템도 만들 수 있으며, RAG도 구현할 수 있다.이번 글에서는 수식보다 원리와 실제 AI에서 어떻게 사용하는지를 중심으로 정리해보려고 한다.컴퓨터는 문장의 의미를 이해하지 못한다사람에게 아래 두 문장을 보여주면 대부분 비슷한 의미라고 ..
[AI]NumPy와 PyTorch의 차이 - AI 개발자는 왜 둘 다 배울까? AI를 처음 공부하면 가장 많이 하는 질문이 있다."NumPy와 PyTorch는 같은 것 아닌가요?"결론부터 말하면 비슷하지만 목적이 완전히 다르다.NumPy란?NumPy는 수치 계산(Numerical Computing)을 위한 라이브러리이다.벡터와 행렬 연산을 매우 빠르게 수행할 수 있도록 만들어졌다.예를 들어import numpy as npa = np.array([1,2,3])b = np.array([4,5,6])print(a + b)결과[5 7 9]NumPy는 이처럼 배열과 행렬 계산에 최적화되어 있다.PyTorch란?PyTorch는 딥러닝(Deep Learning)을 위한 프레임워크이다.NumPy처럼 배열을 다루지만, 여기에 AI 학습을 위한 기능이 추가되어 있다.예를 들어import torcha..
[AI] NumPy reshape() 완벽 이해 - AI에서 왜 중요한가? reshape란?reshape()는 배열(Array)의 모양(Shape)을 변경하는 함수이다.중요한 점은 데이터를 변경하는 것이 아니라 데이터를 바라보는 구조(Shape)만 변경한다는 것이다.예를 들어 1차원 배열이 있다고 가정해 보자.import numpy as npa = np.array([1,2,3,4,5,6])print(a)print(a.shape)실행 결과[1 2 3 4 5 6](6,)현재 배열은 총 6개의 원소를 가진 1차원 배열이다.이를 reshape()를 이용해 2행 3열의 구조로 변경할 수 있다.b = a.reshape(2,3)print(b)print(b.shape)실행 결과[[1 2 3] [4 5 6]](2,3)여기서 중요한 점은 숫자의 순서는 그대로이고 배열을 바라보는 방식만 변경되었다..
[AI] NumPy ndarray와 Shape 완벽 이해하기 (Batch, Embedding) 0. 시작하기 전에: ndarray가 도대체 무엇일까요?파이썬에서 NumPy 라이브러리를 불러와 아래 코드를 실행해 보겠습니다.pythonimport numpy as npa = np.array([1, 2, 3])print(type(a))코드를 사용할 때는 주의가 필요합니다. [실행 결과]text코드를 사용할 때는 주의가 필요합니다. 여기서 출력된 ndarray는 N-Dimensional Array의 약자입니다. 우리말로 번역하면 'N차원 배열'이라는 뜻입니다.쉽게 말해, 우리가 다룰 데이터가 1차원 선 형태인지, 2차원 면 형태인지, 아니면 그 이상으로 겹겹이 쌓인 고차원 형태인지를 나타내는 기본 단위입니다. 실제로 AI와 LLM 모델을 만들 때는 숫자 한두 개가 아니라 2차원, 3차원, 심지어 4차원의..
[AI] 개발 로드맵 - NumPy 시작 1. 개념Python에서 숫자를 여러 개 저장할 때는 보통 List를 사용합니다. numbers = [1, 2, 3, 4, 5] 하지만 AI에서는 거의 List를 사용하지 않습니다.대신 NumPy의 array를 사용합니다. import numpy as npnumbers = np.array([1, 2, 3, 4, 5]) 그 이유는 NumPy는 벡터(Vector)와 행렬(Matrix) 연산에 최적화되어 있기 때문입니다.AI 모델은 내부적으로 수백만~수십억 번의 벡터와 행렬 연산을 수행하기 때문에 일반 Python List로는 성능이 부족합니다. 2. List와 NumPy의 차이Python List a = [1,2,3]b = [4,5,6]print(a+b) 결과[1,2,3,4,5,6] List의 +는 이어 ..