MIT / Apache 2.0 라이센스만으로 끝내는 실전 스택 정리
RAG(Retrieval-Augmented Generation)를 실제 서비스에 붙이려다 보면
기술보다 먼저 걸리는 벽이 ‘라이센스’입니다.
•
이 모델, 상업용 가능한가?
•
프레임워크는 괜찮은데 모델은 조건부 아닌가?
•
나중에 법무팀에서 문제 삼지 않을까?
이 글은 그런 고민을 줄이기 위해
모두 안심하고 사용 가능한 조합만 다룹니다.
이 글에서 보장하는 것
이 가이드에 등장하는 구성은 다음을 모두 만족합니다.
•
•
•
•
•
특히 “플랫폼 라이센스 ≠ 모델 라이센스” 문제를 명확히 구분해서 설명합니다.
최종 결론부터 말하면
가장 안전한 조합은 이거 하나면 충분합니다
구성 요소 | 선택 |
RAG 프레임워크 | LangChain (MIT) |
LLM 모델 | Mistral 7B (Apache 2.0) 또는 Phi-3 (MIT) |
임베딩 모델 | Sentence Transformers (Apache 2.0) |
벡터 DB | Chroma (Apache 2.0) |
실행 환경 | Ollama (MIT, 플랫폼) |
조건 없음, 예외 없음, 상업용 100% 안전
이게 이 글의 핵심 결론입니다.
RAG 스택을 고를 때 가장 중요한 것: 라이센스 구분
많이 헷갈리는 포인트부터 정리해봅니다.
착각하기 쉬운 부분
•
Ollama가 MIT →
모델까지 MIT인 건 아님
•
Hugging Face Transformers가 Apache 2.0 →
모델은 별도 라이센스
반드시 구분해야 할 것
구분 | 예시 |
플랫폼 / 라이브러리 | LangChain, Ollama, Transformers |
모델 자체 | Mistral, Phi-3, Llama, Gemma |
완전 상업용 안전 RAG 스택 (조합 A – 최종 권장)
로컬 실행 + 외부 의존성 없음 + 라이센스 완전 안전
컴포넌트 | 도구 | 라이센스 |
RAG 프레임워크 | LangChain | MIT |
LLM 실행 | Ollama | MIT |
LLM 모델 | Mistral 7B / Phi-3 | Apache 2.0 / MIT |
임베딩 | Sentence Transformers | Apache 2.0 |
벡터 DB | Chroma | Apache 2.0 |
이 조합의 장점
•
•
•
•
•
솔직히 말하면,
“일반적인 RAG 서비스”라면 이 조합으로 못 할 게 거의 없습니다.
상업용으로 완전히 안전한 LLM 모델 정리
조건 없이 사용 가능한 모델들
모델 | 라이센스 | 비고 |
Mistral 7B / 8x7B | Apache 2.0 | 강력한 성능, 적극 추천 |
Phi-3 | MIT | 경량 + 상업용 완전 자유 |
Qwen2 | Apache 2.0 | 다국어 성능 우수 |
StarCoder2 | Apache 2.0 | 코드 특화 |
Falcon | Apache 2.0 | 안정적 |
조건부 모델 (주의)
•
Llama 2 / 3
◦
사용자 수 7억 초과 시 별도 계약 필요
•
Gemma
◦
Google 사용 약관 확인 필수
빠른 시작: 최소 RAG 코드 예제
아래는 LangChain + Chroma + Ollama 기반의 가장 기본적인 RAG 예시입니다.
from langchain.document_loadersimport TextLoader
from langchain.text_splitterimport RecursiveCharacterTextSplitter
from langchain.embeddingsimport HuggingFaceEmbeddings
from langchain.vectorstoresimport Chroma
from langchain.llmsimport Ollama
from langchain.chainsimport RetrievalQA
# 문서 로드
loader = TextLoader("document.txt")
documents = loader.load()
# 문서 분할
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
texts = splitter.split_documents(documents)
# 임베딩
embeddings = HuggingFaceEmbeddings(
model_name="sentence-transformers/all-MiniLM-L6-v2"
)
# 벡터 DB
vectorstore = Chroma.from_documents(texts, embeddings)
# LLM (완전 상업용 안전 모델)
llm = Ollama(model="mistral")# 또는 "phi3"
# RAG 체인
qa = RetrievalQA.from_chain_type(
llm=llm,
retriever=vectorstore.as_retriever()
)
print(qa.run("질문을 입력하세요"))
Python
복사
시스템 요구사항 (현실적인 기준)
최소
•
CPU: 4코어
•
RAM: 8GB
•
GPU: 없어도 가능 (느림)
권장
•
CPU: 8코어 이상
•
RAM: 16GB 이상
•
GPU: VRAM 8GB 이상 (RTX 3060 급)
실무에서 꼭 기억할 체크리스트
“모델 이름보다 LICENSE 파일을 먼저 봐라”
이 한 줄만 기억해도 사고 확률이 확 줄어듭니다.
마무리
RAG 시스템에서 기술은 빠르게 바뀌지만,
라이센스 문제는 나중에 터지면 되돌릴 수 없습니다.
이 글에서 정리한 스택은:
•
지금 써도 안전하고
•
나중에 커져도 안전하고
•
법무팀이 봐도 안전한 구성입니다.
이 조합이면, 마음 편하게 개발하셔도 됩니다.
안녕하세요
•
관련 기술 문의와 R&D 공동 연구 사업 관련 문의는 “glory@keti.re.kr”로 연락 부탁드립니다.
Hello 
•
For technical and business inquiries, please contact me at “glory@keti.re.kr”