본문 바로가기

IT 고찰/좋은 글

[AI] 이제는 컨텍스트를 고민해야 할 때, 컨텍스트 엔지니어링 [feat. geekNews]

geekNews

 

AI의 새로운 핵심 역량은 프롬프트가 아닌 "컨텍스트 엔지니어링" | GeekNews

"프롬프트 엔지니어링"에서 한 단계 발전한 "컨텍스트 엔지니어링"으로 논의가 전환되고 있음컨텍스트란 단순한 프롬프트 문장이 아니라, LLM이 답변을 생성하기 전 볼 수 있는 모든 정보(지침,

news.hada.io

 

 

 

원본글

 

The New Skill in AI is Not Prompting, It's Context Engineering

Context Engineering is the new skill in AI. It is about providing the right information and tools, in the right format, at the right time.

www.philschmid.de

 

 


프롬프트 엔지니어링, 바이브 코딩, 컨텍스트 엔지니어링

 

AI 관련 다양한 용어들이 생겨나고 있습니다.

 

익숙한 키워드는 바이브 코딩, 프롬프트 엔지니어링이 있었는데, 여기에 하나가 더 추가되었습니다.

 

"컨텍스트 엔지니어링"

 

해당 글은 LLM을 코어로 두고 자율성을 갖춘 서비스를 개발하는 에이전트 시스템 개발자에게 

 

어떤 것에 집중하는 것이 맞는 방향인지를 얘기해 줍니다.

 

에이전트의 퍼포먼스가 시스템에 부여된 역할과 규칙(프롬프팅)보다는 제공된 정보 즉 "컨텍스트"에 달려 있다고 얘기해주고 있습니다.

 

물론 프롬프트가 중요하지 않다는 것은 아니고, 초점을 프롬프트 -> 컨텍스트로 옮겨가야 할 때임을 알려주는 좋은 글입니다.

 

수많은 에이전트 개발자의 경험에서 나온 성찰이고, 실제로 AI 전문 리더급 트위터에서도 컨텍스트의 중요성이 언급되고 있습니다.

 

 

쇼피파이 공동 창업자 CEO의 X글

 

번역 내용 (chat GPT 번역)

저는 '프롬프트 엔지니어링(prompt engineering)'보다 '컨텍스트 엔지니어링(context engineering)'이라는 용어가 훨씬 더 마음에 듭니다. 이 용어가 핵심 역량을 더 잘 설명해 주거든요

 

— 즉, LLM이 과제를 그럴듯하게 풀 수 있도록 필요한 모든 문맥을 제공하는 기술이자 예술입니다.

 

 

OpenAI의 핵심 개발자 중 한 명이었던 Andrej Karpathy

 

번역 내용 (chat GPT 번역)

 

사람들은 흔히 *프롬프트(prompt)*를 LLM에게 주는 짧은 작업 지시 정도로 생각합니다.

하지만 실제로 산업 수준의 강력한 LLM 애플리케이션에서는 *컨텍스트 엔지니어링(context engineering)*이란, 다음 단계에서 최적의 성능을 끌어내기 위해 컨텍스트 윈도우에 딱 맞는 정보를 정교하게 채워 넣는 섬세한 기술이자 과학입니다.

 

과학적인 이유는 다음과 같습니다: 이를 잘하려면 작업 설명, 설명 예시, few-shot 예제, RAG(Retrieval-Augmented Generation), 관련 데이터(멀티모달일 수도 있음), 툴, 상태, 히스토리, 압축 기술 등이 필요합니다.

 

정보가 너무 적거나 형식이 맞지 않으면 LLM이 최적의 성능을 내지 못합니다. 반대로 너무 많거나 관련 없는 정보가 들어가면 비용은 증가하고 성능은 저하됩니다. 이것을 잘 해내는 일은 결코 쉬운 일이 아닙니다.

예술적인 이유도 있습니다: LLM의 ‘심리’에 대한 직관적 이해를 바탕으로, 어떤 정보를 어떻게 배치해야 하는지 감각적으로 조율해야 하기 때문입니다. 그리고 컨텍스트 엔지니어링 자체는 LLM 애플리케이션에서 해야 할 일의 일부분일 뿐입니다. 그 위에 다음과 같은 복잡한 레이어들이 존재합니다:

  • 문제를 적절히 나누어 제어 흐름으로 만들고
  • 컨텍스트 윈도우를 적절히 압축하고 구성하며
  • LLM의 종류와 능력에 따라 호출을 분배하고
  • 생성-검증 UI/UX 흐름을 설계하고
  • 그 외에도 가드레일, 보안, 평가, 병렬 처리, 사전 로딩 등 다양한 요소들을 처리해야 합니다.

즉, 컨텍스트 엔지니어링은 LLM 호출을 조율하고 연결하는 훨씬 더 복잡한 소프트웨어 아키텍처의 일부에 불과합니다.

단순히 "ChatGPT 래퍼"라는 표현은 이런 구조를 완전히 오해한 것이며, 이제는 너무 진부하고 부정확한 표현입니다.

 


 

이제는 컨텍스트의 시대

작년까지만 해도 LLM에 1회성 요청을 해서 작업을 처리하는 LLM 중계 API를 개발했었습니다.

[복잡한 경우는 의도 분석을 해서 카테고리로 분류한 LLM을 호출했었는데,

지금 보면 랭그래프로 간단하게 처리 가능한 로직...]

 

LLM의 주요 퍼포먼스인 생성과 요약에 핵심을 둔 기능들을 제공하는 API를 개발했고,

 

그러다 보니 프롬프트 엔지니어링은 핵심 중의 핵심 역량이었습니다.

 

LLM의 품질이 곧 서비스의 품질이었고, 프롬프트 엔지니어링이 곧 품질로 이어지는 핵심 포인트였습니다.

 

저는 AI와 관련된 기능은 가능하면 UX 맥락과 UI(버튼, 드래그, 우클릭)으로 해결되는 게 가장 경제적이고 효율적이라고 생각하는 편이었습니다.

 

앤트로픽의 에이전트 시스템 빌딩

 

Building Effective AI Agents

Discover how Anthropic approaches the development of reliable AI agents. Learn about our research on agent capabilities, safety considerations, and technical framework for building trustworthy AI.

www.anthropic.com

 

 

위의 글을 보면서 느낀 게, 맥락적으로 단순하게 접근할 수 있는 것은 그걸로 풀어내는 게 좋다고 생각했죠.

 

시간이 빠르게 바뀌고, LLM 기술이 발전하면서 엄청난 규모의 컨텍스트를 유지할 수 있게 되었고, 가격도 저렴해진 상황.

 

거기에 더해 LLM API이 툴 연동도 쉬워진 상황이 6개월 만에 왔습니다.

 

랭체인, 랭그래프, 랭스미스는 LLM 코어 개발을 아주 효율적이고 쉽게 제어할 수 있는 멋진 프레임워크로 자리를 잡았죠.

 

무대는 본격적으로 챗봇으로 옮겨지게 되었고,

 

시스템은 사용자와 잘 상호 작용할 수 있게 되었고,

 

모든 상호작용은 텍스트로 이루어지게 되었습니다.

 

이전에는 UI로 서비스 기능을 명확하게 전달했던 시스템들이 이제는 프롬프트를 바라보게 된 것입니다.

 

이후 참여한 프로젝트는 자연스럽게 RAG로 나아가게 되었습니다.

 

여기서부터 컨텍스트 관리가 발목을 잡기 시작했습니다.

 

그런 고민을 하던 와중에 좋은 글을 만났습니다.

 

글의 주제는 한 문장으로 표현하면 "가비지 인, 가비지 아웃"으로 정리되는 것 같습니다.

 

더 이상 정적인 시스템 프롬프트 혹은 모델 성능에 의존할게 아닌, 모델에 넘기는 좋은 품질의 정보를 관리하는 것(컨텍스트)이 중요하다는 것이죠.

 

적절한 시점, 적절한 정보를 활용해, 적절한 도구를 활용하는 것...

 

말은 쉽지만, 에이전트 시스템 개발자는 여기에 초점을 둬야 한다는 것입니다.

 

이것이 가능하냐 마냐가 단순한 데모가 될지, 멋진 에이전트 시스템을 가른다는 내용입니다.

 

이 분야의 서비스를 개발하는 것은 흥미로운 부분이 많습니다.

 

파이썬 기반의 프로그래밍

 

LLM을 이해하고 바라보는 역량

 

에이전트 구조를 설계하는 디자인과 아키텍처적인 역량

 

그리고 자신이 속한 엔터프라이즈의 API들과 어떻게 협업해야 하는가

 

동시에 이 전체적인 구조를 비용 효율적으로 관리하는 방법 등등..

 

 

 

 

 

같이 참고하면 좋을 내용들

https://www.youtube.com/watch?v=labVf1b2vaE

출퇴근 길에 자주 듣는 AI 팟캐스트