카카오 개발자 컨퍼런스 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의 추론으로 얻으면 된다
- JSON Output
- 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에서 문자를 오인식한 경우
- 한글자를 잘못 인식되었거나 존재하지 않다고 인식했을 경우
- 텍스트 유사도를 게산하여 허용 범위 이하라면 같은 문자라고 인식, 허용 범위 이상이라면 담당자가 확인
- OCR에서 문자를 오인식한 경우
사용한 기술
- 1단계: Edge Detection -YOLO (Segment)
- 2단계: Layout Analysis -YOLO (Detect)
- 3단계: OCR -TrOCR : 정확도 높은 사전 학습 모델, End-to-End 학습 방식
Q&A
- Q1. 두 개의 문자열이 비교대상이 되어야 하는데 이 두 문자열을 어떻게 선정하는지
- A1. “삼성전자서비스”라는 문자열은 고정, 그 후 OCR에서 인식된 문자열과 비교하여 동일한지 아닌지를 판별하는 것이다.
'꾸준히 하기 > 요모조모' 카테고리의 다른 글
SLASH 24 | 풀지 못할 문제는 없다 (10) | 2024.09.13 |
---|---|
SEF2024 | 세상이 변하면 우리도 변해야 하니까 (7) | 2024.09.10 |