작성
·
119
0
안녕하세요. 현재 LLM(대규모 언어 모델)을 FastAPI를 이용하여 API 형태로 서비스하고 있습니다.
이와 관련하여 다음과 같은 사항에 대해 질문드립니다.
FastAPI로 API를 제공할 경우 메모리 누수가 필연적으로 발생하는지, 그렇지 않다면 개발자가 이를 어떻게 방지할 수 있는지 궁금합니다.
강사님께서는 FastAPI 사용 시 메모리 누수를 방지하기 위해 어떤 방법이나 처리를 적용하시는지 궁금합니다.
특히 LLM 모델처럼 리소스(메모리, gpu)를 많이 사용하는 모델을 API로 서비스할 때, 메모리 누수와 관련하여 특별히 주의하거나 고려해야 할 사항이 있다면 조언 부탁드립니다.
답변 2
1
안녕하십니까,
1, 2, 3번 한꺼번에 답변 드리겠습니다.
FastAPI 메모리 누수는 금시초문 이군요. FastAPI는 이미 많은 사이트에서 안정적으로 사용되고 있습니다. 메모리 누수 걱정은 안 하셔도 될 것 같습니다. 웹 애플리케이션의 대부분 메모리 문제는 웹프레임워크(FastAPI, Spring등)의 문제가 아니라 사용자 코드에서 자원을 얻었다고 해제 시켜주지 않아서 발생하는 문제입니다( 대표적으로 DB Connection을 제대로 반환해주지 않는 경우 등). 강의에서 이런 부분에 대해서 중점적으로 말씀 드리고 있습니다. DB Connection을 사용하는 애플리케이션이라면 이 부분을 다시 확인해 보십시요.
근데 LLM을 사용하는 애플리케이션에서 문제라면 CPU의 메모리가 문제인건가요? GPU의 메모리가 문제인건가요? (GPU 메모리가 문제라 질문을 올리셨을 것 같진 않지만) GPU 메모리가 문제라면 이건 모델 크기나 양자화로 해결하셔야 합니다.
application에서 적은 용량이지만 반복적으로 사용하는데 리소스를 해제하지 않아서 메모리를 과대 사용하는 건지, 아님 원래부터 llm모델을 로딩하거나 inference 시에 과도한 메모리를 사용하고 있는 건지 먼저 확인해 보셔야 할 것 같습니다. Endpoint 레벨에서 메모리 사용량 체크하는 로직을 추가해서 테스트를 해보시는 게 좋을 것 같습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
코드몽키님이 질문하신 FastAPI와 관련하여 메모리 누수 문제에 대해 답변을 드리겠습니다.
메모리 누수 발생 여부: FastAPI 자체는 메모리 누수를 유발하지 않지만, 메모리 누수 문제는 주로 사용된 특정 라이브러리나 비효율적인 코드 사용으로 인해 발생합니다. 프로그램이 할당된 메모리를 적절히 해제하지 않을 때 메모리 누수가 생깁니다.
메모리 누수 방지법:
LLM과 같은 리소스 집약적인 모델 사용 시 주의사항:
이와 관련한 유사한 사례나 강의 내용 속에서 자세한 설명을 확인하려면 다음 링크를 참고해 주세요:
- FastAPI와 메모리 관리
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.