2018.09.12

“감정 읽기부터 누드 사진 색출까지” 개발자가 행복해지는 머신러닝 API 10선

Peter Wayner | InfoWorld

그리 오래지 않은 과거만 해도 인공 지능이라고 하면 흰색 실험실 가운을 입은 사람들의 전유물이었다. 과학이란 신비롭고 복잡하며 극소수의 사람만 이해할 수 있는 학문이었다.

이제는 아니다. 실험실 가운을 입은 과학자들은 소프트웨어를 서비스로 배포하는 방식이 지닌 위력을 알아채고는 코드를 모아 누구나 사용할 수 있는 API로 만들었다. 서비스에 데이터를 게시하면 똑똑한 인공 지능이 몇 ms만에 결과를 가지고 온다. 물론 데이터 집합이 큰 경우 그보다 조금 더 오래 걸릴 수는 있다.

Image Credit: GettyImagesBank

인공 지능은 데이터를 가지고 가서 도대체 무슨 일을 하는 걸까? 그 부분에는 별로 신경 쓸 필요 없다. 신경 쓰지 않아도 되는 것이 바로 SaaS(software as a service)의 핵심이다. 그저 데이터가 들어가면 똘똘하게 결과를 내보낼 뿐이다.

물론 이 말은 약간 과장이다. AI 코드 깊은 부분의 수학까지 속속들이 이해할 필요는 없고 “이것을 텐서(tensor)하고 저것을 벡터(vector)하고” 따위의 말을 능숙하게 구사할 정도의 지식이 필요하지도 않지만, 데이터가 잘 들어갈 때까지 어느 정도 시간을 들여 작업해야 한다. 적절한 줄에 올바른 유형의 값을 집어넣은 적절한 형식의 데이터를 완성하기까지는 여전히 상당한 작업이 필요하다.

데이터를 만족스럽게 가공한 이후에는 거의 대부분 API를 여러 번 반복해서 실행하게 된다. 이것이 이 모델의 핵심의 일부분이다. 시간을 들여 문제의 형태를 가다듬은 다음 API가 AI 코드를 실행하도록 하면 된다. 사람은 과학에 집중하고 API는 복잡한 수치 계산에 집중한다.

완벽하지는 않지만 직접 코드를 쓰는 것보다는 낫다. 그런 이유로 AI는 폭발적인 관심을 끌고, 선택할 수 있는 머신러닝 API가 많이 나오고 데이터를 모델로, 모델을 웹 서비스로 바꿔주는 클라우드 서비스가 있는 것이다. 복잡한 알고리즘을 붙잡고 씨름하는 몇 시간, 며칠, 몇 달의 시간을 아껴줄 머신러닝 API 몇 가지를 소개한다.

클라우드워즈(Cloudwords)
마케팅 자료에서는 “인공 지능”과 “머신러닝”이라는 용어를 찾아보기 어렵지만, 클라우드워즈는 분명 이 분야의 상품을 제공한다. 클라우드워즈의 공식적인 용도는 기업에서 대량의 텍스트를 편하게 관리하고 어떤 언어로든 일관적인 번역을 유지하도록 하는 데 있다. 마케팅 팀에서 다양한 언어를 사용하는 사람들을 상대해야 하는 다국적 기업은 클라우드워즈를 통해 고객에게 제공되는 모든 텍스트 버전을 일관적으로, 최신 상태로 유지할 수 있다.

클라우드워즈는 신경망과 통계 모델을 사용하는 여러 가지 번역 엔진에 의존한다. 또한 사람의 지도와 조정이 필요할 수 있는 일반적인 관용구와 구문을 캐시에 저장하는 메커니즘도 제공한다. 텍스트가 시스템을 거쳐 흐르면 이 번역 메모리도 자동으로 업데이트된다.

코드에는 기업 파일 시스템, 마케팅 자동화 툴, 주요 콘텐츠 관리 시스템과 클라우드워즈 파이프라인을 통합하는 모듈이 포함된다. 한 가지 언어로 새로운 텍스트가 수신되면 클라우드워즈가 이 텍스트를 파이프라인을 통해 구글, 마이크로소프트, 릴트(Lilt)와 같은 외주 계약 업체의 기계 번역 서비스로 보낸다. 이후 이 텍스트는 회사 저장소나 CMS로 돌아와서 사용자가 각자 적절한 언어로 해당 텍스트를 볼 수 있도록 한다.

페이스 API(Face API)
마이크로소프트 페이스 API를 사용할 수 있다면 “월리를 찾아라”에서 월리를 찾기도 별로 어렵지 않을 것이다. 페이스 API에서 인물 사진을 스캔하면 이미지에서 그 얼굴의 좌표가 기록된 데이터 구조를 받게 된다. 또한 이 API는 머리 색, 수염의 양, 나이나 성별도 상당히 구체적으로 추정해 알려준다. 월리를 찾아라 게임에 적용한다면 페이스 API는 이미지 데이터베이스에서 월리와 일치하는 사진을 찾은 다음 두 사진이 같은 사람일 가능성을 반환할 것이다.

이모션 API(Emotion API)
사람은 손쉽게 얼굴에서 감정을 읽고 여러 사진 중에서 행복, 슬픔 또는 분노한 표정을 골라낼 수 있다. 마이크로소프트 이모션 API는 이미지에 포함된 사람의 감정을 자동으로 판별할 수 있는 인공 지능을 제공한다.

인간의 감정은 복잡하지만 이모션 API는 이미지의 특정 얼굴이 표출하는 분노, 경멸, 혐오, 공포, 행복, 슬픔 또는 놀람의 정도를 나타내는 0과 1 사이의 8개 숫자 벡터로 감정을 간소화한다. 마이크로소프트는 여러 국가에서 이 시스템을 테스트한 결과, 다양한 문화권에 걸쳐 대체로 일관적인 결과를 얻었다고 한다. 정말일까? 이 벡터에는 너무 큰 가중치를 두지 말고, 알고리즘이 대충 비슷한 답을 얻을 수 있다는 것만도 기적으로 받아들이는 편이 좋을 듯하다.

자동 대체 텍스트(Automatic Alternative Text)
모범적인 웹사이트에는 <img> 태그에 대체 텍스트가 포함되어 있어 검색 인덱스에서 알아보고 시각 장애인도 무엇이 표시되는지 알 수 있다. 대체 텍스트 입력은 이미지 수가 많지 않다면 사람이 비교적 쉽게 할 수 있는 일이지만, 이미지가 많을 경우 매우 고단한 작업이 된다. 바로 이 부분에 인공 지능을 활용할 수 있다. 발빠른 웹마스터는 마이크로소프트의 컴퓨터 비전 API(Computer Vision API)를 사용해서 이미지에 자동으로 대체 텍스트를 집어넣고 있다. AI가 넣는 텍스트가 항상 정확한 것은 아니지만 많은 이미지를 다루는 지루한 수작업에서 해방될 수 있다.

드루팔(Drupal)용 자동 대체 텍스트(Automatic Alternative Text) 모듈은 CMS가 백그라운드의 비전 API에 이미지를 업로드한 다음 alt 필드를 자동으로 채우는 좋은 예다. 드루팔을 기반으로 구축된 웹사이트는 사용자들이 토론하고 이따금 이미지도 업로드하는 대규모 개방형 커뮤니티인 경우가 많다. 그 중에는 이미지에 맞는 캡션을 생각하는 데 시간을 소비하기 싫은 사람도 있을 것이다. 인공 지능을 사용하면 모두에게 사이트의 품질이 업그레이드되고 검색 속도가 빨라지며 사용자가 캡션을 쓰는 시간을 절약할 수 있다.

누드박스(Nudebox)
미꾸라지 한 마리가 웅덩이를 흐린다는 말이 있다. 사용자가 자유롭게 이미지를 올릴 수 있도록 웹사이트를 개방하면, 꼭 외설스러운 사진을 올려 사이트 물을 흐리는 사람이 나타난다. 머신박스(Machinebox)의 툴 중 하나인 누드박스는 노출이 심한 이미지를 스캔한다. 완벽한가? 그렇지는 않지만 가장 의심스러운 이미지를 골라내는 데 분명 도움이 된다. 그것 만으로도 많은 시간을 절약할 수 있다.

아마존 커넥트(Amazon Connect)
AWS 클라우드의 흥미로운 옵션 중 하나인 아마존 커넥트는 회사의 콜센터를 만드는 데 도움이 되는 툴 모음이다. 외부적으로는 전화 서비스 구축을 위한 단순한 툴킷이다. 그러나 내부에서는 아마존의 여러 AI 툴을 엮어 복잡한 일을 처리한다. 아마존 렉스(Lex)의 자연어 툴을 사용하면 고객의 첫 접촉 지점 역할을 할 수 있는 챗봇을 만들 수 있다. 사람의 지혜가 필요한 경우 커넥트는 문제 해결에 필요한 전문성을 갖춘 적절한 서비스 상담원에게 통화를 전달한다. 커넥트는 해결 과정을 추적하고 상담원의 순위를 매겨 다음에 전화를 건 고객이 최상의 경험을 할 수 있도록 보장한다. 아마존이 이미 다양한 AI 툴을 커넥트에 통합했으므로 직접 통합 작업을 할 필요가 없다.


2018.09.12

“감정 읽기부터 누드 사진 색출까지” 개발자가 행복해지는 머신러닝 API 10선

Peter Wayner | InfoWorld

그리 오래지 않은 과거만 해도 인공 지능이라고 하면 흰색 실험실 가운을 입은 사람들의 전유물이었다. 과학이란 신비롭고 복잡하며 극소수의 사람만 이해할 수 있는 학문이었다.

이제는 아니다. 실험실 가운을 입은 과학자들은 소프트웨어를 서비스로 배포하는 방식이 지닌 위력을 알아채고는 코드를 모아 누구나 사용할 수 있는 API로 만들었다. 서비스에 데이터를 게시하면 똑똑한 인공 지능이 몇 ms만에 결과를 가지고 온다. 물론 데이터 집합이 큰 경우 그보다 조금 더 오래 걸릴 수는 있다.

Image Credit: GettyImagesBank

인공 지능은 데이터를 가지고 가서 도대체 무슨 일을 하는 걸까? 그 부분에는 별로 신경 쓸 필요 없다. 신경 쓰지 않아도 되는 것이 바로 SaaS(software as a service)의 핵심이다. 그저 데이터가 들어가면 똘똘하게 결과를 내보낼 뿐이다.

물론 이 말은 약간 과장이다. AI 코드 깊은 부분의 수학까지 속속들이 이해할 필요는 없고 “이것을 텐서(tensor)하고 저것을 벡터(vector)하고” 따위의 말을 능숙하게 구사할 정도의 지식이 필요하지도 않지만, 데이터가 잘 들어갈 때까지 어느 정도 시간을 들여 작업해야 한다. 적절한 줄에 올바른 유형의 값을 집어넣은 적절한 형식의 데이터를 완성하기까지는 여전히 상당한 작업이 필요하다.

데이터를 만족스럽게 가공한 이후에는 거의 대부분 API를 여러 번 반복해서 실행하게 된다. 이것이 이 모델의 핵심의 일부분이다. 시간을 들여 문제의 형태를 가다듬은 다음 API가 AI 코드를 실행하도록 하면 된다. 사람은 과학에 집중하고 API는 복잡한 수치 계산에 집중한다.

완벽하지는 않지만 직접 코드를 쓰는 것보다는 낫다. 그런 이유로 AI는 폭발적인 관심을 끌고, 선택할 수 있는 머신러닝 API가 많이 나오고 데이터를 모델로, 모델을 웹 서비스로 바꿔주는 클라우드 서비스가 있는 것이다. 복잡한 알고리즘을 붙잡고 씨름하는 몇 시간, 며칠, 몇 달의 시간을 아껴줄 머신러닝 API 몇 가지를 소개한다.

클라우드워즈(Cloudwords)
마케팅 자료에서는 “인공 지능”과 “머신러닝”이라는 용어를 찾아보기 어렵지만, 클라우드워즈는 분명 이 분야의 상품을 제공한다. 클라우드워즈의 공식적인 용도는 기업에서 대량의 텍스트를 편하게 관리하고 어떤 언어로든 일관적인 번역을 유지하도록 하는 데 있다. 마케팅 팀에서 다양한 언어를 사용하는 사람들을 상대해야 하는 다국적 기업은 클라우드워즈를 통해 고객에게 제공되는 모든 텍스트 버전을 일관적으로, 최신 상태로 유지할 수 있다.

클라우드워즈는 신경망과 통계 모델을 사용하는 여러 가지 번역 엔진에 의존한다. 또한 사람의 지도와 조정이 필요할 수 있는 일반적인 관용구와 구문을 캐시에 저장하는 메커니즘도 제공한다. 텍스트가 시스템을 거쳐 흐르면 이 번역 메모리도 자동으로 업데이트된다.

코드에는 기업 파일 시스템, 마케팅 자동화 툴, 주요 콘텐츠 관리 시스템과 클라우드워즈 파이프라인을 통합하는 모듈이 포함된다. 한 가지 언어로 새로운 텍스트가 수신되면 클라우드워즈가 이 텍스트를 파이프라인을 통해 구글, 마이크로소프트, 릴트(Lilt)와 같은 외주 계약 업체의 기계 번역 서비스로 보낸다. 이후 이 텍스트는 회사 저장소나 CMS로 돌아와서 사용자가 각자 적절한 언어로 해당 텍스트를 볼 수 있도록 한다.

페이스 API(Face API)
마이크로소프트 페이스 API를 사용할 수 있다면 “월리를 찾아라”에서 월리를 찾기도 별로 어렵지 않을 것이다. 페이스 API에서 인물 사진을 스캔하면 이미지에서 그 얼굴의 좌표가 기록된 데이터 구조를 받게 된다. 또한 이 API는 머리 색, 수염의 양, 나이나 성별도 상당히 구체적으로 추정해 알려준다. 월리를 찾아라 게임에 적용한다면 페이스 API는 이미지 데이터베이스에서 월리와 일치하는 사진을 찾은 다음 두 사진이 같은 사람일 가능성을 반환할 것이다.

이모션 API(Emotion API)
사람은 손쉽게 얼굴에서 감정을 읽고 여러 사진 중에서 행복, 슬픔 또는 분노한 표정을 골라낼 수 있다. 마이크로소프트 이모션 API는 이미지에 포함된 사람의 감정을 자동으로 판별할 수 있는 인공 지능을 제공한다.

인간의 감정은 복잡하지만 이모션 API는 이미지의 특정 얼굴이 표출하는 분노, 경멸, 혐오, 공포, 행복, 슬픔 또는 놀람의 정도를 나타내는 0과 1 사이의 8개 숫자 벡터로 감정을 간소화한다. 마이크로소프트는 여러 국가에서 이 시스템을 테스트한 결과, 다양한 문화권에 걸쳐 대체로 일관적인 결과를 얻었다고 한다. 정말일까? 이 벡터에는 너무 큰 가중치를 두지 말고, 알고리즘이 대충 비슷한 답을 얻을 수 있다는 것만도 기적으로 받아들이는 편이 좋을 듯하다.

자동 대체 텍스트(Automatic Alternative Text)
모범적인 웹사이트에는 <img> 태그에 대체 텍스트가 포함되어 있어 검색 인덱스에서 알아보고 시각 장애인도 무엇이 표시되는지 알 수 있다. 대체 텍스트 입력은 이미지 수가 많지 않다면 사람이 비교적 쉽게 할 수 있는 일이지만, 이미지가 많을 경우 매우 고단한 작업이 된다. 바로 이 부분에 인공 지능을 활용할 수 있다. 발빠른 웹마스터는 마이크로소프트의 컴퓨터 비전 API(Computer Vision API)를 사용해서 이미지에 자동으로 대체 텍스트를 집어넣고 있다. AI가 넣는 텍스트가 항상 정확한 것은 아니지만 많은 이미지를 다루는 지루한 수작업에서 해방될 수 있다.

드루팔(Drupal)용 자동 대체 텍스트(Automatic Alternative Text) 모듈은 CMS가 백그라운드의 비전 API에 이미지를 업로드한 다음 alt 필드를 자동으로 채우는 좋은 예다. 드루팔을 기반으로 구축된 웹사이트는 사용자들이 토론하고 이따금 이미지도 업로드하는 대규모 개방형 커뮤니티인 경우가 많다. 그 중에는 이미지에 맞는 캡션을 생각하는 데 시간을 소비하기 싫은 사람도 있을 것이다. 인공 지능을 사용하면 모두에게 사이트의 품질이 업그레이드되고 검색 속도가 빨라지며 사용자가 캡션을 쓰는 시간을 절약할 수 있다.

누드박스(Nudebox)
미꾸라지 한 마리가 웅덩이를 흐린다는 말이 있다. 사용자가 자유롭게 이미지를 올릴 수 있도록 웹사이트를 개방하면, 꼭 외설스러운 사진을 올려 사이트 물을 흐리는 사람이 나타난다. 머신박스(Machinebox)의 툴 중 하나인 누드박스는 노출이 심한 이미지를 스캔한다. 완벽한가? 그렇지는 않지만 가장 의심스러운 이미지를 골라내는 데 분명 도움이 된다. 그것 만으로도 많은 시간을 절약할 수 있다.

아마존 커넥트(Amazon Connect)
AWS 클라우드의 흥미로운 옵션 중 하나인 아마존 커넥트는 회사의 콜센터를 만드는 데 도움이 되는 툴 모음이다. 외부적으로는 전화 서비스 구축을 위한 단순한 툴킷이다. 그러나 내부에서는 아마존의 여러 AI 툴을 엮어 복잡한 일을 처리한다. 아마존 렉스(Lex)의 자연어 툴을 사용하면 고객의 첫 접촉 지점 역할을 할 수 있는 챗봇을 만들 수 있다. 사람의 지혜가 필요한 경우 커넥트는 문제 해결에 필요한 전문성을 갖춘 적절한 서비스 상담원에게 통화를 전달한다. 커넥트는 해결 과정을 추적하고 상담원의 순위를 매겨 다음에 전화를 건 고객이 최상의 경험을 할 수 있도록 보장한다. 아마존이 이미 다양한 AI 툴을 커넥트에 통합했으므로 직접 통합 작업을 할 필요가 없다.


X