노션이 AI 기능을 개발하는 방법 (라이너스 리)
www.youtube.com
https://youtu.be/Ht5-kbVHoGQ?si=Qs4RnYgVcfkmBeul
입사할 때 노션 AI 팀은 4명
AI 1명, 웹 개발자 2명, 대표 1명
현재는 20명
AI 프러덕트 3개
AI Writer : 23년 2월 런칭
Autofill : DB 채우기 : 23년 5월 런칭
Q&A : 노션에 있는 것을 RAG해서 질문 : 23년 11월 런칭
AI 프러덕트 개발할 때 퀄리티, Evaluation
모델이 처음 나올 때, Research 벤치마크가 많음. MMLU 등. 제품 개발할 땐 큰 도움이 되진 않음
노션에선 우리 사례에서 가장 적합할 것 같은 모델을 선택해 리얼 월드의 케이스와 비교함
LLM-as-a-judge
출력이 정확한지, 간결한지, 좋은 요약인지, 핵심 정보를 포함하고 있는지, 노션 사용자에게 유용한지 평가
노션 내부적으로 작은 테스트 그룹에 제품을 배포하고, 제품 자체적으로 사용자의 맥락에 맞게 출력이 잘 되는지 확인함
제품을 출시하면 지속적으로 모니터링 : 다양한 지표를 통해 사용자들이 AI와 어떻게 상호작용하는지, 실시간으로 오류가 발생하는지 관찰
AI가 생성하는 인용의 수 같은 요소를 분석해 AI가 질문에 답하는 정확도를 수정하려고 시도하는 지표도 있음
AI 개발을 하면서 느낀 핵심 교훈
Evaluation, Data가 제일 중요한 핵심이다
데이터가 중요한 이유 : Evaluation의 품질이 사용자들이 입력할 실제 데이터와 밀접하게 일치하는지에 크게 의존하기 때문
요약에 대한 벤치마크
벤치마크와 노션 사용자는 다름. 노션 사용자는 회의, 보고서, 팀에서 일하는 사람들의 업데이트 등에 관한 것임
우리만의 데이터셋과 우리만의 평가 방법을 만들어야 함
우리가 어떤 종류의 문서를 처리할 수 있기를 기대하는가?
이런 접근을 가지면, 누가 페이지 요약해달라고 할 때 모델에 바로 뛰어들지 않고 물을 수 있음 : 좋은 요약이란 무엇인가요? 어떤 페이지를 요약해야 하나요? (=> 문제 정의와 상황에 대한 인지)
노션에서 평가와 함께 커뮤니케이션하는 방법
Input 모으기
프로토타입 : 많은 API를 사용
실패 사례를 모으면 이를 활용할 수 있음
(질문) 데이터셋 수집이 어렵지 않을까요?
초기에 사용 사례 데이터를 어떻게 구성하는게 궁금한지
2가지 방법
(1) 프로토타입을 일단 만들고 20명 정도의 팀원들과 사용. 실제 사용케이스를 넣으면서 진행. 초기 데이터가 꼭 완전히 실제 데이터일 필요 없음. 제품을 개선하는 과정을 반복하는 과정에서 만들고 계속 개선
(2) 실패 케이스에 대해 매우 명확한 정의를 갖는 것
Q&A 기능에 외국어 지원을 만들 때 명확했음
Q&A가 이미 하고 있는 것과 동일한 작업을 수행하되 외국어로 하길 원함
기존에 있는 데이터를 외국어로 바꾸고, 기존 데이터의 답변도 외국어로 바꾸고 결과를 기반으로 확인
실패 수집하기
로깅이 매우 중요함. 잘 로깅하기
사용자 인터뷰 : 노션 내부, 외부
사용자들이 좋아요, 싫어요를 많이 하지 않음
포괄적이고 재현 가능한 로깅을 구축해야 함
잘못된 결과를 가지고 와서 그 예시를 기반으로 전체 파이프라인을 재구성하고 디버깅할 수 있어야 함
디자이너, 제품 담당자가 어떤 입력을 시도했는데 실패했어요라고 말하면 로그에서 모델에 어떤 것이 들어왔고, 어떤 출력이 나왔는지 검색할 수 있음
AI 제품을 만들며 얻은 교훈
(1) 가능한 빨리, 자주 제품을 사용해 작업에 대한 이해를 개선
(2) 많은 사람들이 AI 방어 가능성, 고유한 차별화에 대해 고민함. 하지만 단순히 모델을 제품으로 만드는 것이 아니라 AI 위에 최종 사용자를 위한 것을 구축하려고 하면 가장 중요한 점은 여러분의 팀이 AI가 수행해야 할 작업을 누구보다 잘 이해해야 함
왜 그게 어려운지?
그 작업을 쉽게 할 수 있도록 어떻게 분해해야 하는지?
모델이 자주 실수하는 방식은 무엇인지?
모델이 자연스럽게 잘하는 것과 못하는 것은 무엇인지 알아야 함
모델이 어려워하는 작업을 어떻게 해야 더 잘 수행할 수 있을까
이걸 하기 위해 자주 제품을 쓰고, 출력을 살펴보고 특정 사용 사례에서 모델이 왜 실수했는지 이해하려고 노력해야 함
(3) 만드는 제품의 종류를 설명할 때 인터페이스도 포함하고, 제품 명세의 일부로 평가 방법과 좋은 출력의 기준을 정의해야 함
머신러닝 통찰력이 생성형 AI 모델에 더 많이 적용됨
언어 모델에선 개별 사례를 살펴보는 일을 더 많이 함
AI팀이 잘 구성되는 주요 방식
2가지가 존재
(1) 기존의 머신러닝팀을 AI, 언어 모델링팀으로 바꾸는 것
데이터에 매우 집중하고, 평가와 벤치마크 점수에 집중하는 팀을 만드는 경향이 있음
주의할 점 : 평가가 사용자가 실제로 하고 싶어하는 것을 반영하는지 확인하는 것을 계속 해야 함
(2) 회사에 기존 ML팀이 없는 경우, 개발자들이 OpenAI API를 사용하는 방법을 배우기
노션이 한 방식
이런 팀은 사용자를 이해하고 테스트하는 방식을 잘 아는 것이 강점임
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 7월 30일 오후 1:57