diff --git "a/2\354\236\245/\354\265\234\354\204\234\355\235\254.md" "b/2\354\236\245/\354\265\234\354\204\234\355\235\254.md" new file mode 100644 index 0000000..8a6a747 --- /dev/null +++ "b/2\354\236\245/\354\265\234\354\204\234\355\235\254.md" @@ -0,0 +1,92 @@ +# 2장 + +## 인상 깊은 내용 + +### 1. 프롬프트 엔지니어링: GPT를 업무 환경에 맞추는 과정 +#### 전략 1. 구체성과 일반성의 균형 +프롬프트를 구체적으로 작성하는 것도 중요하지만 너무 좁은 범위로 한정하면 다른 목표에 대한 성능이 저하되는 트레이드오프가 발생할 수 있습니다. +따라서 현재 이루고자 하는 목표가 무엇인지 명확하게 정의하고, 수정된 프롬프트가 다른 목표 달성에 영향을 미치지 않는지 지속적인 평가가 필요합니다. +#### 전략 2. 응답 최적화 +##### 1) 구조화된 응답 유도 +* **생성 직식 프롬프트** + 이는 생각의 사슬(CoT)과 유사한 방식으로, GPT가 이미지 내부의 모습 설명을 먼저 생성하고, 이 설명을 바탕으로 최종 응답을 도출하도록 하는 방법입니다. +* **Generated Knowledge Prompting** + LLM이 자체적으로 생성한 지식을 활용하여 특정 질문에 대한 응답을 강화하거나 보완하는 프롬프트 설계 기법입니다. + 모델이 데이터 외부의 지식을 포함한 질문에 답변할 때 활용됩니다. +##### 2) Latency 최적화 +Latency를 줄이기 위해 input 프롬프트 최적화도 필요했지만, 불필요한 응답을 줄이는 것이 훨씬 중요했습니다. +#### 전략 3. 프롬프트 구조와 형식 개선 +##### 1) 이미지와 텍스트의 순서 조정 +같은 프롬프트를 적용하더라도 이미지를 먼저 제공하면 GPT의 응답 정확도가 향상되었습니다. +이는 모델이 시각적 정보를 먼저 처리한 뒤, 이후의 텍스트 입력과 결합해 더 정확한 응답을 생성하기 때문입니다. +##### 2) 마크다운과 코드 스타일 활용 +구조화된 프롬프트는 GPT가 지침과 정보를 더 명확하게 이해하는 데 도움이 되었습니다. + +--- + +### 2. GPT 한계 극복: 하이브리드 접근의 필요성 +모든 문제를 GPT로 해결하기는 어려웠습니다. +특히 **‘과도한 확대’ 정책**과 **‘저작권/상표권/초상권’ 정책**에서는 한계가 명확했습니다. +#### 1) 객체 탐지의 한계 +그동안 쌓인 내부 데이터를 기반으로 객체 탐지 모델을 새롭게 파인튜닝해 적용했습니다. +#### 2) 아직 사람의 손길이 필요한 영역 +‘저작권/상표권/초상권’ 정책은 이미지 속에 포함된 캐릭터나 로고에 저작권 문제가 없는지를 검수하는 항목입니다. +그러나 GPT는 특정 시점까지의 데이터만 학습한 모델이기 때문에 최신 캐릭터에 대한 정보를 알지 못합니다. + +이런 한계를 극복하기 위해, 사람이 한 번 더 확인해야 하는 정책들은 운영자 검수로 전환할 수 있도록 프로세스를 분기했습니다. + +→ 단순 PoC를 넘어 실서비스 영역에서 GPT 성능을 극대화하려면 +기존 ML 모델, 데이터 사이언스 전문성, 운영자 검수 등이 결합된 **하이브리드 접근**이 필요하다는 점을 차차 확인했습니다. + +--- + +### 3. 금쪽이 GPT를 훈련시키는 솔루션 3단계 +1단계. 우리 (에이)아이의 성격 정의하기 +2단계. 알맞은 학습 교재 제공하기 +* **Few-Shot** + 적은 수의 학습 샘플로 새로운 작업을 일반화할 수 있는 AI 모델의 학습 방법 + 3단계. 올바르게 훈육하기 + +--- + +### 4. 벡터 유사도 검색 +**Vector Similarity Search (VSS)** +사용자의 행동 이력과 추천 후보 가게 간의 유사도를 계산합니다. +사용자의 행동 이력과 추천 후보 가게 목록이 주어졌을 때, 벡터 DB에서 각 임베딩 값을 조회한 후 이들 사이의 코사인 유사도를 계산해 응답하는 컴포넌트를 개발했습니다. + +벡터 유사도 검색은 최근 LLM과 함께 많은 관심을 받는 기술입니다. +이렇게 벡터를 저장하고 검색, 관리할 수 있는 데이터베이스를 특별히 **벡터 DB**라고 부릅니다. + +--- + +### 5. 컴포넌트 기반 설계의 장점 +1. 효율성 + 개발 시간 단축 +2. 확장성 + 중복 작업 감소, 개발 속도 향상 + +--- + +### 6. 새로운 기술 도입 시 의사 결정 기준 +새로운 기술을 도입해야 하는 경우, 다음 질문들이 중요합니다. +1. 내가 풀려고 하는 문제는 이 기술의 어떤 부분을 사용해야 하는가? +2. 우리는 (일반적인 상황과) 무엇이 다른가? +3. 내가 중요하게 생각하는 점은 무엇인가? + (개발 생산성, 확장성, 운영 가능성, 비용 등) + +--- + +### 7. OpenSearch Efficient k-NN Filtering +OpenSearch Efficient k-NN filtering은 프리 필터 적용 여부에 따라 +ANN / Exact-KNN을 선택하는 알고리즘입니다. + +우리의 시나리오를 기반으로 따라가 보면 Exact-KNN이 선택되는 것을 알 수 있습니다. +가능하다면, 이런 식으로 다른 후보군에 대해서도 내부 동작에 대해 조사합니다. + +--- + +## 느낀점 + +교내 졸업작품 프로젝트로 추천 시스템을 개발한 경험이 있다. 당시에는 LLM 모델을 활용해 추천 기능을 구현했는데, 이 경험 때문에 배달의 민족에서 추천 기능을 개발하며 어떤 고민을 했는지를 다룬 내용을 더욱 흥미롭게 읽을 수 있었다. 실제 서비스 환경에서 추천 시스템을 설계하고 고도화하기 위해 고려해야 할 요소들이 많다는 점을 느끼며, 한 단계 더 깊이 있게 이해할 수 있었다. + +또한 LLM을 활용하거나 직접 알고리즘을 개발하는 방식 외에도, 이미 검증된 알고리즘 모델을 활용하는 선택지가 있다는 점을 충분히 고려하지 못했다는 생각이 들었다. 그만큼 당시에는 시야가 다소 좁았다는 점을 스스로 돌아보게 되었다. 이번 내용을 통해 기술을 선택할 때 다양한 접근 방식을 비교하고 검토하는 것이 중요하다는 것을 깨달았고, 앞으로는 추천 시스템과 관련된 다양한 논문과 사례를 꾸준히 읽으며 시야를 넓히는 습관을 가져야겠다고 다짐하게 되었다.