파이콘(Pycon) 참석
파이콘은 파이썬 프로그래밍 언어 커뮤니티에서 주관하는 비영리 컨퍼런스입니다. 2014년을 시작으로 지금까지 총 7회의 파이콘이 열렸고, 올해는 코로나로 인해 처음으로 온라인 파이콘이 진행되었습니다.
올해 파이콘의 슬로건은 "We are Pythonistas"이었습니다. 파이썬이라는 공통점 하나로 모이는 사람들이 파이썬에 대해서 나누고, 각 분야에서 파이썬이 어떻게 쓰여지고 있는지, 장단점은 무엇이 있는지에 대해 나눌 수 있었던 좋은 기회였습니다.
다양한 강의 중 관심 분야로 집중해서 들은 강의는 아래입니다.
1. Python을 사용하는 데이터 과학자를 위한 서버없는 WEb Assembly 기반 과핟 연산 환경 만들기 by. 신정규
2. 이 선 넘으면 침법이야, BEEP! by. 문지형
3. 파이썬 대패키지시대, requirments 텍스트 파일 하나만 믿어도 정말 괜찮은 걸까? by. 강민철
4. pandas 코드로 대규모 클러스터에서 빠르게 빅데이터플 분석해보자 - Koalas by. 박현우
Python을 사용하는 데이터 과학자를 위한 서버없는 WEb Assembly 기반 과핟 연산 환경 만들기 by 신정규
- Python 기반의 과학 연산 환경 및 머신러닝 환경을 서버측 연산 없이 브라우저 엔진을 통해 사용하는 방법
- Mozilla 재단의 실험 프로젝트인 Iodide 프로젝트는 WebAssembly 기반에서 과학 연산환경을 구축하려고 함
- Pyodide 프로젝트는 Iodide를 이용하여 WebAssembly기반에서 Python 환경을 구축
이 선 넘으면 침법이야, BEEP! by. 문지형
- 온라인 혐오 표현을 방지하기 위한 혐오 탐지 모델 개발
- 모델 개발을 위한 과정, '기획-데이터수집-데이터라벨링-모델개발-모델검증'
- 데이터 수집 후, 혐오 표현에 대한 정의 설정. 각각의 혐오 표현에 대한 정의가 다름.
- 정의한 혐오 표현으로 어노테이션 수행
- 논문을 작성. *** 논문을 작성하면 데이터를 공식적으로 사용가능하다.
- 모델 제작시 구글의 사전학습 기반의 언어 모델인 BERT 사용
- https://github.com/inmoonlight/detox
파이썬 대패키지시대, requirments 텍스트 파일 하나만 믿어도 정말 괜찮은 걸까? by. 강민철
- pip를 이용한 패키지 의존성 관리(requirements.txt)에 대한 문제
- 더 나은 패키지 관리를 위한 대안(pip-tools, pipenv, poetry)
Pandas 코드로 대규모 클러스터에서 빠르게 빅데이터플 분석해보자 - Koalas by. 박현우
1. 빅데이터 파이프라인 구축과정
- 데이터 수집: 원천 로그 소싱, 스트리밍
- 데이터 처리: 중복제거, 카디너리티 최적화. 분산처리 시스템인 스파크와 같은 엔진 사용
- 데이터 적재: 효율적인 데이터 검색을 위한 인덱싱 설정, 분산파일 시스템, 압축 시스템 설정
2. 데이터 분석가와 데이터 엔지니어의 이러한 시스템에서 어떤 포지션을 갖고 있고 기술 도메인에서 어떤 차이를 갖고 있냐
데이터 엔지니어,
- 데이터 파이프라인 구축
데이터 분석가,
- 도메인 지식과 통계학 지식을 바탕으로 모델링하고 가치있는 데이터를 찾는다.
- 이러한 분석 과정을 바탕으로 파이프 라인에 피드백을 주기도 함
3. 상황마다 분석하고자 하는 데이터 구조가 다름
- 기존 데이터 구조 이외의 분석 니즈 발생
예) 일회성으로 데이터가 필요한 경우, 생성단에서 부터 데이터 라벨링하는 경우
- 분석가와 엔지니어들 간의 커뮤니케이션 부화가 생김
- 분석가는 보다 자유로운 데이터 분석을 위해 데이터 접근에 대한 니즈가 필요해짐
- 하지만, 현재 분석가들이 갖고 있는 기술(Pandas 등..)으로는 부족하다.
4. Pandas와 Spark의 차이
Pandas |
Spark |
mutable dataframe |
immutable dataframe |
eger execution |
lazy execution |
single-machine |
distributed |
row order |
x |
restricted to single machine |
at scale |
- 판다스 10GB 넘는 데이터 분석시 어려움 100GB 넘을시 불가능에 가까움
5. 쓰기쉽지만 빠른 서비스가 없을까요 - Koalas
- 2019년 4월 24일 발표
- https://github.com/databricks/koalas
- Pandas 문법을 그대로 사용하지만, 엔진은 Spark를 사용
- pip install koalas
- spark를 최초 제작한 databricks에서 꾸준히 개발하고 있는 프로젝트
#pandas, pySpark, koalas간의 문법 비교
#pandas
import pandas as pd
df = pd.read.csv("/path/data.csv")
df.columns = ['a', 'b', 'c']
df['a2'] = df.a*df.a
#Koalas
import databricks.koalas as ks
df = ks.read.csv("/path/data.csv")
df.columns = ['a', 'b', 'c']
df['a2'] = df.a*df.a
#pySpark
df = spark.read.option("inferschema", "true").csv("/path/.data.csv")
df = df.toDF('a','b','c')
df = df.withColumn('a2', df.a*df.a)