Replicate는 어떻게 동작하나요 — 모델·버전·예측 개념 정리

Replicate는 어떻게 동작하나요 — 모델·버전·예측 개념 정리

Replicate를 처음 쓸 때면 "모델을 실행한다"는 게 정확히 어떤 의미인지 헷갈리기 쉬워요. Replicate는 머신러닝의 복잡한 내부나 인프라 관리를 몰라도 클라우드 API로 ML 모델을 실행할 수 있게 해 주는 서비스예요. 다른 사람이 공개한 오픈소스 모델을 바로 실행할 수도 있고, 직접 파인튜닝한 모델이나 처음부터 만든 커스텀 모델을 올려 쓰는 것도 가능해요. 이 글에서 Replicate의 핵심 개념인 모델·버전·예측을 정리해요.

출처: Replicate Docs — How does Replicate work?

용어 정리

본격적으로 들어가기 전에 알아두면 좋은 용어부터 볼게요.

모델(Model)

머신러닝에서 '모델'이라는 단어는 문맥에 따라 여러 뜻을 담아요. 소스 코드일 수도, 학습된 가중치일 수도, 아키텍처일 수도, 그 조합일 수도 있죠. Replicate에서 "모델"이라 하면 보통 학습·패키징·게시가 끝나 입력을 받고 출력을 돌려주는 소프트웨어 프로그램을 가리켜요.

버전(Version)

일반 소프트웨어가 그렇듯 ML 모델도 시간이 지나며 변하고 개선돼요. 이런 변화는 새 버전으로 배포돼요. 모델 작성자가 새 데이터로 재학습하거나, 소스 코드의 버그를 고치거나, 의존성을 업데이트하면 그 변화가 모델 동작에 영향을 줄 수 있어요. 이 변화들은 새 버전으로 게시되므로, 작성자는 기존 버전을 쓰는 사람들의 경험을 해치지 않으면서 개선할 수 있어요. 버전 관리는 머신러닝을 재현 가능하게 만드는 핵심이에요. 언제 어디서 실행하든 모델이 일관되게 동작하도록 보장해 주죠.

예측(Prediction)

모델을 실행할 때마다 예측을 만드는 거예요. 예측은 모델 실행 한 번의 결과를 나타내는 객체로, 제공한 입력, 모델이 돌려준 출력, 그리고 모델 버전·생성자·상태·타임스탬프 같은 메타데이터를 담고 있어요.

클라우드 API로 모델 실행하기

Replicate에서 모델은 클라우드 API나 웹으로 실행할 수 있어요.

웹 인터페이스는 모델을 처음 시도해볼 때 좋은 출발점이에요. 모델의 모든 입력을 시각적으로 보여주고, 브라우저에서 바로 모델을 실행할 수 있는 폼을 만들어 주죠.

모델에 익숙해졌다면, 이제 그것을 채팅 봇·웹사이트·모바일 앱 같은 데 통합할 차례예요. 여기서 API가 등장해요.

Replicate의 HTTP API는 어떤 프로그래밍 언어로도 쓸 수 있고, Python·JavaScript 등 언어별 클라이언트 라이브러리를 쓰면 더 편리해요.

Python 클라이언트로 예측을 만드는 예시입니다. 몇 줄이면 끝나요.

import replicate

output = replicate.run(
    "black-forest-labs/flux-schnell",
    input={"prompt": "an astronaut riding a horse"}
)
# Save the output image
with open('output.png', 'wb') as f:
    f.write(output[0].read())

JavaScript 클라이언트도 비슷해요.

import Replicate from "replicate";

const replicate = new Replicate({auth: process.env.REPLICATE_API_TOKEN});
const model = "black-forest-labs/flux-schnell";
const input = {prompt: "a 19th century portrait of a raccoon gentleman wearing a suit"};
const output = await replicate.run(model, { input });
// Save the output image
fs.writeFileSync("output.png", output[0]);

예측이 어떻게 동작하나요

모델을 실행할 때마다 예측이 만들어져요. 몇 밀리초 안에 결과를 돌려주는 모델도 있지만, 텍스트 프롬프트로 이미지를 만드는 생성형 모델처럼 오래 걸리는 것도 있어요.

오래 걸리는 모델은 API를 폴링해 예측 상태를 확인해야 해요. 예측이 가질 수 있는 상태는 다음과 같아요.

  • starting: 예측이 시작되는 중. 이 상태가 몇 초 이상 지속되면 보통 새 워커(cold boot)를 띄우는 중이에요.
  • processing: 모델의 predict() 메서드가 실행 중.
  • succeeded: 예측이 성공적으로 완료됨.
  • failed: 처리 중 오류 발생.
  • canceled: 사용자에 의해 취소됨.

예측은 30분 동안 실행되면 타임아웃돼요. 30분을 넘기는 타임아웃이 필요하면 Replicate에 문의해야 해요.

로그인한 상태라면 대시보드에서 예측 목록을 상태·실행 시간 등 요약과 함께 볼 수 있어요.

예측 공유와 삭제

예측은 사용자 계정에 연결되고, 기본적으로 본인만 볼 수 있어요. 웹 인터페이스를 쓴다면 Share 버튼을 눌러 예측을 공개해 다른 사람도 보게 할 수 있어요.

API로 만든 예측은 입력·출력(파일 포함)이 1시간 후 자동으로 삭제돼요. 파일을 계속 쓰려면 출력을 직접 저장해 둬야 해요. 예측 데이터 저장 방법은 webhooks 가이드를 참고하세요.

웹 인터페이스로 만든 예측은 직접 삭제하지 않는 한 무기한 보관돼요. 웹사이트에서 예측을 삭제하려면 대시보드로 가서 해당 예측 페이지의 Delete 버튼을 찾아 누르면 돼요. 이 버튼은 출력 데이터·파일까지 포함해 예측을 사이트에서 완전히 제거해요.

더 알아보기