프롬프트 엔지니어링이란
프로그래밍을 한마디로 말하면 컴퓨터와 상호 작용하는 방법입니다. 프롬프트 엔지니어링 prompt engineering의 등장은 컴퓨터와 상호 작용하는 새로운 방법이 나타난 것과 같습니다. 그 새로운 방법이란 바로 인간이 쓰는 자연어로 컴퓨터와 상호 작용하는 것입니다. 이로써 더 넓고 복잡한 영역의 프로그램 개발이 가능해짐은 물론, 결정론적인 방법을 적용한 프로그램과 비결정론적 방법을 적용한 머신러닝 프로그램 모두 개발 속도를 크게 높일 수 있게 되었습니다. 따라서 소프트웨어 3.0 시대는 모다 많은 사람들이 프로그래머가 될 수 있는 세상이 온 것을 의미하기도 합니다. - P19
LLM의 숨은 영웅, 임베딩
LLM으로 정보를 찾는 과정을 이해하려면 임베딩 embedding을 알아야 합니다. 컴퓨터는 숫자를 사용해 계산하고 데이터를 처리합니다. 하지만 우리가 사용하는 언어는 단어와 문장으로 이루어져 있습니다. LL.M에서 임베딩이란단어나 문장 같은 언어의 조각들을 숫자로 바꾸는 과정을 말합니다. 임베딩의 사전적 의미, 즉 ‘무언가를 다른 공간이나 형태로 집어 넣는 것과 같이 임베딩에 의해 변환된 숫자들은 숫자의 집합, 벡터 형태를 가지며, 이 숫자의집합(배열)은 단어나 문장 같은 언어 조각들의 개념적 위치를 알려 주는 역할을 합니다. 예를 들어, ‘사과‘라는 단어는 [0.1.0.2]. ‘바나나‘는 10.3.0.4]라는 벡터로 변환합니다. 이런 벡터 값에 의해 ‘사과‘ 와 ‘바나나‘는 다른 단어이지만 숫자로 표현된 공간에서 서로 가까운 위치에 있다는 것을 알 수 있습니다. 또한 컴퓨터는 두 단어 모두가 ‘과일‘이라는 범주에 있느누것을 포착하여 해당 단어를 더 잘 이해할 수 있습니다. 이와 같은 과정을 임베딩이라고 하며, 텍스트를 숫자로 바꾸는 머신러닝모델을 임베딩 모델 (Embedding model) 이라고 합니다. 임베딩 모델은 대량의 텍스트 데이터를 분석하여 각 단어나 문장이 가진 의미와 문맥을 숫자 벡터로 표현합니다. - P93
벡터 서치와 시맨틱 서치
고차원 (임베딩)벡터는 인간이 볼 수 없는 수준(무려 1,000차원이 넘음)이지만 그만큼 단어의 특징은 잘 표현 한다고 볼 수 있습니다. 이 처럼 단어를 n차원네 배치한 것을 임베딩 공간이라고 합니다. 그리고 이 임베딩 공간에서 기준이 되는 단어와 가까운 단어를 찾는 것이 벡터 서치(vector search) .. (중략) 키워드 기반의 전통적인 검색 엔진은 검색의 정확도와 속도를 늎이기 위해 입력된 텍스트에서 불필요한 문제들을 제거하고 단어를 기본 현태로 변형하는 형태소 분석, 유사어 및 다국어 처리 등과 같은 복잡한 과정을 거쳐야 합니다.
반면, 벡터 서치을 사용하면 이러한 전처리 과정을 거치지 않아도 의미나 맥락까지 고려한 유사 정보를 쉽게 찾아낼 수 있습니다. 도한 의미기반(semantic search)느로 검색하기 때문에 정확도와 성능 또한 크게 향상시킬 수 있어 자연어 처리(NLP), 이미지 검색, 추천 시스템 등 다양한 LLM에 널리 사용되고 있습니다. - P97
|