왜 트레이딩을 멈추고 AI를 활용한 입찰(Tendering)에 집중하게 되었나
요약
글쓴이는 수익성이 떨어지는 트레이딩 대신, 시장을 형성하는 정부/상업 입찰(tendering) 분야에 집중했습니다. 복잡한 입찰 문서를 분석하고 요구사항을 추출하여 설득력 있는 응답서를 작성하기 위해 'IronVision Nexus'라는 특화 AI 시스템을 구축하게 되었습니다.
핵심 포인트
- 입찰은 시장 반응이 아닌, 시장 형성 과정에서 돈을 버는 영역이다.
- 전통적인 입찰 문서는 방대한 양의 기술 사양과 법률 용어로 구성되어 있다.
- AI를 활용하여 요구사항 추출 및 응답서 작성을 자동화하는 것이 핵심 목표다.
- IronVision Nexus는 OCR, LLM 기반 요구사항 추출 등 특화된 도구들로 구성된다.
수년 동안 저는 트레이딩 중독자였습니다. 알고리즘, 백테스팅(backtesting), 시장 분석—저는 이 모든 것을 탐닉했습니다. 셀 수 없이 많은 봇을 만들었고, 덧없는 차익거래 기회를 쫓았으며, 점점 더 효율적이 되어가는 시장에서 미세한 수익이라도 짜내기 위해 잠 못 이루는 밤을 보냈습니다. 지적으로 자극적이었던 것은 분명하지만, 궁극적으로는... 소모적이었습니다. 그리고 솔직히 말해, 꾸준히 수익성이 높지는 않았습니다.
그러다가 저는 다른 세계에 발을 들였습니다: 정부 및 상업 입찰(tendering) 분야입니다. 그리고 저는 깊은 깨달음을 얻었습니다. 진정한 돈은 시장에 _반응_하여 벌어지는 것이 아니라, 시장을 _형성_하는 과정에서 만들어진다는 것을 말입니다. 하지만 입찰은 엄청난 난이도의 영역입니다. 방대한 문서, 복잡한 요구사항, 그리고 경쟁자들의 바다와 같습니다. 바로 여기에 AI가 등장했습니다. 저는 단순히 AI를 _사용_하고 싶은 것이 아니라, 입찰에 특화된 AI를 _구축_하고 싶었습니다. 이것이 제가 트레이딩을 접고 'AI를 활용한 입찰'로 전환하게 된 이야기입니다.
전통적인 입찰의 문제점
전형적인 입찰 하나를 생각해 보세요. 수백 페이지에 달합니다. 기술 사양, 법률 용어, 가중치 기준, 준수 체크리스트 등이 포함되어 있습니다. 모든 것을 분석하고, 자신이 적합한지 이해해야 하며, 그 다음에는 모든 요구사항을 정확하게 다루는 응답서를 작성해야 합니다. 이 과정은 수동적이고 시간이 많이 걸리며 인적 오류가 발생하기 쉽습니다.
제가 처음 시도했던 접근 방식은, 음, 순진했습니다. 키워드 매칭으로 무작정 돌파할 수 있을 거라고 생각했습니다. 하지만 통하지 않았습니다. '신뢰할 수 있는 네트워크 인프라'를 요구하는 입찰 문서는 단순히 그 키워드를 _포함_하고 있는 것이 아니라, 확장성(scalability), 보안 인증서(security certifications), 이중화(redundancy), 지원 SLA 등 관련 기능 전체를 암시합니다.
전통적인 방법은 수동적인 읽기와 태깅에 의존했는데, 이는 느리고 비용이 많이 드는 과정입니다. 게다가 대량의 입찰에 응답하려면 전담 팀이 필요합니다. 소규모 기업에게는 단순히 실행하기 어렵습니다.
트레이딩 봇에서 입찰 봇으로: 개념적 전환
제가 트레이딩을 하던 시절의 핵심 역량은 특정 알고리즘 자체가 아니라, 정보를 처리하고 의사결정을 자동화하는 능력(automate information processing and decision making)이었습니다. 놀랍게도 이 능력이 입찰 분야에도 훌륭하게 적용되었습니다. 하지만 목표가 달랐습니다. 트레이딩은 예측에 관한 것이었지만, 입찰은 '역량을 증명'하는 것에 관한 것입니다.
가격 변동을 예측하는 대신, 저는 요구사항을 추출하고 이를 저희의 역량과 연결해야 했습니다. 거래를 실행하는 대신, 규정을 준수하면서도 설득력 있는 입찰 응답서를 작성해야 했습니다.
IronVision Nexus 구축: 핵심 구성 요소들
저는 현재 IronVision Nexus라고 부르는 일련의 도구들을 구축하기 시작했습니다. 이 도구들은 입찰 분석 및 응답서 생성을 위해 특화된 대규모 언어 모델(LLM)을 중심으로 합니다. 주요 구성 요소를 자세히 설명드리겠습니다:
1. 문서 파싱 및 OCR:
이것은 단순히 텍스트를 얻는 것 이상의 작업이었습니다. 많은 입찰 문서는 스캔된 PDF 파일 형태입니다. 따라서 첫 번째 단계는 강력한 광학 문자 인식(OCR) 기술을 사용하는 것입니다. 저는 PyTesseract와 pdfminer.six를 사용하여 텍스트를 추출하고 문서 구조를 재구성하려고 시도했습니다.
from pdfminer.high_level import extract_text
import pytesseract
from PIL import Image
...
2. 요구사항 추출 (가장 중요한 핵심):
여기서 LLM의 진가가 발휘됩니다. 저는 입찰 문서 데이터셋과 수동으로 레이블링된 요구사항을 사용하여 모델(현재 비용 및 통제를 위해 로컬에 배포된 양자화된 Llama 2 7B)을 미세 조정(fine-tuned)했습니다. 목표는 단순히 사용된 단어뿐만 아니라, 입찰이 '무엇'을 요청하는지 파악하는 것입니다.
from transformers import pipeline
# 질문 답변 파이프라인 초기화 (미세 조정된 LLM)
...
이것은 단순화된 예시입니다. 실제로는 훨씬 복잡하며, 다음을 포함합니다:
- 청킹(Chunking): 문서를 관리 가능한 세그먼트로 분할하는 작업.
- 재귀적 요약(Recursive Summarization): 핵심 정보를 추출하기 위해 섹션을 요약하는 과정.
- 요구사항 분류(Requirement Classification): 요구사항을 범주화하는 것 (예: 기술적, 법률적, 상업적).
3. 역량 매핑 및 응답 생성
요구사항을 파악하면, 이를 우리 회사의 역량에 매핑합니다. 이 과정은 회사 역량 설명을 저장하는 벡터 데이터베이스(저는 Pinecone을 사용하고 있습니다)를 사용하여 수행됩니다. 각 요구사항은 벡터 임베딩으로 변환되고, 데이터베이스는 가장 관련성 높은 역량을 찾아냅니다.
import pinecone
# Pinecone 연결 초기화
...
마지막으로, LLM이 매핑된 역량들을 통합하여 입찰 응답을 생성합니다. 프롬프트는 규정 준수와 설득력을 보장하기 위해 신중하게 작성됩니다.
4. 규정 준수 확인 (Compliance Checking)
제출 전에, 우리는 LLM을 사용하여 생성된 응답이 원래의 입찰 요구사항과 교차 참조되는지 확인합니다. 이는 누락된 부분을 포착하고 완전한 규정 준수를 보장하는 데 도움이 됩니다.
결과: 0에서 일관된 성공으로
변화는 놀라웠습니다.
- 입찰 건수 증가: 이제 훨씬 더 많은 입찰에 대해 분석하고 응답할 수 있습니다.
- 높은 낙찰률: AI 기반 분석을 통해 구동되는 응답의 정밀도가 낙찰률을 크게 높였습니다.
- 비용 절감: 자동화는 입찰에 필요한 수동 노력을 줄여 비용을 낮춥니다.
- 확장성 (Scalability): 이 시스템은 최소한의 추가 노력으로 증가하는 입찰 건수를 처리하도록 설계되었습니다.
기본을 넘어: 향후 개발 계획
이것은 시작에 불과합니다. 현재 저는 다음 작업을 진행하고 있습니다:
- 자동화된 위험 평가 (Automated Risk Assessment): 특정 입찰과 관련된 위험(예: 경쟁 환경, 성공 확률)을 AI를 사용하여 평가하는 작업.
- 동적 가격 책정 최적화 (Dynamic Pricing Optimization): 입찰 요구사항 및 시장 상황을 기반으로 최적의 가격 전략을 제안하는 작업. *
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기