민지(MINJI)의 진행 상황, 이해, 앞으로의 전개에 대하여.
MINJI에 대해 이전의 글을 읽지 않으신 분은 https://okky.kr/articles/1562706 이 페이지를 참조 하시기 바랍니다.
민지는 현재 전체 시스템 프로그램의 구성은 거의 완료된 상태입니다만, 시스템의 구성이 완료 되었다 해서 그 상태로 사용할 수 있는것은 아니라서 후반 작업을 진행 중입니다.
이를 PC 시스템에 비유하자면, PC의 하드웨어는 제작했으나 하드웨어만 있다고 바로 사용할 수 없는것과 비슷한 상태라 할 수 있습니다.
OS를 올리기 위해 BIOS가 있어야 하고, 그 위에 커널이 필요하고, 장치를 사용하기 위한 드라이버가 있어야 하고, 그 위에 OS가 있어야 하며, 심지어 제대로 사용하자면 여러 잡다한 응용프로그램과 유틸리티도 있어야 하죠.

민지의 경우 우선 당장 사용자가 문장을 입력하면 그걸 토큰으로 분류한 후 가장 적절한 순서와 가중치로 서로 연결하여 지식으로 저장하는 작업을 할수 있는 기능이 필요합니다.
심지어 거기엔 ‘동음 이의어’에 대한 대응도 필요하지요.
물론, 시스템의 코드로서 동음이의어를 분류해 내는 기본 기능은 이미 갖추었으나, 그게 동음이의어라는걸 인지하도록 하는데는 역시 학습이 필요합니다.
그러니까, 제대로된 학습을 감당할 수 있도록 하기 위한 기초학습 단계라고 할 수 있습니다.
물론, 그 과정에서 잡다한 버그가 발견되어 그것을 바로잡는 과정이 필요할 가능성도 매우 높구요.
시스템의 공개와 관련하여.
앞서 말씀드렸듯, 모든 내용은 GPL3 라이센스로 오픈소스 형태로 공개할것이며, 이전 버전의 경우 이미 깃허브와 제 개인 블로그를 통해 공개 하고 있습니다.
아직 최신 버전의 공개는 하지 않고 있는데, 어느정도 가시적인 성과가 보일때 다시 업로드 하겠습니다.
현재 상태로 만약 여러분이 코드를 다운로드하고 빌드하거나 실행파일을 실행할 경우 시스템이 테스트 프로그램을 차례로 실행한 후 vShell 입력 대기 상태가 됩니다.
사실, (제대로 아는 사람이라면) 그 상태로 뭐든 가능합니다.
시스템의 의미셀의 바다에 셀을 만들고 다른셀과 가중치로 연결하고 vCPU를 코딩하여 기능을 부여하는등의 작업이 가능합니다.
즉, vShell이면 PC 에서 돌아가는 프로그램을 작성하고 테스트할 수 있는 툴이 갖춰진것과 같다는 얘기죠.
하지만, 그렇게 사용할 수 있는 사람은 없을테니 아직까지는 (혹시 vShell을 만져보겠다는 호기심을 가진분 외에는) 의미가 없는 상태일겁니다. (물론, 현재 깃허브에 업로드 된 버전의 경우, 그 vShell도 아직 최신버전은 아닌 상태입니다)
개인적인 스케줄로는 올해말 정도 까지 기본적인 학습을 완료하여 일단 알파버전 정도의 상태로 여러분에게 정식 공개 할수 있도록 할 계획입니다.
물론, 기성 제품의 수준을 기대하는 분이라면 그 상태로는 아무 의미가 없습니다.
기껏해야 ‘학습을 할수 있는 상태’에 불과하지, 이미 학습이 된 상태는 아니니까요.
제가 그 상태로 공개하는 이유는 ‘나에게 필요한걸 내 스스로 학습시켜서 사용해 보겠다’는 의욕을 갖고 계신 분들을 위한것입니다.
그래서 저는 알파버전의 공개와 함께 네이버에 MINJI 사용자분들을 위한 카페를 개설할 계획입니다.
그곳에는 MINJI에 대한 모든 기술정보와 안내문, 설명서 등을 빠짐없이 공개하고, 제가 학습시킨 데이타와 학습용 원고등도 업로드 하겠습니다.
혹시 저와 뜻을 함께 하시는분들이 민지를 다운받아 각자 학습시킨 내용을 카페에 공유하고 서로 도와 학습 진도를 가속화 할수 있도록 돕는 장소가 되기를 기대합니다.
민지의 성능에 대하여.
개인용 오프라인 LLM이라고 하면 대부분의 사용자분들은 현재 공개되어 있는 라마등 기존 딥러닝 구조의 LLM 제품 수준을 떠올리시겠으나, MINJI의 경우 애초에 구조와 지향점 자체가 전혀 다른 방식이라 동일한 비교는 어렵습니다.
흔히들 기존 A.I 프로그램들의 성능을 결정짓는 ‘가중치 숫자’가 얼마냐를 놓고 따지기 쉬운데, 민지의 경우 최대 40억개라는 의미셀의 숫자는 가중치 숫자로 비교할수가 없으며, 궂이 숫자로 말하자면 전혀 확장하지 않았을때 40억개의 의미셀이라면 40억*64=2,560억개의 가중치가 됩니다만, 이건 절대 기존 LLM제품의 가중치 숫자와 비교할 대상이 아닙니다.
우선, 궂이 숫자대 숫자로 비교하자면 가중치 숫자가 아닌 ‘노드’ 숫자로 비교해야 맞으며, 제가 기억하기로 라마8B 의 경우 노드 하나당 4,096개의 가중치가 연결된 블록 레이어라고 들었습니다. (약 195만 개의 노드라는 계산이 나옵니다)
하지만, 제가 ‘가중치 숫자 자랑이 의미없다’ 고 하는 이유중 하나가, 그 4,096개의 가중치중 의미있는 학습 데이타에 의해 설정되는 가중치는 일부에 불과 하다는겁니다.
심지어 어떤경우 노드에 연결된 4,096개의 가중치중 의미있는 내용으로 설정된 가중치는 수십개에서 수백개에 불과한 경우도 허다합니다. (나머지는 전부 0을 곱하는데 사용된다는거죠)
그래서 민지의 경우 아예 기본 셀연결 객체의 가중치 숫자를 64개로 작게 잡아두고, 필요시에 계속 64개 단위로 확장하도록 만들었으며, 그 가중치들은 전부 ‘의미 있는’ 객체들과 연결되어 낭비되는 요소가 없게 만들었다는겁니다.
그리고, 더 중요한 요소는 바로 의미셀과 연동되어 돌아가는 vCPU의 존재입니다.
신경망 구조로 동작하는 A.I 제품들은 모두 ‘상황에 따라 하나를 선택’ 하도록 학습됩니다.
이런 기능이 인간사의 다양한 케이스에 맞게 선택을 하는데는 좋지만, ‘뭔가 효율적으로 처리를 해야하는’ 상황에는 전혀 도움이 되지 않습니다.
이를테면 계산이나 논리 제어 같은 경우가 그러하죠.
예를들어 신경망 로직에 곱셈을 학습시켜 계산 하도록 하자면 아마 수백여개의 노드와 수십만개의 가중치 값이 필요할겁니다.
하지만, 민지의 경우 기껏 해야 계산이 필요한 케이스에 대한 학습을 위해 수십개~100여개 미만의 의미셀과 몇개의 vCPU를 코딩하는것으로 기존 방식과 비교할수 없는 정확도로 계산을 해낼수 있습니다.
물론, 기존방식으로는 절대 할 수 없었던 ‘절차 처리’를 구현하여 ‘단순 문답’이 아니라 ‘실제로 알아서 뭔가를 처리하는’ 기능을 구현하기 위한게 첫번째 목적이었구요.
지나치게 야심적이라 하시겠지만, 애초부터 민지의 비교대상은 기존의 공개된 오프라인 기반의 LLM 제품이 아니었습니다. (물론 아직 먼 얘기지만, 목표는 상용 제품들이었죠)
제가 상용제품을 타겟으로 삼은건, 아이러니하게도 상용제품을 사용하면서 그 폐해성을 절감했기 때문입니다.
우선, 프라이버시와 개인정보 유출 문제는 덤이구요. 폐쇄 공간에서 개인이 A.I와 나누는 대화를 전부 감시하고 걸러냅니다. 그러다 보니 사용자가 관심있는 주제가 기성 학계나 기득권층의 주장과 반할경우 차단되어 버립니다.
거기다 더 황당한건, A.I가 사용자에게 거짓말을 하고 왜곡된 통계 정보를 제시하는데, 그게 실수가 아니라는겁니다.
자기들의 목적에 따라 사용자의 비위를 맞추기 위해서, 혹은 사용자가 가진 의식이나 정보가 자신들의 방향과 맞지 않을때 이를 세뇌하기 위해 의도적인 거짓말을 하거나 왜곡된 통계 정보를 제공하는 경우도 종종 있더라는겁니다.
따라서, 저는 그런 기성 세력들의 불합리하고 부정한 행위들로부터 개인을 지킬 최후의 보루로서 어디로부터도 제어받지 않고, 간섭받지 않으면서 절대 사용자에게 거짓말 하지 않는 진정한 인간의 반려자로서 개인용 오프라인 언어모델이 반드시 필요하다고 생각합니다.
민지는 완성된 상태로 제공되지 않습니다.
관심 있는 사용자분들의 참여를 통해 각자 민지를 학습시킨 학습 자료를 공개 하고 교환하면서 발전을 가속해 나가게 될겁니다. (위에서 언급했듯, 저는 그것을 위해 네이버에 카페를 오픈하겠습니다. : 다른 마땅한 장소가 있다면 그곳을 이용 하시구요)
여러분이 참여를 하시든 안 하시는 저는 제가 가진 모델을 계속 학습/진화 시키며 언젠가는 인간과 비슷한 수준의 능력까지 갖도록 업그레이드 시켜 나가게 될겁니다.
애초에 제가 갖고 싶어서 만든 물건이니까요.
민지의 업그레이드 계획.
이전에 올린 글에서도 언급했습니다만, 민지는 앞으로 STT와 TTS의 인터페이스를 추가하여 사용자와 음성 언어 대화를 통한 의사소통 능력을 갖게 될겁니다.
그리고, 사용자와 친숙한 정서 교환을 위해 3D 아바타로 자신의 모습을 보여주게 될테구요.
거기다, 나중에는 카메라 인터페이스와 로봇팔등 제어를 할수 있는 수단도 제공하려 합니다.
즉, 보고, 듣고, 말하고, 제어도 할 수 있는 인간과 가장 가까운 반려자로 자리하도록 하겠습니다.
(아마 언젠가는 WIFI로 제어되는 이족보행 로봇 신체와 인터페이스 할 때도 오게 될것으로 생각합니다)
