읽을거리

2021-07-23 읽을거리

scjung 2021. 7. 23. 17:51

python

1. faster python 컴파일러 : pypy 라이브러리

python를 빠르게 사용하고 싶다면 pypy 를 사용하라고 소개되어 있다.

다만 지원하는 cpu 아키텍처가 따로 존재하여 호환을 확인하고 사용하라고 되어 있다.

https://guilhermeeuzebio.medium.com/pypy-a-faster-python-ed593707c43c

 

PyPy, a faster Python

By default Python has CPython under the hood, wait, calm down, what is CPython? Maybe many of you don’t know what it is. Basically CPython…

guilhermeeuzebio.medium.com

 

2. 텍스트를 예쁘게 꾸미는 라이브러리 : rich 라이브러리

해당 글은 텍스트를 꾸미는 기능을 제공하는 rich 라이브러리에 대해 소개하고 있다.

다만, 여기서는 콘솔 기반으로 소개를 하고 있기 때문에 jupyter에서 동작하는지는 테스트해봐야 한다.

https://medium.com/swlh/rich-beautiful-text-formatting-in-python-db0064e2bee7

 

Rich: Beautiful Text Formatting in Python

Making Python colorful using Rich Text Formatting

medium.com

 

3. 파이썬에서 logging하는 방법

해당 글은 python 내에서 logging 하는 방법을 기초부터 deep한 레벨까지 예제와 함께 설명하고 있다.

logging은 서비스를 운영하는 데에 중요한 역할을 하기 때문에 익혀놓는 것을 추천한다.

https://medium.com/pythoneers/master-logging-in-python-73cd2ff4a7cb

 

Master Logging In Python

Logging is the process of capturing the flow of code as it executes. Logging helps in debugging the code easily by writing logs. Logs are usually written inside a file, called a log file. This File…

medium.com

 

4. SQL query APIs 라이브러리 : shillelagh 라이브러리

해당 라이브러리는 python에서 SQLite 기반으로 DB를 사용할 수 있는 라이브러리이다.

특이한 점은 구글 스프레드시트 같은 non-SQL 에서도 데이터를 긁어올 수 있다는 점이다.

DB를 따로 구축하기 귀찮으면 해당 라이브러리를 사용해보는 것을 추천

https://github.com/betodealmeida/shillelagh/

 

GitHub - betodealmeida/shillelagh: Making it easy to query APIs via SQL

Making it easy to query APIs via SQL. Contribute to betodealmeida/shillelagh development by creating an account on GitHub.

github.com

 


 

ML / DL

1. RL 을 사용하여 casual structure 찾기

해당 글은 단순히 RL 을 사용하여 casual structure을 찾을 수 있다 정도로 소개하고 있지만,

여기서 소개하는 논문의 경우 RL로 문제들을 풀 수 있다라는 것을 보여주고 있다.

해당 글로는 이해가 제대로 안가니 논문을 보는 것을 추천

https://bellman.tistory.com/39

 

[3줄 RL] 과학적 발견도 에이전트에게 맡겨둬!

https://openreview.net/pdf?id=S1g2skStPB 1. 과학적 발견, 그러니까 변수들 관의 causal structure를 찾아내는 것은 많은 과학 분야에서 핵심적인 이슈이다.  causal structure를 찾는 문제는 주로 DAG(Directe..

bellman.tistory.com

 

2. snapchat의 pix2pix GAN 모델을 사용한 고양이 얼굴 그리기

해당 글은 snapchat 회사에서 적용한 고양이 얼굴을 그리는 cat face 에 대해 설명하고 있다.

모델 구조는 U-Net 와 유사한 pix2pix generator을 사용하고 있다고 한다.

https://heartbeat.fritz.ai/training-a-tiny-pix2pix-gan-for-snapchat-c6062e86204c

 

Training a Tiny Pix2Pix GAN for Snapchat

Performing image-to-image translation to transform outlines of cat faces into realistic cats with a model 95% smaller than Pix2Pix

heartbeat.fritz.ai

 

3. classification 모델을 학습하여 tensorflow lite 모델로 변환하기

해당 글은 coral 툴을 사용하였다고 시작부터 소개를 하고 있지만, 전체적인 내용은 classification 

전체적인 내용은 classification 모델을 학습하여 tensorflow lite 모델로 변환하는 예제를 소개하고 있다.

https://blog.tensorflow.org/2021/07/real-world-ml-with-coral-manufacturing.html

 

Real-World ML with Coral: Manufacturing

This new demo from Coral focuses on worker safety & visual inspection at the edge and is designed to be easily customizable for production deployment.

blog.tensorflow.org

 

4. Netflix Data Explorer

해당 글은 Netflix에서 만든 Data Explorer 툴이다.

docker를 사용하여 쉽게 배포할 수 있으며 GUI 로 데이터를 다룰 수 있다. 

많은 데이터를 통합하여 다룰 때 편해보인다.

https://github.com/Netflix/nf-data-explorer

 

GitHub - Netflix/nf-data-explorer: The Data Explorer gives you fast, safe access to data stored in Cassandra, Dynomite, and Redi

The Data Explorer gives you fast, safe access to data stored in Cassandra, Dynomite, and Redis. - GitHub - Netflix/nf-data-explorer: The Data Explorer gives you fast, safe access to data stored in ...

github.com

 

5. Al/ML 파이프라인 프레임워크 : CodeFlare 프레임워크

해당 라이브러리는 cloud 상에서 복잡한 파이프라인을 통합하여 다루기 위한 것으로 소개되고 있다.

하지만 현재 버전이 0.1.2 이고 사용할 수 있는 클라우드가 매우 제한적이어서 아직 유용하게 쓰기는 이른 듯 하다.

https://github.com/project-codeflare/codeflare

 

GitHub - project-codeflare/codeflare: Simplifying the definition and execution, scaling and deployment of pipelines on the cloud

Simplifying the definition and execution, scaling and deployment of pipelines on the cloud. - GitHub - project-codeflare/codeflare: Simplifying the definition and execution, scaling and deployment ...

github.com

 

6. encoding time series : Time2Vec

해당 글은 time series 데이터를 encoding 하는 Time2Vec 구조와 예제를 소개하고 있다.

일반 데이터를 vector 형태로 가공하는 것은 많이 봤지만 time series 데이터를 vector로 변환하는 것은 처음 본다.

https://towardsdatascience.com/time2vec-for-time-series-features-encoding-a03a4f3f937e

 

Time2Vec for Time Series features encoding

Learn a valuable representation of time for your Machine Learning Model

towardsdatascience.com

 

7. overfitting을 피하는 방법 : pruning

pruning은 기존에 모델 경량화에 쓰이는 방법으로, 연결 노드를 끊어버리는 방법이다.

해당 글에서는 pruning을 사용하여 overfitting이 왜 해소가 되는지 설명하고 있다.

https://andre-ye.medium.com/obtaining-top-neural-network-performance-without-any-training-5af0af464c59

 

Obtaining Top Neural Network Performance Without Any Training

We know less about NNs than we thought

andre-ye.medium.com

 

9. pandas query 기능

해당 글은 pandas에서 query 기능만을 사용하여 데이터를 추출하는 방법에 대해 설명하고 있다.

기존 SQL 쿼리문과 거의 비슷한 느낌이라 SQL문에 익숙한 사람이라면 쉽게 쓸 수 있을 것 같다.

https://medium.com/gustavorsantos/pandas-query-the-easiest-way-to-filter-data-39e0163ef35a

 

Pandas Query: the easiest way to filter data

Learn 7 code snippets that will enhance your productivity.

medium.com

 

10. Kats 라이브러리 예제

이전에 공유했던 facebook에서 개발한 time-series 처리 라이브러리인 Kats를 사용한 예제를 소개하고 있다.

https://towardsdatascience.com/kats-a-generalizable-framework-to-analyze-time-series-data-in-python-3c8d21efe057

 

Kats: a Generalizable Framework to Analyze Time Series Data in Python

Forecast, Detect Change Points, Anomalies, and Get Key Statistics in Time Series

towardsdatascience.com

 

11. MLOps 툴 5가지

MLOps 툴 중에서 유명한 것 5가지를 소개하고 있다.

자주 보던 툴들도 있지만, 처음 보는 툴 들도 있기 때문에 MLOps에 관심이 있는 사람이라면 한 번 쯤 훑어보는 것을 추천

https://betterprogramming.pub/5-great-mlops-tools-to-launch-your-next-machine-learning-model-3e403d0c97d3

 

5 Great MLOps Tools to Launch Your Next Machine Learning Model

Simplifying the machine learning development lifecycle

betterprogramming.pub

 

12. NLP 을 사용한 text classification 비교 : TF-IDF vs Word2Vec vs BERT

해당 글은 NLP를 사용하여 text classification을 수행하는 예제를 소개하고 있다.

포인트는 TF-IDF, Word2Vec, BERT 간 시각화로 비교하고 있기 때문에 직관적으로 이해하기 좋다.

https://towardsdatascience.com/text-classification-with-nlp-tf-idf-vs-word2vec-vs-bert-41ff868d1794

 

Text Classification with NLP: Tf-Idf vs Word2Vec vs BERT

Preprocessing, Model Design, Evaluation, Explainability for Bag-of-Words, Word Embedding, Language models

towardsdatascience.com

 

13. HuggingFace Transformers 병렬 처리 라이브러리 : Parallelformers 라이브러리

해당 라이브러리는 HuggingFace에서 배포하는 Transformer 모델을 한 줄로 병렬 처리, 학습을 할 수 있도록 제공한다.

하단에 HuggingFace 내의 모델 중에서도 지원하는 것과 미지원하는 리스트를 나열하여

사용할 때는 해당 부분을 먼저 보고 적용하는 것을 추천

https://github.com/tunib-ai/parallelformers

 

GitHub - tunib-ai/parallelformers: Parallelformers: An Efficient Model Parallelization Toolkit for Deployment

Parallelformers: An Efficient Model Parallelization Toolkit for Deployment - GitHub - tunib-ai/parallelformers: Parallelformers: An Efficient Model Parallelization Toolkit for Deployment

github.com

 

14. JAX 기반 image processing library : PIX 라이브러리

JAX 라이브러리는 구글에서 배포한 선형 대수학 연산 분산 처리 라이브러리이다.

그래서 PIX는 JAX 라이브러리를 base로 image processing을 분산 처리하도록 제공하고 있다.

또한, GPU / TPU 상에서도 분산 처리가 가능하도록 제공하고 있기 때문에

전처리 부분에서도 GPU를 유용하게 사용할 수 있을 것이라 생각한다.

https://github.com/deepmind/dm_pix

 

GitHub - deepmind/dm_pix: PIX is an image processing library in JAX, for JAX.

PIX is an image processing library in JAX, for JAX. - GitHub - deepmind/dm_pix: PIX is an image processing library in JAX, for JAX.

github.com

 


 

논문

1. MobileNet + Object Detection : MobileDets

해당 논문은 MobileNet에 Object Detection을 결합하여 MobileDets라는 것으로 소개하고 있다.

(MobileNetV3이 있다는 것을 처음 봤는데 2019년에 나온 논문이다...)

EfficientDet 와 네이밍이 비슷하다고 느낀다.

https://arxiv.org/abs/2004.14525v3

 

MobileDets: Searching for Object Detection Architectures for Mobile Accelerators

Inverted bottleneck layers, which are built upon depthwise convolutions, have been the predominant building blocks in state-of-the-art object detection models on mobile devices. In this work, we investigate the optimality of this design pattern over a broa

arxiv.org

 

2. Transformer를 사용한 sementic segmentation : MaskFormer

해당 글은 transformer 와 segmentation 의 backbone을 결합하여 sementic segmentation을 수행한다.

해당 논문은 페이스북에서 7월 13일에 발표한 논문으로 최신 논문이다.

https://github.com/facebookresearch/MaskFormer

 

GitHub - facebookresearch/MaskFormer: Per-Pixel Classification is Not All You Need for Semantic Segmentation

Per-Pixel Classification is Not All You Need for Semantic Segmentation - GitHub - facebookresearch/MaskFormer: Per-Pixel Classification is Not All You Need for Semantic Segmentation

github.com