오픈 소스 LLM의 부상과 활용
- GPT-2의 한계와 초기 AI 모델의 도전:
- 2019년 공개된 GPT-2는 GPU를 요구하는 높은 연산 비용과 CPU 사용 시 수 분이 소요되는 비효율성으로 인해 접근성이 제한적이었습니다.
- Hugging Face는 GPT-2의 경량 버전을 제공했으며, Andrew Karpathy의 nanoGPT는 로컬 훈련을 가능하게 했으나 여전히 상당한 리소스가 필요했습니다.
- 다양한 오픈 소스 LLM의 등장:
- 현재는 Mistral, Qwen, Phi, Gemma(Google), Deepseek, Elmo, Llama(Meta), Grok, 그리고 폴란드어 특화 모델 등 수많은 오픈 소스 LLM이 존재합니다.
- 이러한 모델들은 대부분 로컬 환경에서 실행 가능하여, 클라우드 서비스에 의존하지 않고 AI 기능을 구현할 수 있는 기반을 제공합니다.
- LLM을 넘어선 AI 모델들:
- 텍스트 및 이미지 임베딩, 음성 인식(Whisper), 이미지 생성(Stable Diffusion 등)과 같은 다양한 AI 모델들도 오픈 소스로 제공됩니다.
- Whisper는 Ruby Gem으로 제공되어 음성 파일을 텍스트로 변환하는 기능을 로컬에서 쉽게 구현할 수 있습니다.
Ruby와 AI/ML의 접목
- Ruby 래퍼(Wrapper) 젬을 통한 통합:
whisper
젬과 같이 기존 AI 모델을 Ruby 애플리케이션에 쉽게 통합할 수 있는 래퍼 젬들이 존재합니다.- 이를 통해 OpenAI API 호출을 로컬 Whisper 모델 호출로 대체하는 등 유연한 전환이 가능합니다.
- Llama.cpp와 Llamafile을 활용한 LLM 로컬 실행:
llama.cpp
는 LLM을 로컬에서 효율적으로 실행할 수 있게 하며,llamafile
은 단일 실행 파일로 여러 운영체제에서 모델을 구동할 수 있도록 지원합니다.- Ruby 애플리케이션은 OpenAI 인터페이스와 유사한 방식으로 로컬 LLM(예: Gemma)과 통신할 수 있어, 기존 코드 변경을 최소화하며 클라우드 의존성을 줄일 수 있습니다.
- Onyx Runtime을 이용한 저수준 모델 제어:
- Onyx(Open Neural Network Exchange)는 다양한 프레임워크에서 훈련된 모델을 실행할 수 있는 표준 형식입니다.
- Ruby용
Onyx Runtime
젬(Anjuku Kane 개발)을 통해 Hugging Face에서 다운로드한 Onyx 형식 모델을 Ruby에서 직접 로드하고 예측을 수행할 수 있습니다. - 이미지 벡터 검색 데모를 통해 텍스트-이미지, 이미지-이미지 검색 등 복잡한 AI 기능을 Ruby로 구현하는 사례를 보여주었습니다. (예: 다국어 이미지 검색 지원)
오픈 소스 AI/ML 모델 사용의 이점
- 낮은 지연 시간(Low Latency): 로컬에서 모델을 실행함으로써 외부 API 호출에 따른 네트워크 지연을 줄일 수 있습니다.
- 데이터 규정 준수(Data Compliance): 민감한 데이터를 외부 클라우드 서비스로 전송할 필요 없이 로컬에서 처리하여 HIPAA와 같은 데이터 규정을 준수할 수 있습니다.
- 비용 효율성(Cost Efficiency): 토큰 단위 과금이 아닌 컴퓨팅 자원 사용량에 따라 비용을 지불하므로, 대규모 또는 실시간 처리 시 비용을 절감할 수 있습니다.
- Ruby의 적합성: Ruby는 아직 모델 훈련 도구는 부족하지만, 모델 실행 및 AI 애플리케이션과의 상호작용을 위한 강력한 도구들을 갖추고 있어 AI/ML 워크로드에 매우 적합합니다.