GCP를 사용하여 엄청나게 간단한 ML API 구축

블로그

홈페이지홈페이지 / 블로그 / GCP를 사용하여 엄청나게 간단한 ML API 구축

Nov 13, 2023

GCP를 사용하여 엄청나게 간단한 ML API 구축

회원 전용 스토리 Jason Huynh DataDrivenInvestor 팔로우 -- 1 듣기 공유

회원전용 스토리

제이슨 후인

따르다

데이터 중심 투자자

--

1

듣다

공유하다

AI의 세계에서는 딥 러닝 모델에 넣을 수 있는 입력이 전부입니다. 예를 들어 회의록을 자동으로 요약하는 GPT-3에 텍스트를 입력하거나 DALL-E에 입력하여 놀라운 이미지를 생성합니다.

그러나 나는 그러한 기계 학습 API가 항상 필요한 것은 아니라는 사실을 발견했습니다.

때로는 일부 데이터에 자동으로 레이블을 지정하는 API가 필요할 때가 있습니다.

예를 들어, 나는 직장에서 꽤 게으르다. 저는 모든 작업을 수동으로 수행하는 것을 정말 싫어합니다. 특히 데이터 세트의 라벨을 수동으로 지정해야 하는 경우에는 더욱 그렇습니다.

각 행에 개별적으로 레이블을 지정하는 'if else' 규칙을 만들 수 있다는 것을 알고 있지만, 3줄 이상의 코드를 작성할 때 내 인생 경험을 통해 배운 것이 있다면 아마도 이미 버그를 작성했을 것입니다.

그래서 저는 왜 기계 학습을 사용하여 데이터에 자동으로 레이블을 지정하면 안되는지에 대한 아이디어를 얻었고, 이 데이터를 보려면 대시보드에 있어야 한다는 것을 곧 깨달았습니다.

이제 뭐?

그러다가 또 다른 기발한 아이디어가 떠올랐습니다. API를 만들어 대시보드에 입력하면 어떨까요?

그래서 그것이 바로 제가 한 일입니다.

이제 저는 직장에서 스프레드시트를 열심히 작업하는 척 하면서 클라우드 컴퓨팅의 마법을 활용하고 있습니다.

이 기사에서는 Google Cloud Platform을 사용하여 엄청나게 간단한 기계 학습 출력 API를 만듭니다.

시작하기 전에 먼저 코드를 살펴보고 싶다면 여기에 저장소가 있습니다.

Google Cloud Platform(GCP)을 시작하기 전에 가장 먼저 해야 할 일은 데이터 랭글링을 수행하고 머신러닝 기능이 작동하도록 하는 것입니다.

VS Code, Google Colab, Kaggle 등 모든 IDE에서 이 작업을 수행할 수 있습니다.

저는 Kaggle에서 이 작업을 수행할 예정입니다. Kaggle이 서비스에 대해 매우 관대하고 IDE가 세련되어 보이기 때문입니다.

이 API에는 Pandas 및 Sci-kit 학습이라는 2개의 간단한 라이브러리만 필요합니다.

나는 이 글에서 어떤 알고리즘을 사용할지 결정했습니다.

우리는 숫자 데이터만 사용할 것이고 공통점을 기반으로 한 자동 라벨링을 원했기 때문에 기계 학습으로 Kmeans를 사용할 것입니다. 즉, 이 튜토리얼에서는 비지도 기계 학습 알고리즘만 필요합니다.

이 기사에서는 간단하기 때문에 mpg 데이터 세트를 사용합니다.

이 데이터 세트는 자동차의 연료 결론에 관한 것입니다. 자세한 내용은 University of California, Irvine 웹사이트에서 읽어보실 수 있습니다.

게다가 ML API를 빠르게 구축하려는 목표로 데이터 정리 단계로 여러분을 지루하게 하고 혼란스럽게 하고 싶지 않습니다.

이 경우에는 CSV를 가져오겠지만 보다 현실적으로는 SQL 또는 비SQL 데이터베이스에서 쿼리하거나 API 호출을 수행하게 됩니다.

우리가 무엇을 하고 있는지 말해 봅시다.

나는 Kmeans와 같은 간단한 알고리즘으로 작업하려고 할 때 객체 필드를 별로 좋아하지 않습니다.

물론, 핫 인코딩할 수는 있지만 데이터 정리 코드만 작성하면 이 기사를 읽는 데 시간이 너무 많이 걸리므로 필요하지 않은 열을 제거합시다.

앞서 언급했듯이 우리의 목표는 단순함이므로 문자열이 포함된 열은 모두 제거하고 숫자 필드가 포함된 열만 유지하겠습니다.

데이터 세트에 정수가 있으므로 일관성을 위해 숫자로 변환하겠습니다.

Kmeans는 데이터 포인트가 다른 포인트까지의 거리를 측정하여 작동합니다. 서로 가까운 데이터 포인트는 클러스터를 만듭니다. 이 거리는 유클리드 거리로 측정됩니다. 기본적으로 삼각형의 빗변을 상상해 보세요. 그것이 바로 거리입니다. 여기 Wikipedia 기사에서 자세한 내용을 알아볼 수 있습니다.

알고리즘의 클러스터 수를 설정할 수 있으며, 시작하는 무작위 상태에 따라 출력이 동일해지기를 원할 수도 있습니다. 여기에서 sci-kit learn의 kmean 구현에 대해 자세히 알아볼 수 있습니다.

이제 라벨이 있으므로 데이터 세트에 라벨을 첨부하기만 하면 됩니다. 이는 기본적으로 각 데이터 행이 속하는 클러스터입니다.