결과가 그리 좋지만은 않지만 어찌됐건 반수 생활을 마쳤다.
수능이 몇 주 안 남은 시점 빡갤 보기에는 괜히 시간 낭비하는 것 같고 공부하기는 귀찮고 그냥 동기부여도 좀 받고 심심풀이도 할 겸 과톡방에 오랜만에 들어가봤다.
그러다 삼성 개발자 컨퍼런스 안내 공지가 올라와있었는데 온라인으로 하는데다가 수능 끝나고 열린다고 해서 일단 신청해놨다.
어차피 참여 안 해도 상관 없는거니까..
내가 신청을 했던 것도 까먹고 겜하다가 새벽 4시에 잤는데 아침에 일어나니 행사가 시작되었다는 문자가 와있었다.
10시에 알람 맞춰놔서 일어났는데 10시에 시작했대서 거의 처음부터 라이브로 오프닝부터 키노트까지 보게 됐다.
개발 경험도 없고 학교에서 배운 것도 없는 일개 신입생 나부랭이이자 다시 새내기를 시작하게 생긴 무지한 나였기 때문에 그냥 이쪽 업계 생태계가 어떻고 어떤 식으로 돌아가는지 감이라도 잡을 겸 그냥 봤다.
얕은 잡지식들은 많아서 깊은 원리까지는 알지 못하지만 키워드들에 있어서 이해하는데 어려움은 딱히 없었다.
그냥 부사장 님들 나오셔서 신기술 얘기하고 막 하는데 멋있어 보였다.
최신 기술들 바로바로 익히고 활용하고 하는거 보면 직원들도 엄청 열심히 일하나보다 싶다.
반수 망해서 우울한 시점 약간의 동기부여가 되는거 같기도 하고 모르겠다..
찾아보니까 1월이랑 10월에 오프라인 행사로도 있었던 것 같다.
만약 이번 것도 오프라인이었다면 귀찮아서 안 갔을 지도 모르겠지만 만약 갔으면 새로운 경험에 재미있었을 것 같기는 하다.
원래 이런 데에 혼자 못 가고 누구 한명 데려갔는데 대학에서 찐따처럼 지내다 보니까 혼자 다니는게 이제 아무렇지도 않아졌다ㅋㅋ
무튼 오프닝하고 Keynote라고 주요 내용 설명해주시는 것 같은 시간이 있다.
그 후 Session에서는 Keynote에서 다뤘던 내용을 좀 더 깊이 배워갈 수 있는 시간인 것 같다.
Keynote에서는 삼성 Gause 2 모델, 온디바이스 AI, SmartThings, Tizen OS 관련해서 이야기했다.
Session도 분야별로 나뉘어 있는데 분야가 꽤 많다.
AI, 데이터, 서비스, 사물인터넷/SmartThings, 플랫폼, 5G/6G통신, 보안, 오픈소스, 인프라, 개발문화, 기타 이렇게 구성되어있다.
그냥 인공지능과 개발 관련된 내용만 있었다면 신청을 안 하거나 신청해놓고 안 봤을 가능성이 큰데 보안이 있기 때문에 신청했다.
보안 세션은 하나 밖에 없었기에 가볍게 시청하고 다른 재밌어 보이는 것들 몇 개 더 봤다.
(원래 보안이랑 다른 하나만 더 보고 마크하러 갈라 했는데 스탬프 모으려고 하나 더 봤당ㅎㅎ)
관련 프로젝트를 하고 있는 것도 아니고 아무것도 안 하는 백수 상태라 직접적인 도움이 되지는 않겠지만 나중에 쓰일 일이 생길지도 모르니 들으면서 정리도 해봤다.
Keynote 1
Keynote 1-1
최신 학습 기술과 고품질 데이터를 바탕으로 향상된 성능을 보이는 Samsung Gause 2 모델
용도별 모델
- Compact
- 다양한 제품 탑재 가능한 온디바이스 소형 모델
- 디바이스별 다양한 Usecase에서 최적의 성능을 발휘하기 위한 여러 모델 확보
- Balanced
- 효율성과 안정성을 중시하는 모델
- 다양한 작업에서 균형 잡힌 성능
- Supreme
- 최적의 성능을 목표
- 규모 대비 학습 효율성 높임
다국어 및 여러 프로그래밍 언어 통합적 지원
이미지 이해 가능한 멀티모덜 언어 모델
분야별 성능 비교 (영어/한국어/다국어/코딩)
- Compact
- 제한된 컴퓨팅 환경에서 효율적으로 작동하도록 설계
- 유사한 파라미터 수를 가진 타사 모델에 비해 더 우수한 성능
- 속도 및 서비스에 따라 특화 지원이 가능하도록 온디바이스 활용에 최적화된 설계 채택
- Balanced
- Gause 1 언어 모델 대비 파라미터 수는 절반
- 고품질 학습 데이터 확보와 향상된 학습 기술 도입으로 우수한 성능
- 언어와 코드 모두 다루는 단일 모델
- 동시 처리 가능한 추론량 타사 모델 1.5배
- Supreme
- 동시 처리 가능한 추론량 타사 모델 3배 (Balanced의 2배)
최신 학습 기술
- Mixture of Experts (MoE)
- 대규모 신경망에서 특정 입력에 적합한 서브 네트워크 전문가를 동적으로 선택해 활성화
- 전문가 수를 늘리면서 용이한 확장 가능성
- 학습 및 추론 시 필요한 계산량을 줄여 성능과 효율성 확보
- 일반 모델보다 복잡한 학습 과정
- Custom Tokenizer
- 유스케이스에 맞춰 지원할 다국어와 사내 개발자들이 사용하는 프로그래밍 언어에 최적화된 토크나이저를 자체 제작
- Vocabulary 크기는 줄이면서 토큰당 표현 가능한 글자 수 개선
- 외부 토크나이저에 비해 우수한 효율
- Theoretical Research
- 네트워크 구조의 깊이로 인한 학습 불안정 문제
- 네트워크 초기화, 스케일링, 정규화 등 다양한 이론적 접근 탐구
- ICML 등 주요 학회에서 발표된 연구 등으로 안정적인 학습
대량의 고품질 데이터 확보 및 고성능 GPU 데이터 센터의 구축 및 효율적 운영 중요
PHAROS 플랫폼 자체 구축
SPACE AI 학습 플랫폼 자체 개발 및 운영
용레
- code.i
- 자연어로 코드 생성 후 실행 가능한 개발자 지원 도구
- 문맥 기반 적절한 코드 예측하여 추천
- 사내 코드와 개발 문서 등 추가적인 데이터 학습을 통해 다양한 제품 및 서비스 개발에 활용성 극대화
- Gause Portal
- 사무 업무 도구
- 사내 지식에 대한 질의 응답 및 시스템 호출 기능 탑재된 어시스턴트 공개 예정
- Browser Assistant
- 웹문서 요약, 번역, 질의 응답, 이미지 이해, Youtube Script 요약 등의 기능 탑재한 확장 프로그램
- 사내 생산성 향상 가능
- Call Center
- 상담 업무 효율화를 위한 전화 상담 요약 기술
Keynote 1-2
On-device AI
AI 모델을 활용한 데이터 처리를 기기 자체에서 수행할 수 있게 하는 기술
- 클라우드 AI
- 강력한 하드웨어에 기반한 연산 능력
- 복잡한 작업 수행에 유리
- 온디바이스 AI
- 연결이 제한된 환경에서 작동
- 실시간 분석 및 반응이 보장되는 응답성
- 개인정보 보호
- 모델 성능 최적화가 주요 과제
온디바이스 AI의 주목
- 생성형 인공지능 등장 이후 가볍고 효율적인 인공지능 개발에 초점
- 개인정보 인식 향상과 중요성 증가 중
- 데이터를 외부가 아닌 내부에서 처리
- 클라우드 및 네트워크 의존성을 줄여 빠른 반응
- 오프라인에서 엣지 컴퓨팅 기술 활용
- 인공지능 칩셋 등 하드웨어 발전 및 혁신적인 기술 발전 등으로 낮은 전력으로 모델 구동 가능
고성능 모델을 효율적으로 실행시키기 위한 기술
- 모델 크기 줄이기 / 모델 속도 높이기
- Distilation
- 고정된 큰 선생 모델에서 더 작은 학생 모델로 효율적 학습
- 동일한 데이터에 대해 유사한 성능을 갖도록 학생 모델이 선생 모델을 모방하는 방법 자체를 학습
- Quantization
- 성능을 유지하면서 모델 표현하는 Weight와 Activation 표현 방식을 줄여서 메모리 사용량 자체를 줄이는 기술
- 훈련 후에 양자화하는 기술
- 열화를 미리 인식하여 학습
- Speculative Decoding
- 작은 드래프트 모델로 다수의 토큰들을 빠르게 생성 후 큰 원본 모델로 한꺼번에 검증
- Heterogeneous Computing
- 다양한 모델 연산별로 GPU, CPU 또는 NPU에 알맞은 컴퓨팅 프로세스를 활용하여 연산 속도 향상
- 최적의 하드웨어를 선택해 활용
- Distilation
- 온디바이스 프레임워크와 효율적인 파이프라인 구성이 중요
Keynote 2
Keynote 2-1
SmartThings
- Home Insight
- 기기 사용 패턴, 계절 등 스마트폰의 모든 데이터 분석
- 단순 데이터 분석 뿐 아니라 상황 및 환경에 따라 맞춤형 제안 제공
- Convenient Remote Control / 3D Map View
- 다양한 가구와 제품 등을 원격으로 조종
- 애완 동물 표시
- Family Care
- 가족 일상 활동 감지
- 복약 알림 등으로 생활 패턴 기록 및 분석
Galaxy Tab S10을 홈 대시보드로 활용 가능
Galaxy Book5를 통해 조명, CCTV, 가전 제품 제어 가능
도어락과 연동하여 방문자 확인 및 키카드 사용 가능
SmartThings Pro
- DashBoard
- 비효율적 운영 요소 파악
- 공간 관리자가 에너지 사용량을 측정 및 예측
B2B 고객들의 효율적인 운용
ISO27001 획득하여 보안 관리 능력 입증
Matter
SmartThings는 Matter 표준을 가장 빠르게 도입하고 지원해오고 있는 플랫폼
Matter Bridge 지원을 통해 IKEA의 스마트홈 기기를 등록 후 사용 가능
Keynote 2-2
Tizen OS
- RISC-V 기반 Tizen 플랫폼 상에서 브라우저를 포함한 대부분의 앱 동작 가능
- .NET Runtime 프로젝트에서 Advanced Compiler 기능을 포함해 다양한 부분에서 Leading Contributer로 활동
- 7인치 디스플레이 장착 신규 비스포트 AI 가전제품에 그래픽 엔진으로 적용
- SmartThings Map View 출시에 큰 역할
- Flutter-Tizen 지속적 업데이트로 생태계 확장
- Samsung TV에 NPU 칩으로 구동되는 고도화된 온디바이스 AI 제공
- 파이프라인 단위로 개발 후 배포 가능하도록 Tizen Machine Learning API 제공
- AI 모델 패키지의 독립적 배포, 업데이트, 버전 관리 가능한 API 도입
- Vision 및 Language AI SDK와 다양한 도구 제공
- 맞춤형 생성 AI 서비스로 쿼리에 대해 더 정확하고 상황에 맞는 응답이 가능하도록 하는 기술 Retrieval Augmented Generation
- 사용자 관련 정보 저장하는 오픈소스 Vector-Database 활용하는 API 제공 예정
용례
- 플립보드 등에서 사용자 손글씨를 예측하고 분석하는 과정에 AI 모델 사용
- Tizen UI 프레임워크는 LLM을 사용해 감정을 표현하는 2D및 3D 아바타 제공
- Tizen OS 기반 디바이스와 Galaxy 디바이스들 간 온디바이스 AI 연결 기술 개발 중
- 라이브 번역 제공 기술 개발 가능
- 스마트폰, 노트북, TV 등 다양한 기기를 연결한 멀티 컨트롤 구현
Samsung Experience Service
주요 삼성 서비스에 대한 주기적 업데이트
삼성 티비 Chromium 웹 엔진 업데이트 매년 두 번 제공
병렬 처리를 통해 TV 사용자에게 더 빠른 반응 시간
입력 이벤트 핸들링 50% 이상 개선
삼성 TV 빅스비에 사용되는 경량 웹엔진이 사용하는 컴퓨팅 자원 절반으로 절약하여 최적화
Tizen 개발자 도구의 지속적인 개선
업계 최초로 Native C, C++, .NET 메모리 사용량과 사용자 이벤트를 동시에 모니터링할 수 있는 Extension을 VSC에 추가
Session
삼성 계정 개인정보는 언제나 맑음: Kafka와 함께하는 개인정보 암호화 및 스키마 전환
Samsung Account
- 유럽, 미주, 아시아, 중국 4개의 거점 서버를 두고 70여 개의 마이크로서비스로 구성
- 초당 총 270만 이상의 트래픽, 초당 총 20만 이상의 DB Transaction 발생
- AWC VPC 활용하여 외부 접근 제한 / Warp를 이용해 외부 공격 대응
- 서버 간 통신시 IP Allow List와 인증 기반 암호화 로직으로 보호
- DB는 독립된 공간인 프라이빗 서브넷에 격리되어 운영
- 시큐리티 그룹 설정과 룰베이스 기반 접근 제어
- KMS 암호화 키를 이용해 디비 전체 암호화 / 사용자의 계정을 3중 4중으로 보호
- 데이터가 탈취되어도 안전하도록 데이터들을 column 단위 암호화
- 자체 개발 D-KMS 암/복호화 솔루션 사용
암호화 설계
- 제약 사항
- 서비스 무중단으로 암호화 및 마이그레이션
- 전세계 24시간 무중단 운영 중
- 운영 중인 DB 작업 시 I/O 부하 발생 및 문제 시 복구가 어려워 복제 DB를 생성
- 별도의 암호화 DB 사용 서비스 배포 및 트래픽 전환
- 기존 운영 서비스에 영향이 전혀 없도록 진행
- 빠른 성능의 대용량 마이그레이션 및 실시간 암호화
- 각 Region 별로 150억 개 이상의 데이터 및 실시간으로 끊임없이 들어오는 사용자 데이터
- 암호화 대상 데이터는 미주 지역에만 150억, 총 500억 이상 저장됨
- 고성능 분산 이벤트 스트리밍 플랫폼 Kafka를 이용해 파이프라인 구축
- 스키마 변경이 포함된 데이터 마이그레이션
- 암호화 대상 데이터를 키로 사용할 경우 암호화 이후 키로 활용할 수 없음
- 암호화 대상 데이터를 단방향/양방향 암호화를 거쳐 2개로 나누어 저장
- 암호화와 동시에 DB 스키마 수정
- 문제 발생 시 빠르게 복구 가능한 롤백 플랜
- 암호화 DB에서 운영 DB 역방향 파이프라인 구축 (실시간 동기화)
- 롤백 플랜에서 가장 중요한 것은 데이터의 정합성
- 서비스 무중단으로 암호화 및 마이그레이션
- 구현
- Source Connector: Debezium connector
- CDC 기반 데이터 동기화 및 Snapshot
- Sink Connector: Debezium JDBC sink connector
- Debezium에서 발생하는 kafka 메세지를 읽어 DB 업데이트
- 전환용 Internal DNS Layer 추가 및 Weight 조절하여 대규모 서비스 트래픽 전환
- Source Connector: Debezium connector
- 난점
- 대용량 데이터 마이그레이션 시 성능 개선
- Source Connector 성능 개선
- Batch 옵션
- 여러번 데이터를 전송시 고정 네트워크에 오버헤드 발생
- 처리량 늘리려면 Batch 이용
- linger.ms 설정값 올려 batch 처리 활성화, 처리량 향상
- 압축 옵션
- 메세지가 작고 네트워크 대역폭이 넉넉한 경우 lz4 사용
- Debizium 병렬 처리
- 원천적으로 불가능
- 서로 다른 테이블을 취급하는 여러 개의 Debizium으로 물리적인 병렬 처리
- Batch 옵션
- Sink Connector 성능 개선
- 병렬 처리 및 Batch
- Message Partition 개수 늘리고 그에 맞게 connection task 할당
- Builk Insert를 위한 Batch 옵션 활성화
- DB 쓰기 성능 개선
- Synchronous..commit 옵션 끄기
- Unique index / index 제거
- 병렬 처리 및 Batch
- Source Connector 성능 개선
- 기술적 문제
- Kafka 순서 보장
- Kafka message는 여러 파티션에 나뉘어 병렬 처리
- 순서 보장 필요 시 같은 파티션으로 할당 (기준은 키)
- 양방향 동기화 시 데이터의 무한 루프
- Source Connector: 조건에 맞을 때만 message 발행
- Sink Connector: DB에 Write할 때 Update Time을 비교하도록 설정
- 암호화 파이프라인 실시간 무결성 검증
- Kafka 순서 보장
- 대용량 데이터 마이그레이션 시 성능 개선
- 운영 배포 준비
- Run Book을 이용해 협업 및 여러 번의 리허설
- 단 한번의 실수 없이 성공
- 결과
- 준비 8개월
- 암호화 및 마이그레이션에 37시간
- 암호화 DB 사용 서비스 준비 및 트래픽 전환 1시간 소요
- 암호화 전/후 성능 차이 없음
"연동 서비스들이 눈치 채지 못하였다면 그것은 우리에겐 성공적"
후기
키노트 들을 때까지는 그냥 그런갑다 하면서 멋있다 거리면서 봤는데 세션 보고 나니까 진짜 대단한 사람들이었구나 라는 생각을 했다.
뭐 대단한 사람들인 건 당연할 테지만 존경스럽다.
보안 세션 말고도 삼성 계정 관련한 세션들을 봤는데 복구 시스템이나 DB 시스템이 정말 견고하게 구축되어 있는 것 같다.
얼마나 많은 시간과 노력이 들어갔을지 감도 안 온다.
백엔드에는 역시 낭만이 가득하다.
세션 분야도 다양하고 세션별로 영상 주제도 다양해서 재미있는 내용이 많았던 것 같다.
아무것도 모르는 나에게는 이런 경험들이 정말 많은 정보들을 준다.
앞으로도 이런 거 있으면 찾아보고 다양한 경험을 해봐야 겠다는 생각이 든다.
그리고 하나 새로운 걸 깨달았다.
난 지금까지 무언가를 해볼 때 여러 방법과 수단들이 있다면 그냥 아무거나 괜찮아보이는 거 혹은 자료 많은 걸로 하나 잡고 그걸로 쭉 밀어나가는 경향이 있었는데 다양한 방법을 사용해서 검증해보고 비교해서 가장 적합한 방법을 수행하는 것이 시간은 오래 걸려도 훨씬 좋은 결과물을 나타낸다는 것을 알게 되었다.
당장 보안 세션만 들어봐도 과정의 절반이 검증과 비교라고 해도 과하지 않을 것이다..
그렇게 긴 시간 동안 연구한 끝에 성공적으로 프로젝트를 수행해낸 것을 보고 대단하다는 생각이 들었다.
귀찮아서 그동안 검증이나 비교도 제대로 안 하고 무작정 했는데 최고의 서비스와 그 서비스에 맞는 적합한 방법을 사용하려면 검증의 과정은 필수라는 것을 알게 되었다.
마치 삼각함수 극한은 증명 못하면서 무지성 근사만 때리다가 틀리는 것과 비슷하지 않을까 싶다..
앞으로는 괜히 삽질하기 전에 여러 가지 검증과 비교를 해보고 가장 적절한 것이 무엇인지 확실하게 확인하고 가야겠다.
(매크로 댓글이 너무 많이 달려서 이 글에서는 댓글을 막아놓았어요..)
'Security' 카테고리의 다른 글
INC0GNITO 2024 Hacking Conference 후기 (0) | 2024.03.25 |
---|---|
디스코드 해킹으로 유포된 스팀 피싱 링크에서 해킹을 당해보자 (7) | 2024.02.21 |
절대 안 뚫리는 안전한 비밀번호 만들기 (0) | 2022.01.13 |
댓글