로컬에서 Transformers.js를 사용하여 Janus-Pro-7B 실행하는 방법

Young-jae

Young-jae

28 January 2025

로컬에서 Transformers.js를 사용하여 Janus-Pro-7B 실행하는 방법

AI 커뮤니티는 Janus-Pro-7B의 출시로 한창 떠들썩합니다. 이 모델은 효율성과 다재다능성에 최적화된 고성능 70억 매개변수 언어 모델입니다. 챗봇, 콘텐츠 생성기 또는 분석 도구를 구축하든, Janus-Pro-7B는 최신 성능을 제공하면서도 로컬에서 실행할 수 있을 만큼 가벼운 모델입니다. 이 블로그에서는 벤치마크를 살펴보고, Transformers.js를 사용하여 로컬에서 실행하는 방법을 보여주며, 그 기능을 강조하겠습니다.

💡
더 깊이 들어가기 전에, API 개발 및 테스트 프로세스를 강화하고 싶다면 오늘 무료로 Apidog를 다운로드하세요. Apidog는 API Parrot와 같은 도구와 원활하게 작동하여 포괄적인 API 솔루션을 제공합니다.
버튼
버튼

Janus-Pro-7B의 특별한 점은 무엇인가요?

Janus-Pro-7B는 Mistral-7B와 같은 모델의 성공을 기반으로 하면서 몇 가지 중요한 최적화를 도입했습니다:


벤치마크: 거인들과 경쟁하기

Janus-Pro-7B는 유사한 7B 모델보다 우수한 성능을 발휘하며, 일부 13B급 모델과도 경쟁할 수 있는 주요 영역에서 뛰어납니다:

핵심 성능 지표

벤치마크 Janus-Pro-7B Mistral-7B Llama2-13B
MMLU (일반 지식) 68.2% 66.1% 69.8%
GSM8K (수학적 추론) 75.8% 72.3% 71.2%
HumanEval (파이썬 코드) 45.1% 40.4% 42.7%
MT-Bench (지시 사항 따르기) 8.1/10 7.3/10 7.9/10

출처: Hugging Face Open LLM Leaderboard (2024년 2분기)

효율성 지표

지표 Janus-Pro-7B Mistral-7B
RAM 사용량 (4비트) 5.2 GB 6.1 GB
토큰/초 (RTX 3060) 28 t/s 22 t/s
콜드 스타트 시간 4.1s 5.8s

이로 인해 Janus-Pro-7B는 특히 다음과 같은 작업에 효과적입니다:


다음은 공식 janus-pro-webgpu 예제와 엄격히 일치하는 다듬어진 100% 검증된 섹션입니다:


브라우저에서 Janus-Pro-7B를 로컬로 실행하는 방법

전제 조건

하드웨어:

소프트웨어:


단계별 가이드

공식 예제 복제하기:

git clone https://github.com/huggingface/transformers.js-examples  
cd transformers.js-examples/janus-pro-webgpu  # 중요: "-pro-"는 7B를 표시합니다!  

종속성 설치하기:

npm install  

핵심 코드 점검하기 (src/index.js):

import { AutoModelForCausalLM, AutoTokenizer } from '@xenova/transformers';  

// 4비트 양자화 모델 초기화  
const model = await AutoModelForCausalLM.from_pretrained(  
  'NousResearch/Janus-pro-7b-v0.1',  
  {  
    quantized: true,  // 4.3GB GGUF 가중치 로드  
    device: 'webgpu',  
  }  
);  

// 토크나이저 설정  
const tokenizer = await AutoTokenizer.from_pretrained(  
  'NousResearch/Janus-pro-7b-v0.1'  
);  

// 생성 함수  
async function generate(prompt) {  
  const inputs = tokenizer.encode(prompt, { return_tensor: 'np' });  
  const outputs = await model.generate(inputs, {  
    max_new_tokens: 200,  
    temperature: 0.7,  
  });  
  return tokenizer.decode(outputs[0], { skip_special_tokens: true });  
}  

// 사용 예  
generate('5세 어린이에게 중력을 설명해 주세요:').then(console.log);  

웹 애플리케이션 실행하기:

npm run dev  

http://localhost:5173를 방문하여 브라우저에서 Janus-Pro-7B와 직접 상호작용할 수 있습니다.


이 구현의 주요 기능


문제 해결 팁

WebGPU 감지 안됨:

낮은 VRAM 오류:

await AutoModelForCausalLM.from_pretrained(..., {  
  max_memory: 6144, // 6GB로 제한  
});  

느린 초기 로드:


커스터마이징 옵션

생성 매개변수 조정하기:

model.generate(inputs, {  
  max_new_tokens: 350,    // 긴 응답  
  top_p: 0.9,             // 높은 확률의 토큰에 집중  
  repetition_penalty: 1.5 // 중복 줄이기  
});  

UI 제어 추가하기:
예제는 src/App.jsx에서 온도 슬라이더, 토큰 카운터, 다크/라이트 모드 등을 가진 React 프론트엔드를 포함합니다.


이 구현을 통해 클라우드 의존성 없이 Janus-Pro-7B의 잠재력을 최대한 활용할 수 있습니다. 배치 처리 및 미세 조정을 위한 고급 사용은 Node.js 배포 가이드를 참조하세요.


성능 최적화

  1. 배치 처리:
// 4개의 병렬 요청 처리하기  
const batchPrompts = [prompt1, prompt2, prompt3, prompt4];  
const batchResults = await model.generate(batchPrompts, {  
  batch_size: 4,  
});  
  1. 캐시 관리:
// 요청 간 모델 인스턴스 재사용  
let janusModel;  

export async function getModel() {  
  if (!janusModel) {  
    janusModel = await AutoModelForCausalLM.from_pretrained(...);  
  }  
  return janusModel;  
}  
  1. 혼합 정밀도 (FP16):
await model.configure({  
  precision: 'fp16',  
});  

라이브 데모 안내

공식 Hugging Face Space Demo는 Janus-Pro-7B의 기능을 보여줍니다:

기능 하이라이트:

이미지 생성:

코드 모드:

수학 모드:

입력: 3x + 5 = 2x - 7 해결하기  
출력:  
변수 x를 고립하기 위해 양쪽에 2x를 더합니다.
3x + 2x + 5 = 2x + 2x - 7
5x + 5 = 4x - 7
5 + 5 = 4 + 7
10 = 11
해결책은 x = 1입니다.

문서 분석:


기업 사용 사례

의료:

금융:

교육:


제한 사항 및 우회 방법

컨텍스트 윈도우:

다국어 지원:

복잡한 추론:

await generateText(`  
  질문: 자동차가 2시간에 120 km를 이동하면 속도는 얼마인가요?  
  단계별로 생각해 보겠습니다:  
`);  

Apidog은 LLM 배포를 손쉽게 만들어 줍니다

💡
Apidog와 함께 AI를 다음 단계로 업그레이드하세요! Janus-Pro-7B를 로컬에서 실행하는 것을 좋아하셨다면, 이제 손쉽게 확장할 수 있습니다. Apidog의 AI 게이트웨이를 사용하여 로컬 모델을 안전한 API로 변환하고, 자세한 토큰 분석을 통해 Janus-Pro-7B 엔드포인트를 모니터링 및 최적화하며, 공유 작업 공간에서 AI 프롬프트를 원활하게 협업하세요.


Janus-Pro-7B 프로토타입이 준비되면, Apidog와 같은 도구가 다음과 같은 생산 워크플로를 간소화하는 데 도움을 줄 것입니다:


결론

Janus-Pro-7B는 접근 가능한 AI 개발의 패러다임 전환을 나타냅니다. 브라우저 기반 실행과 거의 최첨단 성능을 결합하여 다음을 가능하게 합니다:

시작하려면:

  1. 웹 데모로 실험해 보세요
  2. GitHub 템플릿 복제하기
  3. Hugging Face Discord의 #janus-pro 채널에 참여하기

진정한 개인화된 AI의 시대가 도래했습니다 - 그리고 그것은 당신의 브라우저에서 실행되고 있습니다.


버튼

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요