목록초보사장 생활 (1270)
Dharma
기존의 포스트 대로 작업하면 일반적인 형태의 챗봇을 만들 수가 있지만, 한글은 교육 효과가 떨어질 수 밖에 없습니다. 실은 어마 어마한 교육 데이터가 존재한다면 이런 걱정 안하겠지만 애초에 교육 데이터가 많이 존재하지 않으니 그리고 실제로 많이 존재한다고 해도 한글은 원리상 형태소 분석을 추가해야 교육 효율이 좋아집니다. 즉 seq2seq 방식에서는 춘천에, 춘천에는, 춘천까지 등등 춘천이 들어가는 단어를 전부 다르게 분류합니다. 춘천 이라는 명사에 의미를 주기가 어렵습니다. 영어라면 단어 위주로 나뉘어 지니까 이런 문제가 없지만 한글은 조사 때문에 형태소 분석이 필요합니다. 명사랑 조사를 분리시켜서 교육을 시키면 춘천 이라는 단어에 대한 교육을 시킬 수가 있기 때문에. 교육 효과가 높을 수가 있습니다...
저번 자동진화 웹버젼 챗봇 에 추가 설명을 하겠습니다. 처음부터 어떻게 해야 하는지 모르겠다는 평을 들었기 때문입니다. 자연스럽게 따라하기 편하게 명령을 쭈욱 나열하겠습니다. 이 명령은 아나콘다 가 설치되어 있는 OSX(또는 우분투 머신) 기준에서 작성했습니다. Windows 는 알아서 적용하시길 바랍니다. $ conda create -n tensor python=3.6 $ git clone git@github.com:crazia/NM-chatbot.git $ cd NM-chatbot $ pip install -r requirements.txt $ python manage.py migrate $ python manage.py createsuperuser $ python manage.py makedata ..
지난 포스트 NMT를 이용한 챗봇(console) NMT를 이용한 챗봇(Web 버젼) 에 이어서 세번째 자동 진화 버젼입니다. 간단한 교육시스템을 추가 했습니다. 원리는 간단합니다. 1. 챗봇을 이용하면 모든 대화의 내용이 데이터베이스에 저장됩니다. 2. 저장된 내용을 검토해서 올바른 대답으로 올바른 대답으로 바꾸고 '검토 완료'로 상태를 바꿔서 저장 3. 이렇게 저장된 내용을 교육데이터(train) , 아직은 테스트 데이터를 따로 만들기 어렵기 때문에 교육과 train 을 같이 씁니다. 추후에 따로 분리할 예정입니다. 그리고 train 데이터로부터 단어집을 만들어 줍니다. 4. 이렇게 만들어진 데이터를 바탕으로 교육을 시작합니다. (참고로 aws 저 사용에서 돌리니 서버가 멈출정도로 부하를 주더군요. ..
seq2seq 를 이용해서 챗봇을 만든 시리즈중에서 3번째 입니다. 콘솔버젼 웹버젼 에 이어서 웹버젼 을 실제 AWS 에 디플로이 한 버젼입니다. 현재는 교육 자료가 간단한 문답 6개로 이루어져 있어서 제대로 동작하지는 않지만 추후에 데이타가 많아지면 좀 제대로 대답할 듯 합니다. https://chat.crazia.org 에서 확인 가능합니다. Websocket 을 띄우는데 많이 애 먹었습니다 ㅋㅋ
저번 NMT를 이용한 챗봇(Console) 에 간단하게 웹 인터페이스(web interface) 를 붙여봤습니다. 저번 버젼에서 옵션같은 것을 조정하고 환경변수에 모델이 저장된 위치를 지정하고 웹만 띄우면 되는 버젼으로 가볍게 고쳤습니다. 교육(Train) 시키고 이런 것은 저번 포스트에서 다루었기 때문에 실제로 구동하는 것만 할 줄 알면 될것 같습니다. 웹 버젼은 장고를 이용해서 작성했으면 채널을 이용해서 간단한 웹소켓을 이용하는 식으로 만들었습니다. 저번 포스트 참조하기 다만 저반하고 달라진건 교육 시키는 방법 입니다. 저번에는 급하게 만드느라 package path 연결시키는 것을 무시했는데 이번에는 그걸 다 맞췄습니다. python -m core.nmt \ --attention=scaled_luo..
이름이 멋있는 영지식 증명(zero-knowledge proof)이 최근 뜨고 있습니다. 개념 자체는 1985년때부터 내려오고 있는데 최근 이름이 언급되는건 zcash 가 사용하는 zk-Snarks 때문 일것입니다. http://설명이 잘 되어 있는 사이트 전 위키피디아 글 보다 위의 사이트가 더 설명이 잘 되어 있더군요. 영지식 증명은 증명자(prover) 가 검증자(verifier) 에게 '무언가가 참'이라는 것을 증명하는 방법입니다. 단 '무언가'에 관한 어떤 정보도 노출 시키지 않습니다. 정의 보다는 예를 보면 확실하게 느껴질 수가 있습니다. 색이 다른 두 공이 있습니다. 내가 (prover) 맹인에게(verifier) 두 공을 주고, '두 공이 색이 다르다는 사실'을 증명 시키되 맹인에게 색을 ..
간만에 공부한 내용에서 쓸만 한 문장을 건졌습니다. Ted Famsworth의 영화관람 월정액 서비스(Moviepass) 창업 사례 "신생기업이 해야하는 일은 한가지입니다. 바로 신제품을 개발해 세상에 내놓는 것이죠! 그러려면 두가지 중요한 질문의 답을 찾을 수 잇습니다. 1) 이 제품을 살 고객이 있는가? 2) 얼마까지 지불할 의향이 있는가? 이 두가지 질문의 답을 끊임없이 배우고 있답니다"
최근 열심히 공부해서 간단한 챗봇을 만들 수가 있었습니다. 형태가 간단할 뿐이지 그 안에 들어 있는 Deep Learning 은 구글의 최신 NMT example 을 참조해서 만들었습니다. github 에 올리는 거라 대충 영어로 올렸지만 좀 자세한 설명은 여기에 남길려고 합니다. NMT(Neural Machine Traslation) 과 chatbot 은 원리상 거의 같습니다. seq2seq 방식으로 RNN 세팅해서 교육시키는 것 까지 동일합니다. 따라서 잘 만들어진 NMT 는 training 자료만 교체해서 챗봇으로 활용 가능합니다. 소스는 https://github.com/crazia/NM-chatbot 에서 받을 수 있습니다. 파이썬(python) 버젼은 3.6 이고 tensorflow 버젼은 1..
최근 핫한 AI 에 대해서 강의를 하기 위해서 작성한 노트 정리입니다. 실제로 반응도 나쁘지 않았습니다. 개발자 대상이기 때문에 최소한의 수학을 알면 좋을 것 같습니다. 이후에 뉴럴 네트워크쪽까지 다룰 예정이기 때문에 거의 필수 입니다. 바로 텐서플로우 이용법으로 시작해도 좋지만 기본 원리를 파악한 상태에서 사용하는 것이 더 효율적입니다. 회사 CTO 로서 팀원들에게 최근 가장 핫한 딥 러닝 관련 공부를 시키기 위해서 작성했습니다. 2018 최고의 핫트렌드로 예약 되어 있습니다. 최근 Computer Science 이슈의 블랙홀. 당연히 개발자들은 궁금해 합니다. 그래서 따로 설명을 잘해 주려고 정리했습니다. 최근 가장 핫한 분야입니다. 너도 나도 관심을 가지고 여기 저기서 이야기를 하는 분야이기도 합니..
Elasticsearch 설정하기 드디어!! AWS 에 있는 Elasticsearch 서비스에 은전한닢 플러그인이 추가 됐습니다. 예전에는 이런 기능이 없어서 제가 따로 elasko 라고 은전한닢에 패치된 형태의 엘라스틱서치의 도커 형태를 만들었습니다. 이제 시간이 지나서 elasticsearch 6.0 이 나오고 (제가 만든 elasko 는 5.5 기반) 문법도 많이 바뀌고 해서 다시금 정리할 필요가 있습니다. Elasticsearch 편하게 쓰는걸 원하신다면 AWS 에 있는 서비스 추천입니다. 기업 서비스용이라면 100% 추천입니다. kibana 까지 이용하실려면 vpc 가 아닌 ip 기반으로 관리를 선택하세요 그러나 가난한 개인 개발자라면 한달에 EC2 가격만 해도 부담이 되겠지요. 이 글은 가난한..