Spring AI에서 활용하는 주요 AI 개념

Spring AI 프레임워크는 Spring 개발자들이 인공지능 애플리케이션을 쉽게 구축할 수 있도록 돕는 프로젝트입니다. Spring AI는 Python의 LangChain이나 LlamaIndex와 같은 프로젝트에서 영감을 받았지만, 직접적인 포팅은 아닙니다.

Spring AI의 주요 개념

  • 모델(Models): 텍스트, 이미지, 오디오 등 다양한 데이터를 처리하고 생성하는 알고리즘

    입력 타입 생성형 AI 모델 출력타입
    Language / Code (multimodal: image, audio, video) Large Language Model(LLM) Lauguage / Code (multimodal: audio)
    Language / Image Image Generation Model Image /Video
    Audio
    Language Text-to-Voice Model
    Voice-to-Text Model Language
    Audio
    Text/Image/Audio/Video Embedding Model Text/Image/Audio/Video
  • 프롬프트(Prompts): AI 모델의 출력을 유도하는 언어 기반의 입력

    • 프롬프트 템플릿(Prompt Templates)을 사용하면 문맥을 설정하고 특정 값을 동적으로 대체할 수 있다.
  • 임베딩(Embeddings): 텍스트, 이미지, 비디오와 같은 비정형 데이터를 숫자로 변환한 벡터 표현. 이는 콘텐츠 간의 유사성을 파악하는 데 사용되며, RAG(Retrieval Augmented Generation) 패턴의 핵심이다.

  • 토큰(Tokens): AI 모델이 데이터를 처리하는 기본 단위로, 단어는 입력 시 토큰으로 변환되고 출력 시 다시 단어로 변환된다. 토큰 수는 AI 모델 사용 비용 및 컨텍스트 창(Context Window) 한계와 관련이 있습니다. 예를 들어 ChatGPT3는 4K 토큰으로 제한된다.

  • 구조화된 출력(Structured Output): AI 모델의 일반적인 문자열 출력을 JSON과 같은 사용 가능한 데이터 구조로 변환하는 과정. (json형태로 응답이 왔더라도 그냥 json 형태의 문자열일 뿐이다)

  • AI 모델에 특정 데이터 및 API를 참조하는 세가지 기법

    • 미세 조정(Fine Tuning): AI 모델을 특정 데이터에 맞게 재훈련하는 기법
    • RAG(Retrieval Augmented Generation): 외부의 관련 데이터를 프롬프트에 포함시켜 정확한 응답을 얻는 기술
    • 도구 호출(Tool Calling): AI 모델이 외부 시스템(API)과 연동하여 실시간 데이터에 접근하고 처리하도록 하는 기능
  • AI 응답 평가(Evaluating AI responses): AI 모델의 응답이 사용자의 의도와 컨텍스트에 부합하는지 평가. Spring AI는 이를 위한 Evaluator API를 제공합니다.

Spring AI는 기업의 데이터와 API를 AI 모델과 연결하는 문제를 해결하고, 여러 AI 모델 및 벡터 데이터베이스 제공자를 위한 휴대 가능한 API를 제공하여 AI 애플리케이션 개발을 간소화하는 것을 목표로 합니다.

 

댓글

이 블로그의 인기 게시물

Session 대신 JWT를 사용하는 이유

스프링 부트 개발자를 위한 유용한 VSCode 설정

osx 매버릭스에서 영문키 반복 입력되게 하기