기술 블로그 모음

국내 IT 기업들의 기술 블로그 글을 한 곳에서 모아보세요

전체 프론트엔드 백엔드 데브옵스 AI 아키텍처 DB 기타
이제 JetBrains AI Assistant에 Amazon Bedrock을 통한 Claude 모델 지원
JetBrain Korea
이제 JetBrains AI Assistant에 Amazon Bedrock을 통한 Claude 모델 지원

오래 기다리셨습니다! 이제 Amazon Bedrock에서 프로비저닝되는 Anthropic의 Claude 모델이 JetBrains AI Assistant에 지원됩니다.🎉 다양한 작업에서 뛰어난 성과를 보이는 고품질 언어 모델이 등장하면서, 개발자에게는 다양한 과제를 해결하기 위한 유연한 옵션이 필요해졌습니다. 이러한 이유로 JetBrains는 고객이 필...

[25년 2월] 사우디도 반한 팀네이버의 AI
네이버 클라우드
[25년 2월] 사우디도 반한 팀네이버의 AI

로우코드 방식으로 주도하는 에이전틱 AI
삼성 SDS
로우코드 방식으로 주도하는 에이전틱 AI

이 글에서는 시민 개발자 이니셔티브를 통해 로우코드를 도입했던 접근법과 유사한 방식으로 기업에 에이전틱 AI를 도입하는 전략에 대해 살펴봅니다.

Data Product (3) 데이터로 실제 운영 효율화가 가능할까?
쏘카
Data Product (3) 데이터로 실제 운영 효율화가 가능할까?

들어가며 날씨 기반 세차 운영 최적화 2.1 기존 세차 오퍼레이션과 개선 필요성 2.2 날씨 데이터 수집 데이터 분석 및 운영 적용 3.1 분석을 위한 데이터 상세 정의 3.2 날씨와 차량 오염의 상관관계 분석 3.3 운영 적용을 위한 시뮬레이션 운영 적용 결과 및 인사이트 4.1 날씨 기반 세차 운영 정책 적용 결과 4.2 맥락 해석이 필요한 데이터...

인텔리전스 혁명을 위한 AI 퍼스트 전략
삼성 SDS
인텔리전스 혁명을 위한 AI 퍼스트 전략

이 글에서는 단순한 디지털 개혁이 아닌, 디지털 혁신을 가능하게 하는 인텔리전스 혁명과 AI 퍼스트 사고방식에 대해 살펴봅니다.

[클로바시선 #17] AI의 거짓말, 줄일 수 있을까? LLM 신뢰도 높이기
네이버 클라우드
[클로바시선 #17] AI의 거짓말, 줄일 수 있을까? LLM 신뢰도 높이기

AI와 대화를 나눠보신 적 있나요? 때로는 정말 그럴듯한 답변을 하다가도, 가끔은 실제로 없는 이야기를 지어내기도 하죠. 이런 AI의 '거짓말'을 할루시네이션이라고 부르는데요. 의료 상담이나 법률 자문처럼 중요한 결정을 내려야 할 때는 치명적인 문제가 될 수 있습니다. "신뢰는 천천히 쌓이고 순식간에 무너진다"라는 말처럼, AI의 신뢰성도 한 번의 실...

딥시크(DeepSeek)가 촉발한 AI 시장의 지각 변동
삼성 SDS
딥시크(DeepSeek)가 촉발한 AI 시장의 지각 변동

이 아티클은 혁신적인 비용 절감과 성능 최적화로 기존 패러다임을 뒤흔들며 AI 경쟁 구도에 새로운 변화를 예고하는 딥시크(DeepSeek)에 대해 알아봅니다.

2024년 개발자 에코시스템 현황: 거침없이 부상하는 AI, 주요 언어, 개발자 경험에 미치는 영향
JetBrain Korea
2024년 개발자 에코시스템 현황: 거침없이 부상하는 AI, 주요 언어, 개발자 경험에 미치는 영향

2025년 새해를 맞이하면서 2024년 개발자 환경에 영향을 미친 주요 요인을 되돌아보는 시간을 가지려고 합니다. 전 세계 23,000명이 넘는 개발자로부터 인사이트를 수렴한 올해 JetBrains의 개발자 에코시스템 현황은 개발 업계를 지배한 중요한 추세를 잘 보여줍니다. 5개 회사 중 4곳이 개발 워크플로에 타사 AI 도구를 도입하고 있으며 개발자...

로봇 ML 모델의 경량화 2부: 양자화 인식 훈련
우아한형제들
로봇 ML 모델의 경량화 2부: 양자화 인식 훈련

"로봇 ML 모델의 경량화 1부: 훈련 후 양자화" 편에서는 Jetson 플랫폼의 특징, 양자화와 훈련 후 양자화에 대한 개념, TensorRT를 이용해 최적화를 하는 방법과 그 결과까지 알아봤습니다. 이번 편에서는 양자화로 인한 성능 저하를 막는 또 하나의 방법, 양자화 인식 훈련(Quantization Aware Training, QAT)에 대해 알아보겠습니다. 본격적인 내용에 앞서, 우아콘에서 발표한 "자율주행 로봇을 위한 머신러닝 모델의 추론 […] The post 로봇 ML 모델의 경량화 2부: 양자화 인식 훈련 first appeared on 우아한형제들 기술블로그.

AI 프라이버시 혁신을 이룰 동형암호 성과 공개
네이버 클라우드
AI 프라이버시 혁신을 이룰 동형암호 성과 공개

안녕하세요, 누구나 쉽게 시작하는 클라우드 네이버 클라우드 플랫폼 ncloud.com 입니다. AI와 클라우드 시대의 데이터 보안을 책임질 동형암호 기술, 들어보셨나요? 네이버클라우드는 세계 최초로 클라우드에 최적화된 동형암호 서비스를 상용화한 이후, 성균관대학교 보안공학연구실과 함께 히고(Hego)라는 새로운 프레임워크를 개발했습니다 의료, 금융 등...

2025년 국내 은행 AI 활용 전망
삼성 SDS
2025년 국내 은행 AI 활용 전망

이 아티클에서는 2024년 국내 주요 은행의 AI 활용 현황과 AI 관련 금융정책의 변화를 살펴보고, 이를 통해 2025년 국내 은행의 AI 활용 전망을 조망합니다.

AI 에이전트(AI Agents)란 무엇인가?
삼성 SDS
AI 에이전트(AI Agents)란 무엇인가?

이 아티클에서는 AI 에이전트의 개념과 기술적 발전 및 역할을 구체적으로 살펴보고자 합니다.

삼성SDS 디지털 마케터의 눈으로 본 CES 2025 트렌드!
삼성 SDS
삼성SDS 디지털 마케터의 눈으로 본 CES 2025 트렌드!

2025년 CES는 기술 혁신의 중심에서 AI, 로보틱스, 디지털 헬스 등 다양한 산업의 미래를 제시했습니다. 삼성SDS의 Hyper Automation 솔루션은 글로벌 협업, 데이터 통합, 업무 자동화로 디지털 전환을 이끄는 핵심 도구로 주목받았습니다.

지능형 생태계 시대의 기업 혁신
삼성 SDS
지능형 생태계 시대의 기업 혁신

이 아티클에서는 디지털 트랜스포메이션의 새로운 물결, 지능형 생태계와 에이전트 아키텍처를 소개합니다.

AI Agent, 비즈니스 워크플로우와의 통합 – 2편
삼성 SDS
AI Agent, 비즈니스 워크플로우와의 통합 – 2편

이번 아티클에서는 Gartner, McKinsey, Forrester, IBM 등의 주요 플레이어들이 2025년 가장 유망한 기술로 지목하고 있는 ‘AI Agent’ 기술과 시장 트렌드에 대해 알아봅니다.

[25년 1월] 40년의 데이터, AI를 입다 ⏳
네이버 클라우드
[25년 1월] 40년의 데이터, AI를 입다 ⏳

AI Agent, 비즈니스 워크플로우와의 통합 – 1편
삼성 SDS
AI Agent, 비즈니스 워크플로우와의 통합 – 1편

이번 아티클에서는 Gartner, McKinsey, Forrester, IBM 등의 주요 플레이어들이 2025년 가장 유망한 기술로 지목하고 있는 ‘AI Agent’ 기술과 시장 트렌드에 대해 알아봅니다.

AI 에이전트로 변화하는 2025년 DX 전망
삼성 SDS
AI 에이전트로 변화하는 2025년 DX 전망

이 아티클에서는 AI 에이전트로 인해 재편되는 조직 내 업무 방식과 이로 인해 변화하는 AI 중심의 DX 전망에 관해 자세하게 살펴봅니다.

AI 명함촬영인식 ‘리오(RIO)’ 적용기 2부 — ML Model Converter와 안드로이드 앱 적용기
리멤버
AI 명함촬영인식 ‘리오(RIO)’ 적용기 2부 — ML Model Converter와 안드로이드 앱 적용기

AI 명함촬영인식 ‘리오(RIO)’ 적용기 2부 — ML Model Converter와 안드로이드 앱 적용기안녕하세요. 빅데이터센터 AI Lab 강민석입니다.이번 AI 명함 촬영 인식 ‘리오(RIO)’ 적용기 2부에서는 리멤버 앱에 AI 명함 촬영 인식 ‘리오(RIO)’의 모델을 Client-Side Computing로 적용하기 위한 다양한 시행착오들...

리멤버 유저에게 보다 깨끗한 명함 이미지 제공을 위한 이미지 복원 방법
리멤버
리멤버 유저에게 보다 깨끗한 명함 이미지 제공을 위한 이미지 복원 방법

안녕하세요. 드라마앤컴퍼니의 빅데이터센터 AILab 박호림입니다.드라마앤컴퍼니 빅데이터 센터의 AI Lab은 Recommendation System, Ranking Model, Graph Neural Network, Natural Language Processing, Document Understanding, Computer Vision 등 연구 영역...

AI 명함 촬영 인식 ‘리오(RIO)’ 적용기 1부 — 명함촬영인식 위한 Instance Segmentation & Computer Vision
리멤버
AI 명함 촬영 인식 ‘리오(RIO)’ 적용기 1부 — 명함촬영인식 위한 Instance Segmentation & Computer Vision

AI 명함 촬영 인식 ‘리오(RIO)’ 적용기 1부 — 명함촬영인식 위한 Instance Segmentation & Computer Vision안녕하세요. 빅데이터센터 AI Lab 강민석입니다.리멤버의 명함 촬영 인식은 유저가 명함을 등록하기 위한 촬영 순간에 명함을 인식하고 배경이 제거된 명함만을 사용자에게 보여주는 기술 입니다. 지금 이 시...

실시간 반응형 추천 개발 일지 2부: 벡터 검색, 그리고 숨겨진 요구사항과 기술 도입 의사 결정을 다루는 방법
우아한형제들
실시간 반응형 추천 개발 일지 2부: 벡터 검색, 그리고 숨겨진 요구사항과 기술 도입 의사 결정을 다루는 방법

"실시간 반응형 추천 개발 일지 1부: 프로젝트 소개" 편을 읽고 2편을 기다려주신 여러분, 반갑습니다. (아직 안 읽으셨다면 읽고 오셔도 됩니다. 여기서 기다리고 있을 테니까요.) 오늘은 1편에 이어 실시간 행동 이력을 활용한 실시간 반응형 추천 시스템 의 개발에 대해 더 깊이 들어가 보도록 하겠습니다. 제 소개를 드려야겠네요. 저는 우아한형제들 추천프로덕트팀에서 AI/ML, Data Engineer를 하고 있는 정현입니다. […] The post 실시간 반응형 추천 개발 일지 2부: 벡터 검색, 그리고 숨겨진 요구사항과 기술 도입 의사 결정을 다루는 방법 first appeared on 우아한형제들 기술블로그.

학습자에게 영감을 주는 AI, 그들을 이끄는 IDE: 2024년 컴퓨터 과학 교육 동향
JetBrain Korea
학습자에게 영감을 주는 AI, 그들을 이끄는 IDE: 2024년 컴퓨터 과학 교육 동향

컴퓨터 과학 교육과 능력에 대한 수요가 전 세계적으로 급증하고 있습니다. JetBrains는 학습자를 이끄는 최신 동향, 과제, 동기 및 이 분야의 현황에 영향을 미치는 기타 요인을 파악하기 위해 2024년 컴퓨터 과학 학습 곡선 설문조사를 실시했습니다. 총 16개국, 7개 주요 지역에서 23,991명의 학습자가 1년 남짓 동안 함께 노력을 기울여 상...

[DAN 24] LLM의 Re-Ranking Ability 검색에 이식하기 2편 - LLM을 활용한 최신성 반영
네이버 D2
[DAN 24] LLM의 Re-Ranking Ability 검색에 이식하기 2편 - LLM을 활용한 최신성 반영

지난 글 LLM의 Re-Ranking Ability 검색에 이식하기 1편 - LLM 이식 방법에서는 거대 언어 모델(Large Language Model, LLM)의 랭킹 능력을 네이버 검색 모델에 이식한 과정을 설명했습니다. 이 글에서는 이어서 LLM을 활용해 이 모델이 문서의 최신성까지 함께 고려할 수 있도록 개선한 경험을 공유하려고 합니다. 연관성만으로 해결하기 어려운 랭킹 문제 검색 결과의 품질에는 문서의 연관성뿐만 아니라 최신성도 중요한 고려 사항입니다. "트래블러스 챔피언십 우승자"라는 질의를 예로 들어보겠습니다. 이 대회는 매년 개최되며 매회 새로운 우승자가 탄생합니다. 단순히 연관성만을 기준으로 본다면 2017년이나 2023년의 우승자 정보도 적절한 검색 결과로 볼 수 있습니다. 그러나 사용자가 실제로 원하는 정보는 최신 우승자인 2024년 우승자와 관련된 내용일 것입니다. 따라서 랭킹 과정에서는 연관성과 함께 시의성을 고려할 필요가 있으며, LLM을 활용한 재순위화에도 최신성 요소를 반영하는 것이 중요합니다. 최신성을 반영한 랭킹 모델은 다음과 같이 구상했습니다. 기존의 RRA 모델이 질의에 대한 문서들 간의 연관성 순위를 결정하는 데 주력했다면, 새로운 접근법에서는 모델이 질의와 문서의 연관성을 0과 1 사이의 점수로 예측하고 이 점수를 활용하여 연관도가 높은 문서들 사이에서 최신성을 고려해 순위를 결정하는 방식을 채택했습니다. 예를 들어, 문서 1과 문서 2가 모두 연관도가 높다면 더 최신 문서인 문서 2를 상위에 배치하는 것이 바람직할 것입니다. 반면 문서 3은 문서 2와 최신성은 동일하더라도 연관도가 낮다면 순위를 높이지 않는 것이 좋습니다. 이러한 접근법으로 기존 RRA와 유사한 모델 구조를 유지하면서도 연관성 점수를 정확히 예측할 수 있다면, 문서의 최신성을 랭킹에 효과적으로 반영할 수 있습니다. 이렇게 개선된 모델을 RRA-T라고 명명했으며, 그 핵심은 신뢰할 수 있는 연관성 점수를 얼마나 잘 산출할 수 있느냐에 달려 있습니다. 기존 모델도 시그모이드(sigmoid) 계층을 통해 0과 1 사이의 값을 출력할 수 있었습니다. 그러나 이는 문서 쌍 간의 순위를 구분하도록 학습된 모델이어서 점수 분포가 균일하지 않았습니다. 이로 인해 어느 구간을 기준으로 최신성 랭킹를 적용해야 할지 판단하기가 매우 어려웠습니다. 이러한 문제를 해결하기 위해 모델을 새로 학습하기로 결정했습니다. 기존에 질의와 문서의 랭킹 레이블을 LLM을 활용해 생성했던 것처럼, 질의와 문서의 연관성 점수 레이블도 LLM을 활용해 생성하는 방식을 채택했습니다. 랭킹과 점수 레이블링 방식 LLM을 통해 RRA-T의 학습 데이터를 생성하는 과정에서 여러 선택지가 있었습니다. 예를 들어 기존의 목록 단위 랭킹 방식을 유지하면서 연관성 점수만 별도로 생성하거나, 새로운 프롬프트를 만들어 랭킹과 연관성 점수를 동시에 생성하는 방식을 고려했습니다. 또한 사고 연쇄(Chain of Thought) 전략을 차용하여 생성 과정에서 순위와 점수를 결정하게 된 근거를 출력하도록 하는 방식도 가능했습니다. 그러나 정답 레이블이 없는 상황에서 LLM을 통해 학습 데이터를 생성하는 만큼, 어떤 전략이 최선인지 선택하기가 쉽지 않았습니다. 다행히도 기존 RRA가 이미 서비스 중이었기 때문에 사용자의 피드백, 즉 RRA가 노출된 검색어와 관련된 클릭 로그를 활용할 수 있었습니다. 저희는 사용자의 클릭 경향과 가장 유사한 레이블을 생성하는 프롬프트를 선택함으로써 최적의 RRA-T 학습 데이터를 생성하고자 했습니다. 이 과정을 간단히 도식화하면 다음과 같습니다. 먼저 사용자 피드백 로그에서 프롬프트를 평가하는 데 유효한 데이터를 추출합니다. 특정 질의에 대한 검색 결과 문서들과 그에 대한 사용자 반응의 정도를 추출한 뒤, LLM에 후보 프롬프트와 함께 질의와 문서를 맥락으로 제공하여 연관성 점수와 순위를 생성하도록 합니다. 이를 통해 실제 사용자 피드백과 경향성이 가장 유사한 프롬프트를 선택할 수 있었습니다. 사용자의 피드백이 있다면 왜 바로 학습 데이터로 사용하지 않는지 궁금하실 수 있을 것 같은데요, 이는 RRA가 목표로 하는 롱테일 질의의 특성과 관련이 있습니다. 발생 빈도가 낮은 질의들이다 보니 실제로 질의와 연관성이 높은 문서라 하더라도 사용자가 클릭하지 않은 경우가 많이 존재할 수 있기 때문입니다. 이러한 데이터를 그대로 학습에 사용하면 모델이 거짓 부정(false negative) 사례를 잘못 학습할 우려가 있습니다. 따라서 저희는 LLM이 가장 사용자 행동과 유사한 결과를 생성하는지 검증하는 용도로 사용자 피드백을 활용하고, LLM이 레이블링한 완전한 데이터를 RRA-T 학습에 사용하는 전략을 채택했습니다. 또한, 프롬프트를 비교하고 평가하기 위해 사용자 피드백 로그를 정제하는 과정도 중요했습니다. 상위 노출을 위한 비정상적인 클릭이 있는 문서를 제거하고, RRA가 목표로 하는 롱테일 질의의 특성에 맞추어 발생 빈도가 지나치게 높은 질의를 제외했습니다. 또한 사용자의 피드백을 충분히 구분할 수 있을 만큼의 검색 결과가 존재하고 실제 문서 클릭이 있었던 질의를 선별했습니다. 이러한 과정을 통해 20만 개의 질의와 이와 연관된 300만 개의 문서를 추출하여 프롬프트 검증에 활용할 수 있었습니다. 프롬프트 선정을 위한 비교 평가 먼저 다음의 두 가지 방식을 비교했습니다. 목록 단위(랭킹) + 개별 단위(스코어링): 기존 방식과 동일하게 랭킹 레이블을 생성하고 연관성 점수 데이터를 추가로 생성하여 합치는 방식 목록 단위(랭킹 & 스코어링): 랭킹과 연관성 점수를 한 번에 생성하는 방식 목록 단위(랭킹) + 개별 단위(스코어링) 목록 단위 랭킹(list-wise ranking)은 하나의 질의와 여러 문서가 주어졌을 때 문서의 순위를 한 번에 결정하는 방식으로, 기존 RRA 모델의 학습 데이터 생성에 사용되었던 방식입니다. 여기에 개별 단위(point-wise)로 문서별 연관성 점수를 레이블링하고 두 데이터를 결합하여 순위와 연관성 점수 학습 데이터를 만들 수 있습니다. 목록 단위(랭킹 & 스코어링) 다른 방식은 질의와 관련 있는 여러 문서들이 주어졌을 때 문서들의 랭킹과 연관 점수를 목록 단위(list-wise)로 한 번에 출력하도록 구성하는 것입니다. 분석 결과 우선 랭킹 관점에서 두 방식을 비교했습니다. 사용자 피드백의 클릭 순서를 정답 순위로 간주하고, 각 프롬프트가 생성한 랭킹의 성능을 비교했습니다. K순위 내 문서 클릭 수나 NDCG, MAP, MRR 등 일반적인 랭킹 평가 지표에서 목록 단위(랭킹 & 스코어링) 프롬프트를 이용한 레이블링 방식이 일관되게 더 우수한 성능을 보였습니다. 다시 한 번 강조하자면 여기서 말하는 성능이란, 사용자가 본 문서의 피드백과 일치하는 정도를 뜻합니다. 연관도 스코어링 관점에서도 비교를 진행했습니다. 이진 분류 문제로 간주하여 실제 클릭된 문서를 양성, 클릭되지 않은 문서를 음성으로 하고, LLM이 예측한 점수가 5점 이상일 때 양성, 미만일 때 음성으로 설정하여 정확도(accuracy), 정밀도(precision), 재현율(recall), F1 스코어를 측정했습니다. AUC(area under the curve) 점수는 LLM이 예측한 점수를 9로 나누어 0에서 1 사이의 값으로 정규화하여 계산했습니다. 스코어링 관점에서도 목록 단위 방식이 더 우수한 성능을 보였습니다. 두 프롬프트를 더 깊이 이해하기 위해 예측 점수와 클릭 여부의 분포를 시각화하여 분석했습니다. 상단 그래프는 X축을 LLM이 예측한 점수, Y축을 발생 빈도로 하고 실제 사용자 클릭이 있었던 경우는 빨간색, 없었던 경우는 파란색으로 표시했습니다. 아래의 그래프는 이를 100% 기준의 비율로 나타낸 것입니다. 분석 결과, 개별 단위 방식은 점수가 특정 구간에 집중되는 현상을 보였습니다. 반면 목록 단위 방식에서는 클릭이 없는 문서는 낮은 점수 구간에, 클릭이 있는 문서는 높은 점수 구간에 잘 분포되는 것을 확인할 수 있었습니다. 이는 목록 단위 방식이 여러 문서를 동시에 평가하면서 상대적인 기준점을 설정할 수 있는 반면, 개별 단위 방식에서는 LLM이 그러한 기준점을 설정하기 어려워하는 것으로 해석됩니다. 결론적으로 랭킹과 스코어링 평가 모두에서 목록 단위 방식의 성능이 우수했기 때문에, 이 방식으로 데이터를 생성하기로 결정했습니다. 근거 생성 여부 다음으로는 생성 과정에서 근거를 포함하는 것이 유용한지, 만약 포함한다면 정답 레이블 이전에 생성하는 것이 좋을지 이후에 생성하는 것이 좋을지를 검토했습니다. 엑사 랭커(ExaRanker)라는 선행 연구에서는 레이블을 먼저 생성하고 근거를 나중에 생성하는 것이 더 효과적이라는 결과를 보고했습니다. 이는 LLM의 자기회귀적(auto regressive) 특성상 레이블 생성 시 이후에 생성될 근거의 영향을 받지 못할 것이라는 직관과는 상반되는 결과였기에, 이 연구 결과가 저희의 사례에도 적용되는지 검증이 필요했습니다. 앞서 선택한 목록 단위(랭킹 & 스코어링) 프롬프트를 기반으로 세 가지 방식을 비교했습니다. 근거 없이 연관성 점수만 생성하는 방식, 근거를 먼저 생성하고 연관성 점수를 생성하는 방식, 그리고 연관성 점수를 먼저 판단하고 근거를 생성하는 방식입니다. 스코어링 관점의 평가에서는 선행 연구의 결과와 일치하는 결과를 얻었습니다. 근거를 포함하지 않거나 먼저 생성하는 것보다 연관성 점수를 먼저 생성하고 근거를 나중에 생성하는 방식이 더 우수한 성능을 보였습니다. 그러나 랭킹 관점의 평가에서는 흥미롭게도 근거를 전혀 생성하지 않는 방식이 가장 높은 성능을 보였으며, 근거를 생성하는 두 방식 중에서는 근거를 나중에 생성하는 방식이 더 우수하여 스코어링과 랭킹 관점에서 상반된 결과가 도출되었습니다. 다만 근거 생성에는 2배 이상의 시간과 계산 비용이 소요된다는 점을 고려하여, 저희는 근거를 포함하지 않는 프롬프트를 채택하기로 결정했습니다. 실제 서비스 환경에서는 성능과 연산 비용 사이의 트레이드오프가 중요한 고려사항이기 때문입니다. 사용자 피드백 로그를 활용한 검증 과정을 통해 각 방식의 성능 차이를 정량적으로 가늠하고 판단할 수 있었습니다. 만약 근거 생성 방식의 성능 향상이 현저히 높았다면 다른 선택을 했을 수도 있었을 것입니다. 선정된 프롬프트를 활용한 모델 학습 앞선 과정을 통해 선정된 프롬프트는 LLM이 실제 사용자의 피드백과 경향성이 일치하는 레이블을 생성하는지 검증했습니다. 이 프롬프트를 통해 질의와 문서를 입력하면 LLM이 질의에 대한 문서의 랭킹과 연관도 스코어 레이블을 생성합니다. 이렇게 생성된 학습 데이터로 모델을 학습시키면 질의와 문서의 랭킹 및 스코어를 예측하는 RRA-T 모델이 만들어집니다. 학습 과정에서 주목할 만한 점은 기존 RRA가 순위 손실(rank loss)만을 사용했던 것과 달리, RRA-T는 연관성 점수 예측이라는 과제도 함께 수행한다는 것입니다. 구체적으로, 순위 손실로는 기존과 동일하게 랭크넷 손실(rank net loss)을 사용했으며, 점수 손실로는 이진 교차 엔트로피 손실(binary cross entropy loss)을 사용했습니다. 최종 손실은 이 두 손실의 가중 합(weighted sum)으로 계산하여 학습을 진행했습니다. Loss = α RankLoss(Q,D) + (1-α) ScoreLoss(Q,D) RankLoss: Rank Net ScoreLoss: Binary Cross Entropy - { y∙log(y ̂ )+(1-y)∙log(1-y ̂ ) } 학습된 모델의 점수 분포를 분석한 결과, RRA-T 모델이 출력하는 점수가 기존 모델에 비해 실제 테스트 데이터셋의 점수 분포와 더 유사한 것으로 나타났습니다. 또한 테스트 데이터셋에서의 성능 비교에서도 랭킹과 스코어링 모두에서 기존 모델보다 우수한 결과를 보였습니다. 여기서의 성능은 교사 모델인 LLM이 생성한 레이블과의 비교 결과이며, 실제 성능은 이후 온라인 A/B 테스트를 통해 검증했습니다. 랭킹에 최신성 반영하기 RRA-T 모델을 활용하여 최신성을 랭킹에 반영하는 방식을 설명하겠습니다. 앞서 설명한 것처럼, 저희는 문서의 랭킹과 연관도 스코어를 잘 예측하는 모델을 개발했습니다. 이제 이 모델의 출력 점수를 활용하여 최신성을 실제 랭킹에 적용하는 방법을 살펴보겠습니다. 랭킹 스코어 계산 방법 랭킹은 관련 문서들을 상대적으로 비교해야 하므로, 문서의 최신성과 랭킹 점수를 수치화할 필요가 있었습니다. 문서의 나이(age)는 현재 검색 시점과 문서의 생성 시점의 차이로 계산 문서의 최신성(recency)은 수식을 통해 정량화 이 최신성 수식은 나이가 적은 구간에서는 최신성의 변별력이 크고, 나이가 많은 구간에서는 변별력이 감소한다는 특성이 있습니다. 최종 랭킹 스코어는 다음과 같은 방식으로 결정됩니다. RRA-T 모델이 예측한 연관성 점수(LLM 점수)가 특정 임계값(llm_score_threshold) 이상인 문서에 대해서는, 최신성 가중치(recency_weight)가 반영된 최신성 점수와 LLM 연관성 점수의 가중 합으로 계산됩니다. 반면, 연관성 점수가 낮은 문서에는 페널티를 부여하여 연관도가 낮은 최신 문서가 상위에 배치되는 것을 방지했습니다. 이러한 모델링 방식에서는 최신성을 얼마나 중요하게 고려할지를 나타내는 최신성 가중치와, 일정 연관도 이하의 문서에 페널티를 부여하기 위한 LLM 점수 임계값을 결정해야 했습니다. LLM을 활용하여 하이퍼파라미터 결정 흥미롭게도 이 두 하이퍼파라미터의 결정에도 LLM을 활용할 수 있었습니다. 하이퍼파라미터 최적화에는 다음과 같은 방식을 활용했습니다. 최신성 가중치와 LLM 점수 임계값이 결정되면 RRA는 입력된 질의와 문서들에 대한 랭킹 목록을 반환합니다. 이렇게 반환된 결과를 LLM이 다시 랭킹하고, 이 LLM의 결과를 정답으로 삼아 RRA-T 모델의 성능을 평가했습니다. 또한 검색 결과 내의 최신 문서 비율도 함께 모니터링하면서, 최신 문서를 최대한 포함하면서도 성능은 유지하는 최적의 파라미터를 도출할 수 있었습니다. 하이퍼파라미터 튜닝 실험 결과를 살펴보면, 상위 5개 문서 중 작성일이 1년 이내인 문서의 비율이 최신성 가중치와 LLM 점수 임계값의 변화에 따라 어떻게 달라지는지 확인할 수 있었습니다. 최신성 가중치가 증가할수록 최신 문서의 포함 비율이 높아졌습니다. 반면 검색 품질과 관련된 NDCG와 MRR의 성능은 최신성 가중치가 과도하게 높아지면 하락하는 경향을 보였습니다. LLM 점수 임계값 역시 값이 커질수록 검색 품질은 전반적으로 향상되었으나, 최신 문서의 비율은 감소하는 상충 관계를 보였습니다. LLM을 통해 최신 문서를 충분히 포함하면서도 성능 하락이 크지 않은 파라미터 조합을 선택할 수 있었습니다. 이러한 파라미터 설정이 절대적인 최적값이라고는 할 수 없지만 좋은 시작점이 되어, 이후 A/B 테스트를 통해 파라미터 변경에 따른 사용자 반응 지표를 관찰하면서 지속적인 튜닝을 진행할 수 있었습니다. 개선 결과 RRA-T 적용 전후의 네이버 통합 검색 결과를 비교해보면, 개선된 시스템에서는 스포츠 관련 질의의 경우 최신 대회 결과가 상위에 배치되고, 최신 공연 정보가 상위에 노출되며, "워렌 버핏의 투자 포트폴리오" 같은 질의의 경우 시간에 따라 지속적으로 변화하는 정보의 특성을 고려하여 최신 문서를 우선 보여주는 등, 문서가 더 적절한 순위로 제공됨을 확인할 수 있었습니다. 최신성을 반영한 RRA-T의 온라인 테스트 결과는 매우 고무적이었습니다. 유의미한 성능 향상이 확인되어 전체 서비스에 적용되었으며, 현재 네이버 검색창에 롱테일 질의를 입력하면 이 모델이 적용된 결과를 확인하실 수 있습니다. 마치며 지금까지 검색 결과 랭킹에 최신성을 반영하기 위해 LLM을 최대한 활용한 경험을 공유했습니다. 문서의 순위와 연관성 점수를 레이블링하기 위한 여러 프롬프트 후보 중 최적의 선택을 위해 사용자 피드백 로그를 활용했으며, 하이퍼파라미터 선택에도 LLM을 효과적으로 활용했습니다. 발견/탐색 프로덕트 부문의 정보성/롱테일 검색 개선을 위한 이 프로젝트는 의미 있는 성과를 거두었으며, 앞으로도 지속적인 개선을 통해 더 나은 검색 경험을 제공하기 위해 노력하겠습니다. 이 글은 TEAM NAVER CONFERENCE ‘DAN 24’ 에서 발표한 내용을 토대로 작성되었으며, 발표 자료는 DAN 24에서 보실 수 있습니다.

[DAN 24] LLM의 Re-Ranking Ability 검색에 이식하기 1편 - LLM 이식 방법
네이버 D2
[DAN 24] LLM의 Re-Ranking Ability 검색에 이식하기 1편 - LLM 이식 방법

검색은 크게 탐색형과 정보성으로 나눌 수 있습니다. 예를 들어 "캠핑"과 같은 질의는 구체적인 정보 취득보다는 탐색을 목적으로 하며 발생 빈도가 높습니다. 이와 같은 질의는 개인화를 고려하여 캠핑 장비 등 검색 의도 단위로 랭킹이 이루어집니다. 반면 "19개월 잠만자요"와 같은 질의는 영유아가 잠만 자는 문제에 대한 구체적인 정보를 원하는 질의로, 다양하고 발생 빈도가 낮아 롱테일 질의라고도 합니다. 이와 같은 질의는 인기글, 지식iN 등 출처를 기준으로 나뉜 컬렉션 단위로 랭킹이 이루어집니다. 이 글에서는 거대 언어 모델(Large Language Model, LLM)의 랭킹 능력을 활용하여 롱테일 질의의 랭킹을 개선한 방법을 다루고자 합니다. 다음과 같은 순서로 설명하겠습니다. LLM이 검색에 줄 수 있는 효과 롱테일 질의를 위한 재순위화(re-ranking) LLM을 활용한 최신성 반영 LLM이 검색에 줄 수 있는 효과 랭커(ranker)로서 LLM의 장점 "19개월 잠만자요"라는 질의를 예시로 들어보겠습니다. 이는 영유아가 잠만 자는 문제에 대해 알고 싶어하는 질의입니다. 기존 검색 결과에서는 아기의 수면과 관련된 질의라는 것은 파악했으나, '잠만 자요'가 아닌 '잠 안 자요'와 관련된 결과가 상위에 노출되는 등 세부적인 맥락 파악이 미흡한 경우가 있었습니다. 이로 인해 사용자의 정확한 클릭을 유도하지 못하고 양질의 정답 데이터셋 혹은 특징(feature)을 확보하기 어려워지는 악순환이 발생했습니다. 그러나 LLM의 발전으로 이러한 한계를 극복할 수 있게 되었습니다. 동일한 문서 풀에 대해 LLM 기반 재순위화를 적용한 결과, '잠만 잔다'와 관련된 문서는 상위로, '잠 안 잔다'와 관련된 문서는 하위로 적절하게 순위가 조정되었습니다. 이처럼 LLM은 기존에 처리하기 어려웠던 질의와 문서 간의 관계를 효과적으로 파악하고 랭킹할 수 있는 가능성을 보여주고 있습니다. 검색 서비스에서 LLM 사용의 한계 LLM을 랭커로 활용할 때는 크게 두 가지 방식이 있습니다. 첫째는 목록 단위 랭킹(list-wise ranking)으로, 검색된 문서들의 전체 순서를 결정하는 방식입니다. 둘째는 개별 단위 랭킹(point-wise ranking)으로, 각 문서의 연관성 여부를 개별적으로 판단하는 방식입니다. 그러나 이러한 방식들을 실제 검색 서비스에 적용하는 데에는 여러 한계가 존재했습니다. 목록 단위 랭킹 사용 시 생성형 LLM을 사용하면 순차적으로 결과가 생성되기 때문에, 생성이 모두 이루어진 후 렌더링을 하면 검색 결과가 바로 나오지 않습니다. 개별 단위 랭킹은 문서별 연관도를 병렬적으로 산출하고 종합할 수 있다는 장점이 있으나, 대규모 LLM을 병렬로 운용하는 것은 검색 트래픽 처리 측면에서 비용이 높고 관리가 어렵다는 한계가 있었습니다. 즉, LLM을 검색 랭커로 직접 사용하기에는 응답 속도, 비용, 관리 측면의 제약이 존재하여 실제로 활용하기는 어렵습니다. 이러한 한계를 극복하기 위한 저희의 접근 방식을 설명하겠습니다. 롱테일 질의를 위한 LLM 기반 재순위화(Re-Ranking) 네이버 검색에는 다음과 같이 의도가 아주 세밀하지만, 사용자들이 자주 검색하지는 않는 다양한 롱테일 질의가 존재합니다. 저희는 이런 질의에 대한 랭킹 성능을 올리기 위한 개발을 진행했습니다. "19개월 잠만자요" "신차구매시 기존 자동차보험 어떻게 해야하나요" "세입자가 안들어왔다고 돈을 안주는" "80대 요관암 말기 암 항암치료" 랭킹 고도화를 위해 다양한 접근 방법을 시도해보았는데 크게 세 가지 방향으로 분류할 수 있습니다. 접근 방향 한계 사용자 피드백 데이터셋 활용 롱테일 질의 관련 유의미한 피드백이 없거나 매우 적다 양방향 인코더 형식 모델 구조 의도가 명확하지 않거나 복잡하여 맥락을 이해하지 못한다 소형 생성형 모델 활용 어려운 맥락을 이해하지 못한다 먼저, 랭킹에서 일반적으로 활용되는 사용자 피드백 데이터셋을 활용하는 방식을 시도했습니다. 그러나 이는 효과적이지 않았는데, 주로 탐색형 질의에서 발생하는 피드백 데이터만으로는 복잡한 질의의 연관성을 위한 양질의 정답 데이터셋을 구축하기 어려웠기 때문입니다. 두 번째로는 모델 측면에서 일반화를 위해 양방향 인코더(bi-encoder) 형식의 모델 구조를 시도했습니다. 그러나 이러한 구조로는 세부적인 맥락을 포착하기 어려워 성능이 충분치 않았습니다. 세 번째로 LLM의 속도 문제를 해결하고자 소형 생성형 모델을 활용하는 시도도 있었으나, 상대적으로 작은 규모의 생성형 모델로는 복잡한 맥락에 대한 적절한 랭킹 결과를 생성하는 데 한계가 있었습니다. 랭킹을 위한 경량 언어 모델(sLM)과 지식 증류(distillation)의 필요성 앞에서의 시행착오를 바탕으로 문제를 해결하기 위해 다음과 같은 고민을 하고 결론을 얻었습니다. 고민 결론 LLM만의 고유한 장점은 무엇인가 복잡한 질의와 문서에 대한 정답 데이터셋을 만들 수 있다 반드시 대화형/생성형으로 문제를 해결해야 하는가 랭킹만 잘하면 된다 크고 느린 LLM이 꼭 필요한가 목적에 특화된 모델이 필요하다 즉, LLM을 랭커로 직접 사용하는 대신 양질의 정답 데이터셋 생성에 활용하고, 개발 목적상 대화형 결과가 아닌 정확한 랭킹이 핵심이고, 크고 느린 LLM 대신 목적에 특화된(task-specific) 모델이 필요하다는 결론을 내리게 되었습니다. 따라서 사용자 피드백이 아닌 연관성 정답 데이터를 LLM으로 확보하고, 불필요한 단어 생성 과정을 제거한 sLM(small Language Model, 경량 언어 모델) 랭커를 구축하기로 결정했습니다. 최종적으로는 롱테일 질의에 대한 랭킹에 특화된 모델로 지식 증류를 수행하는 방향으로 나아가게 되었습니다. 롱테일 질의의 문서 랭킹 품질 개선 최근 거대 언어 모델을 활용한 데이터셋 구축 연구가 활발히 진행되고 있습니다. 저희는 네이버의 대규모 언어 모델인 하이퍼클로바 X(HyperCLOVA X, 이하 HCX)를 활용하여 정답 데이터셋을 구축했습니다. 그 과정은 다음과 같습니다. 우선 질의에 대해 네이버의 기존 리트리버(retriever)로 문서를 수집합니다. 순위를 매기고자 하는 문서 집합을 LLM에 입력할 때는 순서와 구성이 중요했습니다. 이를 위해 기본적인 성능을 보이는 랭커를 구축하여 검색된 문서들의 순서를 정하고, 상위 10개와 하위 10개 정도로 필터링을 진행했습니다. 이렇게 선별된 20개의 문서에 대해 LLM에 순서 지정을 요청했습니다. 이 과정에서 흥미로운 현상이 발견되었는데, LLM이 일부 문서를 누락시키는 것이었습니다. 분석 결과 주로 연관성이 낮은 문서들이 제외되는 것을 확인했습니다. 여러 실험과 분석을 통해, 이러한 제외된 문서들을 어려운 부정 사례(hard negative) 샘플로 활용할 수 있다고 판단했고 롱테일 질의에 대한 학습 데이터를 이런 방식으로 구축했습니다. 이렇게 구성된 데이터셋으로 모델 학습을 진행했습니다. BERT 스타일과 GPT 스타일의 모델에 대한 학습 방식을 모두 개발했는데, 본 글에서는 개념 위주로 설명하겠습니다. 더 자세한 내용은 EMNLP 2024 Industry Track에 게재된 다음의 논문에서 확인하실 수 있습니다. - Nayoung Choi*, Youngjune Lee*, Gyu-Hwung Cho, Haeyu Jeong, Jungmin Kong, Saehun Kim, Keunchan Park, Sarah Cho, Inchang Jeong, Gyohee Nam, Sunghoon Han, Wonil Yang, Jaeho Choi. 2024. RRADistill: Distilling LLMs’ Passage Ranking Ability for Long-Tail Queries Document Re-Ranking on a Search Engine. EMNLP 2024. BERT 스타일 모델의 학습 방식 우선 BERT(Bidirectional Encoder Representations from Transformers) 스타일 모델의 학습 방식부터 설명하겠습니다. 기본적인 구조는 교차 인코더(cross-encoder) 형태를 채택했으며, 여기에 토큰 선택(token selection) 과정을 추가했습니다. 토큰 선택은 토큰 임베딩을 통해 문서 내의 토큰 중 질의 토큰과 유사한 것들을 식별하는 과정입니다. 이렇게 선택된 토큰들은 조건 제어 계층(term control layer)이라 부르는 얕은 어텐션(attention) 계층을 한 번 더 통과합니다. 이를 통해 CLS 표현(CLS representation)을 얻고, 이는 공유 분류 헤드(shared classification head)를 통과하여 최종 연관성 점수를 산출합니다. 학습 시에는 문서별 쌍의 순위 관계를 고려하는 쌍별 손실(pair-wise loss)인 랭크넷 손실(ranknet loss)을 사용했습니다. 이러한 방식을 통해 모델은 질의-문서 간의 기본적인 맥락을 파악하면서도 질의의 토큰과 유사한 토큰들에 집중할 수 있습니다. 이 접근법의 주목할 만한 특징은, 학습 시에는 용어 제어 계층을 활용하지만 추론 시에는 이를 제거할 수 있다는 점입니다. 이는 추론 시간을 증가시키지 않는 효율적인 방법이라고 할 수 있습니다. GPT 스타일의 랭커 학습 방법 다음으로 GPT 스타일의 랭커 학습 방법을 살펴보겠습니다. 저희는 GPT 모델을 랭커로 활용하기 위해 질의-문서에 대한 점수를 산출할 수 있도록 구성했습니다. 질의와 문서가 입력되면 연관성의 유무를 나타내는 레이블과 그 이유를 설명하는 추론(reasoning)을 출력하도록 학습시켰습니다. 연관성에 대해서는 토큰 확률(token probability)을 활용하여 교차 엔트로피 손실(cross entropy loss)을 적용하고, 이유 설명에는 생성 손실(generation loss)을 사용했습니다. 또한 응답의 은닉 상태(hidden state) 값을 얕은 계층에 통과시켜 점수를 산출하고, 여기에는 쌍별 손실을 적용했습니다. 이러한 방식으로 학습된 모델은 실제 서비스 시에는 레이블과 추론 부분을 생성하지 않도록 하여 랭킹에만 특화된 효율적인 GPT 기반 랭커를 구현할 수 있다는 특징이 있습니다. 학습된 모델의 평가 학습된 모델의 평가 결과는 매우 고무적이었습니다. 롱테일 질의에 대한 특화 학습을 통해 기존 방식과 비교하여 큰 성능 향상을 달성했습니다. 기존의 세 가지 방식이 롱테일 질의를 효과적으로 처리하지 못했던 것과 달리, 저희가 구축한 롱테일 타겟 데이터셋으로 학습한 모델은 현저히 향상된 성능을 보여주었습니다. 특히, 더 우수한 성능을 달성했을 뿐 아니라, 앞서 언급한 것처럼 추론 효율성까지 확보할 수 있었습니다. 실제 서비스에서는 RRA-BERT를 적용한 A/B 테스트를 진행했으며, 상위 문서의 클릭률이 증가하는 등 연관된 문서가 상위에 잘 배치되는 결과를 확인할 수 있었습니다. 실시간 서비스 적용을 위한 세부적인 기술적 고려사항은 네이버 D2 블로그에서 자세히 확인하실 수 있습니다. 생성형 AI 기반 실시간 검색 결과 재순위화 1편 - 서빙 시스템 아키텍처 생성형 AI 기반 실시간 검색 결과 재순위화 2편 - LLM 서빙 다음은 실제 개선된 검색 결과 사례입니다. 참고로 여기서 소개하는 사례는 특정 시점의 결과이며, 롱테일이라는 정의에는 여러 기준이 적용되기 때문에 실제 검색 결과는 시간에 따라 변화할 수 있습니다. 새로운 시스템은 복잡하고 세부적인 질의에 대해서도 효과적으로 관련 문서를 상위에 배치하는 것으로 나타났습니다. 예를 들어 "세입자가 안들어왔다고 돈을 안주는" 질의에 대해서는 임대료 미납 상황에서의 대처 방법을 다루는 문서가 상위에 배치되었습니다. 또한 "80대 요관암 말기 암 항암치료"와 같은 의료 관련 질의에 대해서도 관련성 높은 정보를 제공하는 글이 상위에 노출되었습니다. "19개월 잠안자요"라는 질의의 경우에도 영유아의 수면 문제 원인을 파악하기 위한 글이 효과적으로 상위에 배치되었습니다. 이러한 성과를 바탕으로, 저희는 시스템을 더욱 발전시키기 위한 후속 연구를 진행했습니다. 특히 검색 결과의 시의성을 개선하기 위한 연구가 이어졌는데, 이에 대해서는 다음 글에서 자세히 설명하겠습니다. 이 글은 TEAM NAVER CONFERENCE ‘DAN 24’ 에서 발표한 내용을 토대로 작성되었으며, 발표 자료는 DAN 24에서 보실 수 있습니다.

[DAN 24] 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스 ① 홈피드와 교차 도메인 컨텍스트
네이버 D2
[DAN 24] 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스 ① 홈피드와 교차 도메인 컨텍스트

"검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스" 시리즈에서는 네이버 발견/탐색 프로덕트에서 개발한 홈피드의 개인화를 위한 LLM 활용 방안을 소개합니다. 시리즈의 첫 번째 글에서는 홈피드가 무엇인지 소개하고, 교차 도메인 컨텍스트(cross-domain context)가 왜 필요하며, 이를 구현하기 위해 시스템을 어떻게 구성했는지 설명합니다.  ② 사용자 검색 의도 세분화 ③ 사용자 관심 주제 추출 홈피드, 개인화 추천 피드 홈피드는 네이버에서 생산되는 블로그, 카페 등 다양한 UGC(user-generated content) 중에서 사용자가 관심 있을 만한 콘텐츠를 찾아서 보여주는 서비스입니다. 기본적으로 사용자가 구독한 채널, 읽은 문서 등 사용자의 활동을 기반으로 맞춤 콘텐츠를 추천합니다. 사용자가 확인한 콘텐츠를 더 자세하게 탐색할 수 있도록 관련 콘텐츠도 함께 추천하며, 관심 있는 키워드도 찾아서 제공하고 있습니다. 네이버 홈피드는 2023년 8월에 정식 서비스를 오픈했습니다. 네이버 앱에서 검색창 하단에 위치해 있으며, 아래로 스크롤해서 진입할 수 있습니다. 기본적으로 1:1 비율의 큰 이미지를 중심으로 네이버의 콘텐츠를 소비할 수 있는 개인화 추천 피드입니다. 기존 사용자 컨텍스트의 한계 홈피드는 개인화 추천이 중요한 서비스입니다. 따라서 개인화 추천의 재료가 되는 사용자 컨텍스트를 잘 쌓는 것이 첫 번째 단계입니다. 하지만 서비스 오픈 초기에는 신규 사용자가 많아 사용자 컨텍스트가 부족한 사용자의 비율이 높았습니다. 2023년 말 기준 홈피드 사용자군을 보면, 라이트 사용자의 비율이 약 85%로 큰 비중을 차지했습니다. 라이트 사용자는 홈피드에서 활동한 데이터가 적어 적절한 수준의 개인화 추천을 제공하기 어렵다는 문제가 있었습니다. 그런데 흥미로운 데이터 분석 결과를 발견했습니다. 라이트 사용자 중에서 검색이나 메인 주제판을 이용하는 사용자의 비율이 각각 95%, 50% 정도로 꽤 높았다는 점입니다. 이러한 발견을 토대로, 다른 서비스의 사용자 활동 정보를 함께 사용하여 부족한 사용자 컨텍스트를 확장하는 교차 도메인 컨텍스트 방법론을 고안하게 되었습니다. 즉, 홈피드에서 쌓인 사용자 컨텍스트만으로는 개인화 추천을 제공하기 어려웠지만, 검색이나 메인 주제판과 같은 네이버의 다른 서비스에서 얻은 사용자 컨텍스트를 함께 활용하여 사용자의 관심사와 선호도를 보다 풍부하게 반영할 수 있었습니다. AiRScout: LLM 기반 사용자 컨텍스트 확장 모델 AiRScout는 3가지 LLM(large language model) 모듈과 이를 통해 생성되는 5가지의 사용자 컨텍스트로 구성된 LLM 기반의 사용자 컨텍스트 확장 모델입니다. AiRScout라는 이름은 팀 이름인 AiRS에 'context of user tag'의 의미를 더한 것입니다. 사용자 관심 주제 추출 파이프라인 사용자의 관심 주제를 추출하는 파이프라인은 다음과 같이 구성했습니다. ① 주제 분류 단계 다양한 형태의 UGC 문서에 대해 통합된 하나의 주제 분류기를 사용하여 콘텐츠의 주제를 생성합니다. IAB 분류 체계를 사용하며 약 600여 개의 주제가 있습니다. 예를 들어, 특정 콘텐츠의 주제가 '게임 중에 E스포츠'라는 것을 파악할 수 있습니다. ② 소비 이력 분석 단계 서비스별 사용자의 소비 이력을 함께 활용합니다. 사용자가 어떤 주제의 콘텐츠를 주로 확인했는지 분석하고 모델링하여 사용자의 관심 주제를 추출합니다. 관심 주제의 선호도 점수는 0에서 1 사이로 결정되며, 선호도가 높을수록 1에 가까운 값이 되도록 모델링됩니다. 예를 들어, 특정 사용자가 부동산 관련 콘텐츠를 많이 검색하거나, 홈피드에서 예능, 골프, SUV 자동차에 관심이 많다는 것을 파악할 수 있습니다. ③ 통합 및 저장 단계 검색, 홈피드, 메인 주제판의 관심 주제를 하나로 통합하여 AiRScout에 저장합니다. 이는 짧은 배치 주기로 연동되어 있으며, AiRScout를 통해 홈피드나 서치피드 등 여러 피드 지면에 유통됩니다. 검색 의도 세분화 과정 검색 의도 세분화는 기본적으로 검색 소비 이력을 활용합니다. 사용자가 검색한 질의에 대해 어떤 문서를 확인했는지를 바탕으로 원질의를 더 구체화된 형태로 생성하는 과정입니다. 단순하게 보면 원질의 Q를 요약 생성 질의 Q&ast로 변환하는 문제입니다. 예를 들어, '에스파'라는 원질의에서 '에스파 일본 앨범 Hot Mess'라는 세부적인 검색 의도를 도출할 수 있습니다. 이러한 추론 파이프라인은 거의 실시간으로 동작하도록 시스템을 구성했습니다. 따라서 검색 직후에 AiRScout에 데이터가 인입되고, 홈피드에서 이를 바로 추천에 사용할 수 있습니다. 서비스 적용 사례 AirScout 기술을 적용해 다양한 개인화 추천 서비스를 제공하고 있습니다. AfterSearch: 실시간 검색 이력 기반 추천 적용 사례 AiRScout 기술을 활용한 실시간 검색 이력 기반 추천을 'AfterSearch'라고 부릅니다. 예를 들어, 사용자가 통합 검색에서 '두바이 초콜릿'을 검색한 후 피드를 탐색하면, 홈피드 결과를 새로 고침했을 때 '최근 찾아본 두바이 초콜릿 콘텐츠'라는 추천 사유와 함께 관련 콘텐츠가 추천됩니다. 서치피드: 숏텐츠 및 재검색 질의 적용 사례 AiRScout 기술은 서치피드 내 숏텐츠와 재검색 질의에도 활용됩니다. 숏텐츠: 생산과 소비가 활발한 최신 인기 문서를 분석해 핵심 주제를 추출합니다. 예를 들어, 이강인과 황희찬 관련 핵심 주제가 추출되고, 이를 바탕으로 관련 콘텐츠를 제공합니다. 이 과정에서 AiRScout의 요약 생성 질의와 주제 분류 결과를 활용하여 '축구'와 같은 주제로 클러스터링합니다. 재검색 질의: '아이유'를 검색하면 '아이유 데뷔 16주년 기부'와 같은 더 구체적인 재검색 질의를 추천할 때도 AiRScout의 요약 생성 질의를 활용합니다. 이상으로 AiRScout에 대한 전반적인 소개를 마칩니다. 이 시리즈의 다음 글에서는 요약 생성 질의, 즉 '의도 세분화'의 구체적인 구현 방법을 설명합니다. 이 글은 TEAM NAVER CONFERENCE ‘DAN 24’에서 발표한 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스를 토대로 작성되었습니다.

[DAN 24] 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스 ② 사용자 검색 의도 세분화
네이버 D2
[DAN 24] 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스 ② 사용자 검색 의도 세분화

"검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스" 시리즈의 두 번째 글에서는 '사용자 검색 의도 세분화'에 적용한 기술을 설명합니다.  ① 홈피드와 교차 도메인 컨텍스트 ③ 사용자 관심 주제 추출 의도 세분화 구현 배경 "① 홈피드와 교차 도메인 컨텍스트"에서 소개한 홈피드의 AfterSearch와 숏텐츠에서 질의만으로 서비스를 제공할 경우 정교한 추천과 구체적인 트렌드 제공에 한계가 있었습니다. 예를 들어, 사용자가 '에스파'를 검색해 위플래시 관련 문서를 확인한 경우에도 '에스파'라는 키워드만으로 추천이 이루어지면 '에스파 패션'과 같은, 맥락과 동떨어진 콘텐츠가 추천되는 한계가 있었습니다. 숏텐츠에서 트렌드 질의만 표시할 경우에도 사용자가 실제 문서를 읽어보기 전까지는 구체적인 내용을 직관적으로 파악하기 어려웠습니다.  반면 정교한 추천을 위해 문서만 분석하면 해당 문서가 검색된 맥락을 놓치게 되는 문제가 발생했습니다. 네이버의 방대한 UGC(user-generated content)는 하나의 글에 여러 주제를 포함한다는 특징이 있습니다. 따라서 동일한 글이라도 어떤 사용자는 '에스파'를, 또 다른 사용자는 '트와이스 포토카드'를 검색해 접근할 수 있습니다. 이렇게 문서만을 기반으로 요약 질의를 추출하면 해당 문서가 검색된 맥락, 즉 원래 질의와 무관한 키워드가 추출될 위험이 있습니다. 이러한 아쉬움을 해결하고 정교함과 맥락을 모두 확보하려면 질의와 문서를 통합적으로 고려하는 모델이 필요했습니다. 이에 질의 Q를 기반으로 문서 D의 핵심을 결합해 새로운 요약 생성 질의 Q&ast를 생성하는 모델을 개발하기로 했습니다. 이때 언어 모델은 단순 추출 요약뿐만 아니라 패러프레이징, 자연스러운 어순 등을 모두 고려해야 했으므로, 생성형 모델이 적합하다고 판단해 사내 LLM(large language model)인 HyperCLOVA X를 선택했습니다. HyperCLOVA X는 다양한 네이버 내 UGC를 학습해 인플루언서명, 브랜드명, 프로그램명 등 한국어에 특화된 NLU(natural language understanding) 성능을 보유하고 있어 실제 콘텐츠를 이해하는 데 유리했습니다. 검색 로그를 활용한 지도 학습 미세 조정 모델 구조를 살펴보면, 입력값으로는 질의 Q와 연관 문서 D가 사용되며, 출력값은 문서를 기반으로 구체화된 요약 생성 질의 Q&ast가 됩니다. 이때 입력값은 통합 검색 로그로 쉽게 수집할 수 있었으나, 출력값인 Q&ast는 정답 자체가 존재하지 않았습니다. 이에 사용자들이 해당 문서를 찾는 구체적인 이유를 검색 로그로 찾아낼 수 있을 것이라 판단해 Q&ast를 찾아내는 작업을 진행했습니다. 먼저 하나의 문서에 유입된 모든 질의를 수집합니다. 앞선 예시 문서에는 '에스파', '트와이스', '에스파 일본 앨범' 등 다양한 질의로 진입할 수 있었습니다. 그런 다음 수집된 Q 목록에서 서로 포함 관계인 질의 쌍을 나열합니다. 여기서 포함 관계란 각 질의를 토큰화했을 때 하나의 질의가 다른 질의 토큰의 일부를 포함하고 있는 관계를 의미합니다. 예를 들어 '에스파'라는 질의는 '에스파 일본', '에스파 앨범 언박싱' 등과 포함 관계가 됩니다. 동일한 방법으로 '트와이스' 질의의 포함 관계 질의도 수집할 수 있습니다. 이렇게 수집된 질의들은 원질의 Q를 포함하고 있으면서 정보를 더 많이 가지고 있습니다. 즉, '에스파'를 검색하고 예시 문서 D를 소비했을 때 요약 생성 질의 Q&ast가 될 수 있는 후보군입니다. 이 중에서 모델의 정답으로 활용할 Q&ast는 하나만 필요하므로, 정보를 가장 많이 담고 있는 질의를 최종 정답으로 선택합니다. 토큰 수가 가장 많은 질의가 가장 많은 정보를 담고 있다고 가정하고, 해당 질의를 Q&ast로 선택했습니다. 에스파 예시에서는 '에스파 일본 앨범 Hot Mess'를, 트와이스 예시에서는 '트와이스 일본 Dive'를 Q&ast로 선택합니다. 모델 학습 구성 이와 같은 방법으로 질의 Q와 문서 D가 입력됐을 때의 정답 Q&ast를 수천 건 수집한 후, 간결한 명령어(instruction)를 추가해 지도 학습 미세 조정(SFT, supervised fine-tuning)을 진행했습니다. 명령어 따르기(instruction following)를 기대하며 프롬프트를 상세히 작성할 수도 있었으나, 네이버에서 발생하는 검색량이 방대해 배치당 수백만 건의 추론을 신속하게 처리해야 했기에 프롬프트는 간단하게, 모델은 경량화하여 접근했습니다. 이에 따라 HCX-L(HyperCLOVA X-Large) 모델 대비 파라미터 크기가 5% 미만인 HCX-S(HyperCLOVA X-Small) 모델을 활용하기로 했습니다. 학습된 모델의 추론 결과를 분석한 결과, 팝업 스토어를 검색한 사용자가 구체적으로 어떤 팝업에 관심을 가졌는지, 대형 텐트를 검색해 어떤 제품을 상세히 탐색했는지 등 사용자의 의도를 더욱 구체화할 수 있었습니다. 검색 패턴에 따른 데이터 편향 적절한 Q&ast를 생성하는 경우도 있었던 반면, 수집한 데이터세트의 명확한 한계도 발견됐습니다. 특히, 사용자들의 빈번한 검색 패턴에 의해 데이터와 모델이 편향되는 현상이 나타났습니다. 예를 들어, 인물명 다음에는 '인스타'를, 작품명 다음에는 '등장인물'이나 '줄거리'를 붙여 검색하는 경우가 많아서 학습 데이터에도 이러한 패턴이 반영됐고, 결과적으로 모델은 문서의 핵심 내용과 무관하게 자주 등장하는 패턴을 출력하게 됐습니다. 이러한 패턴을 모두 정의하고 필터링할 수 있다면 앞서 구축한 수천만 건의 데이터를 정제해 활용할 수 있겠으나, 문제는 편향되는 패턴의 종류가 무한하다는 점이었습니다. 모든 패턴을 정의하고 제거하기가 매우 어려운 과제임을 인식하고 사용자 피드백에 과도하게 의존하지 않는 방식이 필요하다고 판단해, HCX-L 모델을 활용한 데이터세트 생성을 시도했습니다. HCX-L 기반 적은 예시 데이터 증강 먼저 HCX-L을 활용한 적은 예시 데이터 증강(few-shot augmentation)을 시도했습니다. 대형 모델의 명령어 따르기 능력을 적극 활용하고자 프롬프트에 작업의 성격과 제약 조건, 참고할 만한 예시를 5개 미만으로 포함했습니다. 그러나 작업의 모든 제약 조건을 프롬프트에 상세히 명시하기가 불가능했고, 명시하더라도 실제 모든 결과가 이 조건을 만족하지는 않았습니다. 구체적인 결과를 살펴보면, 질의에 등장한 인물명이나 작품명을 누락하거나, 질의를 적절히 패러프레이징하지 못하고 단순 나열하는 등 품질이 낮은 사례가 자주 발견됐습니다. 질의에 포함된 핵심 키워드를 유지해야 한다거나 단순 나열을 피해야 한다는 조건이 프롬프트에 명시되어 있고 이를 적은 예시로 유추할 수 있음에도 불구하고, 모든 결과가 이러한 조건을 따르지는 않아 품질 관리에 어려움이 있었습니다. HCX-S를 안정적으로 학습시키려면 최소 수천 건 단위의 고품질 데이터세트가 필요했으나, 앞서 시도했던 두 가지 방식만으로는 각각 다음과 같은 문제가 있음을 확인했습니다. 검색 로그를 활용한 지도 학습 미세 조정 시 수집된 데이터가 특정 패턴에 편향되기 쉽습니다. HCX-L 기반 적은 예시 데이터 증강 적용 시 HCX-L의 논리적 사고 능력(reasoning)이 뛰어나도 다양한 패턴을 명시하고 강제할 수 없어 품질 관리가 어렵습니다. 이러한 상황에서, 편향되지 않은 고품질 데이터세트가 소규모로라도 있다면 문제를 효과적으로 해결할 수 있을 것으로 판단했습니다. 일반적으로 파라미터 크기가 큰 LLM일수록 명령어 따르기뿐만 아니라 논리적 사고 능력도 우수하므로, 미세 조정 시 적은 데이터만으로도 모델을 신속하게 수렴시킬 수 있습니다. 즉, 소규모 데이터로도 HCX-L을 한 번 조정(tuning)하여 데이터에 대한 이해도를 높인다면, 이 모델로 데이터를 증강하여 작은 모델을 조정할 데이터세트를 확보할 수 있습니다. 이러한 접근은 HCX-L 모델의 지식을 작은 학생 모델(HCX-S)에게 전수하는 지식 증류(knowledge distillation) 문제로 귀결됩니다. 지식 증류 지식 증류는 크게 4단계의 과정을 거쳐 진행했습니다. 먼저, 직접 레이블링한 수백 건 단위의 데이터를 수집하고 HCX-L을 학습해 교사 LLM(Teacher LLM)을 구축했습니다. 이후 교사 LLM으로 데이터를 증강해 학습 데이터를 수천 건 단위로 확장했으며, 마지막으로 HCX-S 모델을 학습시켜 학생 LLM(Student LLM)을 생성했습니다. 각 단계를 상세히 설명하자면, 먼저 교사 모델 학습을 위한, 사람이 레이블링한 우수 데이터세트(human labeled gold set)의 경우, 최대한 다양한 패턴을 반영하도록 단순 추출 요약부터 패러프레이징, 자연스러운 어순 등을 고려하여 작성했습니다. 또한 특정 카테고리에 편향되지 않도록 질의를 약 30가지 카테고리로 나누고 카테고리별로 수십 건의 데이터를 수집했습니다. 그리고 교사 모델을 구축할 때는 처리 속도보다 품질이 중요하므로, 프롬프트는 앞서 진행한 적은 예시 데이터 증강과 같이 상세하게 작성하여 빠르게 수렴할 수 있도록 했습니다. 이러한 지도 학습 미세 조정 과정을 거쳐 교사 LLM을 구축했습니다. 다음으로, 검색 로그에서 샘플링한 수천 건의 질의 Q와 문서 D를 교사 모델에 입력해 교사가 레이블링한 우수 데이터세트(teacher labeled gold set)를 확보했습니다. 입력 데이터 역시 특정 카테고리에 편향되지 않도록 질의별로 수백 건을 샘플링했습니다. 이렇게 생성된 데이터에 간략한 프롬프트를 추가해 HCX-S를 학습시켰고, 교사 모델의 지식이 전달된 학생 LLM을 구축했습니다. 세 모델의 결과를 정성적으로 비교했을 때, 학생 모델에서 기존 검색 로그 기반 모델의 편향 사례가 개선됐고 교사 모델의 결과와 유사한 수준으로 주요 핵심을 잘 반영하여 질의를 생성하는 것을 확인할 수 있었습니다. 오프라인 품질 평가 앞에서 생성된 모델들의 성능을 정량적으로 평가하기 위해 다음의 3가지 지표를 활용했습니다. ROUGE 스코어: 전통적인 지표로, 토큰 단위 정확 일치(exact match) 성능을 신속하게 평가 BERT 스코어: ROUGE가 포착하지 못하는 의미적 일치(semantic match) 평가 HCX-Eval(HCX-L 모델 활용): ROUGE와 BERT 스코어로는 평가하기 어려운, 즉 단순 키워드 단위 비교로 평가할 수 없는 요소(어순의 자연스러움, 허위 사실 여부 등)까지 정량화 평가 데이터로는 사람이 레이블링한 데이터세트(human labeled dataset) 중 학습에 사용하지 않았던 데이터를 활용했습니다. 평가 결과는 다음과 같았습니다. 검색 로그 기반 모델: BERT 스코어 F1 기준 0.77로 성능이 높지 않음 조정되지 않은 HCX-L(few-shot): 프롬프트 길이와 무관하게 검색 로그 기반 모델보다 성능이 저조 교사 LLM(소규모 고품질 데이터세트 학습): BERT 스코어 F1 기준 0.91로 목표 품질에 높은 수준으로 도달 학생 LLM: 교사 LLM을 제외한 모든 모델의 성능을 상회하며, 검색 로그 기반 모델 대비 BERT 스코어 F1 기준 약 7% 성능 향상 HCX-S 서빙과 추론 파이프라인 오프라인에서 모델이 검증되었으니 온라인에서 그 효과를 확인할 차례입니다. HCX-S 모델을 서빙하기 위한 파이프라인을 구성했습니다. 서빙 최적화 오프라인에서 모델을 검증한 후 온라인 서비스에 적용하기 위해 서빙 전용 프레임워크인 vLLM을 도입했습니다. 허깅 페이스(Hugging Face)로는 온라인 추론(online inference)을 신속하게 처리하기 어려웠기 때문입니다. vLLM의 적용 효과는 다음과 같습니다. 모델 병렬 처리(model parallel)를 적용해 multi GPU로 병렬 연산 가능 페이지드 어텐션(paged attention)과 연속적 배치 처리(continuous batching)로 처리량 향상 기존의 허깅 페이스 배치 파이프라인 대비 QPS 최대 400% 개선 또한 검색량은 시간에 따라 달라지므로 매번 최대 리소스를 점유할 필요가 없습니다. 오토 스케일링(auto scaling)과 제로 스케일링(zero scaling)으로 검색량에 따라 앱 복제 인스턴스(replica) 수를 조절해 GPU 리소스를 효율적으로 활용하도록 구성했습니다. 검색 로그 추론 파이프라인 전체 파이프라인 구성은 다음과 같습니다. 검색 로그가 에어플로(Airflow) 배치를 통해 사용자별, 질의별로 그룹화되어 유입됩니다. 검색어별로 여러 문서를 클릭하면 하나로 연결(concat)하여 추론(inference)합니다. 생성된 데이터는 개인화 피처 스토어인 Brownie에 저장되어 개인화 알림 발송에도 활용됩니다. 온라인 평가 앞에서 언급한 기술을 적용한 결과, 홈피드의 AfterSearch와 숏텐츠 서비스가 다음과 같이 개선된 것을 확인할 수 있었습니다. 예를 들어, 사용자가 '에스파'를 검색하고 'whiplash' 문서를 확인한 경우, 에스파의 위플래시 관련 문서를 보다 정확하게 추천할 수 있게 됐습니다. 정확한 수치로 보면, 기존의 질의 기반 추천 대비 요약 질의 추천의 클릭률(CTR, click-through rate)이 7.74% 상승했습니다. 숏텐츠에서는 사용자들이 문서를 직접 읽지 않고도 현재 발생하고 있는 트렌드를 한눈에 파악할 수 있게 됐습니다. 향후 개선 계획 모델의 성능이 상당히 개선됐으나 여전히 개선할 부분이 남아 있습니다. 특히 사용자의 시선을 사로잡을 수 있는 흥미로운 키워드로 요약하는 능력과, 오해의 소지가 있는 단어를 적절히 순화하는 능력을 향상할 수 있도록 다음과 같은 방향으로 개선할 계획입니다. 선호도 최적화(preference optimization) 기반의 대규모 언어 모델 정렬(LLM alignment) 강화 논리적 사고 능력(reasoning)을 활용한 학생 모델(student model) 성능 강화 "검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스" 시리즈의 다음 글에서는 카테고리 수준의 사용자 관심사를 파악하기 위해 주제 분류기를 고도화한 과정을 설명합니다. 이 글은 TEAM NAVER CONFERENCE ‘DAN 24’에서 발표한 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스를 토대로 작성되었습니다. 

[DAN 24] 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스 ③ 사용자 관심 주제 추출
네이버 D2
[DAN 24] 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스 ③ 사용자 관심 주제 추출

이 글에서는 사용자 관심 주제 추출의 배경과 적용 기술을 소개합니다.  ① 홈피드와 교차 도메인 컨텍스트 ② 사용자 검색 의도 세분화 기존 분류기의 한계 홈피드 추천을 고도화하려면 보다 세부적으로 주제를 분류해야 했습니다. 기존의 주제 분류기에는 몇 가지 주요한 한계점이 있었습니다. 예를 들어, 축구와 야구가 모두 '스포츠'라는 동일한 카테고리로 분류되어 축구에만 관심 있는 사용자에게 야구 콘텐츠가 추천되는 문제가 발생했습니다. 이러한 문제를 해결하기 위해 신규 주제 분류기에서는 인터랙티브 광고 협회(IAB)의 분류 체계를 도입해 640개의 세부적인 카테고리로 분류하고자 했습니다. IAB 분류 체계는 '스포츠/레저>피트니스>요가/필라테스'와 같이 대/중/소 형태의 3단 분류로 구분되어 있습니다. 기존 분류기의 또 다른 한계점은 비교적 단순한 TextCNN 모델을 사용했다는 점입니다. 이로 인해 다중 클래스 분류(multi-class classification)를 적용하려면 N개의 이진 분류기(binary classifier) 모델이 필요했고, 여러 개의 모델을 유지 보수하는 데 어려움이 있었습니다. 이를 해결하기 위해 신규 주제 분류기에서는 콘텐츠와 상관없이 통합된 단일 LLM(large language model)을 도입하고 빔 서치(beam search)를 활용해 다중 클래스 분류를 구현하고자 했습니다. 예를 들어, '나이키 여성 러닝화' 문서는 '패션>신발', '스포츠/레저>걷기/러닝'으로 분류하고, '세부 스쿠버다이빙' 문서는 '스포츠/레저>워터스포츠>스쿠버다이빙', '여행>해외여행>아시아'와 같이 자세한 세부 주제를 다중 레이블(multi-label)로 분류하는 것을 목표로 했습니다. 모델 평가와 학습 주제를 분류하는 데 HyperCLOVA LLM의 2가지 모델인 HCX-L(HyperCLOVA X-Large)과 HCX-S(HyperCLOVA X-Small)를 활용했습니다. HCX-S는 서비스 규모에 적용 가능한 가장 작은 LLM 모델이었으므로 주제 분류기의 백본 모델로 선택했습니다. HCX-L 모델은 데이터를 생성하고 평가하는 데 활용했습니다. 예를 들어, '강원도 강아지 동반 캠핑'과 같은 문서는 캠핑, 강아지, 국내 여행 등 여러 주제로 분류할 수 있으므로 멀티 레이블 평가 데이터세트 구축에 어려움이 있었습니다. 이러한 이유로 HCX-L 모델을 이용한 평가 방식을 채택했습니다. LLM 평가의 신뢰성을 검증하기 위해 다음의 두 논문을 참고했습니다. Can Large Language Models Be an Alternative to Human Evaluations? (ACL 2023) ChatGPT와 text-davinci-003의 평가 결과와 사람의 평가 결과가 상당히 일치함. 특히, '문서'와 '분류된 주제'가 얼마나 관련되어 있는지 나타내는 연관성 측면에서 text-davinci-003의 평가 결과와 사람의 평가 결과 사이에 상관 관계가 높았음. G-Eval: NLG Evaluation using GPT-4 with Better Human Alignment (2023) 사람의 평가 결과와 GPT4의 평가 결과가 여러 특성에서 높은 상관 관계를 나타냄. 사고 사슬(chain of thought)을 활용해 LLM의 논리적 사고 능력(reasoning)을 개선하면 더 좋은 평가 결과를 얻을 수 있음. 이 두 논문에서 LLM이 사람의 평가를 완벽히 대체할 수는 없지만 상대적으로 신뢰할 만하며 시간과 비용 측면에서 장점이 있다는 것을 확인했습니다. 특히 주제 분류 결과의 연관성 측면을 평가하는 데는 LLM을 충분히 활용할 수 있다고 판단했습니다. G-Eval 논문을 바탕으로 HCX-L 평가 프롬프트를 작성했습니다. 먼저, 주제가 분류된 후보의 평가를 요청하는 작업 명령어(task instruction)와 연관성, 구체성에 대한 자세한 평가 지침을 추가했습니다. 이후 사고 사슬 형식으로 제목과 본문을 먼저 읽고, 연관성과 구체성을 판단하여 0&Tilde100점으로 4단계 평가를 요청했습니다. 평가 프롬프트를 구성할 때 구체적인 평가 지침을 제공하면 더 나은 평가가 이루어진다는 점을 고려해 연관성과 구체성에 대한 상세한 설명을 포함했습니다. 평가는 G-Eval과 같이 빈칸에 점수를 직접 예측하는 서식 작성(form filling) 방식을 사용했습니다. G-Eval의 1&Tilde5점 평가에서는 동점이 많이 발생해 텍스트 간의 미묘한 차이를 포착하지 못하는 단점이 있었습니다. HCX 평가에서는 같은 문제가 발생하지 않도록 0&Tilde100점을 기준으로 했습니다. 최종 평가 결과는 다음과 같은 기준으로 점수를 부여했습니다. '여행>해외여행>미국/캐나다'처럼 연관성이 높고 자세한 경우: 100점 '여행>국내여행'처럼 연관성이 틀린 경우: 0점 '여행'처럼 간단히 예측한 경우: 30점 모델 학습 단계에서는 HCX-S 모델을 백본 모델로 사용했으며, 명령어와 제목, 본문으로 주제를 예측하는 학습 프롬프트를 구성했습니다. 학습은 지도 학습 미세 조정(supervised fine-tuning)을 사용했고, 손실 함수로는 모델 출력과 레이블 간의 교차 엔트로피 손실(cross-entropy loss)을 사용해 진행했습니다. 모델 추론 시에는 빔 서치(beam search)를 활용해 다중 레이블(multi-label) 분류를 수행했습니다. 빔 서치는 '빔 크기'만큼 상위 후보 경로만 유지하며 탐색하는 알고리즘입니다. 'num_beams=3' 옵션을 이용해 가장 높은 확률의 주제 3가지로 분류했습니다. 학습 데이터 다음과 같은 단계로 다양한 주제군의 데이터를 학습하고 평가했습니다. Step 1: 사람이 레이블링한 데이터 학습 및 평가 먼저 사람이 레이블링한 3천 건의 데이터로 학습을 진행한 후 평가를 수행했습니다. 기준치(baseline)와 비교했을 때 '여행'과 같은 대분류의 주제 분류에서는 더 좋은 성능을 보였습니다. 하지만 '여행>해외여행>미국/캐나다'와 같이 3단계까지의 주제 분류 평가에서는 점수가 낮았습니다. 이는 사람이 레이블링한 데이터세트의 한계로 인해 IAB 전체 주제군의 50% 주제군에 대해서만 데이터가 존재했기 때문이었습니다. Step 2: 데이터 증강 두 번째 단계에서는 추가 데이터세트를 확보하기 위해 홈피드 콘텐츠 풀과 학습된 HCX-S 모델로 데이터 증강(data augmentation)을 진행했습니다. 제목과 본문이 있는 홈피드 콘텐츠 데이터에서 학습된 HCX-S 모델로 주제를 분류하여 약한 레이블(weak label)을 3가지 생성하고, 이 결과를 다시 HCX-L 모델로 평가하여 80점 이상인 데이터 5천 건을 확보했습니다. 데이터세트 커버리지를 늘려 학습한 결과, 두 번째 학습에서 점수가 기존 대비 11% 향상됐습니다. 하지만 홈피드 추천 데이터에서 데이터 증강을 진행하다 보니 주로 인기 있는 주제군 레이블 데이터가 확보되어 데이터세트가 불균형해지면서 다양성이 감소하는 문제가 발생했습니다. Step 3: HCX-L 지식 증류 세 번째 단계에서는 데이터 수가 부족한 주제(예: 패션>신발)를 보완하기 위해 HCX-L로 합성 데이터를 생성하고(synthetic data generation) 이 데이터를 학습해서 HCX-S로 지식 증류(knowledge distillation)했습니다. 먼저 HCX-L에게 특정 주제에 관한 제목을 작성하라고 요청하여 제목을 생성했습니다. 이후 주제와 생성된 제목을 연결해(concat) 본문을 작성하라고 요청하여 본문을 생성했습니다. 최종적으로 (제목, 본문, 주제)에 대해 주제별로 2개씩, 천 개의 데이터를 보완할 수 있었습니다. 다양한 주제군의 데이터를 학습한 결과, 평가 점수가 첫 번째 학습 대비 20% 상승했고 전체적인 다양성 또한 향상됐습니다. 가이드 텍스트 생성 모델 학습 후에도 한 가지 중요한 문제가 있었습니다. 주제 분류 결과를 서비스에서 사용하려면 항상 일관된 응답을 제공해야 하는데, 다음과 같은 상황이 발생했습니다. '허리 디스크'에 불필요한 철자가 추가되는 경우 '백피킹'처럼 기존 주제군이 아닌 새로운 주제가 생성되는 경우 '요리/레시피'처럼 기존 depth와 다른 주제가 생성되는 경우 이렇게 예측할 수 없는 응답을 해결하기 위해 가이드 텍스트 생성(guided text generation)을 도입했습니다. 가이드 텍스트 생성은 LLM 생성 시 특정한 지침이나 제약 조건에 따라 텍스트를 생성하는 방식을 의미합니다. 주제군에 있는 후보만 생성할 수 있도록 가이드 텍스트 생성 방식 중 하나인 후보 빔 서치(candidate beam search) 방법을 구현했습니다. 이 방식은 다음 토큰 예측(next token prediction) 단계에서 모든 단어 집합(vocab)에 대하여 확률을 구할 때, 가능한 단어 집합을 제외하고 마스킹 처리하는 방식입니다. 이를 위해 가능한 단어 집합이 무엇인지 참조할 수 있는 주제군 토큰 테이블을 사전에 추가했습니다. 예를 들어, '스포츠/레저' 토큰의 다음 토큰을 예측할 때, 확률상으로는 '워터', '동계', '피트' 순으로 선택됩니다. 하지만 원하는 주제군에서만 생성하도록 인코딩된 테이블을 참조하여, 두 번째 시퀀스에 가능한 토큰은 {워터, 피트, }임을 확인하고 불가능한 '동계' 토큰은 마스킹 처리하는 형태로 구현했습니다. 실제 구현 단계에서는 다음과 같은 절차를 따랐습니다. 640개의 주제군 후보들을 인코딩하여 테이블 생성(추론 전 사전 인코딩을 한 번만 수행하여 지속적으로 활용 가능) LLM 생성 시 인코딩 테이블을 옵션으로 주어, 각 토큰 생성 시 해당 테이블을 참조할 수 있도록 구현 이를 통해 LLM으로 주제 분류를 예측할 때 항상 원하는 주제군에 대해서만 응답이 가능하도록 제어할 수 있었습니다. 사용자 주제 선호도 및 온라인 평가 주제 분류기가 완성되면 사용자 로그로 사용자 주제 선호도를 구축할 수 있습니다. 예를 들어, 홈피드에서 사용자가 후쿠오카 관련 문서를 클릭하면, 콘텐츠 피처 스토어(content feature store)를 조회해 사용자가 '아시아'와 관련된 주제를 읽은 것을 파악합니다. 이러한 클릭, 노출 로그를 함께 분석해 배치마다 단계별 주제 선호도를 계산합니다. 주제 선호도 스코어링 시에는 주제별 클릭과 노출 수, 기간, 시간 경과에 따른 시간 감쇠(time decay), 주제별 평균 노출 수를 고려한 안정화 방식(smoothing)을 고려합니다. 이렇게 구축한 홈피드 주제 선호도를 사용자 피처에 추가하고, 아이템별 주제 임베딩을 아이템 피처에 추가해 온라인 AB 테스트를 진행했습니다. 테스트 결과, 대분류 주제만 사용했을 때보다 대분류부터 소분류까지의 상세한 주제 선호도를 파악할수록 클릭률(CTR, click-through rate)이 더 높아지는 것을 확인할 수 있었습니다. 또한 LLM 분류기는 블로그, 카페 등 다양한 콘텐츠 문서를 분류할 수 있으므로 홈피드뿐만 아니라 검색, 네이버 메인의 사용자 로그도 활용할 수 있었습니다. 이를 이용하여 통합 주제 선호도를 생성했습니다. 통합 주제 선호도 생성 시에는 다음과 같은 전략을 사용했습니다. 홈피드 사용성이 낮은 사용자: 검색과 메인판의 지면 선호도를 더 많이 활용 홈피드 사용성이 높은 사용자: 홈피드 선호도를 주로 활용 교차 도메인(cross-domain) 효과를 검증하기 위해 첫 번째 실험과 동일한 설정에서 사용자 피처의 사용자 주제 선호도 변화에 따른 AB 테스트를 진행했습니다. 그 결과 홈피드만 사용할 때보다 홈피드, 검색, 네이버 메인의 선호도를 모두 활용할 때 클릭률이 약 2% 상승한 것을 확인할 수 있었습니다. 최종적으로 문서를 잘 분류하고 여러 지면의 사용자 선호도를 세부적으로 파악할수록 사용자의 클릭 수가 증가하는 것을 확인할 수 있었습니다. 정리 지금까지 3개의 블로그 글로 홈피드에서 LLM을 활용해 초개인화를 실현한 경험과 관련 기술을 공유했습니다. 서비스에 LLM을 적용하면서 얻은 주요 교훈은 다음과 같습니다. 고품질 데이터세트 구축: 노이즈가 제거된 고품질 데이터세트는 LLM 시대에도 여전히 중요한 요소입니다. 지식 증류: 서비스 적용을 위해 작은 모델을 사용해야 할 때는, 먼저 큰 모델을 교사 모델로 학습하고 학생 모델에 지식 증류를 사용하는 방식이 효율적이었습니다. 가이드 텍스트 생성: 가이드 텍스트 생성을 이용해 서비스에 더 안정적으로 LLM 응답을 사용할 수 있었습니다. 네이버와 AiRScout는 사용자의 선호 콘텐츠를 가장 빠르게 맞춤으로 제공하는 초개인화 서비스를 더욱 발전시킬 수 있도록 앞으로도 계속 노력하겠습니다. 긴 글 읽어주셔서 감사합니다.  이 글은 TEAM NAVER CONFERENCE ‘DAN 24’에서 발표한 검색과 피드의 만남: LLM으로 완성하는 초개인화 서비스를 토대로 작성되었습니다.  

업무 몰입을 위한 AI 조직 문화 구축
삼성 SDS
업무 몰입을 위한 AI 조직 문화 구축

이 아티클에서는 AI를 활용하여 직원들의 잠재력을 극대화하고, 기하급수적 성장을 이끌어내는 조직 문화를 구축하기 방안을 제안합니다.

2025년, 생성형 AI 트렌드 전망
삼성 SDS
2025년, 생성형 AI 트렌드 전망

이 아티클에서는 2024년 올해 기업 내에서 생성형 AI 도입이 애초 기대보다 더디게 진전되고 있는 원인과 이를 바탕으로 내년도에 전망하는 트렌드에 대해 자세히 살펴봅니다.