전체 글131 Python Ray 라이브러리 (병렬처리) 1.병렬처리 이전의 방법 multiprocessing에 대해multiprocessing의 라이브러리 경우 프로세스 스포닝(Process Spawning)을 지원하여 자원 내에서 사용 가능한 다중 프로세서를 활용 가능하게 하고 생성한 프로세스 풀을 제어하는 프로세스 풀 객체(pool)을 통해 병렬 처리를 한다. [프로세스 스포닝: 부모 프로세스가 운영 체제에 요청하여 자식 프로세스를 생성하는 과정]그러나 multiprocessing는 자식 프로세스한테 작업해야하는 큰 데이터를 전달할때 pickle을 사용해 직렬화(데이터를 바이트로 변환)한 뒤 전달한다.만약 20개 프로세스에서 작업하도록 설정했다면 그 만큼 직렬화한 데이터 복사본을 만들어야 하므로 큰 메모리 사용하고,직렬화 데이터 받은 프로세스는 원래 .. 2025. 1. 7. 랭체인으로 Gemini 실습(모델 설정에 temperature,top_k,top_p에 대해) app.py의 일부 코드from langchain_google_genai import ChatGoogleGenerativeAI,GoogleGenerativeAIEmbeddingsload_dotenv()def create_app(): app = Flask(__name__) geminiLangchain = ChatGoogleGenerativeAI( model="gemini-2.0-flash-exp", google_api_key=os.getenv("GEMINI_API_KEY"), temperature=0 ) app.config['geminiLangchain'] = geminiLangchain # Flask 애플리케이션 실행if __name__ == '__main__':.. 2025. 1. 6. Langchain은 무엇일까? 모두의AI 유튜브 채널 보고 개인 정리용랭체인 처음 접하는거라 기록 내용이 틀릴 수도 있다.1. 랭체인을 왜 사용해야할까? 일단 ChatGPT를 직접 사용할경우 해당 모델이 학습한 기간의 정보까지만 답변하고,엉뚱하고 거짓된 답변하고,토큰의 제한이 있다. 이런 단점을 해결하기 위해 파인튜닝(모델을 학습시키는?),제로~N샷러닝,인컨텍스트 러닝 등 있는데 랭체인이 인컨텍스트러닝 도와주는 도구다. 랭체인의 구조에는 저렇게 있는데인덱스는 예를들어 사용자가 제공하는 PDF나 인터넷에 어떤 문서를 쉽게 탐색 가능하게 할 수 있도록 해주는 모듈이다.즉 PDF문서에 내용을 임베딩후 벡터DB에 넣고 탐색하는거다. 체인은 원래 사용자가 프롬프트 하나를 주면 그걸 답변해주고 끝나는건데 거기서 끝나지 않고,랭체인이 프롬.. 2025. 1. 6. Flask에서 Swagger사용 1. Swagger 란?* RESTful API를 설계, 빌드, 문서화 및 소비하는 데 도움이 되는 오픈 소스 도구 집합, 즉 API의 명세와 문서화를 위한 도구이다* API 문서화를 직접 문서에 적고 하는 것은 매우 귀찮고, API가 수정될때마다 문서를 같이 수정하는 것은 더욱 귀찮아서 이러한 불편함을 줄여주기 위해 사용하고, 프로젝트를 모르는 사람이 프로젝트 테스트 해볼시 이해하기 쉽게 해주는 용도다. 2. 설치하고 시작전 알아보기일단 swagger를 아예 처음 사용해보는거라 완벽한 답은 아직 잘 모르겠는데,ChatGpt도 그렇고 Gemini도 그렇고 구글 블로그들 봐도 대부분 테스트 코드가 아닌 실제 API로 테스트 해보는거로 나와있고 답변해서, Swagger로 실제 API 호출해서 테스트 해볼거다.. 2024. 12. 30. 10. 도커 컴포즈 -(3) 7. 컴포즈로 컨테이너를 동시에 2개 띄워보기이전에 컴포즈의 장점중 여러개의 컨테이너를 하나의 환경에서 실행하고 관리하니 편하고 좋기때문에 사용한다 해서 이번에 동시에 2개 띄워보기 (1) Redis 랑 Mysql 동시에 띄워보기이전과 같이 컨테이너 1개 띄웠을때랑 별 차이 없이 services 하위에 저렇게 따로따로 적고 실행시키면 끝이다. (2) Spring Boot 랑 Mysql 동시에 띄워보기일단 스프링 부트 프로젝트니 이전과 마찬가지로 도커 파일로 이렇게 하나 이번엔 jar 파일을 절대 경로로 적어본다 위에서 했던 redis,mysql 처럼 services 하위에 저렇게 각각 적는데 이번에 보면 mysql 코드쪽에 MYSQL_DATABASE는 컨테이너 생성할때 데이터베이스도 생성해주는 옵션이다... 2024. 11. 19. [만료된 액세스 토큰 정보 가져오기]JWT expired at 2024-11-18T08:40:20Z. Current time: 2024-11-18T08:41:18Z, a difference of 58493 milliseconds. Allowed clock skew: 0 milliseconds. 에러 메세지io.jsonwebtoken.ExpiredJwtException: JWT expired at 2024-11-18T08:40:20Z. Current time: 2024-11-18T08:41:18Z, a difference of 58493 milliseconds. Allowed clock skew: 0 milliseconds. at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:427) ~[jjwt-impl-0.11.5.jar:0.11.5] at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:529) ~[jjwt-impl-0.11.5.jar:0.11.5].. 2024. 11. 18. 이전 1 2 3 4 5 6 ··· 22 다음