Open Source Projects

Open Source Projects by SK telecom

1 - A.X LLM Series

SK텔레콤의 독자 개발 한국어 특화 대규모 언어 모델

A.X LLM

A.X LLM은 SK텔레콤이 독자 개발한 한국어 특화 대규모 언어 모델(Large Language Model)입니다. A.X 3.1 시리즈와 A.X 4.0 시리즈가 오픈소스로 공개되어 있으며, 학술 연구 및 상업적 용도로 자유롭게 사용할 수 있습니다.

프로젝트 정보

주요 특징

A.X 4.0 시리즈

  • 72B Standard Model: 대규모 한국어 처리 최적화
  • 7B Light Model: 효율적인 경량 모델
  • 한국어 토큰 효율성: GPT-4o 대비 약 33% 향상
  • 실제 서비스 적용: SK텔레콤 A. 통화 요약 서비스에 사용 중

A.X 3.1 시리즈

  • 34B Standard Model: 독자 개발 sovereign AI 모델
  • Light Model: 경량화 버전
  • 코딩 및 수학적 추론 능력 대폭 향상
  • KMMLU 벤치마크: 69.20점 (A.X 4.0 대비 약 88% 성능)

A.X 4.0-VL-Light

  • Vision-Language 모델: 이미지와 텍스트 통합 처리
  • 멀티모달 AI: 시각 정보 이해 및 분석 가능

기술적 성과

한국어 처리 능력

  • KMMLU(대규모 한국어 이해 벤치마크)에서 우수한 성능
  • 한국어 대화, 문서 이해, 요약에 특화
  • 한국 비즈니스 환경에 최적화

모델 아키텍처

  • A.X 3 시리즈: 처음부터 독자 개발한 sovereign AI
  • A.X 4 시리즈: 오픈소스 모델에 대규모 한국어 데이터로 CPT(Continual Pre-Training) 적용

활용 사례

SK텔레콤 내부 서비스

  • A. 통화 요약 서비스 (2025년 5월~)
  • 고객 상담 챗봇
  • 사내 문서 분석 및 검색

기대 용도

  • 한국어 대화형 AI 서비스
  • 텍스트 생성 및 요약
  • 번역 및 감성 분석
  • 코드 생성 및 수학 문제 해결
  • 한국어 콘텐츠 생성

벤치마크 성능

모델파라미터 수KMMLU 점수특징
A.X 4.0 Standard72B78.3최고 성능
A.X 3.1 Standard34B69.2독자 개발
A.X 4.0 Light7B-효율성
A.X 3.1 Light--경량화

Hugging Face에서 사용하기

from transformers import AutoModelForCausalLM, AutoTokenizer

# A.X 4.0 Standard 모델 로드
model_name = "SKT-AI/A.X-4.0-Standard"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# 텍스트 생성
input_text = "한국어 언어 모델의 발전은"
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(inputs, max_length=100)
print(tokenizer.decode(outputs[0]))

리소스

2 - KoBERT

한국어 BERT 사전 학습 모델 (Korean BERT pre-trained cased)

KoBERT

KoBERT는 구글이 공개한 인공지능(AI) 언어모델 BERT의 한국어 성능 한계를 극복하기 위해 SK텔레콤이 개발한 한국어 특화 BERT 모델입니다.

프로젝트 정보

주요 특징

1. 한국어 최적화

  • 위키피디아와 뉴스에서 수집한 수백만 개의 한국어 문장으로 학습
  • 대규모 한국어 말뭉치(corpus) 활용
  • 한국어의 불규칙한 언어 변화 특성 반영

2. 효율적인 토큰화

  • 데이터 기반 토큰화(Tokenization) 기법 적용
  • 기존 대비 27% 적은 토큰으로 2.6% 이상의 성능 향상
  • 한국어 특성에 맞는 서브워드 분할

3. 분산 학습 기술

  • Ring-reduce 기반 분산 학습 기술 사용
  • 십억 개 이상의 문장을 다수의 머신에서 빠르게 학습
  • 대량 데이터의 효율적 처리

4. 다양한 프레임워크 지원

  • PyTorch
  • TensorFlow
  • ONNX
  • MXNet

활용 분야

SK텔레콤 내부 활용

  1. 콜센터 상담 챗봇 - 상담사 업무 효율화
  2. AI 법무/특허 검색 서비스 - 문서 검색 및 분석
  3. 기계독해(MRC) - 마케팅 자료에서 정확한 답변 추출
  4. 문맥 기반 문서 벡터 생성 - 유사 문서 추천 (특허 출원)

일반적인 활용 사례

  • 감성 분석 (Sentiment Analysis)
  • 개체명 인식 (Named Entity Recognition)
  • 문서 분류 (Text Classification)
  • 질의응답 시스템 (Question Answering)
  • 문장 유사도 측정
  • 텍스트 임베딩 생성

설치 및 사용법

설치

pip install kobert-transformers
pip install transformers

기본 사용

from kobert_transformers import get_tokenizer
from transformers import BertModel

# 토크나이저와 모델 로드
tokenizer = get_tokenizer()
model = BertModel.from_pretrained('skt/kobert-base-v1')

# 텍스트 토큰화 및 임베딩 생성
text = "한국어 자연어 처리는 재미있습니다"
inputs = tokenizer(text, return_tensors='pt')
outputs = model(inputs)

# 문장 임베딩 추출
sentence_embedding = outputs.last_hidden_state[:, 0, :].squeeze()
print(sentence_embedding.shape)  # torch.Size([768])

PyTorch 예제

import torch
from kobert_transformers import get_kobert_model, get_tokenizer

# 모델과 토크나이저 가져오기
tokenizer = get_tokenizer()
model = get_kobert_model()

# 텍스트 처리
text = "KoBERT는 한국어 이해에 특화되어 있습니다."
encoded = tokenizer.encode_plus(
    text,
    add_special_tokens=True,
    max_length=128,
    padding='max_length',
    return_attention_mask=True,
    return_tensors='pt'
)

# 모델 추론
with torch.no_grad():
    outputs = model(
        input_ids=encoded['input_ids'],
        attention_mask=encoded['attention_mask']
    )
    
pooled_output = outputs[1]  # [CLS] 토큰의 출력
print(pooled_output.shape)  # torch.Size([1, 768])

성능 벤치마크

TaskDatasetKoBERT ScoreBaseline
감성 분석NSMC89.63%87.42%
NERKorean NER86.11%84.13%
문장 유사도KorSTS81.59%77.92%
질의응답KorQuAD 1.052.81 (EM)48.42

모델 스펙

  • Architecture: BERT-base
  • Vocabulary Size: 8,002
  • Hidden Size: 768
  • Number of Layers: 12
  • Number of Attention Heads: 12
  • Intermediate Size: 3,072
  • Max Sequence Length: 512

커뮤니티 및 지원

기술 지원

관련 프로젝트

Hugging Face에서 사용

from transformers import AutoModel, AutoTokenizer

# Hugging Face Hub에서 직접 로드
model_name = "skt/kobert-base-v1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)

# 추론
text = "KoBERT는 한국어 자연어 처리의 표준입니다"
inputs = tokenizer(text, return_tensors="pt")
outputs = model(inputs)

라이선스

Apache License 2.0 - 상업적 사용 가능

리소스

3 - KoGPT2

한국어 GPT-2 사전 학습 모델 (Korean GPT-2 pretrained cased)

KoGPT2

KoGPT2는 한국어로 학습된 오픈소스 기반 GPT-2 모델입니다. OpenAI의 GPT-2 아키텍처를 한국어에 최적화하여, 텍스트 생성, 문장 완성, 챗봇 등 한국어 해석이 필요한 다양한 애플리케이션에서 사용할 수 있습니다.

프로젝트 정보

  • 개발: SK텔레콤
  • 출시일: 2020년 (한국 최초 한국어 GPT-2 오픈소스)
  • 라이선스: CC-BY-NC-ND 4.0 (수정 및 재배포 가능)
  • GitHub: https://github.com/SKT-AI/KoGPT2

주요 특징

1. 한국어 텍스트 생성

  • 자연스러운 한국어 문장 생성
  • 문맥을 고려한 문장 완성
  • 창의적인 텍스트 작성 지원

2. 다양한 활용 분야

  • 챗봇 구축: 대화형 AI 서비스
  • 텍스트 감성 예측: 감정 분석
  • 응답 생성: 질문에 대한 답변 생성
  • 문장 완성: 문맥 기반 텍스트 완성
  • 스토리텔링: 창작 지원

3. 개발자 친화적

  • 다양한 프레임워크 지원 (PyTorch, ONNX)
  • 쉬운 설치 및 사용
  • 풍부한 예제 코드 제공

설치 및 사용법

설치

pip install kogpt2-transformers

기본 텍스트 생성

import torch
from transformers import GPT2LMHeadModel
from kogpt2_transformers import get_kogpt2_tokenizer

# 모델과 토크나이저 로드
tokenizer = get_kogpt2_tokenizer()
model = GPT2LMHeadModel.from_pretrained('skt/kogpt2-base-v2')

# 텍스트 생성
text = "인공지능의 미래는"
input_ids = tokenizer.encode(text, return_tensors='pt')

# 생성 파라미터 설정
gen_ids = model.generate(
    input_ids,
    max_length=128,
    repetition_penalty=2.0,
    pad_token_id=tokenizer.pad_token_id,
    eos_token_id=tokenizer.eos_token_id,
    bos_token_id=tokenizer.bos_token_id,
    use_cache=True
)

# 결과 디코딩
generated = tokenizer.decode(gen_ids[0])
print(generated)

Hugging Face Transformers 사용

from transformers import pipeline

# 텍스트 생성 파이프라인
generator = pipeline(
    'text-generation',
    model='skt/kogpt2-base-v2',
    tokenizer='skt/kogpt2-base-v2'
)

# 텍스트 생성
prompt = "한국어 자연어 처리 기술은"
result = generator(
    prompt,
    max_length=100,
    num_return_sequences=3,
    temperature=0.8
)

for i, text in enumerate(result):
    print(f"Result {i+1}: {text['generated_text']}")

감성 분석 예제

from kogpt2_transformers import get_kogpt2_tokenizer
from transformers import GPT2LMHeadModel
import torch

tokenizer = get_kogpt2_tokenizer()
model = GPT2LMHeadModel.from_pretrained('skt/kogpt2-base-v2')

# 감성 분석을 위한 프롬프트
reviews = [
    "이 영화는 정말 재미있었다",
    "서비스가 형편없었다",
    "가격 대비 훌륭한 제품이다"
]

for review in reviews:
    # 긍정/부정 판단을 위한 프롬프트 엔지니어링
    prompt = f"{review} 이 리뷰는"
    input_ids = tokenizer.encode(prompt, return_tensors='pt')
    
    with torch.no_grad():
        output = model.generate(
            input_ids,
            max_length=len(input_ids[0]) + 10,
            num_return_sequences=1,
            temperature=0.7
        )
    
    result = tokenizer.decode(output[0])
    print(f"Original: {review}")
    print(f"Analysis: {result}\n")

챗봇 구축 예제

from kogpt2_transformers import get_kogpt2_tokenizer
from transformers import GPT2LMHeadModel
import torch

tokenizer = get_kogpt2_tokenizer()
model = GPT2LMHeadModel.from_pretrained('skt/kogpt2-base-v2')

def generate_response(user_input, context=""):
    """대화 기반 응답 생성"""
    prompt = f"{context}\n사용자: {user_input}\nAI:"
    
    input_ids = tokenizer.encode(prompt, return_tensors='pt')
    
    with torch.no_grad():
        output = model.generate(
            input_ids,
            max_length=input_ids.shape[1] + 50,
            temperature=0.8,
            top_k=50,
            top_p=0.95,
            repetition_penalty=1.2,
            do_sample=True
        )
    
    response = tokenizer.decode(output[0], skip_special_tokens=True)
    # AI 응답 부분만 추출
    ai_response = response.split("AI:")[-1].strip()
    
    return ai_response

# 챗봇 대화 예제
context = ""
while True:
    user_input = input("You: ")
    if user_input.lower() in ['quit', 'exit', '종료']:
        break
    
    response = generate_response(user_input, context)
    print(f"AI: {response}\n")
    
    # 컨텍스트 업데이트
    context += f"사용자: {user_input}\nAI: {response}\n"

모델 스펙

  • Architecture: GPT-2
  • Parameters: 125M
  • Vocabulary Size: 50,000
  • Context Length: 1,024 tokens
  • Training Data: 한국어 웹 문서, 뉴스, 위키피디아

성능 벤치마크

TaskDatasetKoGPT2 Score
텍스트 생성 품질인간 평가4.2/5.0
문장 완성자체 평가85%
대화 자연스러움자체 평가78%

관련 프로젝트

리소스

라이선스

CC-BY-NC-ND 4.0 - 비상업적 사용, 수정 및 재배포 가능

4 - KoBART

한국어 BART 모델 (Korean BART)

KoBART는 한국어 텍스트 생성 및 요약에 특화된 BART(Bidirectional and Auto-Regressive Transformers) 모델입니다. Encoder-Decoder 구조를 활용하여 다양한 자연어 생성 태스크에서 우수한 성능을 발휘합니다.

KoBART

프로젝트 정보

주요 특징

1. Encoder-Decoder 아키텍처

  • 양방향 인코더와 자동회귀 디코더
  • 텍스트 생성 및 변환 작업에 최적화
  • 문맥 이해와 생성의 균형

2. 주요 활용 분야

  • 텍스트 요약: 긴 문서를 짧게 요약
  • 문장 생성: 자연스러운 한국어 문장 생성
  • 번역: 문장 변환 및 paraphrasing
  • 대화 생성: 질문-응답 시스템

3. 한국어 최적화

  • 한국어 코퍼스로 사전학습
  • 한국어 문법 및 어순 고려
  • 다양한 한국어 도메인 지원

설치 및 사용법

설치

pip install transformers torch

기본 텍스트 요약

from transformers import PreTrainedTokenizerFast, BartForConditionalGeneration

# 모델 및 토크나이저 로드
tokenizer = PreTrainedTokenizerFast.from_pretrained('gogamza/kobart-base-v2')
model = BartForConditionalGeneration.from_pretrained('gogamza/kobart-base-v2')

# 긴 텍스트 요약
text = """
SK텔레콤은 한국 최대의 이동통신사로, AI, 5G, 클라우드 등 
다양한 ICT 기술을 보유하고 있습니다. 최근에는 한국어 
대규모 언어 모델 A.X를 개발하여 오픈소스로 공개했으며,
이를 통해 국내 AI 생태계 발전에 기여하고 있습니다.
"""

# 인코딩 및 요약 생성
inputs = tokenizer(text, return_tensors='pt', max_length=1024, truncation=True)
summary_ids = model.generate(
    inputs['input_ids'],
    max_length=150,
    num_beams=5,
    early_stopping=True
)

# 디코딩
summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
print(summary)

문장 생성 예제

# Prompt 기반 텍스트 생성
prompt = "인공지능 기술의 발전으로"

inputs = tokenizer(prompt, return_tensors='pt')
outputs = model.generate(
    inputs['input_ids'],
    max_length=100,
    temperature=0.8,
    do_sample=True,
    top_k=50
)

generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(generated_text)

모델 스펙

  • Architecture: BART
  • Parameters: 123M
  • Vocabulary Size: 30,000
  • Max Sequence Length: 1,024
  • Encoder Layers: 6
  • Decoder Layers: 6

Fine-tuning 가이드

from transformers import Trainer, TrainingArguments

# Fine-tuning 설정
training_args = TrainingArguments(
    output_dir='./kobart-finetuned',
    num_train_epochs=3,
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    warmup_steps=500,
    weight_decay=0.01,
    logging_dir='./logs',
    evaluation_strategy="epoch"
)

# Trainer 생성
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset
)

# 학습 실행
trainer.train()

리소스

5 - onot

SPDX 기반 오픈소스 고지문 생성 도구

onot는 SPDX(Software Package Data Exchange) 문서를 기반으로 오픈소스 고지문을 자동으로 생성하는 컴플라이언스 도구입니다. SK텔레콤과 카카오가 공동으로 개발하여 오픈소스로 공개했습니다.

프로젝트 정보

주요 특징

1. SPDX 기반 자동화

  • SPDX 2.3 표준 지원
  • JSON, RDF, YAML, Tag-Value 형식 지원
  • 자동 파싱 및 검증

2. 다양한 출력 형식

  • HTML 고지문
  • Markdown 고지문
  • Excel 형식
  • 사용자 정의 템플릿 지원

3. 컴플라이언스 지원

  • 라이선스 의무사항 자동 정리
  • 저작권 정보 취합
  • 소스코드 제공 여부 표시
  • 고지 의무 자동 판단

설치 및 사용법

설치

# PyPI에서 설치
pip install onot

# 또는 소스에서 설치
git clone https://github.com/sktelecom/onot.git
cd onot
pip install -e .

기본 사용법

# SPDX 파일로부터 HTML 고지문 생성
onot -i sbom.spdx.json -o notice.html

# Markdown 형식으로 생성
onot -i sbom.spdx.json -o notice.md -f markdown

# Excel 형식으로 생성
onot -i sbom.spdx.json -o notice.xlsx -f excel

``

SPDX 문서 예시

{
  "spdxVersion": "SPDX-2.3",
  "dataLicense": "CC0-1.0",
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "MyProject",
  "packages": [
    {
      "SPDXID": "SPDXRef-Package-1",
      "name": "express",
      "versionInfo": "4.18.2",
      "licenseConcluded": "MIT",
      "copyrightText": "Copyright (c) 2009-2014 TJ Holowaychuk",
      "downloadLocation": "https://registry.npmjs.org/express/-/express-4.18.2.tgz"
    }
  ]
}

라이선스

Apache License 2.0 - 상업적 사용 가능

리소스

6 - SKT Passkey

WebAuthn/FIDO2 기반 비밀번호 없는 인증 플랫폼

SKT Passkey는 WebAuthn(FIDO2) 표준 기반의 비밀번호 없는 인증(Passwordless Authentication) 솔루션입니다. 생체 인식이나 디바이스 PIN을 사용하여 안전하고 편리한 로그인 경험을 제공하며, SK텔레콤의 Passkey Platform과 통합하여 엔터프라이즈급 신뢰성을 갖춘 인증 시스템을 구축할 수 있습니다.

Passkey

프로젝트 정보

Passkey란?

Passkey는 기존 비밀번호를 대체하는 안전하고 편리한 인증 방식입니다:

SKT Passkey Platform의 장점

1. 엔터프라이즈급 안정성

  • 대규모 배포 검증
  • 24/7 안정적인 서비스
  • SK텔레콤의 인프라 활용

2. 쉬운 통합

  • RESTful API 제공
  • 개발자 친화적 SDK
  • 상세한 문서 및 샘플 코드
  • OAuth2 기반 인증

3. 표준 준수

  • W3C WebAuthn 표준
  • FIDO2 인증
  • 오픈 표준 지원

4. 멀티 플랫폼 지원

  • 웹 브라우저 (Chrome, Safari, Edge 등)
  • iOS 애플리케이션
  • Android 애플리케이션
  • 크로스 디바이스 인증

리소스

공식 문서

관련 표준 및 문서