부스트캠프 AI Tech 4기
-
Jax GPU CUDA 설치 pip install --upgrade pip # Installs the wheel compatible with CUDA 11 and cuDNN 8.6 or newer. # Note: wheels only available on linux. pip install --upgrade "jax[cuda]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html https://github.com/google/jax/#pip-installation-gpu-cuda GitHub - google/jax: Composable transformations of Python+NumPy programs: differentiat..
Pretraining T5 with JAXJax GPU CUDA 설치 pip install --upgrade pip # Installs the wheel compatible with CUDA 11 and cuDNN 8.6 or newer. # Note: wheels only available on linux. pip install --upgrade "jax[cuda]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html https://github.com/google/jax/#pip-installation-gpu-cuda GitHub - google/jax: Composable transformations of Python+NumPy programs: differentiat..
2023.02.25 -
tokenizer에 tokens를 추가하는 과정에서 jax에는 pytorch의 resize_token_embeddings 같은 method가 구현되어있지 않은 것 같아 보여서 embedding size를 어떻게 바꿔주어야 할지 고민해보았다. model의 embedding 파라미터에 random initalize한 추가해줘야하는 만큼의 shape을 만들어주어서 concat해주는 방식으로 shape을 맞춰주었다. if model_args.model_name_or_path: model = FlaxT5ForConditionalGeneration.from_pretrained( model_args.model_name_or_path, config=config, seed=training_args.seed, dtype=..
How to resize_embedding size with JAXtokenizer에 tokens를 추가하는 과정에서 jax에는 pytorch의 resize_token_embeddings 같은 method가 구현되어있지 않은 것 같아 보여서 embedding size를 어떻게 바꿔주어야 할지 고민해보았다. model의 embedding 파라미터에 random initalize한 추가해줘야하는 만큼의 shape을 만들어주어서 concat해주는 방식으로 shape을 맞춰주었다. if model_args.model_name_or_path: model = FlaxT5ForConditionalGeneration.from_pretrained( model_args.model_name_or_path, config=config, seed=training_args.seed, dtype=..
2023.02.25 -
▮ nohup nohup은 No Hang Ups의 약자로 백그라운드로 지속적으로 실행하는 프로세스를 의미한다. nohup은 실행을 현재 사용자 세션이 아닌 운영체제가 제공하는 백그라운드 공간에서 실행을 한다. &는 사용자 세션에서 실행되며, 화면 출력만 백그라운드로 전환한 상태이다. nohup [프로세스] & nohup python3 -u filename.py & nohup.out 을 통해 실행 내용을 확인할 수 있는데, nohup.out은 파일을 기록할 때 Python에서 출력을 바로 업데이트하지 않고 버퍼에 기록하였다가 업데이트하기 때문에 출력내용이 바로 기록되지 않는다. 이를 Python에서도 인지하여 python을 실행할 때 출력내용을 바로 업데이트할 수 있도록 -u 인자를 제공한다. nohup...
[WEEK17/18/19] TIPS▮ nohup nohup은 No Hang Ups의 약자로 백그라운드로 지속적으로 실행하는 프로세스를 의미한다. nohup은 실행을 현재 사용자 세션이 아닌 운영체제가 제공하는 백그라운드 공간에서 실행을 한다. &는 사용자 세션에서 실행되며, 화면 출력만 백그라운드로 전환한 상태이다. nohup [프로세스] & nohup python3 -u filename.py & nohup.out 을 통해 실행 내용을 확인할 수 있는데, nohup.out은 파일을 기록할 때 Python에서 출력을 바로 업데이트하지 않고 버퍼에 기록하였다가 업데이트하기 때문에 출력내용이 바로 기록되지 않는다. 이를 Python에서도 인지하여 python을 실행할 때 출력내용을 바로 업데이트할 수 있도록 -u 인자를 제공한다. nohup...
2023.02.25 -
1. Event Handler 이벤트가 발생했을 때, 그 처리를 담당하는 함수 FastAPI에선 Application이 실행할 때, 종료될 때 특정 함수를 실행할 수 있음 from fastapi import FastAPI import uvicorn # Fastapi 객체 생성 app = FastAPI() items = {} @app.on_event("startup") def startup_event(): print("startup event") items["foo"] = {"name": "Fighters"} @app.on_event("shutdown") def shutdown_event(): print("shutdown event") with open("log.txt", mode="a") as log: ..
[Product Serving Part.5] FastAPI 기초-31. Event Handler 이벤트가 발생했을 때, 그 처리를 담당하는 함수 FastAPI에선 Application이 실행할 때, 종료될 때 특정 함수를 실행할 수 있음 from fastapi import FastAPI import uvicorn # Fastapi 객체 생성 app = FastAPI() items = {} @app.on_event("startup") def startup_event(): print("startup event") items["foo"] = {"name": "Fighters"} @app.on_event("shutdown") def shutdown_event(): print("shutdown event") with open("log.txt", mode="a") as log: ..
2023.01.16 -
Path Parameter vs Query Parameter 웹에서 GET Method를 사용해 데이터 전송 가능 ID가 402인 사용자 정보를 가져오고 싶을 때는? Path Parameter 방식 /users/402 서버에 402라는 값을 전달하고 변수로 사용 해당 경로에 존재하는 내용이 없으면 404 Error 발생 Query Parameter 방식 /users?id=402 Query String API 뒤에 입력 데이터를 함께 제공하는 방식으로 사용 Query String은 Key, Value의 쌍으로 이루어지며 &로 연결해 여러 데이터를 넘길 수 있음 데이터가 없는 경우 빈 리스트가 나옴 → Error Handling이 필요 언제 어떤 방식을 사용해야 할까? Resource를 식별해야 할 경우 →..
[Product Serving Part.5] FastAPI 기초-2 / PydanticPath Parameter vs Query Parameter 웹에서 GET Method를 사용해 데이터 전송 가능 ID가 402인 사용자 정보를 가져오고 싶을 때는? Path Parameter 방식 /users/402 서버에 402라는 값을 전달하고 변수로 사용 해당 경로에 존재하는 내용이 없으면 404 Error 발생 Query Parameter 방식 /users?id=402 Query String API 뒤에 입력 데이터를 함께 제공하는 방식으로 사용 Query String은 Key, Value의 쌍으로 이루어지며 &로 연결해 여러 데이터를 넘길 수 있음 데이터가 없는 경우 빈 리스트가 나옴 → Error Handling이 필요 언제 어떤 방식을 사용해야 할까? Resource를 식별해야 할 경우 →..
2023.01.16 -
FastAPI는 최근 떠오르는 Python Web Framework이다. Node.js, go와 대등한 성능 Flask와 비슷한 구조, Microservice에 적합, 쉽다 Swagger 자동 생성 Pydantic을 이용한 Serialization FastAPI vs Flask Flask보다 Router 문법이 간결하다. Flask @app.route("/books", method=["GET"]) def books_table_update(): Title = request.args.get("title", None) Author = request.args.get("author", None) FastAPI @app.get("/books_title/{book_title}/author/{author}") asyn..
[Product Serving Part.5] Poetry로 프로젝트 생성 및 FastAPI 기초FastAPI는 최근 떠오르는 Python Web Framework이다. Node.js, go와 대등한 성능 Flask와 비슷한 구조, Microservice에 적합, 쉽다 Swagger 자동 생성 Pydantic을 이용한 Serialization FastAPI vs Flask Flask보다 Router 문법이 간결하다. Flask @app.route("/books", method=["GET"]) def books_table_update(): Title = request.args.get("title", None) Author = request.args.get("author", None) FastAPI @app.get("/books_title/{book_title}/author/{author}") asyn..
2023.01.16 -
Server의 형태 모놀리식 아키텍쳐 (Monolithic Architecture) 하나의 큰 서버에서 모든 것을 처리 마이크로서비스 아키텍쳐 (Microservice Architecture - MSA) 개별 서버로 구성하고 서로 통신하도록 하는 경우 REST API 정보를 주고 받을 때 사용되는 형식 → REST란 형식의 API 요청의 모습을 보고 어떤 일을 하는지 알 수 있음 기본적인 데이터 처리 : 생성, 조회, 수정, 삭제 CRUD : Create, Read, Update, Delete Representational State Transfer의 약자 → Resource, Method, Representation of Resource로 구성 Resource : Unique한 ID를 가지는 리소스, ..
[Product Serving Part.5] 백엔드 프로그래밍Server의 형태 모놀리식 아키텍쳐 (Monolithic Architecture) 하나의 큰 서버에서 모든 것을 처리 마이크로서비스 아키텍쳐 (Microservice Architecture - MSA) 개별 서버로 구성하고 서로 통신하도록 하는 경우 REST API 정보를 주고 받을 때 사용되는 형식 → REST란 형식의 API 요청의 모습을 보고 어떤 일을 하는지 알 수 있음 기본적인 데이터 처리 : 생성, 조회, 수정, 삭제 CRUD : Create, Read, Update, Delete Representational State Transfer의 약자 → Resource, Method, Representation of Resource로 구성 Resource : Unique한 ID를 가지는 리소스, ..
2023.01.16 -
1. CI/CD(Continious Integration/Continuous deploymen) Local : 각자의 컴퓨터에서 개발, 각자의 환경 통일을 위해 Docker 등을 사용 Dev : Local에서 개발한 기능을 테스트할 수 있는 환경 Staging : Production 환경에 배포하기 전에 운영하거나 보안, 성능을 측정하는 환경 Production : 실제 서비스를 운영하는 환경 서버에 코드를 보내는 것과 반복적으로 진행할 Test를 어떻게 실행해야할까? Dev Branch에 Merge되면 → Local에서 Git Pull & Test 실행 후 괜찮으면 코드 배포 (FTP로 파일 전송) → 매번 해주기가 너무 번거롭다! → CI (Continuous Integration:지속적 통합) !!..
[Product Serving Part.4] Github Action을 사용한 CI/CD1. CI/CD(Continious Integration/Continuous deploymen) Local : 각자의 컴퓨터에서 개발, 각자의 환경 통일을 위해 Docker 등을 사용 Dev : Local에서 개발한 기능을 테스트할 수 있는 환경 Staging : Production 환경에 배포하기 전에 운영하거나 보안, 성능을 측정하는 환경 Production : 실제 서비스를 운영하는 환경 서버에 코드를 보내는 것과 반복적으로 진행할 Test를 어떻게 실행해야할까? Dev Branch에 Merge되면 → Local에서 Git Pull & Test 실행 후 괜찮으면 코드 배포 (FTP로 파일 전송) → 매번 해주기가 너무 번거롭다! → CI (Continuous Integration:지속적 통합) !!..
2023.01.13