python이란?
- 병렬 실행 불가능 (https://it-eldorado.tistory.com/160)
- Python 인터프리터 : Python으로 작성된 코드를 한 줄 씩 읽으면서 실행 하는 프로그램 → CPython
- GIL ( Global Interpreter Lock) → 한 프로세스 내에서, Python 인터프리터는 한 시점에 하나의 쓰레드에 의해서만 실행 가능 ( Python 의 객체들에 대한 접근을 보호하는 일종의 뮤텍스 Mutex)
- Mutex : 멀티 쓰레딩 환경에서 여러개의 쓰레더가 어떠한 공유 자원에 접근 가능 할 떄, 그 공유 자원에 접근하기 위해 가지고 있어야 하는 일종의 열쇠
- GIL이 필요한 이유? Race Condition을 방지하기 위해 Mutex 필요
- Python 에서 GC(Garbage Collection)는 Object의 참조횟수가 0이 되면 해당 객체를 메모리에서 삭제 시키는 메커니즘으로 동작
- 여러개의 Thread 가 Python 인터프리터를 동시에 실행하면 Race Condition(하나의 값에 여러 쓰레드가 동시에 접근해서 값이 올바르지 않게 Read/Write 할 수 있는 상태)이 발생 할 수도 있음
- → CPU연산이 비중이 적은, 즉 외부 연산(I/O, Sleep 등) 의 비중이 큰 작업을 할 때는 멀티 쓰레딩이 굉장히 좋은 성능!
LangFlow
- Langchain 설계를 위한 GUI 프로젝트
- https://docs.langflow.org/
- https://github.com/logspace-ai/langflow
FastAPI
- https://fastapi.tiangolo.com/ko/
- FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크
- https://github.com/logspace-ai/langflow
LangChain
- LLM 프롬프트의 실행과 외부 소스의 실행(계산기, 구글 검색, 슬랙 메시지 전송이나 소스코드 실행 등)을 엮어 연쇄(Chaining)하는 것
- https://python.langchain.com/docs/get_started/introduction
- https://corp.onda.me/post/developing-llm-applications-with-langchain
- LangChain Library : Python 및 JavaScript 라이브러리. 수많은 구성 요소에 대한 인터페이스 및 통합, 이러한 구성 요소를 체인 및 에이전트로 결합하기 위한 기본 런타임, 체인 및 에이전트의 기성 구현이 포함
- LangChain Template : 다양한 작업을 위해 쉽게 배포할 수 있는 참조 아키텍처 모음
- LangServe: LangChain REST API로 배포하기 위한 라이브러리
- LangSmith: LLM 프레임워크에 구축된 체인을 디버그, 테스트, 평가 및 모니터링하고 LangChain과 원활하게 통합할 수 있는 개발자 플랫폼
- Pydantic
- https://seoyeonhwng.medium.com/pydantic-살펴보기-27c67273f0be
- pydantic은 파이썬 타입 어노테이션을 사용해서 데이터 유효성 검사와 설정 관리를 하는 라이브러리
- pydantic은 validation이 아닌 parsing 라이브러리이기 때문에 input data를 정의된 타입으로 변환하여 output model의 타입과 제약 조건을 보장
IDE for Python
- Pycharm vs vs Code
'DEVELOP > Backend' 카테고리의 다른 글
LLM Application 개발 이란? (0) | 2023.12.07 |
---|---|
jsonString의 다형성 (feat. Gson) (0) | 2022.04.05 |
[JUnit/Spring] Mockito annotion 차이(@Mock , @MockBean , @Spy , @SpyBean) (0) | 2021.10.27 |
[Spring] DataAccessException 이란? (Spring의 예외처리 - 사라진 SQLException) (0) | 2021.05.20 |
[Spring] @RestControllerAdvice , @ExceptionHandler 로 예외 처리하기 (0) | 2021.05.20 |