프로그래밍/기타 2

프로토콜 버퍼

프로토콜 버퍼(Protocol Buffers, protobuf)란? 프로토콜 버퍼는 구글에서 구조화된 데이터를 직렬화하기 위해 공개한 오픈소스 언어이다. 줄여서 protobuf 혹은 pd라고 부르며, Java, Python, Objective-C 및 C++ 등 다양한 언어를 지원한다. 직렬화란 데이터를 파일로 저장하거나 네트워크 통신에 사용하기 위한 형식인 바이트 스트림 형태로 변환하는 것이다. json과 protobuf 비슷한 데이터 형식으로 json이 있다. 보통 데이터를 교환할때 json 형태를 많이 사용하지만 프로토콜 버퍼를 이용하는 이유는 처리 속도가 빠르고 직렬화된 파일의 크기도 월등히 줄일 수 있어, 대용량 데이터 처리에 용이하다. 그 대신 바이너리 데이터로 표현되기 때문에 사람이 직접 확인..

kochat을 활용한 closed domain 챗봇 구현 과정

Kochat 이란? Kochat은 한국어 전용 챗봇 개발 프레임워크로, 머신러닝 개발자라면 누구나 무료로 손쉽게 한국어 챗봇을 개발할 수 있도록 돕는 오픈소스 프레임워크입니다. 데이터 전처리, 아키텍처, 모델과의 파이프라인, 실험 결과 시각화, 성능평가 등은 Kochat의 구성을 사용하면서 개발자가 원하는 모델이나 Loss함수, 데이터 셋 등만 간단하게 작성하여 자신이 원하는 모델의 성능을 빠르게 실험할 수 있게 도와준다. 또한 프리 빌트인 모델들과 Loss 함수 등을 지원하여 딥러닝이나 자연어 처리에 대해 잘 모르더라도 프로젝트에 데이터만 추가하면 손쉽게 상당히 높은 성능의 챗봇을 개발할 수 있게 도와준다. 챗봇의 분류 챗봇은 크게 비목적대화를 위한 Open domain 챗봇과 목적 대화를 위한 Clo..