프라이빗 비전 AI: Reka Edge를 완전히 내 기기에서 실행

발행: (2026년 3월 19일 오후 10:17 GMT+9)
7 분 소요
원문: Dev.to

Source: Dev.to

Reka는 방금 Reka Edge를 출시했습니다. 이 모델은 작지만 강력한 비전‑언어 모델로 완전히 여러분의 컴퓨터에서 실행됩니다. API 키도 없고, 클라우드도 없으며, 데이터가 컴퓨터를 떠나지 않습니다. 저는 Reka에서 일하고 있으며, 이 튜토리얼을 만들면서 정말 즐거웠습니다; 여러분도 제가 즐겼던 만큼 실행해 보시길 바랍니다.

세 단계만 거치면, 여러분은 어떤 이미지든 비디오든 AI에게 무엇이 있는지 물어볼 수 있게 됩니다.

필요 사항

  • 7 B 파라미터 모델을 실행할 수 있는 충분한 RAM을 가진 머신 (~16 GB 권장)
  • Git
  • uv, 빠른 Python 패키지 매니저

설치 방법:

curl -LsSf https://astral.sh/uv/install.sh | sh

이 명령은 macOS, Linux, Windows(WSL)에서 작동합니다. WSL 없이 Windows를 사용 중이라면 Windows 설치 프로그램을 대신 다운로드하세요.

Step 1: 모델 및 추론 코드 가져오기

Hugging Face에서 Reka Edge 저장소를 복제하세요. 여기에는 모델 가중치와 추론 코드가 모두 포함됩니다:

git clone https://huggingface.co/RekaAI/reka-edge-2603
cd reka-edge-2603

다운로드되는 동안 커피를 한 잔 마시세요—모델 가중치가 몇 GB에 달합니다.

단계 2: 대용량 파일 가져오기

Hugging Face는 대용량 파일(모델 가중치 및 이미지)을 Git LFS를 사용해 저장합니다. 클론 후에는 이러한 파일들이 디스크에 존재하지만 실제 내용이 아닌 작은 포인터 파일만 포함합니다.

  1. Git LFS 설치 (플랫폼에 따라 명령어가 다름):

    # macOS
    brew install git-lfs
    
    # Linux / WSL (Ubuntu/Debian)
    sudo apt install git-lfs
  2. Git LFS 초기화:

    git lfs install
  3. 대용량 파일 가져오기 (모델 가중치 및 미디어 샘플):

    git lfs pull

Step 3: 이미지 또는 비디오에 대해 모델에 질문하기

Image

uv run example.py \
  --image ./media/hamburger.jpg \
  --prompt "What is in this image?"

Video

uv run example.py \
  --video ./media/many_penguins.mp4 \
  --prompt "What is in this?"

모델이 로드되고 입력을 처리한 뒤 설명을 출력합니다—모두 로컬에서, 모두 비공개.

더 많은 정보를 얻으려면 다양한 프롬프트를 시도해 보세요

  • "이 장면을 자세히 설명해 주세요."
  • "이 이미지에 보이는 텍스트는 무엇인가요?"
  • "여기에 특이하거나 예상치 못한 것이 있나요?"

Source:

실제로 무슨 일이 일어나고 있나요? (선택 읽기)

모델을 사용하기 위해 이것이 필요하지는 않지만, example.py의 내부가 궁금하다면 간단히 살펴볼 수 있습니다.

1. 하드웨어 선택

if torch.cuda.is_available():
    device = torch.device("cuda")
elif mps_ok:
    device = torch.device("mps")
else:
    device = torch.device("cpu")

스크립트가 자동으로 사용 가능한 최적의 장치(CUDA, Metal, 또는 CPU)를 선택합니다.

2. 모델 로드

processor = AutoProcessor.from_pretrained(args.model, trust_remote_code=True)
model = AutoModelForImageTextToText.from_pretrained(
    args.model, ...).eval()

7 B 파라미터 모델을 복제된 폴더에서 읽어옵니다. 로드 시간은 하드웨어에 따라 약 30 초 정도 소요됩니다.

3. 입력 패키징

messages = [{
    "role": "user",
    "content": [
        {"type": "image", "image": args.image},
        {"type": "text",   "text": args.prompt},
    ],
}]

이미지(또는 비디오)와 프롬프트가 채팅 형식 메시지로 감싸집니다.

4. 토크나이징

inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    return_tensors="pt",
    return_dict=True,
)

프로세서는 이미지를 수치 패치로, 텍스트를 토큰으로 변환합니다.

5. 생성

output_ids = model.generate(
    **inputs,
    max_new_tokens=256,
    do_sample=False,
)

모델은 정지 조건에 도달할 때까지 다음 토큰을 반복적으로 예측합니다.

6. 디코딩

output_text = processor.tokenizer.decode(
    new_tokens,
    skip_special_tokens=True,
)
print(output_text)

토큰 ID가 인간이 읽을 수 있는 텍스트로 다시 변환되어 출력됩니다. 어느 단계에서도 인터넷 연결이 필요하지 않습니다.

비디오 보기

시청과 읽기를 모두 원하신다면, 비디오 버전을 확인하세요:

(여기에 비디오를 삽입하거나 링크하세요)

그거 꽤 멋지죠?

단일 스크립트. API 키도 없고, 클라우드도 없습니다. 7 B 파라미터 비전‑언어 모델을 완전히 로컬 머신에서 실행했으며, Mac이든 Linux든 Windows(WSL)든 상관없이 동작합니다(제가 이 글을 쓸 때 사용한 환경이 바로 WSL입니다).

이 스크립트는 일회성으로 사용하기에 아주 좋습니다: 파일을 넣고, 질문을 하면, 답을 얻을 수 있습니다.

그런데 이 위에 무언가를 만들고 싶다면 어떨까요? 웹 앱, 폴더를 감시하는 도구, 혹은 모델과 반복적으로 통신해야 하는 모든 것 말이죠?

바로 그게 다음 글에서 다룰 내용입니다. Edge를 로컬 API로 래핑하는 방법을 보여드릴 테니, 스크립트를 실행하는 대신 머신에 서비스를 띄워 두고 어떤 앱이든 연결해서 사용할 수 있게 됩니다. 같은 모델, 같은 프라이버시, 이제는 제대로 된 빌딩 블록이 됩니다.

0 조회
Back to Blog

관련 글

더 보기 »

파일 시스템이 디버깅하기 어려운 이유

동기 부여 나는 파일 시스템을 처음부터 구축하고 있다—필요해서가 아니라, 보이지 않는 것을 디버깅하는 것이 추측에 불과하기 때문이다. 파일 시스템을 이해하는 l...

블루 틱이 표시된 메시지, 그러나 도착하지 않음

소개 WhatsApp에서 메시지가 전달 및 읽음으로 표시되지만 AI 에이전트가 해당 메시지를 전혀 확인하지 못한다면, 이는 무음 메시지 손실 문제입니다. 이 기사에서는 이러한 문제에 대한 전문적인 해결책을 제시합니다.