갑자기 이런 글을 싸재끼는 이유.
AI가 뭐야? 라고 했을 때 설명할 수 있는가? YES
가능은 함. 그러나 일반 대중들에게 설명가능하면서, 전문가적 오개념을 담지 않도록 비약하지 않고 말할 수 있는가? NO
내 나름대로 개념을 정리하고 데모를 가거나 뭔가 이야기를 하게 됐을 때 AI에 대한 내 생각과 개념을 말할 수 있도록 정리해보는 시간을 가진다.
AI 가 무엇인가요?
라고 했을 때 일반 대중과 도메인 지식을 가진 사람들 사이에서 너무 단순화하지 않으면서도 이해 가능하게 설명하려면
AI는 데이터를 학습해서 패턴을 찾고, 그 패턴을 기반으로 예측, 생성, 판단하는 시스템 이다. 라고 말할 수 있겠다.
다만 이 설명은 "현대 AI가 주로 동작하는 방식"에 가까운 설명이지, AI라는 분야의 전체의 목적과 역사까지 포함한 설명은 아니다.
AI를 더 큰 관점에서 설명하려면 AI의 목적, 그 목적을 달성하는 방법, 현대의 주류 구현 방식 순으로 이해하는 것이 자연스럽다.
머신러닝 ?
초기에는 사람이 규칙을 직접 작성하는 규칙 기반 AI 방식(Symbolic AI)가 많았지만 현대 AI는 데이터를 학습해 그 안에서 패턴을 찾고, 그 패턴을 기반으로 예측/판단/생성을 수행하는 방식이다.
이 방식은 크게 머신러닝(Machine Learning) 이라고 한다.
우리가 사는 현실 세계는 너무 복잡해서 사람이 모든 규칙을 직접 정의하기 어렵다. 즉, 머신러닝은 사람이 규칙을 직접 만드는 대신, 데이터로부터 규칙과 패턴을 학습하는 접근 방식이다.
딥러닝?
우리가 흔히 AI라고 부르고 있는 최신 시스템은 딥러닝 기반인데, 딥러닝은 위의 머신러닝의 하위 분야로 대규모 신경망(neural nework)을 사용해 복잡하고 고차원적인 패턴까지 학습할 수 있도록 발전한 방식이다.
더 많은 데이터, 더 큰 모델, 더 복잡한 구조를 통해서 이미지, 언어, 음성과 같은 복잡한 데이터를 처리할 수 있게 된다.
강화학습 ?
그리고 드문드문 강화학습이라는 말이 나오는데, 강화학습 또한 머신러닝의 학습 방식 중 하나이고 완전히 별개의 개념이라기보다 정답 데이터를 그대로 학습하는게 아니라 보상/실패, 전략 수정을 반복하면서 최적 행동을 학습하는 방식이다.
LLM
위에서 말한 딥러닝 기술이 발전하면서 등장한 것이 LLM(Large Language Model), 즉 거대 언어모델이다.
대량의 텍스트 데이터를 학습해 인간 언어의 패턴을 모델링한 대규모 딥러닝 모델 이다.
엄청난 양의 언어 데이터를 학습해서 다음 단어를 예측하고, 문맥을 이해하고, 인간처럼 자연스러운 언어를 생성할 수 있도록 만든 모델이다.
현재 chatGPT 같은 AI의 핵심 기반 기술이 바로 LLM이다.
AI가 생각하지는 않아요? 이 말이 맞는 말인가?
여기서 처음에 일반인들이 AI가 생각하고 답변을 내놓는다. 라는 애매모호한 오개념을 설명해주기 위해서 '생각하지는 않아요' 라고 단정할 수 있는가? 에 대해서 GPT와 대화해본 결과 "AI는 생각하지 않는다"를 너무 단정하면 조심해야 한다고 한다. 이유는 "생각"의 정의가 철학적으로 애매해지기 때문이라고 한다.
예를 들어 계획 세우기, 추론하기, 문제 해결하기 같은 행동은 외형적으로는 '생각' 처럼 보인다.
생각?
사람들은 보통 "생각"을 두 가지 의미로 섞어서 쓴다.
(1) 기능적 사고(functional reasoning) - 계산, 추론, 계획
(2) 의식적 사고 (conscious thought) - 자아, 감정, 주관적 경험
현재 AI는 첫 번째와 비슷한 기능적 사고는 어느 정도 하지만 두 번째인 의식적 사고는 없다고 보는 것이 현재 주류이다.
대형 언어 모델(LLM)은 문제를 단계적으로 풀고, 계획을 세욱, 코드를 수정하고, 논리를 비교하고 오류를 찾는다. 그래서 AI 연구에서는 보통 reasoning, inference, planning 같은 용어를 쓴다.
즉 기능적으로는 "생각 비슷한 처리"를 하는 것이다.
그러므로 기능적 사고 측면에서는 생각이라고 할 수도 있다.
하지만, AI는 인간처럼 "내가 생각하고 있다"를 자각하는 것은 아니다. AI는 자의식, 주관적 경험(qualia), 감정, 욕구, 의도가 있다고 현재까지는 증명된 바가 없다.
즉, AI가 생각한다고 했을때 일반인은 위의 두번째 의식적 사고를 가졌다고 받아들이기 쉽기 때문에 생각하지 않는다. 라고 말할 수도있지만 그렇게 된다면 위의 (1) 기능적 사고인 추론, 계획, 문제 해결의 단계는 가능하기 때문에 '생각을 하지 않는다' 라는 말보다는 AI는 계산, 추론, 계획과 같은 기능적 사고를 하는 것처럼 보이지만 본인이 생각한다고 의식을 가진 존재는 아니고, 데이터로 학습한 패턴을 기반으로 확률적으로 추론하고 출력을 생성하는 시스템이다.
정리하자면
AI는 데이터를 학습해 그 안에서 패턴을 찾고, 그 패턴을 기반으로 예측,판단,생성을 수행하는 시스템이다. 이 과정에서 추론(reasoning), 계획(planning), 문제 해결(problem solving)과 같은 기능적 사고(functional reasoning)처럼 보이는 행동을 수행할 수 있다. 하지만 이는 인간처럼 스스로 의식을 느끼거나 자아를 가진 상태에서 사고하는 것이 아니라, 학습된 패턴을 바탕으로 확률적으로 다음 출력을 생성하는 과정에 가깝다. 이다.
AI Agent
여기서 이제 AI Agent가 나오기 시작하는데 '답만 하는 AI', '행동까지 하는 AI'인지에 따라 구분한다.
AI Agent는 여기서 한 단계 더 나아가, 추론 결과를 바탕으로 시스템 차원의 작업 행동(system-level execution) 까지 수행하는 AI 시스템이다.
여기서의 행동(action)도 인간의 행동이 아닌 실행 가능한 행동(executable action) 이라는 것을 잘 인지해야한다.
AI는 질문에 답하거나 글을 생성하는 수준에 머물 수는 있지만 AI agent는 그 답변을 기반으로 실제로 도구를 사용하고, 작업을 수행한다.
비유하자면 AI는 조언해주는 전문가, AI agent는 실제로 일까지 처리하는 비서라고 할 수 있겠다.
엑셀 정리 어떻게 해? 라는 말에 엑셀 정리하는 방법만 설명하면 AI,
이 엑셀 파일 정리해서 보고서 까지 만들어줘라고 했을 때 파일 읽고, 데이터 분석하고 그래프 만들고 문서까지 저장하는 행동하는 AI가 AI agent이다.
여기서 중요한 본질은 AI agent도 AI라는 것. 위 처럼 자의식이 있고 욕망을 가지거나 인간처럼 의도를 가지지 않고, 단지 추론 결과를 실제 시스템 행동으로 연결할 수 있도록 만들어진 AI이다.
Prompt Engineering
LLM이 등장하면서 사람들은 'AI에게 어떻게 지시해야 원하는 결과를 가장 잘 얻을 수 있을까?' 를 고민하기 시작했다.
LLm은 단순 프로그램처럼 고정된 출력을 내놓는 시스템이 아니라
문맥(context), 역할(Role), 지시 방식, 예시(Few-shot), 출력 형식 등에 따라서 크게 결과가 달라진다.
이 때 등장한 개념이 Prompt Engineerning이다.
Prompt Engineering은 LLM이 원하는 방식으로 등장하도록 지시와 맥락을 설계하는 기술이다.
그러나 여기서 한계가 발생한다. 초기의 LLM은 기본적으로 입력(Input) -> 텍스트 생성(Output) 구조에 가까워서, 답변을 잘하지만 실제 행도은 하지 못했다.
그러나 위에서 AI agent 가 나오기 시작하면서 실제 시스템 행동을 하기 시작하고, 이 때부터 프롬프트만 잘 작성한다고해서 안정적으로 행동이 통제가 되지 못하는 한계가 나타났다.
AI agent 는 상태를 기억하고, 여러 단계를 계획하고, 도구도 사용해야하고 실패 시 복구도 해야하고 잘못된 행동을 검증해야 하기 때문이다.
그래서 "AI에게 어떻게 말할까?"가 아니라
AI를 어떻게 안전하고 통제 가능하게 운영할까?의 문제가 된 것이다.
Harness
여기서 등장하는 개념이 Harness이다.
Harness는 원래 안전벨트, 제어 장치, 장비를 고정하는 장치 같은 의미를 가진 단어이다. AI에서는 이 단어를 가져와서 AI가 통제된 환경 안에서 실행되도록 관리하는 시스템 으로 정의했다.
즉, Harness는 AI를 실행하고, 상태를 추적하고, 행동을 검증하고, 권한을 제한하고, 실패를 복구하고, 로그를 기록하는 실행 프레임워크(execution framework) 에 가깝다고 보면 된다.
Harness Engineering
이러한 시스템을 설계하는 것이 Harness Engineering이다.
Harness Engineering은 확률적이고 불안정한 AI 시스템을 실제 서비스 환경에서 안정적이고 재현 가능하게 동작하도록 만드는 시스템 엔지니어링이다.
Prompt Engineering이 'AI에게 어떻게 지시할까?' 였다면 Harness Engineering은 'AI를 어떻게 안전하고 검증 가능하게 운영할까?' 의 문제에 더 가깝다.
AI Agent가 파일 삭제, 서버 수정, 결제 수행, 데이터베이스 변경을 수행하면 단순 텍스트 생성과는 다른 수준의 안정성이 필요해진다.
그래서 상태 관리, 권한 제어, 실행 검증, 재시도, sandbox 와 같은 개념들이 중요해지는데 이를 동작하게 만드는 시스템 엔지니어링을 Harness Engineering이라고 보면 된다.
Harness Engineering에서 Harness를 어떻게 설명하고 Harness Engineering 까지 가나 하다가 AI부터 시작. 나 역시 생각 정리 잘되었다.
즉 인간처럼 사고하고 행동하게 만드는 기술이 목적인 AI가 단순 '답변 생성' 수준에서 실제 '행동 수행' 단계로 발전하면서 prompt engineerning 만으로는 부족해졌고 AI를 통제 가능한 시스템 안에서 운영하기 위해서 Harness Engineering의 중요서이 커지기 시작했다.