MLOps 7

[MLOps, LLMOps] PagedAttention, vLLM 소개

chatGPT 이후로 LLM에 대한 연구가 많이 활성화되었고, 그에 따라 최근에는 LLM 서빙을 다루는 경우가 많아지고 있는 것 같습니다. vLLM은 LLM을 더 효율적으로 서빙하기 위한 PagedAttention이란 기술을 적용하였다고 하는데, 오늘은 이 부분들을 소개해보도록 하겠습니다. PagedAttention의 원리 vLLM을 개발한 팀은 아래의 논문을 통해 PagedAttention을 먼저 소개했고, 직접 개발하여 vLLM 라이브러리를 출시했습니다. - 논문 제목: Efficient Memory Management for Large Language Model Serving with PagedAttention - 링크: https://arxiv.org/pdf/2309.06180.pdf Key-V..

ML OPS 2023.12.09

글또 7기 회고

벌써 글또 7기가 끝날 시점이 되어, 글또 7기 회고를 해보게 되었습니다. 7기에서 썼던 글 리스트를 확인해보니 다짐글을 시작으로, 아래와 같이 여러 주제로 글을 작성했네요. - 글또 7기 다짐글 - huggingface/transformers에 컨트리뷰트 해보기 - [ML OPS] mlflow 로컬에서 사용해보기 - [ML OPS] transformers inference (ft. colab, onnx, gpu) - [ML OPS] quantization을 활용한 인퍼런스 최적화 (ft. ONNX, TensorRT) - SQLAlchemy 소개 및 활용법 - SQLAlchemy에서 ORM 활용하기 - argo workflow 구성해보기 - argo workflow - cron workflow MLOPS..

나의 이야기 2022.10.14

argo workflow 구성해보기

ML ops에서 workflow를 활용하는 구성이 많아지고 있는데요. 오늘은 argo workflow를 로컬에 구성해보았습니다. kubernetes 설정 argo workflow는 kubernetes 상에서 활용할 수 있습니다. 로컬에서는 docker를 설치하여, Enable Kubernetes를 활용하여 쉽게 kubernetes를 세팅할 수 있습니다. apply 후에 error가 발생하는 경우 Clean / Purge data, Reset to factory defaults를 시도해보시는 것을 추천드립니다. argo workflow 구성 namespace 생성 argo workflow를 설치해 줄 namespace를 아래의 명령어로 생성해주시면 됩니다. kubectl create ns argo argo..

ML OPS 2022.09.18

[ML OPS] transformers inference (ft. colab, onnx, gpu)

자연어처리에서는 transformers가 pretrained 모델도 많이 제공하고 있다보니 정말 많이 활용되는 것 같습니다. ML ops의 역할 중에 하나가, 인퍼런스 속도를 최적화하는 것이라는 생각이 되는데요. transformers를 간단하게 인퍼런스 해보는 코드에서 시작하여, 실시간 서비스에서 활용할 수 있는 수준까지 개선해보는 과정을 소개해보도록 하겠습니다. 0. colab 오늘 소개하는 내용들은 GPU도 활용해야 하는데, 노트북을 사용하다보니 GPU가 없어서 colab(https://colab.research.google.com/)을 사용해보도록 하겠습니다. colab에서는 무료로도 간단하게 GPU를 테스트 정도는 해볼 수 있도록 제공하고 있습니다. colab을 기본적으로 켰을 땐, GPU가 할..

[ML OPS] mlflow 로컬에서 사용해보기

mlops를 위한 여러가지 플랫폼이 나오고 있는데, 오늘은 mlflow에 대해서 한번 간단하게 사용해보도록 하겠습니다. 오늘은 로컬에서 사용해볼 예정이므로 편하게 사용할 수 있도록 아래 이미지와 같이 pycharm에서 venv를 생성해서 환경을 세팅해보겠습니다. 여기서 mlflow를 설치해볼텐데, 설치는 아주 쉽습니다. 아래 명령어와 같이 pip를 활용하여 설치하시면 됩니다. pip install mlflow ui를 바로 간단하게 볼 수 있는 아래 명령어를 실행해보도록 하겠습니다. mlflow ui 그러면 http://127.0.0.1:5000 이라는 링크를 보여줄텐데 클릭하면 아래와 같은 web ui를 볼 수 있습니다. pycharm으로 돌아가서 확인해보면, 아래 이미지와 같이 mlruns라는 폴더가 ..

[ML OPS] ONNX로 pytorch 모델 변환하기

ML 모델을 서비스에 적용하려고 하면 일반적으로 느린 속도 때문에, 인퍼런스 속도를 높이기 위한 방법도 많이 고민하게 됩니다. 그래서 오늘은 ONNX(Open Neural Network eXchange)를 한번 소개해보려고 합니다. ONNX onnx는 머신러닝 모델 공개 표준을 목표로 개발된 오픈소스입니다. Tensorflow, Pytorch는 물론이며 이 외에도 다양한 툴에서 사용할 수 있도록 지원됩니다. 특히, 파이썬 환경 뿐만 다른 언어를 활용할 수도 있으며 모델을 변환하면서, 그래프를 최적화하여 연산 속도 개선 효과도 있습니다. 바로 코드로 넘어가보도록 하겠습니다. 오늘도 학습은 논외니까 pretrained model 중에 torchvision에서 가장 기본 모델인 resnet을 활용하겠습니다. ..

[ML OPS] 파이썬으로 딥러닝 모델 서빙하기 (ft. flask)

딥러닝 모델을 서빙하는 방식은 여러가지 방법이 있습니다. 여러가지 방법 중에서, 오늘은 flask를 활용하는 방법을 소개해보도록 하겠습니다. https://github.com/hsh2438/MLops/tree/main/1_flask_rest_api GitHub - hsh2438/MLops Contribute to hsh2438/MLops development by creating an account on GitHub. github.com 코드는 우선 위의 깃헙 레포지토리를 참고하시면 됩니다. 라이브러리 설치 필요한 라이브러리는 requirements.txt 파일에 저장해두었으므로 아래 명령을 실행하여 라이브러리를 설치해주시면 됩니다. pip install -r requirements.txt 서버 구현 f..