본문 바로가기

Academy I/IT

[AI 바둑]인공지능 바둑 프로그램이 구동되는 구조(심화학습)

많은 분들이 인공지능 프로그램을 설치하기 어려워하는 이유가 있습니다.

그것은 바로 인공지능이 어떤 구조로 동작하는지를 잘 모르기 때문입니다.

전산 계통에 근무하시는 분들이거나 컴퓨터를 많이 만져보신 분들은 쉽게 알 수 있겠지만, 우리 주변에는 그렇지 않은 분들이 더 많다는거...ㅋ


오늘 이야기는 관심 없으신 분들은 모르셔도 되는 이야기지만...

상식 하나 알아둔다 생각하시고 읽어보시면 인공지능을 이해하시는 데 조금 도움이 되실 것입니다.



제가 설명을 위해 우리가 자동차에서 많이 쓰는 네비게이션을 비유해서 설명드리겠습니다.


네비게이션은 우선 ①기계(하드웨어)가 있어야겠고요, ②거기에 들어가는 구동프로그램(OS 또는 Firmware라고 합니다), ③지도데이터 가 있어야 합니다. 이런건 다들 아시지유?






실제로는 어떻든지간에 우리는 기계와 구동프로그램, 지도데이터들 사이에 어느 정도의 호환성이 있다고 칩니다.

그래서 결과적으로 A회사의 네비기계에 B회사의 OS를 설치해서 C회사에서 만든 지도데이터를 쓸 수 있다고 가정해 보겠습니다.



그럼, 다음으로 이번에는 인공지능을 네비게이션과 비교해 보겠습니다.

가장 중요한 인공지능 엔진은 네비게이션 OS와 같은 역할을 합니다.

여기에 우리가 가중치라고 부르는 지도데이터를 붙여서 구동이 되는거죠.

하지만 이것으로 끝나지 않고 실제로는 어떤 기계인가에 집어 넣어야겠죠.

우리가 알고 있는 기계 역할을 하는 것들은 사바키(Sabaki), 리지(Lizzie), 고구이(GoGui), GoReviewPartner 등등 뿐만이 아니라 더 많이 있을 것입니다.





위 그림을 설명드리자면 사바키나 고구이같은 것들은 GTP를 지원하는 엔진들을 모두 연결시킬 수 있습니다. 그리고, 이 사바키라는 기계는 대국하는 용도로 사용하죠.


GoReviewPartner는 다섯 개의 정해진 엔진만 연결이 됩니다.(Leela, AQ, GnuGo, Ray, LeelaZero)

그리고 대국 후에 복기하는 용도의 기계입니다.


마지막으로 우리가 가장 좋아하는 리지(Lizzie)는 릴라제로(leelaz.exe)하고만 호환이 됩니다.

이것은 실시간으로 승률분석하고 복기하는 여러 가지 용도로 사용합니다.



그림의 여러 엔진들 중에서 주황색으로 표시된 Leela, AQ, GnuGo, Fuego 등은 가중치를 외부에서 연결시키는 것이 아니라 엔진 자체에 포함되어 있습니다. 네비게이션으로 치면 지도가 내장된 OS라고 볼 수 있겠지요. 따라서 다음 OS버전이 나올 때까지는 지도를 업그레이드할 수 없는 것처럼 이 엔진들은 가중치를 업그레이드하지 못합니다.


반면에 Ray, 릴라제로 둘은 가끔씩 엔진 자체의 버전도 업데이트 되지만(네비게이션의 Firmware 업그레이드 개념) 수시로 바뀌는 새로운 가중치를 업그레이드함으로써 전혀 다른 엔진처럼 되는 것입니다.(지도데이터는 펌웨어보다는 더 수시로 업그레이드 하지요?)


Ray도 원래는 자체적인 가중치를 쓰다가 요즘 대세인 릴라제로 가중치 포맷으로 연결하도록 바뀌었습니다. 아무래도 오픈소스에서는 릴라제로가 원톱의 유일한 엔진으로 자리를 잡아간다고 보면 될 것 같습니다.


가중치(지도데이터) 역시 3rd party 제품이 많아지고 있습니다.

릴라제로 개발자가 배포하는 순정 best-network도 수시로 업데이트되고 있지만, 다른 사람들이 훈련시킨 릴라마스터(LeelaMasterWeight) 시리즈나 bjiyxo 시리즈도 수시로 업데이트되고 있고, 그리고 엘프고(ELF Open Go)나 피닉스고(PhoenixGo)도 자신들의 가중치 포맷이 아닌 릴라제로 가중치 포맷으로 변환하여 공개한거죠.

덕분에 우리는 입맛에 맞는 지도데이터를 골라서 네비를 쓰는 것처럼 원하는 가중치를 릴라제로에 연결해서 리지, RoReviewPartner, 사바키 등에서 사용할 수 있는 것입니다.



제가 나름 비슷한 컨셉을 가진 네비게이션에 비교해서 설명을 드리긴 했는데...

다들 잘 이해를 하셨을까 모르겠네요...ㅋㅋㅋ



그럼, 다음번에는 무슨 이야기를 전해드릴지... See you next time~




[출처 : https://blog.naver.com/PostView.nhn?blogId=wonsiksnz&logNo=221326464709&categoryNo=3&parentCategoryNo=0&viewDate=&currentPage=2&postListTopCurrentPage=&from=postList]