Granite-3.0-8B-Instruct

1. Granite-3.0-8B-Instruct 이란?

Granite-3.0-8B-Instruct는 IBM이 개발한 대규모 언어 모델(LLM)로, 약 80억 개의 매개변수를 기반으로 설계되었다. Granite-3.0-8B-Base 모델을 기반으로, 다양한 오픈소스 지침 데이터셋과 IBM 내부 합성 데이터셋을 활용해 미세 조정한 모델이다. 이 모델은 다국어 지원, 코드 생성, 엔터프라이즈 작업에 최적화되어 있으며, 특히 기업용 환경에서 강력한 성능과 비용 효율성을 목표로 제작되었다.


 

2. 주요 특징

  1. 아키텍처
    • 구조: 디코더 기반 Transformer
    • 매개변수 수: 약 8.1B
    • 레이어 수: 40
    • Attention Heads: 32
    • Sequence Length: 4096
    • 활성화 함수: SwiGLU
  2. 지원 언어
    • 영어, 독일어, 한국어, 일본어 등 총 12개 언어를 지원한다.
    • 다국어 대화 및 태스크 처리가 가능하다.
  3. 사용 사례
    • 문서 요약
    • 텍스트 분류 및 추출
    • 질의응답
    • 코드 생성 및 수정
    • 다국어 대화
  4. 훈련 데이터
    • 공개 데이터셋, 합성 데이터, 소량의 인간 검증 데이터를 활용했다.
  5. 특수 토큰 지원
    • <|tool_call|>: 외부 API 호출을 명확히 지시하는 토큰이다.
    • <|start_of_role|>, <|end_of_role|>: 메시지 구분을 위한 역할 정의에 사용된다.
    • 모델 정의 파일인 special_tokens_map.json에 포함된 특수 토큰으로 설계되어, 지침에 따라 정확한 작업 수행이 가능하다.

 

3. 활용 방법

Granite-3.0-8B-Instruct는 IBM의 Hugging Face 라이브러리를 통해 쉽게 사용할 수 있다. 아래는 Python 코드 예제이다:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "ibm-granite/granite-3.0-8b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

input_text = "IBM 연구소 중 미국에 있는 위치를 알려주세요."
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))

특히, <|tool_call|> 특수 토큰을 활용한 함수 호출도 가능하다. 예를 들어, 주식 가격 조회와 같은 작업을 위해 다음과 같은 프롬프트를 사용할 수 있다:

<|start_of_role|>available_tools<|end_of_role|>
[
    {
        "name": "get_stock_price",
        "description": "Retrieve the current price of a given stock ticker.",
        "parameters": {
            "type": "object",
            "properties": {
                "ticker": {
                    "type": "string",
                    "description": "The stock ticker symbol (e.g., AAPL for Apple Inc.)."
                }
            },
            "required": ["ticker"]
        }
    }
]
<|end_of_text|>
<|start_of_role|>system<|end_of_role|>The AI must only use the provided tools to respond.<|end_of_text|>
<|start_of_role|>user<|end_of_role|>What is the current price of IBM stock?<|end_of_text|>
<|start_of_role|>assistant<|end_of_role|>

 

4. 테스트 결과

  1. 영어 프롬프트:
    • <|tool_call|> 형식을 활용해 함수 호출 응답을 성공적으로 생성했다.
    • 예:
      <|tool_call|>{"name": "get_stock_price", "arguments": {"ticker": "IBM"}}<|end_of_text|>
  2. 한글 프롬프트:
    • JSON 형식으로 응답이 생성되었지만 <|tool_call|> 특수 토큰이 포함되지 않았다.
    • 예:
      {
          "tool": {
              "name": "get_stock_price",
              "arguments": {"ticker": "IBM"}
          }
      }
  3. 한계:
    • 한글 프롬프트에서 특수 토큰 활용에 대한 학습 부족이 원인일 가능성이 높다.
    • 추가적인 한글 최적화 및 학습 데이터 보강이 필요하다.

 

5. 결론 및 개선 사항

Granite-3.0-8B-Instruct는 IBM이 제공하는 최신 대규모 언어 모델로, 기업 환경에서의 활용도를 극대화할 수 있는 강력한 도구이다. 그러나 한글 프롬프트에서 특수 토큰 생성이 제한되는 점은 해결해야 할 과제이다.

개선 사항

  • 한글 프롬프트 최적화: <|tool_call|> 생성 안정성을 높이기 위한 학습 데이터 강화 필요.
  • 사용 사례 확장: 코드 생성, 질의응답, 다국어 처리에서 성능 개선 연구.

Granite-3.0-8B-Instruct는 연구와 실무 모두에서 활용 가치가 높은 모델로, 다양한 산업에서 생산성 향상을 기대할 수 있다.


 

참고 자료