디지털 시대에 대기업들은 레거시 시스템과 프로세스를 제대로 이해하지 못하는 문제로 어려움을 겪고 있습니다. 지식은 여러 팀과 전문가 사이에 고립되어 산재되어 있고, 이로 인해 기술 부채가 점차 증가하게 됩니다. 기술 부채는 조직의 민첩성과 생산성을 저해하는 무언의 적입니다. Curiosity Software는 지난 5년 동안 구조화된 요구사항(시각적 모델을 통해)을 만들고 수백 가지 DevOps 도구와 연결해 왔으며, 이를 통해 Generative AI를 구현하는 데 있어서 유리한 위치에 있다고 믿고 있습니다. 이 모델과 DevOps 아티팩트는 조직의 소프트웨어 개발 환경을 통해 흐르는 데이터에 대한 중앙 허브 역할을 할 수 있습니다.
기술 부채와 부족한 지식을 해결하기 위한 우리의 사명 일환으로, 우리는 대형 언어 모델(LLM)을 소프트웨어 요구사항 및 비즈니스 논리에 적용하는 여정을 시작했습니다. 우리의 목표는 조직의 소프트웨어 요구사항에 대한 지식 허브를 만들고, 이를 통해 기술 부채를 해소하고 지식을 탐색할 수 있도록 하는 것입니다.
대형 언어 모델(LLM)의 이해
우리가 경험과 통찰을 논하기 전에, 대형 언어 모델(LLM)에 대한 간략한 개요를 제공하겠습니다. LLM, 예를 들어 OpenAI의 GPT-4와 같은 모델은 인간의 언어를 이해하고 생성할 수 있습니다. 이들은 방대한 데이터 코퍼스로부터 학습하며, 다양한 주제와 언어 스타일을 포괄합니다.
이러한 LLM은 트랜스포머라는 심층 학습 모델을 기반으로 작동하며, 이는 데이터 내에서 맥락을 분석하고 이해하기 위해 자기 주의 메커니즘(신경망)을 사용합니다. 학습 중에, 이들은 수많은 문장과 단락을 읽고 다음에 어떤 단어가 올지 예측합니다. 이러한 예측은 지금까지 읽은 내용에 기반합니다.
LLM 학습 과정
LLM이 인간처럼 텍스트를 생성할 수 있는 놀라운 능력은 방대한 데이터 코퍼스와 모델의 파라미터(가중치) 수에 의해 좌우됩니다. 예를 들어, GPT-4는 수백억 개의 파라미터를 가지고 있습니다.
LLM의 이러한 능력은 알고리즘 자체의 지능뿐만 아니라 인간 언어가 처음에 생각했던 만큼 복잡하지 않다는 발견에도 기인합니다. 신경망을 충분한 인간 언어 예시에 노출시키면, LLM은 패턴을 감지하고 적절하게 응답할 수 있습니다. LLM이 학습한 데이터의 크기와 품질이 증가할수록, LLM의 능력도 기하급수적으로 향상됩니다.
구조화된 데이터의 중요성
오늘날의 소프트웨어 조직에게 LLM을 활용할 수 있는 가능성은 그 어느 때보다 가까워 보입니다. 로컬 PC에서 실행할 수 있는 성능이 GPT-3.5 수준에 필적하는 매우 컴팩트하고 전문화된 모델들이 존재합니다.
그러나 LLM의 가장 중요한 부분은 사용 가능한 도구가 아니라 LLM이 학습한 데이터입니다. 따라서 오늘날 조직이 소프트웨어 도메인에서 구조화된 데이터를 결여하고 있는 것이 주요 장애물입니다.
데이터의 구조화 필요성
소프트웨어 요구사항은 일반적으로 비구조적인 텍스트 형식으로 저장되며, 종종 불완전하고 모호하며 정보가 부족한 경우가 많습니다. 테스트 케이스도 마찬가지로, 텍스트 기반 테스트 단계 목록으로 저장되는 경우가 많습니다.
이러한 구조화된 데이터 문제를 해결하기 위해서는 혁신과 신중한 고려가 필요합니다. 정보 추출, 자연어 이해, 기계 학습과 같은 기술을 사용하여 비구조적인 데이터를 구조화된 데이터로 변환할 수 있습니다. 이 과정에는 종종 수동적인 인간의 개입이 필요합니다.
소프트웨어 요구사항을 위한 모델링이란?
모델 기반 테스트는 고려 중인 기능의 모델을 사용하여 테스트 케이스를 생성합니다. 이러한 모델은 일반적으로 시스템의 동작, 기능 또는 작업을 명확하게 정의하는 시각적 플로우차트로 표현됩니다.
이러한 모델을 사용하면 모호성을 줄일 수 있으며, 개발자와 테스터 모두가 요구사항을 이해하기 쉽게 만듭니다. 또한, 모델링은 테스트 케이스, 데이터 및 자동화를 자동으로 생성할 수 있도록 합니다. 소프트웨어 요구사항에 변화가 생기면, 모델을 수정하여 동적이고 업데이트된 테스트 자산을 만들 수 있습니다.
플로우차트는 복잡한 프로세스를 단순하고 이해하기 쉬운 방식으로 시각적으로 표현하는 방법입니다. 각 단계는 상자나 기호로 나타나며, 화살표는 프로세스를 통해 사용자의 흐름과 데이터를 보여줍니다. 이는 프로세스의 순서와 의사 결정 지점을 강조하여 명확하고 따라가기 쉬운 표현을 제공합니다.
플로우차트의 구조적 특성과 LLM의 활용
플로우차트는 본질적으로 구조화되어 있습니다. 대형 언어 모델을 훈련시키는 데 있어, 플로우차트 형태의 구조화된 데이터는 매우 유용한 결과를 낳을 수 있습니다.
또한, 플로우차트는 직관적이고 해석하기 쉬워서 쿼리에 이상적입니다. 제어의 흐름과 의사 결정 과정이 명확하게 묘사되어 있어 모델이 프로세스의 다음 단계를 예측하기 쉽습니다.
모델링을 통한 AI 준비된 요구사항 생성
모델링을 통한 요구사항 생성은 AI가 훈련될 수 있는 구조화된 데이터를 만드는 데 있어 매우 중요합니다. 기존의 SDLC 아티팩트를 모델에 통합하여 중앙 지식 허브를 구축함으로써 기존 데이터를 구조화하고 개선할 수 있습니다.
소프트웨어 요구사항과 대화하기
Curiosity Software는 DevOps 도구에서 데이터를 동기화하고 이를 중심으로 LLM을 훈련하여 소프트웨어 요구사항과 비즈니스 논리를 이해하고 관리하는 데 LLM을 활용하고 있습니다. 우리는 다양한 DevOps 아티팩트와 요구사항을 수집하여 중앙 지식 허브를 만들고, LLM을 통해 이를 쿼리하여 필요한 정보를 도출할 수 있습니다.
예시 쿼리
- 간단한 질문: JIRA 티켓의 식별자에 따른 세부 정보 요청
- 모델을 통한 암시적 추론: 신용카드 신청 프로세스
- 모델과 요구사항을 통한 암시적 추론
- 여러 요구사항을 통한 복합적 추론
결론: 더 나은 소프트웨어 제공을 위한 LLM 채택
Curiosity Software는 LLM을 활용하여 소프트웨어 요구사항과 비즈니스 논리를 더 잘 이해하고 관리하고 있으며, 특히 기술 부채 해결에 중점을 두고 있습니다. LLM은 구조화된 데이터를 필요로 하며, 모델 기반 테스트는 비구조적인 데이터를 완성하고 모호성을 제거하는 데 완벽한 도구입니다. 모델은 시각적 플로우차트를 사용하여 소프트웨어 요구사항을 명확히 표현함으로써 명확성을 제공합니다. 동시에 DevOps 도구와 아티팩트의 정보를 중앙 지식 허브에 동기화할 수 있습니다.
Curiosity Software는 다양한 DevOps 도구에서 캡처된 소프트웨어 요구사항을 모델링하고, 이를 LLM에 훈련시켜 소프트웨어 개발 프로세스의 효율성과 효과성을 개선하는 데 기여하고 있습니다. 이 접근법은 테스트 케이스, 데이터 및 자동화를 자동으로 생성할 수 있도록 하며, 중앙 지식 허브를 통해 LLM을 쿼리하여 전체 SDLC에 대한 설명을 제공하고 위험, 릴리스, 테스트 커버리지, 컴플라이언스 등에 대한 결정을 내리는 데 도움이 됩니다.
이 AI 기반 소프트웨어 설계, 테스트 및 개발에서 얻어진 데이터는 중앙 지식 허브에 피드백되어 LLM을 업데이트하고, 미래의 반복을 정보화하며 기술 부채를 방지합니다. 이러한 AI의 소프트웨어 요구사항 적용은 소프트웨어 개발 프로세스의 효율성과 효과성을 개선하고, 조직의 비즈니스 프로세스에 대한 지식 허브 역할을 하며, 궁극적으로 기술 부채를 해결하는 데 도움을 줄 수 있습니다.
'SW > 인공지능' 카테고리의 다른 글
인공지능의 세계 탐험: 초보자를 위한 가이드 (0) | 2024.06.30 |
---|---|
LangChain과 대형 언어 모델(LLMs)에 대한 종합 가이드 (0) | 2024.06.26 |
대형 소매점의 AI/ML 솔루션 도입 여정: 첫 번째 이야기 (0) | 2024.06.23 |
CassIO: OpenAI에 영감을 받은 최고의 생성적 AI 라이브러리 (0) | 2024.06.22 |
생성적 AI 시대에 StackOverflow가 적응하는 방법: 포괄적 가이드 (0) | 2024.06.21 |