데이터 엔지니어링

AI 엔지니어링! 당신도 할 수 있어! (1)

neubillylee 2025. 3. 14. 12:26

서문

 

  1. 혼란스런 단어  : ChatGPT

    ChatGPT가 출시되었을 때, 많은 자들에게는 놀라움의 극치였습니다. 혼란 그 자체였습니다. 저를 놀라게 한 것은 모델의 크기나 기능이 아니었습니다. 10년 넘게 AI 커뮤니티는 모델의 규모를 확장하면 성능이 향상된다는 것을 알고 있었습니다. 2012년, AlexNet 저자들은 그들의 획기적인 논문에서 다음과 같이 언급했습니다: “우리의 모든 실험은 더 빠른 GPU와 더 큰 데이터셋을 기다리는 것만으로도 우리의 결과를 개선할 수 있다고 제안합니다. ”저를 놀라게 한 것은 이 기능 향상이 열어준 애플리케이션의 엄청난 수였습니다. 저는 모델 품질 지표의 작은 증가가 애플리케이션에서의 겸손한 증가로 이어질 것이라고 생각했습니다. 대신, 새로운 가능성의 폭발로 이어졌습니다."
    과연 그럴까요?

  2. AI 엔지니어링 되는 진입장벽 높다?

    이러한 새로운 AI 기능은 AI 애플리케이션에 대한 수요를 증가시켰을 뿐만 아니라 개발자들이 진입 장벽을 낮추는 데도 기여했습니다. 실제로 AI 애플리케이션을 구축하는 것이 매우 쉬워졌습니다. 코드 한 줄도 작성하지 않고 애플리케이션을 만드는 것도 가능합니다. 그러나 이러한 변화는 AI를 전문 분야에서 모든 사람이 사용할 수 있는 강력한 개발 도구로 변모시켰습니다. 많은 AI 엔지니어링 기술의 친숙함과 사용 용이성은 사람들이 AI 엔지니어링에 실질적으로 새로운 것이 없다고 생각하도록 잘못된 인식을 줄 수 있습니다.

    AI 애플리케이션 구축을 위한 많은 원칙이 여전히 동일하지만, 그럼에도 AI 모델의 규모와 향상된 기능은 새로운 솔루션이 필요한 기회와 도전을 안겨다 줍니다. 오늘날 AI 채택이 새롭게 보이는 것도 놀라울 따름이죠. 비록, 이는 이미 존재하는 기술 위에 구축된 것입니다. 언어 모델링에 대한 논문은 1950년대에 나왔습니다. 검색 증강 생성(RAG) 애플리케이션은 “RAG”라는 용어가 등장하기 오래 전부터 검색 및 추천 시스템을 지원해온 검색 기술을 기반으로 하고 있습니다. 전통적인 기계 학습 애플리케이션을 배포하기 위한 모범 사례는 다양한 결롸로 나옵니다. '체계적인 실험', '철저한 평가', '더 빠르고 저렴한 모델을 위한 끊임없는 최적화'라는 다양한 타이틀은 여전히 기초 모델 기반 애플리케이션과 작업할 때의 모범 사례입니다.

  3.  기초 모델과 검증된(?) 기술

    기초 모델을 실제 문제 해결에 적응시키는 종합적인 과정을 다루며, 다른 엔지니어링 분야에서 검증된 기술과 기초 모델과 함께 새롭게 떠오르는 기술을 포괄합니다. 글쓰기로 결심한 이유는 이러합니다. 그저 배우고 싶었기 때문이죠. 정말 많은 것을 배웠습니다. 모르는 것도 너무 많습니다. 제가 작업한 프로젝트, 읽은 논문, 인터뷰들로부터 배웠습니다. 주요 AI 연구소(OpenAI, Google, Anthropic 등)에 있는 연구자들, 프레임워크 개발자들(NVIDIA, Meta, Hugging Face, Anyscale, LangChain, LlamaIndex 등), 다양한 규모의 기업에서 AI/데이터를 담당하는 임원들, 제품 관리자, 커뮤니티 연구자들, 독립 애플리케이션 개발자들과의 빈번한 대화와 인터뷰에서 받은 아이디어를 사용했습니다.

  4.  AI 엔지니어 경험과 검증은 어떻게?

    가정을 검증하고 다른 관점을 제시하며 새로운 문제와 접근 방식을 보여준 초반 독자들의 일부 섹션은 블로그에 공유된 후 커뮤니티로부터 수천 개의 댓글을 받고 싶으며, 많은 댓글이 새로운 관점을 주거나 가설을 확인해주길 기대합니다. 이 내용이 여러분의 손에 들어간 지금, 여러분의 경험과 관점이 독특하기 때문에 이 학습 과정이 저에게 계속되기를 바랍니다. 피드백이 있다면 언제든지 neuavenue@gmail.com, billylee@neuavenue.com  이메일을 통해 저에게 공유해 주시기 바랍니다.

  5.  질문과 함께 하는 솔류션 제공

    이 블러그는 대규모 언어 모델(LLM)과 대규모 다중 모달 모델(LMM)을 포함한 기초 모델을 특정 애플리케이션에 적응시키는 프레임워크를 제공합니다. 애플리케이션을 구축하는 방법은 여러 가지가 있습니다. 다양한 솔루션을 아웃라인되게 하며, 여러분의 요구에 가장 적합한 솔루션을 평가하기 위해 질문을 제기합니다. 이러한 질문에 대한 답변을 도와줄 수 있는 많은 질문 중 일부는 다음과 같습니다:

    내 애플리케이션을 어떻게 평가하나요?
    AI를 사용하여 AI 출력 결과를 평가할 수 있나요?
    프롬프트 엔지니어링의 모범 사례는 무엇인가요?
    에이전트란 무엇인가요?
    에이전트를 어떻게 구축하고 평가하나요?
    얼마나 많은 데이터가 필요할까요?
    내 데이터의 품질을 어떻게 검증하나요?
    애플리케이션을 지속적으로 개선하기 위한 피드백 루프를 어떻게 구축하나요?
    내 모델을 더 빠르고 저렴하며 안전하게 만드는 방법은 무엇인가요?
    모델을 언제 미세 조정해야 할까요? 언제 미세 조정하지 말아야 할까요?
    왜 RAG가 작동하나요? RAG를 수행하기 위한 전략은 무엇인가요?
    환각은 무엇이 원인인가요? 환각을 어떻게 감지하고 완화할 수 있나요?
    이 AI 애플리케이션을 구축해야 할까요?

  6. 세 가지 질문을 AIE 에게 

    이 블러그는 모델 유형, 평가 기준, 무한에 가까운 사용 사례와 애플리케이션 패턴을 탐색하는 데에도 도움이 될 것입니다. 이전 O’Reilly 저서인 기계 학습 시스템 설계(Designing Machine Learning Systems, DMLS)와 마찬가지로, 이 특정 도구나 API에 국한되지 않고 AI 엔지니어링의 기본 사항에 중점을 둡니다. 도구는 빠르게 시대에 뒤떨어질 수 있지만, 기본 사항은 오래 지속되어야 하기 때문이겠죠?

    두 가지 중요 개념 : AI 엔지니어링(AIE)과 기계 학습 시스템 설계(DMLS) 읽기

    AIE는 DMLS의 동반자가 될 수 있습니다. DMLS는 전통적인 ML 모델 위에 애플리케이션을 구축하는 데 초점을 맞추며, 이는 더 많은 표 형식 데이터 주석, 특성 엔지니어링, 모델 훈련을 포함합니다. AIE는 기초 모델 위에 애플리케이션을 구축하는 데 초점을 맞추며, 더 많은 프롬프트 엔지니어링, 맥락 구성 및 파라미터 효율적인 미세 조정을 포함합니다. 두 가지 개념 모두 독립적으로 읽을 수 있는 모듈형입니다.


    기초 모델은 ML 모델이기 때문에, 많은 개념이 두 개념에 모두 관련이 있습니다. AIE에 해당하는 주제가 있으나 DMLS에서 광범위하게 다뤄진 경우, 이 블러그에서도 다루지만, 덜 자세하게 다루며 관련 자료로의 지침을 제공합니다.무언가가 지속될지 여부를 판단하는 것은 종종 어렵습니다. 세 가지 기준 질문에 의존했습니다.

    첫째, 특정 문제가 AI의 근본적인 한계에서 비롯된 것인지, 아니면 더 나은 모델로 해결될 수 있을 것인지를 결정했습니다. 문제가 근본적이라면, 각 도전 과제를 해결하기 위한 도전과 해결책을 분석할 것입니다. 스스로에게 질문을 던져봅니다. 간단하게 시작하는 접근 방식을 선호하므로, 많은 문제에 대해 가장 단순한 솔루션에서 시작하고 점차 복잡한 솔루션으로 나아갈 것입니다.

    둘째,  AIE에게 묻습니다. 훌륭한 연구자 및 엔지니어 네트워크에 자문을 구하며 그들이 생각하는 가장 중요한 문제와 해결책을 물었습니다. 어떻습니까? 가끔은 Lindy의 법칙을 따랐습니다. 이는 기술의 미래 기대 수명이 현재 연령에 비례한다는 것을 의미합니다. 그래서 무언가가 어느 정도 시간 동안 존재해왔다면, 그 무언가가 앞으로도 계속 존재할 것이라고 가정합니다.

    그러나 즉각적으로 일부 애플리케이션 개발자들에게 유용하거나 흥미로운 문제 해결 접근 방식을 설명하기 위해 일시적이라고 믿는 개념을 포함하기도 했죠. 

  7.  이 블러그는 누구를 위한 것인가?

    과연 이 블러그는 누구를 위한 것인가요? 그 내용은 그 무엇이 아닙니다! 이 책은 튜토리얼도 아닙니다! 특정 도구에 대해 언급하고 몇 가지 개념을 설명하기 위해 의사 코드 조각을 포함하고는 있지만, 도구를 사용하는 방법을 가르치지는 않습니다. 대신, 도구 선택을 위한 프레임워크를 제공합니다. 다양한 솔루션 간의 트레이드오프에 대한 많은 논의를 포함하며, 솔루션을 평가할 때 물어야 할 질문들에 대해서도 다룹니다. 도구를 사용하고 싶을 때, 일반적으로 온라인에서 해당 도구에 대한 튜토리얼을 쉽게 찾을 수 있습니다. AI 챗봇도 인기 있는 도구를 시작하는 데 잘 도움을 줄 수 있습니다.기초 모델 기반 애플리케이션을 ML 전문 지식 없이 구축하는 것은 가능하지만, 기본적인 ML 및 통계에 대한 이해는 더 나은 애플리케이션을 구축하고 불필요한 어려움을 피하는 데 도움이 될 수 있습니다. 여기서는 ML 배경 없이 읽을 수 있지만, 다음과 같은 개념들을 아는 경우 AI 애플리케이션을 구축할 때 더욱 효과적일 것입니다:
    • 샘플링, 결정론, 분포와 같은 확률적 개념.
    • 감독, 자기 감독, 로그 가능도, 경량 하강법, 역전파, 손실 함수 및 하이퍼파라미터 조정과 같은 ML 개념.
    • 피드 포워드, 순환 및 트랜스포머를 포함한 다양한 신경망 아키텍처.
    • 정확도, F1, 정밀도, 재현율, 코사인 유사도 및 크로스 엔트로피와 같은 지표.
    이러한 개념들을 아직 모른다고요? 두려움은 만병의 질환입니다. 두려워하지 마세요! 저도 잘 모르니깐요!!!! 

  8.  세상의 서비스가 부족한 영역을 도와주는 AI 엔지니어링?

    이제 ML모델과 개념을 안다고 생각치 않고 시작합니다. 그러니 이 글은 당연히 간략하고 고수준의 설명이나 빠르게 이해할 수 있도록 돕는 자료에 대한 지침이 포함되어 있어 기초 모델을 활용하여 실제 문제를 해결하려는 해결사를 위한 것입니다.기초 모델을 활용하여 실제 문제를 해결하고자 하는 모든 사람을 위한 것입니다. 기술적인 방향이므로, 개발자 혹은 엔지니어링의 언어는 AI 엔지니어, ML 엔지니어, 데이터 과학자, 엔지니어링 매니저, 기술 제품 관리자 등 기술적인 역할에 맞춰져 있습니다. 다음 중 하나의 시나리오에 공감한다면 이 책은 여러분을 위한 것입니다:
    • 처음부터 시작하든 시연 단계에서 생산 준비가 완료된 단계로 넘어가려고 하든, AI 애플리케이션을 구축하거나 최적화하고 있습니다. 환각, 보안, 지연 또는 비용과 같은 문제에 직면해 해결책이 필요할 수 있습니다.
    • 팀의 AI 개발 프로세스를 간소화하고, 더 체계적이고 빠르며 신뢰할 수 있게 만들고자 합니다.
    • 조직이 기초 모델을 활용하여 비즈니스의 수익성 개선을 어떻게 할 수 있는지 이해하고, 이를 위한 팀을 구축하고자 합니다.


  9.  이 AI 서비스로 혜택 받는 자는 과연?

    다음 같은 그룹에 속하는 경우에 혜택을 볼 수 있습니다:
    • AI 엔지니어링에서 서비스가 부족한 영역을 파악하여 제품을 생태계에 맞게 배치하고자 하는 도구 개발자.
    • AI 사용 사례에 대한 이해를 더하고자 하는 연구자.
    • AI 엔지니어로 경력을 쌓기 위한 기술에 대해 명확하게 알고자 하는 구직 후보자.
    • AI의 능력과 한계, 그리고 다양한 역할에 미치는 영향을 이해하고자 하는 모든 사람.
    누구나 그렇듯 본질을 파악하는 것을 좋아하는 이런 부류의 혜택자들 앞에 일부 섹션은 기술적인 측면에 더 깊이 파고듭니다. 많은 초기 독자들은 세부 사항을 좋아하지만, 모든 사람에게 맞지는 않을 수 있습니다. 너무 기술적으로 진행될 때마다 편하게 건너뛰어 주세요! 약간의 우려가 섞인 말소리와 함께 혜택을 받는자라고 이겨내시던지요!

  10.  AIE들을 위한 개발

    여기서 AIE 대장장을 시작한 개발자들은 AI 애플리케이션 개발을 위한 전형적인 과정을 따르도록 구조화되어 있습니다. 일반적인 과정의 모습을 간략히 소개하고 각 기고들은 이 과정에서 어떻게 맞물리는지를 설명합니다. 모든 기고문들은 모듈형으로 구성되어 있어 이미 익숙한 부분이나 자신에게 덜 관련된 섹션은 건너뛰어도 좋습니다. 정말 자신 있다면 말입니다. 그러나 차근히 하나씩 나아가는 여유로운 자의 모습(?) 을 보여주세요!! 제가 힘이 납니다.

  11. 이 블러그의 마지막 글은?

    AI 애플리케이션을 구축하기로 결정하기 전에, 이 과정이 어떤 것인지 이해하고 다음과 같은 질문에 답해야 합니다:

    이 애플리케이션이 정말 필요한가?
    AI가 이 마당에 필요한가?
    이 애플리케이션을 우리가 직접 구축해야 하나?

    이제 곧 다음에 시작되는 블러그는 이러한 질문에 대한 답을 도와줍니다. 또한 기초 모델이 할 수 있는 일에 대한 감각을 줄 수 있는 다양한 성공 사례를 다룹니다. ML 배경은 AI 애플리케이션을 구축하는 데 꼭 필요하지 않지만, 기초 모델이 어떻게 작동하는지 이해하는 것은 이를 최대한 활용하는 데 유용합니다.

    다시 만나뵙길 희망합니다.