웹 응용 프로그램에서 기계 학습 기능 가져오기
개시하다
팀 개발은 웹 응용 프로그램에서 기계 학습 기능을 편입하는 임무가 있기 때문에 비망록으로 정리한다.
이번 기계 학습 임무는aws의sqs와lambda에서의bert가 문장에 대한 적극적이고 소극적인 판정이다.
개요
나는 기계 조립 학습 임무를 수행할 때 문제가 생기는 것은 추론 시간이라고 생각한다.
일반적으로 API 서버에서 동기화 작업을 수행하면 시간 초과가 발생할 수 있습니다.
따라서 메시지ingqueue에 들어가면 lambda로 처리하고db를 업데이트하여 비동기 처리를 수행합니다.
아키텍처
생략하고 대체적인 구조는 다음과 같다.
api 서버
API의 서비스는 app runner이며, NestJS에서 다음과 같이 API(graphiql)를 구축합니다.
resolver에서 이 서비스를 직접 호출합니다.
import { SQSClient, SendMessageCommand } from '@aws-sdk/client-sqs';
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { Message } from './dto/Message';
@Injectable()
export class SqsService {
private readonly sqsClient: SQSClient;
private readonly SQS_QUEUE_URL: string;
constructor(private readonly configService: ConfigService) {
this.SQS_QUEUE_URL = this.configService.get('SQS_QUEUE_URL', '');
this.sqsClient = new SQSClient({ region: this.configService.get('SQS_REGION') });
}
async publishToQueue(message: Message) {
const command = new SendMessageCommand({
QueueUrl: this.SQS_QUEUE_URL,
MessageBody: JSON.stringify(message),
MessageGroupId: message.id,
});
return await this.sqsClient.send(command);
}
}
Messaging Queue
메시지 대기열 (MQ) 은 비동기 처리를 가능하게 하는 통신 수단으로 제품에서 MQ에 메시지를 기록합니다.정보는 대기열에 누적되어 consuumer 쪽에서 정보를 받고 처리를 시작합니다.
MQ에도 rabbit MQ 등 오픈소스가 있는데 이번에는 awssqs를 사용했다.
Lambda
사건을 sqs로 촉발한 블리시는 블리시가 발생할 때 불이 납니다.
lambda의 deproy에 대해 ECR에 docker 이미지를 주고 그것을 사용합니다.
lambda에서python은 다음과 같은 내용을 실현했다.
from __future__ import annotations
import json
from core.task import task
def handler(event, context) -> str:
params = json.loads(event['Records'][0]['body'])
input_text: str = params['content']
positive_degree: int = task(input_text) # ポジネガ判定
post_request() # APIにrequest投げる
task로 양과 음 판정을 진행한다.(학습이 끝난 BERT를 사용했기 때문에 이번에는 사랑하지 않겠다.)task를 처리한 후 API를 두드려서db의positive/negaive 열을 업데이트하십시오.
대형 모델을 사용할 때는 메모리, 효과 저장과 시간 초과가 좀 길어야 한다.
또한parameter store에서 신용장 정보를 끌어온 경우 적절한 역할을 먼저 해주세요.
총결산
본고는 웹 응용 프로그램에서 기계 학습 기능을 도입하는 방법을 소개했다.
모델링과 예측 등에도 활용할 수 있다.
참고 문헌
Reference
이 문제에 관하여(웹 응용 프로그램에서 기계 학습 기능 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/hosimesi/articles/dce6c677bfc95f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)