노션이 AI 기능을 개발하는 방법 (라이너스 리)
(youtube.com)-
라이너스 리의 AI 개발 경험
- 라이너스 리는 노션에서 리드 AI 엔지니어로 일하고 있다.
- 노션 이전에는 NLP, 머신러닝, HCI에 관한 연구를 많이 했고, 프로토타이핑과 글쓰기도 활발하게 했다.
- 노션에서 Q&A, Autofill, AI Writing 기능을 개발했으며, 잠재 공간 모델에 대한 연구도 진행해왔다.
-
노션 AI 개발 오버뷰
- 라이너스 리는 대학 시절부터 다양한 웹 개발과 생산성 도구를 개발해왔다.
- 2022년 동안 독립적으로 AI 관련 논문을 읽고 연구를 시작했다.
- 2022년 10월, 노션의 AI 라이터 베타 프로젝트에 참여하게 되었다.
- 노션에 입사할 당시 AI 팀은 네 명으로 구성되어 있었으나, 현재는 약 20명으로 성장했다.
- 라이너스 리가 참여한 주요 프로젝트는 AI Writer, Autofill, Q&A로, 각각 2023년 2월, 5월, 11월에 출시되었다.
- 앞으로 노션 AI는 에이전트 기술을 통해 사용성을 더욱 개선할 계획이다.
-
노션의 오피스와 AI 팀 소개
- 노션은 샌프란시스코와 뉴욕에 오피스를 가지고 있으며, 샌프란시스코 오피스는 점심 식사나 이벤트 공간으로 활용된다.
- 뉴욕 오피스는 라이너스 리가 거주하며 일하는 장소이고, 깔끔하게 디자인된 업무 환경을 자랑한다.
- 노션의 AI 기능 개발은 2013년에 시작되었으며, CEO와 CTO가 직접 제품 개발에 참여한다.
- 2022년 가을에 AI 팀의 미팅 사진에서는 매니저, CEO Ivan, CTO Simon과 제품 관리자들, 디자이너들이 Q&A 세션을 진행하는 모습이 담겨 있다.
- AI 제품 개발에서 품질과 평가가 중요한 요소로, 리서치 벤치마크와 실제 프로덕션 사용의 스펙트럼을 고려한 평가 기법을 사용한다.
- 노션은 벤치마크와 실제 데이터 간 성능을 확인하며, 모델의 성능을 프로그램적 테스트를 통해 정확히 평가한다.
- 평가 항목에는 특정 단어, 신탁, 키워드 포함 여부와 정확한 언어 성능 등이 있다.
-
노션의 AI 제품 개발
- 인간 평가는 노션 AI 제품 개발의 중요한 요소이다.
- 테스트 데이터 세트에서 인간이 데이터를 확인하고, 프로그램적 테스트를 통해 제품을 테스트한다.
- 제품 개발 후에는 사용자의 피드백을 기반으로 계속적인 모니터링이 필요하다.
- AI는 사용자의 실패 사례 수집 및 질문 답변 등을 효과적으로 수행하는 다양한 수준의 기능을 제공해야 한다.
- 고품질 AI 제품 개발의 핵심은 수정과 데이터의 질이다. 그래서 실제 세계 데이터를 모델에 맞추는 것이 중요하다.
- 노션 팀은 엔지니어, 연구원, 디자이너 및 제품 관리자들이 함께 수정 기능을 논의하며 개발한다.
- GPT-4와 같은 모델을 사용하여 결과물의 질을 높이기 위해 지속적으로 수정 모델을 개선한다.
-
노션 AI 기능 개발 과정
- 노션 AI 엔지니어들은 정보 수집과 데이터 구성을 통해 모델을 개발합니다. 그래서 데이터를 철저히 분석하고 사용자 요구에 맞춰야 합니다.
- 노션 사용자들의 회의 노트, 웹 페이지 등의 정보들을 정리할 방식들을 연구하며 데이터 세트를 구축합니다. 왜냐하면 이는 AI 모델의 성능에 영향을 미치기 때문입니다.
- 연구를 통해 Q&A와 같은 유스 케이스를 식별하여 모델을 테스트합니다. 그래서 사용자 질문에 대해 효과적인 답변을 제공할 수 있도록 합니다.
- GPT-4와 클라우드 모델 등을 사용하여 프로토타입 시스템을 개발합니다. 그리고 이를 내부적으로 테스트하여 초기 문제점들을 파악합니다.
- 내부 사용을 통해 수집된 실패 사례들을 분석하고 이를 바탕으로 데이터 세트와 모델을 개선합니다. 그러므로 반복된 테스트와 피드백을 통해 모델의 정확도를 높입니다.
-
노션의 AI 모델 개발 및 평가 절차
- 모델 반복 과정에는 프롬프트 수정, 모델 세부 조정, 그리고 언어 모델 파이프라인의 두 번째 단계를 추가하는 작업이 포함된다.
- 개발 단계에서 문제를 해결했다고 판단되면 다시 배포하고, 더 많은 실패 사례를 수집하여 반복적인 과정을 거친다.
- 내부 환경에서 입력과 출력의 품질이 만족스러울 때까지 이 과정을 계속 반복한다.
- 어느 시점에서 제품을 베타 프로그램을 통해 소수의 사용자에게 공개하고, 사용자 피드백과 자동 수집된 로그 데이터를 모니터링한다.
- 데이터셋 구축 초기 과정에서는 실제 사용 사례를 잘 반영하는지 확인하기 위해 다양한 방법을 사용한다.
-
AI 기능 개발 초기 단계
- 프로토타입을 만들어 내부 AI 팀과 테스트한다.
- 그래서 내부 사용을 통해 다양한 입력과 예시를 수집한다.
- 초기 입력 세트는 반드시 현실 사례를 완벽하게 대표할 필요는 없다.
- 내부 테스트 후, 더 넓은 사용자층에게 배포하여 점진적으로 현실적인 데이터를 확보한다.
- 예측되는 실패 사례를 기반으로 초기 데이터 세트를 구축할 수도 있다.
- 언어 지원 기능을 개발할 때는 기존 QA 데이터 세트를 외국어로 번역하여 사용한다.
-
내부 및 외부 테스트를 통한 데이터 수집과 평가
- 초기 데이터셋이 완벽히 현실적일 필요는 없다. 그래서 테스트를 통해 더 나은 데이터를 수집한다.
- 프로토타입을 내부 또는 소규모 외부 사용자들에게 테스트하고, 잘못된 출력 예시를 다양한 방법으로 수집한다.
- 키워드 또는 출력 구조 기반의 평가를 프로그램적으로 수행하여 모든 AI 추론에 대해 로그를 남긴다. 그러므로 실패한 출력을 확인하고 분석할 수 있다.
- 사용자 인터뷰를 통해 실제 사용 사례를 이해하고, 예상치 못한 사용 방법을 발견할 수 있다.
- 예를 들어, Autofill 기능을 내부 테스트 중에 많은 직원들이 번역 목적으로 사용하는 것을 발견하여, 해당 기능을 더욱 최적화된 번역 버전으로 개발했다.
-
AI 제품 피드백 및 평가 방법
- 좋아요와 싫어요 피드백 버튼은 사용자들에게 유용하지 않아 자주 사용되지 않는다.
- 또한, 노션의 사용자 규모로는 이러한 피드백 버튼을 통해 충분한 데이터를 확보할 수 없다.
- 그러나, 가끔 다른 사용 사례를 통해 발견하지 못했던 예외적인 사례를 포착할 수 있어 일부 도움이 된다.
- 내부적으로는 적대적 테스트를 통해 모델의 예기치 않은 입력에 대한 성능을 평가한다.
- 적대적 테스트는 모델의 성능 한계를 파악하고 문제 발생 지점을 식별하는 데 유용하다.
- 실사용 데이터를 통해 모델의 강점과 약점을 지속적으로 모니터링한다.
-
AI 제품 개발의 핵심 요소
- 평가와 로그가 가장 중요하다.
- 포괄적이고 완전하게 재시작 가능한 로그를 구축하는 것이 필요하다.
- 실제 사용 중 발생한 나쁜 출력 예시나 내부 테스트 결과를 통해 파이프라인을 재구축하고 디버깅할 수 있다.
- 각 예시는 개발 환경에서 다시 실행해 새로운 프롬프트나 모델로 테스트하여 해결책을 찾는다.
- 문제를 해결한 후, 해당 예시는 테스트 데이터셋에 추가되어 같은 문제가 다시 발생하지 않도록 방지한다.
-
AI 개발의 중요 교훈
- 제품을 일찍 사용하고 자주 테스트함으로써 태스크에 대한 이해를 정교화해야 한다.
- AI에서의 차별화 요소는 모델의 성능이 아닌 태스크에 대한 이해도이다.
- 최종 사용자를 위한 AI 애플리케이션을 구축할 때, AI 팀은 태스크의 난이도와 모델의 한계를 깊이 이해해야 한다.
- 태스크를 잘게 나누고, 모델이 자주 실패하는 부분과 자연스럽게 잘하는 부분을 파악하는 것이 중요하다.
- 제품을 자주 사용하고 출력을 분석하면서 모델의 오류 원인을 이해하는 것이 태스크의 어려움을 이해하는 최선의 방법이다.
-
AI 제품 개발 시 주의할 점
- 제품 사양에는 인터페이스와 기능 외에도 평가 기준과 좋은 출력값의 기준을 명시해야 한다.
- 평가 기준은 제품 담당자와 엔지니어 및 연구원 간 의사소통의 주요 지점으로 사용된다.
- 전통적인 머신러닝 경험은 LLM 및 생성적 AI 모델에도 적용될 수 있는데, 이는 생각보다 많은 통찰력을 제공한다.
- 그러나 전통적 머신러닝에서는 대규모 데이터셋을 다루며 클러스터나 큰 부분집합을 분석하는 반면, 언어 모델에서는 개별 실패 사례와 개별 로그를 더 자주 검토한다.
- 그러므로, 언어 모델 작업을 위해 다른 도구와 워크플로우가 필요하다.
-
AI 모델 평가의 중요성과 접근 방법
- 평가는 사용자와 그들이 실제로 하는 일이 진리의 근원이다.
- 따라서, 평가 자료는 내부 및 외부 사용 데이터를 기반으로 실제 사용 사례를 반영해야 한다.
- 평가 과정에서 중요한 도전 과제는 시스템이 잘 작동하기를 바라는 모든 입력 공간을 충분히 포함하도록 만드는 것이다.
- 자동 평가 파이프라인을 구축하는 것은 나중에 많은 데이터를 처리할 때 시간을 절약할 수 있지만, 초기에는 팀원들이 직접 출력물을 검토하고 이해하는 것이 중요하다.
- 이는 모델의 실패 원인과 특정 작업에 대한 모델의 경향을 파악하는 데 도움이 된다.
-
AI 팀 구성 방법
- 두 가지 주요 접근법이 있는데, 첫 번째는 기존의 머신러닝 팀을 AI 팀으로 전환하는 것이다.
- 그렇게 하면 데이터, 검증, 벤치마크에 집중하는 팀이 될 수 있다. 그래서 사용자 요구와 실제 세계 기대에 부합하게 평가하는 것이 중요하다.
- 두 번째로, 기존 엔지니어 팀이 OpenAI API 등의 언어 모델 API를 배우는 방법이 있다. 노션도 이 방법을 사용했다. 그래서 초기 AI 팀은 대부분 웹 엔지니어였다.
- 이러한 팀의 장점은 사용자 이해와 테스트 실험에서 강점을 갖는다는 것이다. 그러나 엄격한 평가와 고품질 데이터셋의 중요성을 배워야 했다.
- 또한, 데이터셋 유지에 있어 좋은 위생 관행과 워크플로우가 중요하다. 그러므로 높은 품질의 데이터 포인트를 확보하는 것이 필수적이다.