참고 문서

1. FriendliAI “Try on FriendliAI” (가장 간단한 방법)

LG AI Research와 FriendliAI가 협력하여 EXAONE-4.0 계열 모델을 웹 기반 인터페이스에서 직접 체험할 수 있도록 제공하고 있습니다.

  • 별도의 설치나 코드 실행 없이 브라우저에서 바로 사용 가능
  • 상업적 목적(commercial purpose)에서도 이용 가능 (라이선스 포함)
  • 모델 버전 중 하나로 EXAONE-4.0-1.2B 선택 가능

실행 방법

  1. FriendliAI “Try on FriendliAI” 페이지 접속
  2. 모델 목록에서 EXAONE-4.0-1.2B 선택
  3. 질문(prompt) 입력 후 즉시 결과 확인

→ 이 방식이 가장 진입 장벽이 낮고, 테스트 속도도 빠릅니다.

2. Google Colab에서 CLI 코드로 실행하기

Colab(코랩)은 기본 GPU(T4 등)를 무료로 제공합니다. EXAONE-4.0-1.2B는 T4 환경에서도 무리 없이 구동할 수 있습니다.

설치 및 로드

python
# 런타임 > 런타임 유형 변경 > GPU 선택
!pip install -q transformers accelerate torch --upgrade

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer

model_id = "LGAI-EXAONE/EXAONE-4.0-1.2B"

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.float16,   # T4 환경 호환
    device_map="auto",
    trust_remote_code=True
)

streamer = TextStreamer(tokenizer)

기본 대화 예시

python
messages = [{"role": "user", "content": "안녕? 너는 어떤 일을 잘하니?"}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

_ = model.generate(
    **inputs,
    max_new_tokens=200,
    temperature=0.7,
    do_sample=True,
    top_p=0.9,
    streamer=streamer
)

추론(Reasoning) 모드 실행

EXAONE-4.0-1.2B는 추론 모드(reasoning mode)를 지원합니다. apply_chat_template 호출 시 enable_thinking=True를 지정하면 활성화됩니다.

python
messages = [{"role": "user", "content": "3.12와 3.9 중 무엇이 더 큰가? 이유도 설명해줘."}]
inputs = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_tensors="pt",
    enable_thinking=True  # 추론 모드 활성화
).to(model.device)

output = model.generate(
    **inputs,
    max_new_tokens=200,
    temperature=0.6,
    top_p=0.95
)
print(tokenizer.decode(output[0], skip_special_tokens=True))

3. Hugging Face Spaces에 GUI App 만들어 실행하기

필수 파일

  • app.py
  • requirements.txt (transformers, torch, streamlit, accelerate)

app.py

python
import streamlit as st
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

st.title("EXAONE-4.0-1.2B Chat")

model_id = "LGAI-EXAONE/EXAONE-4.0-1.2B"

@st.cache_resource(show_spinner=True)
def load_model():
    tok = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
    mdl = AutoModelForCausalLM.from_pretrained(
        model_id,
        device_map="auto",
        torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
        trust_remote_code=True
    )
    return tok, mdl

tokenizer, model = load_model()

mode = st.radio("모드 선택", ["대화(Non-reasoning)", "추론(Reasoning)"], horizontal=True)
user_input = st.text_input("질문을 입력하세요:")

if user_input:
    messages = [{"role": "user", "content": user_input}]
    if mode == "추론(Reasoning)":
        inputs = tokenizer.apply_chat_template(
            messages,
            tokenize=True,
            add_generation_prompt=True,
            return_tensors="pt",
            enable_thinking=True
        ).to(model.device)
    else:
        inputs = tokenizer.apply_chat_template(
            messages,
            tokenize=True,
            add_generation_prompt=True,
            return_tensors="pt"
        ).to(model.device)

    with st.spinner("생성 중..."):
        output = model.generate(
            **inputs,
            max_new_tokens=256,
            temperature=0.7,
            top_p=0.9
        )
        decoded = tokenizer.decode(output[0], skip_special_tokens=True)
    st.write(decoded)

requirements.txt

plain text
transformers>=4.53.3
torch
streamlit
accelerate

Space 생성 후 파일 업로드 → Build 완료 → 웹 UI에서 바로 대화 가능.

3. vLLM 서버로 배포하기 (선택)

대규모 테스트나 고속 추론은 vLLM(Very Large Language Model) 서버로 모델을 띄우는게 유리합니다.

bash
pip install vllm
vllm serve LGAI-EXAONE/EXAONE-4.0-1.2B \
  --max-model-len 8192 \
  --dtype auto