[Modal] 03. Secret
·
ML
Secret은 Modal에서 실행하는 이미지(컨테이너) 안에서 사용할 환경변수를 제공합니다. API 토큰의 키 값과 같은 경우 외부에 노출되지 않아야 하는 민감한 정보이기 때문에, Secret을 이용해 안전하게 관리할 수 있습니다.Secret 등록하기대시보드를 통해서Modal 대시보드를 연 뒤 Secrets 탭으로 이동합니다. 처음 상태라면 아래와 같이 화연에 보여집니다.Get started 또는 Create new secret으로 새로운 Secret을 생성해줍니다. 아래와 같이 몇 가지의 선택지들이 나오는데, 간단하게 Custom을 선택합니다.Name에 전체 Secret 이름을 입력한 후, Enrionment variables에서 환경 변수들을 등록해주면 됩니다. 여기서는 r2-credentials라는..
[Modal] 02. Function
·
ML
Function은 Modal에서 실행가능한 최소 단위입니다. 하나의 App 안에 여러 개의 Function이 존재할 수 있지만, 이들은 모두 독립적으로 실행하거나 확장할 수 있습니다. 덕분에 서버에서 특정 Function을 호출하지 않으면 그 Function은 컨테이너에도 올라가지 않아 자원을 효율적으로 사용할 수 있습니다. 일반적으로 Function 클래스를 직접 사용하여 생성하지 않고, @app.function( ) 데코레이션을 통해 생성합니다.@app.function()def f(): print("Hello world!")@app.function()def g(): print("Goodbye world!")이런 식으로 정의된 함수는 App에 속하게 되고, 나중에 remote( )로 실행할수..
[Modal] 01. App
·
ML
App은 함께 배포되는 함수들과 클래스들의 묶음입니다.import modalapp = modal.App()하나 이상의 Function을 묶어 관리하게 되며, 하나의 namespace를 구성하여 서로 다른 App 사이에는 이름이 충돌되지 않습니다. App의 구분Ephemeral Appsmodal run 명령어 또는 app.run( ) 메소드로 실행되는 App입니다. 임시로 만들어지는 App이며, 스크립트가 실행되는 동안만 지속됩니다. 프로세스가 종료되거나 클라이언트가 더 이상 서버와 연결되어 있지 않다고 판단되면 App도 종료됩니다.def main(): # ... with app.run(): some_modal_function.remote()이런 방식으로 App을 실행하면 로그나 진..
[Modal] App, Function, Entrypoint
·
ML
AppApp은 Modal에서 실행되는 프로그램의 단위입니다. 하나 이상의 Function을 묶어 관리하게 되며, 하나의 namespace를 구성하여 서로 다른 App 사이에는 이름이 충돌되지 않습니다.import modalapp = modal.App()def __init__( self, name: Optional[str] = None, *, tags: Optional[dict[str, str]] = None, # Additional metadata to set on the App image: Optional[_Image] = None, # Default Image for the App (otherwise default to `modal.Image.debian_slim()`)..
[Modal] Modal에 대하여
·
ML
Modal은 AI 및 데이터 팀을 위한 서버리스 컴퓨팅 플랫폼으로, 고성능 AI 인프라를 손쉽게 활용할 수 있도록 설계된 서비스입니다. 작성한 코드가 일반적인 서버에서 실행하기 힘들 만큼 무거울 때, 작성한 코드를 그대로 가져와 대신 실행시킬 수 있습니다. 기본적인 ML 모델 추론 부터 시작해 데이터 파이프라인, 배치 작업을 위한 즉시 자동 확장 기능도 제공합니다. Python 코드를 그대로 작성하여 Flask 등 벡엔드 도구와 연동하기 쉬우며, 일반적인 배포 서비스와 달리 GPU 사용이 필요할 때만 자원을 사용하기 때문에 비용 효율과 탄력성이 높은 편입니다.설치먼저 modal과 관련된 의존관계를 설치합니다.pip install modal그 후 웹 브라우저에서 인증을 받아 API 토큰을 발급받아야 합..
[GAN] Style 적대적 생성 신경망 (StyleGAN)
·
ML
StyleGAN은 style transfer를 기반으로 인물의 구체적인 특징(style)을 구분하여 부분적으로 합성할 수 있게 해줍니다. 따라서 StyleGAN의 구조에 있어서 얼마나 style을 잘 잡아내는지, 그 style이 다른 style의 변화에 영향을 주지 않고 독립적인지를 따져보아야 합니다.1. 개요구조 설명에 앞서 몇 가지 용어를 알아야 합니다.1.1. Entanglement / disentanglement 앞서 말했듯이 styleGAN에서 중요한 점은 어떤 style이 다른 style에게 영향을 미쳐서는 안된다는 것입니다.만약 각각의 style들이 서로에게 영향을 주는 상태라면 이를 engtangled라고 부릅니다.반대로 각각의 style들이 독립적으로 존재한다면 disentangled라고..
[GAN] 조건적 적대 생성 신경망 (CGAN)
·
ML
일반적인 GAN의 경우 생성하는 위조 데이터를 원하는 속성의 데이터로 생성해낼 수 없다는 단점이 있습니다. 예를 들어 강아지 사진을 생성하는 GAN 모델의 경우, 무작위 강아지 사진을 생성할 수 는 있지만, 푸들이나 리트리버와 같이 특정한 견종을 지정하여 생성할 수 없습니다.  이를 개선하기 위해 GAN에 추가적인 조건(condition)을 제공하여 구체적인 속성의 데이터를 생성할 수 있게 해주는 조건적 적대 생성 신경망(Conditional Generative Adversarial Network, CGAN)이 개발되었습니다. [1] 1. 구조 CGAN은 원하는 조건을 나타내는 condition 변수를 가지고 있음을 제외하면 GAN과 동일한 구조를 가지고 있습니다.이 condition 변수는 상황에 따라..
[GAN] 적대적 생성 신경망(GAN)
·
ML
적대적 생성 신경망(Genrative Adversarial Neural network, GAN) 혹은 적대적 생성 모델은 신경망의 응용 기술 중 하나로, 주로 주어진 상황에 맞는 위조 데이터를 만들어내는 데 사용됩니다. 예를 들어 GAN은 가짜 인물사진이나 문장을 만들어낼 수 있습니다.  GAN은 2014년 신경정보시스템처리학회에(NIPS)에서  Ian Goodfellow에 의해 처음으로 제시되었고, 이후로 여러 변형과 응용을 거치며 널리 쓰이게 되었습니다. 1. 개요 GAN은 크게 Generator(생성자)와 Discriminator(판별자) 두 개의 모델로 이루어져 있으며, 이들이 서로 적대적으로 경쟁하면서 각자의 성능을 향상시키게 됩니다. - Generator : 위조값을 생성합니다. Discrim..