Community

고성능 ML 백엔드를 위한 10가지 Python 성능 최적화 팁

하이퍼커넥트의 ML 백엔드를 위한 파이썬 성능 최적화 팁입니다! 링크 안의 전문을 참고해보세요! Python은 배우기 쉽고, ML 관련 라이브러리를 포함한 오픈소스 생태계가 상당히 발전해있는 좋은 언어입니다. 편의성이 좋다 보니 여러 회사들이 데이터 분석과 ML 모델 학습뿐만 아니라, 백엔드 서버에서도 Python을 자주 사용합니다. 하지만 Python은 실행 속도가 느리다는 치명적인 단점이 있습니다. Python은 분명 ML 도메인에서 사용하기 좋은 언어이긴 하지만, 응답시간이 중요한 로직에서도 Python 백엔드 서버를 운영하면서 Python의 느린 속도 때문에 많은 고통을 겪어 왔습니다. ... (중략)... 1. 상황에 따라 gc가 병목일 수 있다. 이런 경우 gc 발동 조건을 튜닝할 수 있다. 2. Built-in list는 충분히 빠르지 않다. 필요시 array나 numpy를 사용하자. 3. multiprocess는 커뮤니케이션 오버헤드가 높기에, low-latency 시나리오에서 조심히 사용해야한다. 4. Pytorch를 multiprocess 환경에서 쓴다면 num_threads를 조정하자. 5. Pydantic은 아주 느리다. 불필요한 곳에서 가급적 사용하지 말자. 6. Pandas DataFrame은 생성에 많은 시간이 걸리므로, 유의해서 사용해야 한다. 7. 바닐라 json 패키지는 느리다. orjson이나 ujson을 사용하자. 8. Class는 충분히 빠르지 않을 수 있다. 너무 문제가 되면 dict를 사용하자. 9. Python 3.11은 덜 느리다. 10. (보너스) line profiler 사용법 https://hyperconnect.github.io/2023/05/30/Python-Performance-Tips.html

알림

알림이 없습니다