본문 바로가기

분류 전체보기120

[Torchserve] torchserve explanations API 사용하기 [torchserve에서 기본으로 제공하는 API] torchserve는 기본적으로 아래 3가지 Service API를 제공하고 있습니다. - Inference API - Management API - Metrics API 그리고 각각의 API는 다른 포트와 path 로 구분을 하여 request 합니다. 각 API 별 curl 예시는 아래와 같습니다. API curl example PORT path inference http://127.0.0.1:8080/predictions/resnet-18/2.0 -T kitten_small.jpg 8080 predictions management http://127.0.0.1:8081/models/noop 8181 models metrics http://127.0.. 2022. 9. 1.
[Torchserve] torchserve Backend worker did not respond in given time [Error message] - Backend response time : 120000 - Backend worker did not respond in given time torchserve에서 API를 request 했을 때 handle 함수를 실행하는데, 이때 handle 함수를 실행해서 return 하는 시간은 기본적으로 120초(2분)으로 설정되어있다. (default config 값: default_response_timeout=120) 일반적인 추론의 기능에서는 문제가 없지만, 재색인을 한다는 등의 running time이 요구되는 기능을 추가했을 경우 이 timeout 시간에 걸려서 중간에 멈출수 있으니, config에서 parameter 값을 수정해야한다. config.properties에.. 2022. 8. 31.
[Torchserve] torchserve error - java.io.IOException: Failed to bind ② torchserve error - java.io.IOException: Failed to bind 이전 글에서 에러를 해결하기위해 PORT 번호를 바꾸는 방법을 찾았다. 2022.08.29 - [Error] - [torchserve] torchserve error - java.io.IOException: Failed to bind ① [torchserve] torchserve error - java.io.IOException: Failed to bind ① torchserve --stop으로 중단시킨 후 --start 로 재시작하였으나, 주소가 이미 사용 중이라는 에러가 발생함 netstat 으로 8080 포트를 확인했지만, kill 할 수있는 PID가 보이지않음! # 문제점1. torchserve가.... 2022. 8. 31.
[Torchserve] torchserve API PORT change torchserve에는 custom API 개발을 위해 기본적으로 설정되어있는 PORT가 있지만, 사정상 해당 포트(8080, 8081)를 쓸 수 없는 경우 매핑된 PORT를 변경하는 방법을 공유하고자 한다. torchserve는 기본적으로 inference API는 8080, model관련된 API(management) 8081 포트를 쓰도록 디폴트 설정이 되어있다 아래는 따로 설정하지 않아도 자동으로 생성되는 config파일 (config.properties)이다. inference_address=http://0.0.0.0:8080 management_address=http://0.0.0.0:8081 하지만, 같은 서버에서 8080, 8081 포트를 사용할수 없는 경우가 생기는데, 이때 PORT를 변.. 2022. 8. 30.
[Torchserve] torchserve error - java.io.IOException: Failed to bind ① torchserve --stop으로 중단시킨 후 --start 로 재시작하였으나, 주소가 이미 사용 중이라는 에러가 발생함 netstat 으로 8080 포트를 확인했지만, kill 할 수있는 PID가 보이지않음! # 문제점1. torchserve가 중단되어 있는데 curl /ping, /models는 response가 온다. # 문제점2. netstat | grep에서 PID가 배정되지 않음을 확인하였지만, torchserve --start로 실행시, 이미 주소를 쓰고 있다는 에러가 뜬다. -> root에서 확인하는 명령어 sudo ss -lntu netstat -ntlp | grep :9090 현재 9090 포트를 쓰고있는 프로세스 번호를 확인하고 kill torchserve를 쓰지 않고 java를 연.. 2022. 8. 29.
[Faiss] cpu_index.add() ValueError: too many values to unpack [Error] Traceback (most recent call last): File "Handler.py", line 39, in _service.indexing(model_path) File "Handler.py", line 22, in indexing self.cpu_index.add(emb) File "/home/lib/python3.6/site-packages/faiss/__init__.py", line 103, in replacement_add n, d = x.shape ValueError: too many values to unpack (expected 2) 이 Error log는 index.add의 input의 shape이 2차원이어야 하는데 3차원 이상이어서 발생한다! 실제로 찍어보니 -.. 2022. 8. 19.
[Pytorch][BERT] 버트 소스코드 이해_⑤ BertEmbedding [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 👀 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput 1. BertEmbedding 이란? : BertEocder에 들어갈 임베딩 생성 = WordPiece Embedding + Position Embedding + Segment Embedding Embedding 설명 default WordPiece Embedding (=word_embeddings) 실질적인 입력이 되는 워드 임베딩 단어 집합.. 2022. 7. 6.
[Pytorch][BERT] 버트 소스코드 이해_④ BertModel [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 👀 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertModel 🎅 BertModel을 통해 데이터가 어떻게 움직일까? [Step1] BertEmbedding 인코더에 전달할 텍스트 임베딩 생성 [Step2] BertEncdoer 텍스트 임베딩을 인코더를 통해 정보 압축 [Step3] BertPooler 최종 임베딩 값 반환 🎅 각 단계에서 무슨 일이? 1. BertEmbedding 202.. 2022. 7. 5.
[Pytorch][BERT] 버트 소스코드 이해_③ BertTokenizer [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 👀 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertTokenizer 1. BertTokenizer의 이해 Tokenizer 정의: 주어진 코퍼스(corpus)에서 토큰(token)이라 불리는 단위로 나누는 작업 BertTokenizer는 무엇이 특별한가? WordPiece Tokenizer(BPE의 변형 알고리즘) 적용 BPE(Byte Pair Encoding): OOV(Out-Of-V.. 2022. 7. 5.
[Pytorch][BERT] 버트 소스코드 이해_② BertConfig [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 👀 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertConfig configuration_bert.py class BertConfig(PretrainedConfig): def __init__( self, vocab_size=30522, hidden_size=768, num_hidden_layers=12, num_attention_heads=12, intermediate_size=3072,.. 2022. 7. 5.
[Pytorch][BERT] 버트 소스코드 이해 [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 👀 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput ✅ 기본적인 Bert 모델의 사용은 아래 코드와 같다 : Tokenizer로 BertModel의 입력값을 만든 후, 넣어서 출력값 생성 from transformers import BertTokenizer, BertModel import torch tokenizer = BertTokenizer.from_pretrained("bert-base-u.. 2022. 7. 5.
[음성 기초] Vocoder (보코더) 1. 보코더의 정의 1) 위키백과 https://ko.wikipedia.org/wiki/%EB%B3%B4%EC%BD%94%EB%8D%94 보코더(영어 : vocoder)는 《보이스》(voice)와 《코더》(coder)의 합성어로, 전자 악기와 이펙터의 일종이다. 신시사이저의 종류로 분류되기도 한다. 본래의 의미는 통신을 위한 음성 압축 기술로, 휴대폰 등 다양한 기기에 사용되고 있다. 음성 파형을 직접 보내는 것이 아니라 매개 변수가 보내고, 수신 측에서는 그 매개 변수에서 원본 음성을 합성한다. 음악용 보코더는 이 기술을 응용한 것이다. - 원래 보코더는 음성 통신에서 음성 압축 기술로 태어난 것으로, 미국의 벨 연구소의 호머 더들리 (Homer Dudley)가 1928년에 기본적인 아이디어를 발안했다.. 2022. 3. 2.
[음성딥러닝] 고전적인 음성합성 모델① : Unit-Selection speech synthesis 최근에는 음성합성 분야에서 End-to-End 딥러닝 모델들이 많이 등장하고, 좋은 성능을 기록하고 있습니다. 그 이전 단계의 음성합성 분야에서는 어떤 모델들이 많이 쓰였는지 살펴보도록 하겠습니다. 1) Unit-Selection speech synthesis [1] - concatenative synthesis의 한 유형 - 작은 단위로 이루어진 사전 녹음된 waveform들을 붙여서 전체를 완성 - 딥러닝 기반 End-to-End 모델 등장 이전 대세를 이루던 방법론 1) A. J. Hunt and A. W. Black, “Unit selection in a concatenative speech synthesis system using a large speech database,” in Proc. I.. 2022. 2. 26.
[논문리뷰] SupCon(2020), Supervised Contrastive Learning SupCon(2020), Supervised Contrastive Learning [저자] Prannay Khosla(Google Reasearch), Piotr Teterwak(Boston University), Chen Wang(Snap Inc.), Aaron Sarna(Google Reasearch), Yonglong Tian(MIT), Phillip Isola(MIT), Aaron Maschinot(Google Reasearch), Ce Liu(Google Reasearch), Dilip Krishnan(Google Reasearch) [인용수] 528회인용 (구글 스칼라 검색 기준) [버전] 5개 [v1] 23 Apr 2020 , [v2] 29 Oct 2020 , [v3] 13 Nov 2020,.. 2022. 1. 7.
[딥러닝][기초] 가중치 초기화(Weight Initializers) 아래의 해외 블로그들을 참고하여 작성한 글입니다 :) https://intoli.com/blog/neural-network-initialization/ Understanding Neural Network Weight Initialization Exploring the effects of neural network weight initialization strategies. intoli.com https://towardsdatascience.com/hyper-parameters-in-action-part-ii-weight-initializers-35aee1a28404 1. 가중치 초기화란? - 신경망을 구축하고 훈련할 때 우리는 크고 작은 선택들을 해야 합니다. 어떤 손실 함수를 사용할지, 몇 개의 레이어.. 2021. 10. 6.