파티셔닝이란?

큰 테이블의 용량을 관리하기 위해 작은 테이블(Partition) 로 쪼개는 것

 

 

파티셔닝의 종류

1) 수평 파티셔닝: 행을 분리해 다른 테이블에 분산(일반적인 방법)

2) 수직 파티셔닝: 컬럼들을 쪼개서 따로 저장하는 형태로 스키마의 분리가 필요함

 

* 테이블: 실제 데이터가 저장되는 곳, 스키마: 데이터베이스의 구조와 규칙을 정의하는 메타데이터

 

파티셔닝 문법

 

https://magpienote.tistory.com/248#google_vignette

 

[Hive] Partition이란?(add 추가, drop 삭제, show partitions 조회, partitions)

Hive에서 사용하는 partition이란? table을 만들 partition을 이용하여 폴더 구조를 세분화 해서 관리 할 수 있다. 폴더를 구조적으로 나눠주기 때문에 데이터 관리 측면에서 효율적이다. 다만, 너무 많

magpienote.tistory.com

 

 

효율적인 쿼리를 위한 팁: https://blog.naver.com/islove8587/223422351135

 

[SQL] 쿼리 최적화 : 효율적인 쿼리를 위한 팁

[참고 사이트] - 쿼리 최적화: 빠른 쿼리를 위한 7가지 체크리스트 - [MYSQL] SQL 쿼리문 최적화 -...

blog.naver.com

 

'Sql > 기초' 카테고리의 다른 글

SQL 관련 개념정의  (0) 2025.02.14
6. 서브쿼리 + 세미조인/안티조인  (0) 2020.02.10
5. 조인 - 테이블간에 관계맺기  (0) 2020.02.10
4. 집합 연산자  (0) 2020.02.10
3. 데이터집계  (0) 2020.02.09

SQL: 관계형 DB 관린시스템의 데이터를 관리하기 위한 프로그래밍 언어

 

Oracle Database, MySQL : 오픈소스데이터베이스

Query: DB에 특정 요청을 하는 명령문

 

Hive: 하둡 에코시스템에서 데이터 모델링과 프로세싱을 하는 경우 사용하는 데이터 웨어하우징용 솔루션

Hive Query: Hive에서 작동할 수 있게 만든 SQL Query

 

'Sql > 기초' 카테고리의 다른 글

[SQL] DB 파티셔닝(Partitioning)  (0) 2025.02.14
6. 서브쿼리 + 세미조인/안티조인  (0) 2020.02.10
5. 조인 - 테이블간에 관계맺기  (0) 2020.02.10
4. 집합 연산자  (0) 2020.02.10
3. 데이터집계  (0) 2020.02.09

https://brunch.co.kr/@gimmesilver/53

 

실전 이탈 예측 모델링을 위한 세 가지 고려 사항 #1

0. 시작하며 최근 몇 년간 이탈 예측 모델링 관련 업무를 하고 있습니다. 공식적으로 프로젝트를 진행하거나 팀 내부적으로 조사 및 연구를 진행한 적도 있고, 경진 대회를 통해 다양한 참가자들

brunch.co.kr

 

2024 AI summit

Grab: 비지니스 경영, 고객 매칭,
Moody: 리스크관리, 컨텐츠 분석, 고객경험 지원
Benz: 데이터가 상대적으로 적지만, 제조를 할때 고객 경험 전달

⁃ AI를 실제 비지니스에 적용할 때 문제가 있는지? Moody: 개발할 시 법을 준수하고 퀄리티가 준수한지도 체크해야함. 전체 절차를 컨트롤 할 수 있다면 생성형 AI가 문제를 일으키지 않을것
⁃ 비지니스에 잘 적용하기 위한 노력? Grab: AI플랫폼에 많은 투자(앱을 안전하게 운영하기 위함), 보안을 지키기 위한 노력 필요
⁃ 조직에 어떤 변화가 있을지? Grab: 스킬셋이 올라가고 업무 일률화가 일어나고 있음. 생산성자체가 높아짐. 인력을 줄이는 것이 아닌 자기 분야의 새로운생각을 내야할것
일자리대체를 걱정하지 말고 더 전문가가 되랏..!

AI를 비디오 및 영상제작에 어떻게 사용하는가?
초현실적인 비디오를 랜더링(수초만 걸림), 여러 요소를 합칠 수 있음 -> 창의성을 재현
간단한 프롬프트를 입력해도 영상은 물리현상 및 스토리텔링을 이해하고 있음 -> 현실화가 잘 됨
이미지를 영상화하는 작업도 가능
영상만드는 프롬프트가 필요없는 경우도 있음. 실제 영상을 보고 다른 영상을 만들 수 있음. 구조적인 연속성을 가질 경우 생성할 수 있음

휴머노이드 기반의 로봇미래
2023년 기준 물류창고 미국에서 100만개 공석 -> 휴머노이드가 가능

Peggy Johnson, CEO of Agility Robotics
자동차산업에 도입되는 로봇(신사업)
어떤 연구? 사람에게 피해를 입히지 않는 동작, 넘어졌을때 물품 피해를 최소화하는 동작들을 연구
일자리감소를 부추기는 것이 아닌 구인구직문제가 심화되면서 이를 보조할 수 있음

김정호|카이스트 교수
HBM 중심이 되는 AI 슈퍼컴퓨팅과 서비스
그의..생각: ChatGPT & 사용자 & 노가다 (로봇)만 남는 미래직업
HBM설계를 인공지능으로 자동화
Parameter 개수 무한대증식 + 처리 bite  -> 100만대 GPU (반도체시장 필요) + 소프트웨어 최적화(NVIDIA, Cuda)가 필요

메모리와 GPU사이의 경계를 허물자! 그의 생각..
HBM(메모리)으로 데이터를 읽어오는데 GPU()를 활용, 메모리 처리속도를 보통 기다리고 있음
HBM4 내년출시 (‘어텐션’같이 가벼운 작업은 메모리까지 가지 않고 계산해서 넘겨주기)
액심냉각시대, 1과0 2진이아닌 멀티로 보내기, HBM을 여러대넣기 등의 방향으로 발전하는 것을 기대


From Proof-of-Concept
엔지니어링 디렉터|코히어

제품 초기디자인, 모델 검증 및 시스템디자인의 피드백을 지속적으로 받아야 뒤쳐지지 않음, 데이터 팔로우업, 규모를 작게
RAG: 명령에 집중, 검색에 집중

1. Parsing
2. Chunking
3. Retrieval
4. Reranking

Model customization

Grab에서의 AI 응용
음식배달, 택시서비스, 금융서비스, (싱가폴, 말레이시아, 인도네시아 등)1억 2천만명이 매달 사용중
매일 100~ 300 TB 생성
교통혼잡 피하기, 운전사찾기 등
2023년 ChatGPT를 활용해보기 시작.. 전체 조직이 어떻게 생성형 AI를 활용할수 있을까?
1. 인프라 재검토 (플랫폼 레이어를 전사적으로 활용하기 위해)
2. 생산성 향상(Grab 내 전부서가 어떻게해야 생산성향상을 할 수 있을지)
3. 고객경험을 변혁적으로 향상할 수 있을까?  

언어도 문화도 이질적인 8개국의 시장을 만족시키기 위해 한것?
App 푸시, 이메일 전달 등 마케팅을 시도했으나
Mystique Copywriter model을 활용해 creative copywriter를 하는데 99시간 -> 1시간 30분으로 절약
하지만, 시간만 절약한것이 아니라 컨텐츠 질도 훨씬 향상됨 -> 마케팅뿐 아니라 CRM까지 영향을 주었음
확장된 개인화도 됨 -> 고객 이름, 어떤음식? 당장 주문하세요 무료배송까지~ 처럼 유저케이스를 얻음
Grab이 원하는 일러스트레이션으로 이미지 생성도 시도
그랩 브랜드에 맞게 파인튜닝하는 과정이 필요했고


빅데이터 & AI,
어떻게 줄서지 않는 공항을 만들고 있나?

KPI: 전체여객의 지연을 줄이는것
Check-in & Security Minimize, Commercial Maximize
목적: 여객단위의 데이터로 공항 이해
문제: 분절된 데이터
Touch-point(찍고 들어가는) Data, Trajectory(동선) Data 이런 데이터를 통합해
여객 1명의 Journey Data를 확보
문제가 발생하는 Route 원인을 찾을 수 있음

활동한 것: 시뮬레이션으로 즉각 의사결정 가능
예시. 게이트 폐쇄 -> 모든 이해관계자를 모아 의사결정

Lasso Tool을 이용해 상품부스를 어디에 배치해야하는지 의사결정
광고최적화 등

웬만한 공항은 컨설팅기반으로 문제해결을 하고 있고, 데이터로 이 문제를 해결하기
CIRIUM(가장큰항공데이터를 보유한기업) 이 데이터를 활용해서 공항건설을 어떻게 해야할지도 분석

———————
위의 일들을 해결하기 위해 했던것?
1. ‘고정관념’을 깰것(당연히 줄은 선다? X)
2. 기초데이터설정(중요한 데이터와 그렇지 않은것에 대한 구분을 분명하게)
3. 필요한 내용만 분석 (AI기술을 꼭 활용해야하는건가?)
4. 기술간결합이 필요 (메타버스환경을 구축해 시뮬레이션 시도)
5. KPI Hierarchy 설계와 이와 관련있는 데이터 연계
6. 조직간 Silo 해결관점의 Benefit 설계
7. 타회사에 판매가능한 상품 세팅
느낀것: 데이터분석을 할때 인공지능기술이 중요한가?


금융(뱅킹)산업의 AI 혁명: 준비부터 혁신까지
CTO| F5 Networks
DBS(싱가폴은행)

AI Reimagined in banking: 개인의 자산현황을 모두 인식하고 맞춤형 처리를 해주는 AI어시스턴트 제공


GPT를 적용한 자연어 처리
오혜진|우아한형제들 머신러닝 프로덕트팀

생성형AI 활용 이력과 계획
메뉴뚝딱AI개발
데이터: 리뷰데이터 (가게 ,메뉴 등의 리뷰)
사용원칙
⁃ 개인정보 보호 및 저작권 준수
⁃ 컨텍스트 집중 (메뉴와 키워드를 연결)
⁃ 
서비스내용: 식감, 재료, 상황같은 것들로 검색해도 제안을 해주는 것
-> 키워드를 입력하는 비중이 기존대비 50프로 증가

생성AI 과제의 4가지 검토 사항
⁃ 정확도 (정확도를 담보해야 서비스까지 이어질 수 있는 생성형 AI 결과물)
⁃ 컨텐츠 안전
⁃ Cost efficiency: 한번 call에 비용이 들기 때문에 전체 과제 지속가능성을 고민했을때 필요한 부분
⁃ Processing Speed: 실시간 서비스 운영이 가능해야..

⁃ 정확도: GPT-4o mini와 GPT-4o를 거쳐서 정확도 99%이상을 만들어감.
⁃ 프롬프트엔지니어와 콘텐츠질을 상승
⁃ 한번 콜할때 5원정도
⁃ (TPM, RPM)가 소요하는 시간이 수분걸림.. Latency

실제 LLM을 활용한 사례:
GPT4활용해서 이미지 체크 및 반려를 알림 to 사장
RAG, Long context 입력으로






트랜스포머

정의

트랜스포머: 셀프어텐션 사용(단어간 장거리 종속성과 문맥 관계를 포착할 수 있게 하는 어텐션) 아키택처에서 파생된 AI 모델이며 사람의 언어를 이해 및 생성

 

종류

Language Modeling은 NLP의 하위분야로 '자동 인코딩 작업'과 '자기회귀 작업' 두가지 모델링 작업이 있음.

  • 자동인코딩: 알려진 어휘에서 문장의 어느 부분이든 누락된 부분을 채우도록 모델에 요청. 예시로는 BERT. 트렌스포머의 인코더 부분에 해당. 마스크 없이 양방향 표현을 생성. 문장 분류 또는 토큰 분류에 주로 사용됨.
  • 자기회귀(Autoregressive Language): 알려진 어휘에서 주어진 문장의 바로 다음에 가장 가능성 있는 토큰을 생성하도록 모델에 요청. 예시로는 GPT. 트렌스포머 모델의 디코더 부분에 해당

 

특징

2017년에 나온 트렌스포머는 seq2seq 모델이었음. 

아래 두가지 요소를 가지고 있음.

  • 인코더: 문장을 핵심구성 요소로 분리, 벡터화하고 어텐션을 이용해 텍스트 맥락을 이해(텍스트 이해가 뛰어남)
  • 디코더: 수정된 형식의 어텐션을 사용해 다음에 올 최적의 토큰을 예측하고 텍스트 생성(텍스트 생성이 뛰어남)

이 둘을 사용하면 seq2seq 모델이 됨.

BERT는 인코더, GPT는 디코더만 있는 모델, T5는 둘을 조합한 모델.

 

 

1.1 LLM의 작동원리

사전훈련(pre-training)과 파인튜닝되는지에 따라 성능이 결정됨. LLM기반 모델들은 언어와 단어의 관계를 배우고 이해하려는 훈련을 받음. 

 

Pre-training은 모델을 사전에 학습하는 것임. 예를 들면, BERT는 영어 위키백과(영어버전의 위키백과로 수집된 기사들)와 BookCorpus(다양한 장르의 소설, 비소설로 검증된 저자에 의해 영어로 작성된 문서들)에서 사전훈련 되었음. 

또한, 두가지 모델로 학습되는데 '마스크된 언어모델링'(한 문장 안에서 토큰의 상호작용을 인식하도록)과 '다음문장예측'(문장들 사이에서 토큰이 서로 어떻게 상호작용하는지) 모델링 작업을 수행하는데 전자는 개별 단어 임베딩을 가르치기 위함이고 후자는 전체 텍스트 시퀀스를 임베딩하는 방법을 학습하기 위함.

 

전이학습(Transfer Learning)

LLM내에서 전이학습은 말뭉치에서 사전훈련한 LLM을 가져와 작업 특정 데이터로 모델의 파라미터를 업데이트함.

이미 특정 언어와 언어간의 관계를 사전에 학습해서 새로운 작업에 성능 향상을 가능하게 함.

비지도 학습으로 일반적인 개념을 가르치고, 지도학습으로 모델을 파인튜닝

 

파인튜닝(Fine-tunning)

특정 작업의 성능을 향상시키기 위한 조정

 

어텐션(Attention)

다양한 가중치를 다르게 할당하는 메커니즘. 가장 중요한 정보를 강조 가능해짐. 

 

위 설명을 요약하자면, 

LLM은 큰 말뭉치에서 사전훈련되고 작은 데이터셋으로 파인튜닝됨. 트랜스포머는 고도의 병렬처리가 가능하여 빠르며 토큰 간의 장거리 의존성과 관계를 어텐션을 사용해서 포착 가능함. 특히, 어텐션이 Internal world model과 사람이 식별할 수 있는 규칙을 학습하는데 가장 주요한측면으로 보여지고 있음.

 

임베딩(Embedding)

단어, 구절, 토큰의 수학적 표현

토큰 임베딩(토큰의 의미를 임베딩), 세그먼트 임베딩, 위치임베딩(위치를 임베딩)등 여러 종류의 임베딩이 존재함.

텍스트가 토큰화되면 각 토큰에 임베딩이 주어지고 그 값들이 더해짐. 어텐션이 계산되기 전에 초기 임베딩을 갖게됨.

 

토큰화(Tokenization)

텍스트의 가장 작은 이해단위인 토큰으로 분해하는 과정

LLM에서는 전통적인 NLP에서 사용한 불용어제거, 어간추출, 잘라내기 등과 같은 것들이 필요하지 않음. 

out-of-vocaburary(OVV)구문을 어떻게 처리하나? 일단 더 작은 부분의 단어로 나눔. 

 

1.2 가장 많이 활용되는 LLM

BERT, T5(Google), GPT(OpenAI)은 트렌스포머 기반 아키텍쳐

 

BERT(Bidirectional Encoder Representation from Transformers)

문장의 양방향 표현을 구성하기 위해 어텐션 메커니즘을 사용하는 자동 인코딩 모델

문장 분류와 토큰 분류 작업에 이상적. 

Bidirectional: 자동 인코딩 언어 모델

Encoder: 트랜스포머에서 인코더만 활용

Representation: 어텐션을 활용

Transformers: 트랜스포머의 아키텍처를 활용

생성에 중점을 둔 느린 LLM에 비해 빠르게 처리 가능. 자유로운 텍스트 처리보다 대량의 말뭉치를 빠르게 분석하고 작업하는데 적합. 문서 분류나 요약보다는 사전훈련된 모델로 활용함.

 

GPT-4와 ChatGPT(Generative Pre-trained Transformers)

어텐션 메커니즘을 사용한 자기회귀 모델

텍스트 생성에 활용. 

Generative: 자기 회귀 언어 모델

Pre-trained: 디코더는 거대 말뭉치에서 학습

Transformers: 트랜스포머의 아키텍처를 활용

한번에 하나의 토큰을 생성하는데 뛰어남. 큰 문맥 윈도우를 주었을때 텍스트를 생성하는데 적합. 

 

T5(Text-to-Text Trsansfer Transformers)

텍스트 분류, 요약 및 생성하는 인코더/디코더 트랜스포머 모델

Text-to-Text: 시퀀스 투 시퀀스 모델

Transfer: 전이학습을 이용

Transformer: 인코더, 디코드를 모두 활용한 순수 트랜스포머

텍스트 처리와 이해하는 능력 그리고 생성까지 모두 필요로한 어플리케이션에 유용하며

GPT-3도 이러한 능력을 보유함. 

 

1.3 도메인 특화 LLM

domain-specific LLM은 특정 도메인에서 언어와 개념을 이해하기 위해 설계됨. (예시: 생물 의학 무넌에 사전 훈련된 BioGPT) 당연한 얘기지만 특정 도메인을 잘 이해하는거만큼 일반 LLM은 특정 도메인의 언어를 이해하는데 모자람이 있을 것임. 

 

1.4 LLM을 이용한 어플리케이션

  • 사전 훈련된 LLM으로 파인튜닝없이 기본 처리 하기
  • 전이학습을 사용해 사전 훈련된 LLM을 파인튜닝 하기
  • 사전 훈련된 LLM에 작업 요청하기

 

 

 

 

'데이터분석 > 딥러닝' 카테고리의 다른 글

Knowledge distillation & Calibration  (0) 2024.05.20
GAN 모델이란?  (2) 2021.04.06
CNN으로 개와 고양이 분류하기  (1) 2020.02.25
MNIST를 이용해 간단한 CNN만들기  (2) 2020.02.12
배치학습 vs 온라인학습  (0) 2020.02.12

1. 중복된 코드(duplicate code)

한곳을 바꾸면 중복된 곳도 똑같이 바꿔줘야하는 불편함이 가장 큼

-> 함수나 루프문을 활용해서 개선하기

2. 매직넘버 대체

3. 주석처리된 코드와 죽은 코드

4. 리스트컴프리핸션 활용하기

5. excep를 사용해서 에러를 넘기는 코드,불충분한 설명이 들어있는 코드

 

코드악취에 대한 잘못된 통념

1.  함수나 메소드에 return문은 하나만? No, 여러개여도 된다.

2. 함수에 try문이 둘 이상 있으면 안된다? No, 함수는 하나의 일만 하도록 만드는게 통상적이나, 번거롭게 둘로 나눠야하는 기능이 있는 경우 나누지 않아도 되고 try문으로 해결한다.

3. 플래그 인수는 나쁘다? No, 함수를 번거롭게 나누는것보다 낫다

4. 전역변수는 나쁘다? No

표기법 3가지: snake_case, camelCase, PascalCase

UPPER_SNAKE_CASE: 상수인 경우

 

PEP8 명명규약

  • 모듈은 소문자
  • 클래스는 파스칼케이스
  • 상수는 UPPER_SNAKE_CASE
  • 함수,메소드,변수명은 lower_snake_case
  • 클래스 메소드의 시작은 cls, 메소드의 시작은 self
  • 클래스의 프라이빗속성은 _, 퍼블릭 속성은 _ 없이

 

코드 포매팅: 소스코드에 일련의 규칙을 적용해 특정한 형식을 갖추게 하는 것

PEP8(Python Enhancement Proposal8): 파이썬 코어 개발팀이 제안한 작성방법

Black(코드 포매터)

 

가로 간격(horizontal Spacing)

  • 들여쓰기(Indentation): tab이 나타내는 공백 폭이 가변적이라 탭보다는 공백을 선호, 동시에 사용해서도 안됨. 일반적으로 4칸을 선호함.
  • 연산자와 식별자 사이의 공백 한칸
  • 구분자 뒤쪽에 공백 한칸
  • 마침표 앞뒤로는 공백 넣지 않기
  • 함수, 매소드, 컨테이너 이름 뒤에는 공백을 넣지 않기
  • 열고 닫는 괄호 앞뒤로 공백넣지 않기
  • 코드행 끝에 2칸의 공백으로 주석달기

 

세로 간격(Vertical Spacing)

  • 함수나 클래스는 2줄의 빈행, 클래스 내의 함수들은 한줄의 빈행을 넣어야 함

 

Black 사용하기

블랙 설치하기: python3 -m pip install --user black

명령행에서 블랙 실행하기: python -m black script.py

하위 파일을 모두 블랙으로 포매팅하기: python -m black 경로

표준 행 길이 설정: python -m blakck -l 120 script.py

따옴표를 변경하지 않도록 설정: python -m black -l 120 -S script.py

블랙으로 수정될 내용 미리보기: python - m black --diff script.py

 

+ Recent posts