SW/인공지능

블렌더봇: 챗봇 개발을 위한 선행 AIML 모델

얇은생각 2023. 9. 12. 07:30
반응형

인공지능에서 블렌더봇은 대화형 에이전트로 분류됩니다. 위키피디아에 따르면 대화형 에이전트 또는 CA는 사람과 대화를 하도록 설계된 컴퓨터 프로그램입니다. 다시 말해서, 대화형 에이전트는 종종 인공지능에 의해 구동되는 자동화된 시스템으로 사람과 자연어 대화를 하도록 설계되었습니다.

이 글의 기초가 되는 Blenderbot에 대해서는 좀 더 자세히 논의할 것입니다. Facebook AI가 개발한 언어 생성 모델을 Blenderbot이라고 하는데, 특정 맥락이 주어지면 자연어(인간이 읽을 수 있는 언어)로 자신을 명확하게 표현하고 의미 있는 대화를 할 수 있습니다.

 

 

블렌더봇: 챗봇 개발을 위한 선행 AIML 모델

 

 

종속성 설치 및 Blenderbot 모델 가져오기

이제 Blenderbot을 실행하는 데 필요한 라이브러리 두 개를 설치합니다.

 

Transformers 설치

Hugging Face는 이미 교육이 완료된 Blenderbot 모델을 다운로드하는 데 사용됩니다.

!pip install transformers

 

 

PyTorch 설치 중

Torch 텐서와 Blendorbot은 토큰화되어 있기 때문에 PyTorch 딥러닝 라이브러리를 설치할 예정입니다.

자체 PyTorch 소프트웨어를 설치하려면 PyTorch 웹 사이트를 방문하여 사용자 지정 버전을 설치할 수 있습니다.

!pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio===0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

 

 

모델 가져오기

여기서는 이미 Hugging Face에서 배운 Blenderbot 모델을 불러와 다운로드합니다. 

시작하기 위해 토큰라이저와 모델 클래스를 가져올 것입니다.

from transformers import BlenderbotTokenizer, BlenderbotForConditionalGeneration

 

 

트랜스포머에서 조건부 생성을 위한 블렌더봇 토큰라이저, 블렌더봇 가져오기

이제 토큰라이저와 블렌더봇 모델을 설치하고 설정합니다.

model_name = 'facebook/blenderbot-400M-distill'
tokenizer = BlenderbotTokenizer.from_pretrained(model_name)
model = BlenderbotForConditionalGeneration.from_pretrained(model_name)

 

 

위의 이미지에서 모델의 이름은 facebook/blenderbot-400M-distill입니다. 이 경우 모델의 제작자 이름(Facebook)으로 시작하여 모델의 이름(flenderbot-400M-distill) 뒤를 이룹니다.

그런 다음 모델 이름에 토큰화기와 모델 자체를 인스턴스화했습니다.

 

 

모델과의 채팅

대화 담당자와 함께 이제부터 본격적인 논의를 시작하겠습니다.

먼저 대화 에이전트(: "헤이, 구글")와 대화를 시작하는 데 사용되는 발언인 발언을 게시합니다.

utterance = "Hi Bot, My name is John. I am coming from India"

 

 

그런 다음 모델이 이를 처리할 수 있도록 발화가 토큰으로 변환됩니다.

inputs = tokenizer(utterance, return_tensors="pt")

 

 

위의 예에서, 우리는 연설을 토큰화하고 블렌더봇 모델이 분석할 수 있도록 토큰을 PyTorch 텐서로 전달했습니다.

그러면 대화 에이전트의 답변 결과가 생성됩니다.

result = model.generate(**inputs)

 

 

위에서는 토큰화된 연설에 대한 답변을 생성하기 위해 모델 지침을 제공했습니다.

기억하시겠지만 여전히 PyTorch Tensor 형태(자연어)이기 때문에 이제 결과 답변을 다시 사람이 읽을 수 있는 형태로 디코딩하겠습니다.

tokenizer.decode(result[0])

 

 

위에서 우리는 토키나이저에 답을 해독하라는 지시를 내렸습니다.

앞서 언급한 코드를 실행한 후 에이전트의 응답을 볼 수 있습니다.

 

 

결론

다른 대화 에이전트와 달리 블랜더봇은 금붕어 뇌를 가진 다른 에이전트와 달리 답변을 장기적으로 유지할 수 있기 때문에 자연스러운 사람의 말과 유사한 수준으로 제공된 맥락에 따라 대화를 진행할 수 있습니다.

결과적으로, 이 모델은 중요한 대화 정보를 장기 기억에 기록하여 며칠, 몇 주, 심지어 몇 달 동안 지속될 수 있는 대화에서 나중에 사용할 수 있도록 합니다. 이 모델이 대화하는 모든 개인은 지식을 따로 보관하고 있으므로 한 토론에서 나온 새로운 정보가 다른 토론에서 재사용되는 것을 방지합니다.

다음 URL에는 요구 사항에 따라 코드를 가지고 놀 수 있도록 GitHub 저장소에 업로드된 모든 프로그래밍 예제가 있습니다.

이제 블렌더봇 라이브러리를 직관적으로 이해하고 이러한 개념을 통해 정말 가치 있는 프로젝트를 구축하는 데 도움이 되기를 바랍니다. 

반응형