본문 바로가기
Public Cloud/Azure

Open AI 활용 전략 : 생성형 AI Application 만들기

by SE_123 2024. 1. 28.
반응형

개요

끊임없이 진화하는 인공 지능 환경에서 가장 흥미로운 분야 중 하나는 생성형 AI(Generative AI)입니다. OpenAI가 주도하고 있는 생성형 AI는 우리가 기계와 상호 작용하고 콘텐츠를 생성하는 방식을 혁신하고있습니다. 

여기서 우리가 주목해야 할 부분은, chatgpt와 같은 생성형 AI를 어떻게 전략적으로 쓸 것인지 입니다. AI 시대에 applictaion은 지능적이어야 합니다. 

 

목차

  1. 문제정의- usecase
  2. 프롬프트 엔지니어링- 좋은 질문
  3. RAG 패턴 - 외부데이터 활용
  4. GPT 모델 선택- GPT, Embedding
  5. UX진화,NoCode- functioncalling
  6. Fine-tuning- 맞춤형 LLM
  7. LLM APP 완성 -LLMOPS

 

01. 문제정의

  • AI 애플리케이션의 목적과 맥락을 명확하게 이해하여야 합니다. 
  • 애플리케이션이 해결하려는 특정 사용 사례(Usecase) 또는 문제 영역을 식별하여 문제를 정의합니다.

 

02.  프롬프트 엔지니어링(Prompt Engineering)

  • 좋은 답변을 얻기위해서는 좋은 질문을 할 수 있어야 합니다. 구체적인 지침을 내릴 수 있도록 명확하고 간결해야 합니다.
  • AI Application이 해야할 task를 [system 역할]에 정의해 주어야 합니다. (role prompting) 

 

03.  외부데이터 활용 워크플로우(RAG)

Retrieval Augmented Generation (RAG) 방식으로 외부 데이터를 활용한 워크플로우를 만들 수있습니다. 주로 벡터 기반(임베딩) 검색을 이용한 하이브리드 기반의 증강 생성을 사용합니다.유사상품 추천, 동의어 맵을 사용한 오타시 조회등의 검색품질을 향상시키는데에 쓰일 수 있습니다. 

예시로 Microsoft Azure에서는 외부데이터를 AI search를 통해 외부 데이터를 색인(index)화하여 저장(import)하고, 질의를 하는 서비스를 사용할 수 있습니다. chatgpt로 데이터를 형식에 맞게 요약하는 등의 과정을 통해, 키워드가 잘 잡혀진 가공된 데이터를 사용해 색인화하는 것이 좋습니다. 

 

 

04. GPT 모델 선택

  1. 유사도 기반 검색은 text-embedding 방식을 사용하는 것이 좋습니다. 
  2. 일반적인 질문은 gpt 3.5를 사용해도 괜찮습니다. 다만, 더 정확한 질문을 해야 정확한 답변을 얻을 수 있습니다. 
  3. 복잡한 질문은 gpt 4(turbo)에서 결과가 강력하게 나타납니다. 하나의 데이터에 더 정확한 답변을 얻을 수 있습니다.  
  4. 이미지를 이해하거나 생성하는 데는 gpt4V 또는  DALL E2,3 등의 모델 선택이 필요합니다. 

 

05. Function Calling 그리고 NoCode

  • 생성형 ai를 사용한 application에 있어서 사용자 인터페이스는 function calling을 통해 진화할 수 있었습니다. Function Calling 은 application이 주어진 형식과 절차 대신 자연스럽게 대화하듯 소통하도록 합니다. (상황에 맞는 function을 호출합니다.)
  • 또한 코드를 몰라도 application 구현이 가능합니다. 예를들어 Advanced Data Analysis(code interpreter)를 사용하여 대화를 통해 코드를 만들고 실행하여 결과 생성합니다. 데이터 분석에 코드를 쓰지 않을 수 있습니다. 
  • GPT- 4 V(예정), DALL-E 3  모델은  이미지를 해석하여 생성하는 기능이 있습니다. 

 

06. 맞춤형 LLM

기존 모델을 사용하는 것 대신, Fine-tuning을 통해 맞춤형 커스텀 LLM 모델을 만들 수 있습니다. Fine-tuning 방식은 대량의 Prompt 토큰을 절감시켜 주고, 맞춤형 스타일로 최적화 시킵니다. 

  • 장점: 계속해서 늘어나는 토큰 수와 비용을 줄일 수 있습니다.
  • 단점: 학습 비용이 매우 많이 들고, 호스팅 비용과 꽤 많은 시간(며칠~몇주)이 따로 발생합니다. 

 

07. App 제작

여러가지 방식으로 Application 제작이 가능합니다. 여기서는 Azure 환경 또는 오픈 소스로 사용할 수 있는 Prompt Flow 툴을 추천합니다. Prompt Flow는 Langchain 대신해서 사용 가능한 LLM 기반 App 개발 단순화 툴이라고 생각하시면 됩니다. 워크플로우 개발, 테스트 및 평가, 프롬프트 튜닝, 비교 및 배포 기능을 가지고 있고, 도커라이즈가  가능하므로 로컬서버에서 바로 테스트 할수 있는 장점이 있습니다. https://microsoft.github.io/promptflow/how-to-guides/quick-start.html

 

 

마무리

도움이 되셨으면합니다. 다른 포스트에서는 위 항목 중,  Prompt Engineering, RAG, Function Calling, Prompt Flow 각각에 대하여 더 자세히 포스팅 해보도록 하겠습니다. 감사합니다.