블렌더봇을 일본어로 번역해서 트위터 봇에 넘겼어요.

7120 단어 PythonBottech

영어는 BlenderBothttps://huggingface.co/transformers/master/model_doc/blenderbot.html처럼 대화 로봇의 틀이 있고 일본어에도 있었으면 좋겠다고 생각했는데 곰곰이 생각해 보니 일영 번역 입력 출력이 됐으면 좋겠다고 생각해 조합을 해봤어요.
먼저 블렌더봇 사용법으로 대체로 그렇게 사용했다https://note.com/npaka/n/n658afd9a69d0.일영 번역은 구글trans(4.0.0-rc1)를 사용했지만, 실제 힘 기술로 번역을 보내는 것과 같기 때문에 언제 멈춰도 이상하지 않습니다.
Google Colab의 경우 아래 코드로 이동합니다.나는 pip는 반드시 단독 칸이어야만 실행할 수 있다고 생각한다.
# BlenderBotの為に入れる
!pip install transformers
# 翻訳の為に入れる
!pip install googletrans=4.0.0-rc1
from googletrans import Translator
translator = Translator()

from transformers import BlenderbotTokenizer, BlenderbotForConditionalGeneration
# モデルとトークナイザーの準備
mname = 'facebook/blenderbot-400M-distill'
model = BlenderbotForConditionalGeneration.from_pretrained(mname)
tokenizer = BlenderbotTokenizer.from_pretrained(mname)

def ja2en(text):
    trans_en = translator.translate(text)
    print(trans_en.text)
    return trans_en.text
    
def en2ja(text):
    trans_ja = translator.translate(text, dest='ja', src='en')
    # print("ja:", trans_ja.text)
    return trans_ja.text
    
def chat(text_ja):
    text_en = ja2en(text_ja)
    inputs = tokenizer([text_en], return_tensors='pt')
    reply_ids = model.generate(**inputs)
    text = tokenizer.batch_decode(reply_ids) 
    text_ans = text[0].replace("<s>", "").replace("</s>", "")
    print("ans:", text_ans)
    text_ans_ja = en2ja(text_ans)
    print("回答:", text_ans_ja )
집행례
> chat("恋がしたい")
I want to love
ans:  That's a great goal to have. What is it that you want to do to love?
回答: それは持っているのは素晴らしい目標です。あなたが愛するためにやりたいことは何ですか?
이후 REST API에서 이 대화를 진행하기 위해Fast API를 설정하여 기존bot기계에서 REST로 입력문장을 받아서 회답한다.이곳의 디자인은 너무 거칠어서 생략하겠습니다.
기존bot 프로그램은 @ 사용자 이름이 올 때 http request를 보내서 받은 문장의 어미를 변환합니다.어미의 변환은 캐릭터의 특징을 부여하는 데 매우 중요하다.응답문의 정밀도를 높이기보다는 어미를 통일하는 데 주력하는 것이 낫다.
실행 결과
実行結果やり取り
그나저나 현재 일영 번역도 BERT처럼 사용되고 있어 신경 네트워크의 세 번의 번거로운 일을 하는 것처럼 보인다.이동 학습?이렇게 일본어로도 모델이 된다면 똑똑할 것 같아요.
또 블렌더봇은 한 문장에 대한 응답 정밀도를 높이는 문제 설정으로 보이지만 실제 대화는 여러 문장의 대화이기 때문에 학습할 때 입력량을 한 번 더 늘려야 한다.여기는 Seq2 Seq를 잘 몰라서 적당히 말했어요.
또한 이번에는 Geforce RTX3060 Ti 같은 GPU를 사용했다고 추론하기 위해 로봇 서버의 CPU는 다음에 확인할 수 없습니다.

좋은 웹페이지 즐겨찾기