Replicate는 어떻게 동작하나요 — 모델·버전·예측 개념 정리
Replicate는 어떻게 동작하나요 — 모델·버전·예측 개념 정리
Replicate를 처음 쓸 때면 "모델을 실행한다"는 게 정확히 어떤 의미인지 헷갈리기 쉬워요. Replicate는 머신러닝의 복잡한 내부나 인프라 관리를 몰라도 클라우드 API로 ML 모델을 실행할 수 있게 해 주는 서비스예요. 다른 사람이 공개한 오픈소스 모델을 바로 실행할 수도 있고, 직접 파인튜닝한 모델이나 처음부터 만든 커스텀 모델을 올려 쓰는 것도 가능해요. 이 글에서 Replicate의 핵심 개념인 모델·버전·예측을 정리해요.
용어 정리
본격적으로 들어가기 전에 알아두면 좋은 용어부터 볼게요.
모델(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 버튼을 찾아 누르면 돼요. 이 버튼은 출력 데이터·파일까지 포함해 예측을 사이트에서 완전히 제거해요.
더 알아보기
- Create a prediction — 예측 만들기
- Prediction lifecycle — 예측 상태 확인
- Client libraries — Python·JavaScript·Go 클라이언트
- HTTP API — API 전체 참조