AI-Assisted Programming 온라인 세미나2 – 2장. AI 코딩 기술의 작동 원리
AI 보조 프로그래밍 도구들로 GitHub Copilot, Tabnine, CodiumAI, Amazon CodeWhisperer이 언급됩니다.
AI 보조 프로그래밍 도구의 공통 기능들
1. 코드 제안: 주석과 파일 문맥을 기반으로 코드 제안을 제공하며, 개별 코드 줄 또는 전체 함수를 추천합니다. 2. 문맥 인식 코드 완성: 코드 베이스의 전체 또는 일부를 기반으로 문맥 인식 코드 완성을 제공하며, 코딩을 돕는 제안을 합니다. 3. 테스트 생성: 코드를 분석하여 의미 있는 테스트를 생성하고 코드 동작을 맵핑하며, 소프트웨어의 신뢰성을 확보하기 위해 엣지 케이스를 발견합니다. 4.사용자-IDE 상호 작용: 사용자가 IDE에서 코드 입력 시 자동으로 활성화되고 안내를 제공하며, 사용자가 채팅을 통해 코드와 상호 작용할 수 있게 합니다. 5. 코드 분석: 코드 스니펫, 독스트링 및 주석을 분석하여 신뢰할 수 있는 코드 예측을 제공하고 의심스러운 코드를 태그합니다. 6. 버그 감지 및 수정: 코드에서 잠재적인 버그를 식별하고 수정 방법을 제안합니다. 7. 코드 자동 문서화: 독스트링 자동 추가 및 코드 문서화 향상. 8. 정기 작업 자동화: 루틴하거나 시간 소모가 많은 작업, 익숙하지 않은 API 또는 SDK, 파일 작업 및 이미지 처리와 같은 일반적인 코딩 시나리오에 대한 코드 작성 지원. 9. API 및 SDK 사용 최적화: API 및 SDK의 올바르고 효과적인 사용 지원. 10. 오픈 소스 검색 및 기여: 오픈 소스 코드와 라이브러리의 검색 및 기여를 용이하게 함. |
AI 보조 프로그래밍 도구가 동작하려면, 생성 AI 서비스가 필요합니다. OpenAI는 AI 서비스는 API로 제공되는 대표적인 생성 AI 서비스 입니다. 생성 AI 덕분에 도구를 사용하는 개발자는 도구와 일상적인 대화를 하는 것 처럼 느낄 수 있습니다. 우리 소프트웨어 개발자는 이런 도구들과 대화를 잘 해야 합니다.
AI 지원 프로그래밍 도구는 컴파일러와 다릅니다. 이 도구들은 컴파일러처럼 프로그래밍 언어를 이해하지는 않습니다. 괜찮습니다. 컴파일러가 이를 처리합니다. 대신, AI는 이미 존재하는 코드들을 바탕으로 코드를 추측하고 제안합니다. 이러한 도구들은 확률에 기반해 제안을 하기 때문에 제안은 다양할 수 있습니다. 그런 다음 컴파일러가 이 코드를 받아 기계가 프로그램을 실행할 수 있도록 변환합니다.
이 모든 것은 AI 도구들이 코딩을 더욱 원활하게 만드는 데 도움이 되지만, 컴파일러가 수행하는 철저한 검사나 인간 코더의 날카로운 눈을 대체할 수는 없다는 것을 의미합니다. 이러한 단점들은 AI 지원 도구의 스마트함과 컴파일러의 철저한 검사, 그리고 인간의 터치를 결합하는 것이 얼마나 중요한지를 드러냅니다. 결국, 코드가 단지 좋기만 한 것이 아니라 정확하고 올바른지 확인하고 싶어 할 것입니다. |
AI가 프로그래밍에 개입하는 수준은 현재 3단계 코파일럿 수준입니다.
하지만 어느 정도 시간이 필요할 진 모르겠지만, AI는 복잡한 작업을 스스로 처리하며, 인간이 코드에 대해 최종 승인을 내릴 필요가 없습니다. 만약 당신이 CEO나 제품 관리자라면 최고급 엔지니어에게 가질 신뢰를 상상해보세요. 이 수준이 목표하는 것이 바로 그런 관계입니다. AI는 단지 반응하는 것이 아닙니다. 코드를 주시하고, 문제가 발생할 때 이를 찾아내고 해결합니다. 레벨 4입니다.
마지막으로, 레벨 5로 가면 AI 주도 완전 자율의 단계입니다. 이 단계는 완전히 다른 차원으로, AI가 단지 인간의 지시를 따르는 것이 아니라 자체 목표를 설정합니다. 핵심 보상 기능을 기반으로 작업하는 AI에 관한 것입니다. 이를 다른 에이전트들과 대결하는 세계에서 자신의 게임을 플레이하는 것으로 생각해보세요. 분명히 이 단계는 약간 공상과학 같지만, 기술 발전이 얼마나 빠르게 진행되는지를 고려하면 우리 생애 안에 이 수준이 현실이 될 가능성을 완전히 배제할 수 없습니다. |
이 장에서는 다음과 같은 것들을 다루었습니다.
ELIZA와 같은 흥미로운 역사 일부를 엿본 후, AI 분야에서 가장 큰 돌파구 중 하나인 트랜스포머 모델에 중점을 두었습니다. 또한 OpenAI Playground를 시도해보고 LLM을 커스터마이즈하는 방법을 보여주었습니다.
이 장에서 중요한 포인트 중 일부는 토큰, 사전 학습된 모델을 사용함으로써 얻을 수 있는 이점, LLM의 크기를 평가할 때의 주의사항, 퍼플렉시티와 BLEU 점수와 같은 지표, 그리고 오픈 소스 모델과 독점 모델의 차이입니다. |