Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

if(kakaoAI)2024 #12

Open
Dongwoo-Im opened this issue Nov 9, 2024 · 17 comments
Open

if(kakaoAI)2024 #12

Dongwoo-Im opened this issue Nov 9, 2024 · 17 comments

Comments

@Dongwoo-Im
Copy link
Owner

Link : https://if.kakao.com/session?t.RVmWsFVgRd=0


AI mate와의 새로운 연결 Kanana - 이상호

Kakao AI Platform : AI 서비스의 품질은 높이고, 개발은 빠르게 - 홍석용

이미지까지 이해하는 Multimodal LLM의 학습 방법 밝혀내기 - 강우영

@Dongwoo-Im
Copy link
Owner Author

Dongwoo-Im commented Nov 10, 2024

데이터 분석과 머신러닝을 통한 유저 방문 맛집 발굴하기 (카카오)

PoI related task

  • next PoI recommendation : trajectory flow map을 통한 다음 방문 PoI 추천
  • next location prediction : trajecory 간격 15분 설정 / PoI 메타데이터 활용 방문 장소 예측
  • trajectory segmentation : timestamp 기반 CNN 활용 sequential feature 추출
  • PoI rank prediction : graph embedding 활용 PoI 임베딩 구축

문제 1 : 구역을 구분하기

  • PoI와 매핑되지 않는 위치 로그는 필터링
  • 특정 기준 이상 체류하면 방문으로 판단

문제 2 : 오차 해결하기

  • 문제점
    • 반경 오차 : 위치 로그의 낮은 해상도
    • 고도 측정 불가 : 고도화 관련된 로그 정보 X
    • 기타 오차 : 건물 내부에서 발생한 로그 판별의 어려움
  • 해결
    • 위치 로그의 오차 반경 내 모든 맛집 PoI들을 방문 후보로 선정
    • 모델을 활용하여 방문 확률이 가장 높은 장소 예측

문제 3 : 방문 맛집 예측하기

  • 학습 데이터 수집
  • 피쳐 데이터 가공
  • 모델 학습 (LightGBM)

@Dongwoo-Im
Copy link
Owner Author

메시지 광고 추천 딥러닝 인퍼런스 서버 개선 - Jvm Onnx Runtime에서 Nvidia Triton 도입까지 (카카오)

메시지 광고 : 친구 채널을 통해 대화로 전달됨 (디스플레이 광고 대비 클릭율 높고 피로도 높음)

파이프라인 : 유저 반응 수집 > 모델 학습 > 모델 인퍼런스 및 랭킹 (채널별) > 광고 메시지 발송

기존 추천 모델 (FTRL : Follow the Regularized Leader)

  • 학습 시 희소 액션을 다루는데 유리한 모델
  • 빠르게 수렴 (가볍고, 적은 레이어)

광고를 불특정 다수에 노출시키면서 알맞은 후보군 특징을 선별하는 모델 (이 과정이 학습으로 보임)

커머셜 인퍼런스 시스템

  • 모델 인퍼런스 플랫폼 (Kserve, AWS Sagemaker) : 인퍼런스 서버를 배포 관리 & 라우팅 하는 플랫폼
  • 모델 인퍼런스 서버 (Nvidia Triton, Torch Serve) : 모델 인퍼런스 API 제공

LLM 도입하면서 광고 소재 + 유저 정보를 모두 input으로 받게 됨, 점차적으로 모델 사이즈가 커짐

새로운 비즈니스 요구사항

  • 6배 커진 모델의 인퍼런스 시간 1/14 수준으로 단축
  • CPU, FP32

첫 번째 시도

  • 데이터 압축 : gRPC 프로토콜 + gzip
  • CPU Bound 병목 개선 (use 인덱싱)
  • 문제 : 벡터 크기와 특성 (sparse/dense)에 따라 최적화 효과가 달라진다.
    • gzip : dense할수록 효과 good

두 번째 시도

  • Backend Module (JAVA) <-> Model Runtime - ONNX Runtime (C)
  • JNI 버퍼 변환에 따른 heap 메모리 / native 메모리 간 데이터 복사 비용 발생
  • 요청 수준 증가에 따라 thread간 버퍼 경합 현상 심화
  • 문제 : JNI 호출에 따른 오버헤드를 제거할 수 없다.

세 번째 시도

  • 경량화 (layer/kernel fusion, pruning, quantization)
  • 연산 가속 (hardware accelerator)
  • 문제 : 단일 런타임 제공으로 모델 실행 시점의 최적화가 제한적이다.

한계와 개선 방향

  • 기존 인퍼런스 서버의 한계
    • JVM 구조적 한계와 단일 런타임 활용에 따른 성능 제약
    • 프로파일링과 최적화 테스트 구조를 고도화 하기에는 작업 공수가 매우 큰 상황
  • 개선 방향
    • 기존 인퍼런스 서버 역할을 대체하고 고도화할 수 있는 오픈소스 탐색
    • 개발 비용 최소화를 위해 기존 인퍼런스 플랫폼과 인프라는 최대한 유지

image

인퍼런스 서버 교체

  • 도메인 종속 비즈니스 로직 이관 (Feature transformation)
  • Open inference protocol 적용
  • Model repository agent 활용 모델 로딩
  • Nvidia triton 도커 이미지로 교체

향후 계획

  • 단기
    • 실시간 모델 최적화 테스트 파이프라인 생성
    • 인퍼런스 서버 정적 배포 및 HPA 구성
  • 장기
    • (GPU 도입 시) TensorRT Runtime
    • Triton ensemble

Nvidia NSYS : Nvidia Triton 프로파일링 (CPU 프로파일링, GPU 커널 실행 등 시각화)
Nvidia Triton Model Analyzer : 인퍼런스 성능 자동 분석하여 최적 모델 config를 찾아주는 테스트 도구

@Dongwoo-Im
Copy link
Owner Author

AI를 설명하면서 속도도 빠르게 할 순 없을까? SHAP 가속화 이야기 (feat. 산학협력) (카카오뱅크)

가속화된 Kernel SHAP : 엔지니어링 기반 가속화

Fast SHAP : 알고리즘 기반 가속화

SAM SHAP : Surrogate for Amortized Marginal SHAP

@Dongwoo-Im
Copy link
Owner Author

나만의 프로필 이미지를 만드는 Personalized T2I 모델 개발기 (카카오)

image

SISI : Single Identity Single Image
SIMI : Single Identity Multi Image

@Dongwoo-Im
Copy link
Owner Author

그래프 기반 악성 유저군 탐지: 온라인 광고 도메인에서의 적용 (카카오)

패턴

  • 어뷰저들은 어뷰징 매체에 대한 공통 방문이 많다 (=> 어뷰징 매체끼리 공유된 유저의 비율이 높음)
  • 정상 유저들은 어뷰징 매체를 거의 방문하지 않음 (=> 어뷰징 매체군이 고립됨)

주의사항

  • 어뷰저들도 정상 매체를 이용함
  • 컨텐츠가 유사한 매체끼리도 공통 방문이 많음

문제 정의

  • before: 유저-매체 그래프에서 고립된 어뷰저군 탐지
  • using 그래프 투영: 유저-매체 => 매체-(유저)-매체
  • after: 매체-매체 그래프에서 악성 커뮤니티 탐지

커뮤니티 탐지 알고리즘

  • WCC (Weakly Connected Component)
  • SCC (Strongly Connected Component)

악성 커뮤니티 분류 기준

  • connectivity: 커뮤니티 내부 연결도가 지나치게 높음
  • personalized pagerank: 정상 매체 이용자들이 방문할 확률이 낮음
  • clustering coefficient: 소속된 매체의 이웃들끼리의 연결도가 높음

(본 알고리즘으로 찾아낸) 어뷰저군의 특성

  • 방문 횟수 자체가 많음 / 하루에 더 다양한 매체를 방문함
  • CTR은 더 낮음

앞으로의 방향

  • 그래프 투영 방법 고도화
  • 임베딩 활용 "유저-매체" 원본 그래프에서 이상탐지
  • GNN
  • Temporal 그래프 이상탐지
  • 시계열 기반 이상탐지

@Dongwoo-Im
Copy link
Owner Author

카카오 광고 AI 추천 MLOps 아키텍쳐 - Feature Store 편 (카카오)

레거시 시스템의 한계점

  • 팀 내 조직별로 파편화된 Feature 프로퍼티 / 정책
  • 과도한 인적, 컴퓨팅적 리소스 사용
  • 데이터 사이언티스트가 실험 조건을 변경할 때 복잡한 단계를 거침
  • 서빙 시점과 다른 시점의 피쳐를 학습에 사용함

신규 시스템 기능

  • 데이터 소스 구축 및 통합 관리
  • Feature 선언 및 데이터 소스와 연결
  • 실시간 파이프라인 생성 및 설정 지원

Yggdrasil 도입 효과

  • Feature 일관성/신뢰성 유지
  • 데이터 사이언티스트의 업무 결합성 해소 (= 업무 분업화)
  • Feature 재사용성 및 협업 강화
  • MLOps 측면에서 통합 발판 마련

@Dongwoo-Im
Copy link
Owner Author

생성형 AI를 활용한 개체명 인식(NER) (카카오헬스케어)

실험으로 현재까지 파악한 것들

  • Fine-tuning with no prompt
    • prompt 없이 fine-tune하는 것이 빠르고, 성능 고도화의 가능성이 높음
    • 특정 작업 지침을 fine-tune에 포함시키는 것에 대해 다양한 의견 존재함
  • Inference with few-shot based fine-tuned model
    • fine-tune된 모델에 few-shot만 넣어도 준수한 성능 보장
  • Quantity or quality ?
    • fine-tune에 사용하는 데이터 개수와 성능은 비례하지 않더라 (500-1000개 정도 ㄱㅊ)

@Dongwoo-Im
Copy link
Owner Author

지연 시간 순삭! LLM 추론 구조와 효율적 애플리케이션 설계 (카카오엔터테인먼트)

최적화

  • Closed Question: Output 예시를 미리 제공하면, 그만큼 효율적 추론 가능
  • Tokenizer
  • Structured Output (json output)
  • KV Cache
  • 병렬 처리
    • KV Cache 효율화 (vLLM - block allocator)
    • Prompt Processing 처리
      • vLLM: token generation 배치 멈추고 처리
      • Orca: token generation 배치와 같이 처리
      • DeepSpeed-FastGen: token generation 배치와 비슷한 크기 -> 가장 효과적 (긴 prompt와 짧은 응답 방식에 유리)
  • Prefix Cache (vLLM)

@Dongwoo-Im
Copy link
Owner Author

LLM 서빙하기 (카카오페이)

LLM 서빙 프레임워크 목적: 성능 최적화 (추론 속도 향상, 비용 절감)

  • TGI
  • vLLM
  • LightLLM
  • TensorRT-LLM

vLLM 특징

  • Paged Attention
  • Continuous Batching

KV Cache 문제점

  • 내부 메모리 단편화 및 예약: 항상 최대 길이 메모리를 예약하기 때문에 메모리 낭비가 심함
  • 외부 메모리 단편화 및 예약: 할당된 메모리 사이에서 메모리 낭비 발생
  • 해결 방안: Paged Attention

Continuous Batching: Batch 내에 완료된 request가 존재하는 경우, 새로운 request를 처리할 수 있음

@Dongwoo-Im
Copy link
Owner Author

업무 효율화를 위한 카카오 사내봇 개발기 (카카오)

0뎁스 데이터봇

  • Document 생성
  • Retriever: hybrid search (lexical + semantic)
    • 검색 성능 향상 위해 pool 생성 (table, description, column)
  • LLM
    • 사내용어 학습 필요
    • 학습 데이터셋 직접 구축
    • 검색 결과 rank에 robust하도록 학습
    • 성능
      • base 87.1%
      • SFT 90.5%
      • use multiple LoRA for domain-specific LLM 95.5%
  • Multi-turn 처리
    • 새로운 맥락의 질문이 오면, 과거 히스토리 삭제
    • 이어지는 맥락의 질문이 오면, 추가 검색 여부 판별

@Dongwoo-Im
Copy link
Owner Author

Media & AI 가속기를 탑재한 카카오클라우드의 Video Instance 활용기 (카카오엔터프라이즈)

image

image

image

@Dongwoo-Im
Copy link
Owner Author

공공데이터를 활용한 RAG 기술 구현 및 프레임워크 소개 (카카오엔터프라이즈)

연구 방향 구분: Chunking <-> Context windows 사이즈 늘리기

image

image

image

image

image

image

image

image

image

@Dongwoo-Im
Copy link
Owner Author

FDS에 지속 성장하는 ML 적용 이야기 (카카오페이)

image

image

image

image

image

@Dongwoo-Im
Copy link
Owner Author

문서 검토는 이제 Document AI로 한방에! (카카오페이손해보험)

Levenshtein Distance: 편집거리 metric

Task

  • Edge Detection: YOLO-segment
  • Layout Analysis: YOLO-detect
  • OCR: TrOCR

@Dongwoo-Im
Copy link
Owner Author

카카오클라우드 MLOps 활용 방안 소개 (카카오엔터프라이즈)

image

image

image

image

image

@Dongwoo-Im
Copy link
Owner Author

AI 기반 광고 추천 파이프라인에서 스파크 스트리밍의 배포 및 모니터링 전략 (카카오)

기존 시스템 아키텍처

  • 언어의 파편화 (golang, scala, kotlin)
  • 배포의 파편화 (argoCD, k8s manifest)
  • 스키마 하드코딩
  • 배치, 스트리밍 파이프라인 모니터링 부재
  • 파이프라인 리니지 확인 어려움

image

image

@Dongwoo-Im
Copy link
Owner Author

LLM으로 음성인식 성능 개선하기 (카카오)

image

image

image

image

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant