파이콘 2020. 나의 첫 파이콘(Pycon)
Project/Pycon 2020

파이콘 2020. 나의 첫 파이콘(Pycon)

파이콘(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)