전체 글
-
Dialogflow머신러닝 및 딥러닝 2022. 3. 10. 23:50
최근 의도 분류기(Intent Classification) 를 실험해보고 이용해 볼 일이 생겨 의도 분류기로 사용할 수 있는 구글의 Dialogflow 를 어떻게 이용할 수 있는지 적어보려고 합니다. Dialogflow 는 2016년에 기존 챗봇 빌더 시장에서 가장 유명한 플랫폼인 api.ai 를 구글이 인수하여 기존의 우수한 대화식 인터페이스는 살리고 구글의 강력한 머신러닝을 추가하여 만든 챗봇 빌더 플랫폼 입니다. Dialogflow 는 영어뿐아니라 한국어, 중국어, 우크라이나어 등 다양한 언어를 지원 가능하며 더 많은 언어도 추가적으로 업데이트할 예정이라고 합니다.(하지만 영어를 가장 잘 지원하긴 합니다.) 어떤 경우에 사용할 수 있을까? 단순한 작업의 경우 코드를 직접 구성하지 않아도 되기 때문에..
-
Process 와 Thread운영체제 2022. 3. 4. 00:09
Process 와 Thread 프로세스와 쓰레드는 자주 비교되고 면접에서도 많이 물어보지만 프로그래밍을 할때도 종종 고려해야하는 요소이기도 합니다. 오늘은 이 주제에 대해 알아보고자 합니다. 기본 지식 본문에 앞서 읽으면 도움 될 만한 요소들을 준비했습니다. 실행단위 cpu core 에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념 동시성(Concurrency) 한 순간에 여러가지 일이 아니라, 짧은 전환(ex. Context Switching)으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것 하나의 코어에서 하나이상의 프로세스(혹은 스레드)가 번갈아가면서 동시에 진행되는 것처럼 보이는것 병렬성(Parallelism) 프로세서 하나에 코어 여러개가 달려서 각각 동시에 작업들을 수행하는것 ..
-
컴퓨터의 소숫점 문제컴퓨터구조 2022. 3. 1. 21:04
기본적으로 구조상 소숫점 계산을 잘 못합니다. 이렇게 말씀드리면 어떤 분께서는 "엥 무슨소리야 절대 그렇지 않은데 당장 자바에서 혹은 내가 쓰는 언어에서는 정확하게 잘만되던데?"라고 생각하실 수 있습니다. 오늘은 이 이야기를 제가 알고 있는 선에서 자세히 풀어나가보자 합니다. 우선 앞에서 얘기했던 "어떤 분"의 주장을 한번 더 자세히 들어보겠습니다. "자바dp 0.1 + 0.2 해보세요. 심지어 double 보다 더 적은 bit 수를 쓰는 float 를 써도 잘만됩니다. 보세요" public class MyFloat { public static void main(String... args) { float a = 0.1f; float b = 0.2f; System.out.println("result = "..
-
Tokenizer에 종류머신러닝 및 딥러닝 2022. 3. 1. 21:03
단어 단위로 Tokenize 글자단위로 Tokenize 하위 단위로 Tokenize 단어 단위로 Tokenize 장점 : 가장 간단하다(space 단위로 tokenize 를 하면 되니까) 단점 비슷한 단어끼리 의미를 공유하는 단어의 의미가 없어지게 된다. 단어가 굉장히 많기 때문에 거의 무한개의 토큰수가 생성된다. 토큰수를 한정하면 vocab에 해당 단어가 없을 경우 OOV가 되기 때문에 실제로 굉장히 뜻이 다른 단어지만 같은 Representaion으로 표현된다. 글자 단위로 Tokenize 장점 : 가장 적은 vocab 사이즈로 모든 표현이 가능하다. 단점 : 각각의 토큰의 의미를 거의 가지지 않는다. 모델의 입력으로 들어가게 될 때 굉장히 긴 sequence로 들어가기 제약이 많다. subword ..
-
MySQL 대소문자 구별DataBase 2022. 3. 1. 21:01
MySQL 대소문자 구별 참고로 해당 내용은 MySQL 8점대 기준으로 설명하고 있습니다. MySQL 의 대소문자는 MySQL 서버가 떠있는 운영체제에 따라서 다릅니다. Windows 는 대소문자를 구별하지 않고(case-sensitive) Unix 의 변형 운영체제(예를 들어 Linux) 대소문자를 구별합니다. (case-insensitive) MacOS의 경우 Unix 에 기반한 운영체제 지만 파일 시스템 타입이 대소문자를 구별하지 않는 형태입니다. 하지만, 대소문자를 구별하는 UFS도 지원합니다.(case-sensitive) Partition, subpartition, 컬럼(컬럼 alias 를 포함한), 인덱스, stored routine, event, and resource group names ..
-
Spring Cloud Sleuth(1)Spring 2022. 1. 29. 23:30
Spring Cloud Sleuth(1) 아래의 내용은 Spring Cloud Sleuth 2.2.8 RELEASE 버전을 한국말로 번역한 내용입니다. https://docs.spring.io/spring-cloud-sleuth/docs/2.2.8.RELEASE/reference/html/ 소개 Spring Cloud Sleuth 는 Spring Cloud 를 위한 분산 추적을 구현한 솔루션입니다. 용어 Spring Cloud Sleuth 는 구글에서 개발한 Dapper 의 용어를 빌려 사용합니다. Span 일의 가장 기본적인 단위입니다. 예를 들어 RPC에 응답을 보내는 것처럼 RPC 를 보내는 것은 새로운 Span 입니다. 스팬은 고유한 64비트 ID 로 식별됩니다. 또한 Trace(스팬의 총 묶음)..
-
클라우드 환경에서 딥러닝 모델을 띄울 때 주의해야 할점과 나의 환경머신러닝 및 딥러닝 2021. 8. 31. 21:52
1. 우선 위 그림처럼 pid 7060 이 killed 된것을 볼 수 있다.(참고로 환경은 ubuntu 18.04 버전이다.) 이런 경우 디스크(RAM) 프로세스 혹은 모델이 너무 커서 운영체제가 kill 명령어를 입력한 것이다. 따라서 더 좋은 instance로 바꾸는 작업을 해줘야한다. (참고로 도커를 사용한다면 이런것도 뜨지 않고 화면이 멈추는 경우도 자주 등장한다. 아마 RAM이 터져서 렉이 걸리는 거 같다. 따라서 이 경우도 더 좋은 instance로 변경해줘야 한다. 회사한테는 미안하지만 내 시간을 절약하기 위해선 우선 좋은 인스턴스를 할당 받아 내 코드 문제는 아니라는 것을 확인하는 방법으로 시간을 절약하는 방법이 가장 좋은 방법이다.) 2. 우분투 "ubuntu-drivers not fou..
-
BlenderBot 2.0 : An open source chatbot that builds long-term memory and searches the internet머신러닝 및 딥러닝 2021. 7. 19. 17:57
Long-term 메모리를 가지고 있으며 internet에 접근할 수 있는 능력을 가진 챗봇. 멀티턴에 대하여 long-term 메모리에 대해서 현재 존재하는 모델들을 능가하는 성능을 보임. 또한 일관성도 증가 되었고 지식도 더 많은 것을 알 수 있음. 모델은 대화 도중에 얻은 적절한 topic을 long-term memory store에 저장하고 long-term 대화 세션에 참여할때 이를 사용한다. 대화 도중 모델은 자신만의 검색쿼리를 생성하여 인터넷에 검색할 수 있고 관련 텍스트를 읽고 반응을 할 수 있다.