지원 서재
작성일
2024. 10. 22. 22:41
작성자
달빛오리

 
카카오 개발자 컨퍼런스 DAY1 참여했습니다.
틀린 내용이 있을 수 있습니다.


 
Kakao AI Platform: AI 서비스의 품질은 높이고, 개발은 빠르게(❤️)
13:00 PM | 카카오 홍석용
Kakao AI Platform이 사내 개발자들에게 어떤 편의를 제공하는지
 
AI 서비스 개발 과정, 개발자들이 얻는 어려움

  • 데이터 획득, 데이터 접근 관리와 공유의 어려움
  • 모델 트레이닝, 고성능 학습 환경 구축의 어려움
  • 모델 서빙, 성능 최적화의 어려움
  • 에이전트 생성
  • 서비스에 적용

 
→ 복잡한 인프라 구성 없이 AI SaaS를 통해 개발, 배포, 운영할 수 있도록 하자!
 
KAP Store

  • 편리한 데이터/모델의 관리와 공유, AI Safety 준수
  • 멤버와 역할 기반 데이터 접근 관리
  • 데이터 접근을 위한 다양한 인터페이스 제공
    • Swagger API
    • 파이썬 라이브러리

 
KAP Training

  • 자원 효율적인 고성능 학습 환경 제공, 반복 학습 사이클 자동화
  • GPU 인스턴스 기능
  • Batch Job 기능 : 스케줄러 기반 빠른 GPU 연산작업
  • Fine-tuning 기능

 
KAP Serving

  • 모델 공급자와 수요자를 연결, 안정적인 모델 배포와 운영, 추론 최적화
  • model 생성부터 inference endpoint 생성까지
  • 사례
    • 카카오톡 AI 대화 요약 기능
    • 카카오톡 AI 말투 변경 기능

 
KAP Agent

  • 환경과 상호 작용하며 주어진 문제를 해결하기 위해 자율적으로 작업을 수행
  • AI Agent 공통 기능을 노코드 플래폼으로 제공
  • 누구나 쉽게 AI Agent를 만들어 서비스에 연결
  • AI Agent의 공통 기능들 중 필요한 모듈만 활용하여 서비스 적용

 
사례

  • 카카오 생활백서 봇
    • 인사/총무 부서 담당자가 직접 만들어 운영하는 AI Agent
    • 공개된 장소에서 질문할 수 있는 아지트 봇
    • 개인 질문을 위한 웹 채팅
    • 할루시네이션 방지 : 학습한 데이터를 토대로 답변하도록, 없는 데이터라면 답변하지 않음

 
Q&A

  • Q1. 내부적으로 많은 기술이 사용되었을 것 같은데, 미들 레이어에 대한 설명을 해줄 수 있는지
  • A1. 쿠버네티스 배치 잡 순서 보장에 대한 어려움을 해결하기 위해 오픈 소스 중에 커스텀 스케줄러 기능을 제공하는 볼케이노라는 것을 사용했다.

 

  • Q2. 플랫폼 SLA를 어떤 것을 사용하는지
  • A2. 가용성 관리만 하는 게 아니고 용량 관리도 중요하다. … (못 알아들음)

 
데이터 분석과 머신러닝을 통한 유저 방문 맛집 발굴하기
14:00 PM | 카카오 유효나, 양명한
방문을 예측할 수 없는 데이터를 예측할 수 있는 데이터로 바꾼 사례
 
1) 방문: 구역 구분하기

  • 방문 했는지 단순히 지나쳤는지 예측에 방해되는 데이터를 필터링하는 과정이 필요
    • POI와 매핑되지 않는 위치 로그 필터링 예) 분당 고속도로
    • 특정 기준 이상 체류한 기준으로 방문 정보 구축
  • 스쳐지나가지 않고 방문했다고 판단되는 데이터 필터링

 
2) 오차: 오차 해결하기

  • 위치 로그의 불확실성
    • 반경 오차 : 위치 로그의 낮은 해상도
    • 고도 측정 불가 : 고도와 관련된 로그는 없음
    • 기타 오차 : 건물 내부에서 발생한 로그 판별 어려움
  • 해결 방법
    • 오차 반경을 좁혀 정확한 위치를 예측 (기술적 접근)
    • 오차 반경을 감안하고 다른 방식으로 해결 (데이터적 접근)
  • POI Pool (맛집 리스트) 확정

 
3) 장소: 방문한 맛집 예측하기

  • 학습 데이터 수집
    • 모델을 학습하기 위한 정답 수집
    • 카카오맵 도착로그, 카카오맵 클릭로그 활용
  • 피쳐 데이터 가공
    • 유저 데이터, 장소 데이터 활용
    • 같은 위치여도 유저의 성별/연령대, 유저의 방문시간대, 유저가 이전에 방문한 장소들에 따라 장소 선호도가 다르다고 판단
  • 모델 학습
    • 방문 로그가 균일하지 않기 때문에 좋은 시퀀스 데이터가 아님
    • 분류 모델(Classification)의 tree 계열 모델인 LightGBM으로 선정

 
향후 계획

  • 방문 위치 정보 모수 확장 : 바로 매핑되지 않는 로그 살려 활용하기
  • 예측 모델 고도화 : 데이터가 충분히 쌓인 로그를 활용해 사용할 수 있는 다른 모델 고려하기

 
Q&A

  • Q1. 다른 장소가 데이터로 들어올 때 어떤 방식으로 필터링하는지
  • A1.
    • 음식점 말고 다른 POI 핸들링 - 음식점이 아닌 POI가 1순위로 들어왔을 경우 해당 데이터를 아예 배제하도록
    • 방문한 장소가 아니고 검색만 한 장소라면 - 같은 장소에서 하나의 장소만 클릭했다면 데이터 사용, 같은 장소에서 여러 장소를 클릭했다면 해당 데이터 배제

 

  • Q2. 맛집 추천(맛있는 집)이 아니고 특정 장소에 대한 식당(자주 방문한 집)을 추천한 것에 더 가까워보였다. 맛집 기준에 대해 궁금하다.
  • A2. 해당 프로젝트는 유저의 데이터를 가지고 맛집을 유추해내는 목표를 가지고 있는 프로젝트이기 때문이다.

 

  • Q3. 초기 데이터는 많지만 정제되면서 남은 데이터량이 어떤지
  • A3. 학습 데이터셋이 10만 단위가 될 때까지 N개월치의 데이터를 모아 모델을 학습시켰다.

 
이 문자가 스미싱인 이유는?: 스미싱 탐지를 위한 LLM 개발 및 평가(❤️)
15:00 PM | 카카오뱅크 한대희, 이윤승
스미싱에 대한 피해를 줄일 수 있는 LLM 개발
 
→ 스미싱으로 예측한 이유를 설명해주면 더 유용하지 않을까?!
 
LLM

  • 대규모 생성형 언어모델
  • 자연어 데이터를 학습하여 주어진 문맥에서 적절한 단어/문장을 통계적으로 예측하여 생성
  • 텍스트를 생성하기 때문에 스미싱으로 판단된 이유를 알려줄 수 있어 모델로 결정

 
LLM Adaptation 방법

  • Prompt Engineering
    • 모델을 직접적으로 학습시키는 것이 아니라 테스크를 자세히 설명해주는 방식
    • 비용은 낮지만 성능도 낮음
  • Fine-tuning
    • 스미싱 데이터를 오픈소스 LLM에 학습시키는 방식
    • 비용이 높지만 성능도 높음

 
1) 학습 데이터셋 구성

  • 문자(귀하께서는…) + 스미싱 여부(정상/스미싱)으로 구성되어 있음
  • 데이터셋 전처리 : 중복되는 데이터 제거

 
2) 판단근거 라벨 생성

  • 스미싱 관련 정보 정의 (정의, 원리, 예시, 예방 방법), 지시문, 문자, 스미싱 여부 라벨을 가지고 판단 근거 라벨을 얻음
  • LLM Adaptation

 
LLM 생성결과 평가방법

  • 정확도
    • F1 Score : 오탐지와 과탐지의 조화평균
    • (2X스미싱으로 맞게 예측) / (2X스미싱으로 맞게 예측 + 스미싱으로 틀리게 예측 + 정상으로 틀리게 예측)
  • 정답 문장과 비교
    • BLEU : 생성된 문장의 단어가 정답 문장에 포함되는 정도, (정답 문장에 포함된 생성 문장 내 단어 개수) / (생성 문장의 단어 개수)BertScore : 정답 문장의 임베딩과 생성 문장의 임베딩 유사 정도
    • ROUGE : 정답 문장의 단어가 생성된 문장에 포함된 정도, (생성 문장에 포함된 정답 문장 내 단어 개수) / (정답 문장의 단어 개수)
    • BertScore : 정답 문장의 임베딩과 생성 문장의 임베딩 유사 정도
  • LLM 기반 지표
    • G-Eval : 논리적인지, 일관된 내용인지, 스미싱 탐지에 유용한지, 답변 형식을 준수했는지
  • 휴먼 정성 평가
    • Human Evaluation : 카뱅 자체 학습 LLM vs GPT-4o /w PE, 두 답변 중 나은 하나를 고르도록

 
은행 사칭 예시

  • GPT-4o : 설명 부분에서 문자 내용과 다른 내용이 있음, 환각 증세
  • 카뱅 자체 학습 모델 : 스미싱 여부 판단 + 판단 근거 올바르게 생성

 
향후 계획

  • 카카오뱅크 금융기술연구소
    • 지식 재산권 확보
    • 서비스 출시
    • 기술 우수성 국제적 입증

카카오뱅크 슬로건 : 간편하면서도 안전하게
 
Q&A

  • Q1. 학습 시킨 데이터량이 어떤지
  • A1. 총 데이터셋은 만건 정도, 로라라는 파인 튜닝 기능을 활용했기 때문에 가능했다.

 

  • Q2. GPU를 활용하기 위해서 기기를 활용했는지 클라우드를 활용했는지
  • A2. 온 프라미스의 하드웨어 활용해서 학습 진행했다.

 

  • Q3. 평가를 위한 LLM은 학습하지 않았는지
  • A3. 큰 규모의 다른 LLM의 능력을 활용해서 학습 진행했다.

 

  • Q4. 휴먼 평가와 LLM 평가에서 각각의 장단점이 있는지
  • A4. LLM 평가 성능이 휴먼 평가의 성능과 크게 뒤쳐지지 않았다.

 

  • Q5. 데이터의 질을 유지하기 위한 전략으로 어떤 게 있었는지
  • A5. 하나하나 사람이 보면서 적합한 분류가 맞는지에 대해 확인, 수기로 검사를 해서 퀄리티 유지에 힘썼다.

 

  • Q6. 할루시네이션을 어떻게 막았는지
  • A6. 할루시네이션을 막기 위한 별도의 로직은 없었다.

 
지연 시간 순삭! LLM 추론 구조와 효율적 애플리케이션 설계
16:00 PM | 카카오엔터테인먼트 오주원
LLM 어플리케이션 최적화에 대해 설명
 
실시간 LLM 어플리케이션

  • Github Copilot
  • Perplexity
  • 햇봇
  • 버츄얼 휴먼

 
AI

  • RAG 아키텍처
  • AI Agent
  • 실시간 LLM 어플리케이션
    • 요청 의도 분석, 탐색 정보 품질 평가, 관련성 평가
    • 정보 간 우선순위 부여, 유해 정보 감지, 금칙어 감지

 
LLM

  • 텍스트의 다음 단어를 예측하는 모델
  • 예) 가을에 놀러가기 좋은 곳은 ____
  • 그럼 어떻게 단어가 아니고 문장을 예측하는 걸까? → Autoregressive 모델

 
Transformer 아키텍처

  • Encoder-decoder
  • Encoder-only
  • Decoder-only (채택)
    • 더 자세히 말하면 다음 단어를 유추하는 것이 아닌 토큰을 유추하는 것

 
최적화 방법

  • Closed Question
    • 예) 어떤 과목을 좋아해?
      • 나는 김밥을 좋아한다. (부적절)
      • 역사에 관심이 많아 국사 시간이 기다려진다. (적절)
  • Tokenizer
    • 한국어 토크나이저 최적화가 잘 되어있는 편이라 성능 최적화 향상
  • Structured Output
    • JSON Output
      • 항상 원하는 포맷으로 나오지 않으며 성능 문제가 발생
      • 키 값만 LLM의 추론으로 얻으면 된다
  • KV Cache
  • 병렬 처리1 - KV Cache 파편화 완화
  • 병렬 처리2 - 배치 전략
  • Prefix 공유

 
결론

  • 급변하는 AI 분야, 새로운 기술과 방법들이 쏟아져 나온다.
  • 구조와 원리를 알아야 좋은 플랫폼, 라이브러리, 도구 선택할 수 있고 좋은 어플리케이션 설계를 할 수 있다.
  • 시퀀스 모델링 분야에서 트랜스포머 아키텍처는 한동안 지배적일 것이다.

 
문서 검토는 이제 Document AI로 한방에!
17:00 PM | 카카오페이손해보험 황세윤
보험 도메인에서 문서 검토 업무의 효율화를 가져온 Document AI 개발
 
Document AI

  • 기계 학습과 자연어 처리 등의 기술을 활용하여 문서의 내용을 자동으로 인식하고 처리하는 기술
  • SaaS형 서비스, 파트너사와 협력 등보다 기술 주권을 확립하는 것이 리스크에 좋음

 
영수증을 인식하는 과정

  • 1단계: Edge Detection
    • 이미지에서 문서의 테두리를 검출하여 불필요한 배경을 제거하고 원근감 조절
  • 2단계: Layout Analysis
    • 각 정보가 있는 영역 검출
  • 3단계: OCR
    • 구분된 영역에서 문자를 인식
  • 4단계: Parsing
    • 인식한 문자를 해석하고 의미있는 값으로 도출

 
고민했던 점

  • 2단계: Layout Analysis
    • 이미지가 회전되어 있다면?
      • 수리처 및 발행일을 발견하지 못하는 케이스가 생김
        • 90도/180도/270를 회전하여 재시도
      영수증이 아닌 다른 이미지라면?
      • 세 각도로 회전시켜봐도 비정상 -> 이때 비정상 이미지라고 판단
  • 4단계: Parsing
    • OCR에서 문자를 오인식한 경우
      • 한글자를 잘못 인식되었거나 존재하지 않다고 인식했을 경우
      • 텍스트 유사도를 게산하여 허용 범위 이하라면 같은 문자라고 인식, 허용 범위 이상이라면 담당자가 확인

 
사용한 기술

  • 1단계: Edge Detection -YOLO (Segment)
  • 2단계: Layout Analysis -YOLO (Detect)
  • 3단계: OCR -TrOCR : 정확도 높은 사전 학습 모델, End-to-End 학습 방식

 
Q&A

  • Q1. 두 개의 문자열이 비교대상이 되어야 하는데 이 두 문자열을 어떻게 선정하는지
  • A1. “삼성전자서비스”라는 문자열은 고정, 그 후 OCR에서 인식된 문자열과 비교하여 동일한지 아닌지를 판별하는 것이다.