inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실무 중심의 딥러닝 NLP 심화: LLM 아키텍처와 파인튜닝 실전

Simple Chatbot 만들기 질문입니다.

288

createhappy

작성한 질문수 3

1

안녕하세요,

'Simple Chatbot 만들기' 관련하여 진행하다가 문의드립니다.

새롭게 최신 학습용 zip 파일을 다운받아서, 콜랩에서 해당 실습 파일 올리고,

바로 전체 셀 실행 테스트 해도,

질문에 대한 답변이, 계속 같은 답변으로만 나오고 있는 증상입니다.

sentencepiece 같은 모듈 설치시, 시간이 지나, 버전 차이로 인한 문제일까요?

이상입니다.

딥러닝 tensorflow NLP

답변 1

0

YoungJea Oh

좋은 질문 감사합니다.

저도 같은 현상이 나오네요. 아마도 뭔지 몰라도 version 차이로 제가 교재를 만들 때와 다르게 결과가 나오는 것 같습니다. 그러나 이 교재의 목적은 language model 이 어떤 원리로 작동하는지를 보여주는 것이고 key point는 chatbot 은 생각이 없고 단순히 가장 큰 확률의 단어를 나열하는 것 뿐이라는 것을 이해하는 것이고 이 원리가 Chat-GPT 같은 첨단 모델에도 그대로 적용되기 때문에 초거대 언어 모델의 "환각 현상"이 발생하는 것 입니다.

이 문제는 Greedy Decoding을 사용했기 때문에 이런 현상이 발생합니다. Greedy Decoding에서는 각 시점에서 가장 확률이 높은 단어를 선택하므로 매번 동일한 출력을 얻게 됩니다.

더 다양한 답변을 얻기 위해 Stochastic Sampling 또는 Beam Search와 같은 기법을 사용할 수 있습니다. 아래 코드는 Stochastic Sampling을 사용해 수정한 것 입니다.

Stochastic Sampling에서는 출력 확률 분포에서 단어를 샘플링하여 다양한 답변을 생성합니다. 이 방법은 각 단계에서 동일한 확률 분포를 가진 다른 단어를 선택할 수 있으므로 다양한 답변을 얻을 수 있습니다.

수정 내용을 github 에 반영하였습니다. 감사합니다.

def decode_sequence(input_seq, temperature=1.0):

# 입력된 질문을 encoder 에 입력하여 state vector 생성

states_value = encoder_model.predict(input_seq)

# size 1 짜리 빈 target sequence 생성

target_seq = np.zeros((1, 1))

# target sequence 의 첫번째 character 를 <s> 로 assign -> 1

target_seq[0, 0] = 1

eos = 2 #</s>

# 답변 생성 시작

output_ids = []

for in range(maxlen_A):

output_tokens, h, c = decoder_model.predict([target_seq] + states_value)

# 확률 분포에 따라 단어 샘플링

output_probs = output_tokens[0, 0, :]

idx = np.random.choice(len(output_probs), p=output_probs)

if eos == idx: # End sentence of EOS

break

if idx > 0: # idx 0 은 zero padding 이므로 skip

output_ids.append(int(idx))

# 생성된 word 를 decoder 의 다음 input 으로 사용

target_seq[0, 0] = idx

# Update states

states_value = [h, c]

return output_ids

0

createhappy

감사합니다.

트랜스포머 FeedForward 관련 질문

0

71

2

파라미터갯수에대한질문(030_IMDB_movie_reviews)

0

61

1

Transformer 번역기 분석 - Part1 따라치기 질문

0

70

2

Encoder-Decoder 질문 드립니다.

0

73

2

model 코드 부분을 따라하다가 전 값이 이상해서요

0

83

1

서적 추천

0

77

1

NLP와 LLM의 차이점

0

558

2

encoder-decoder model 질문입니다.

1

74

1

구글번역기에 대해서 궁금한점이 있습니다.

0

124

2

로드맵에대해서...

0

121

2

Bag of Word (BOW)와TF-IDF시 대명사인 I의행방

0

97

2

강의 교재 최신화 요청

0

145

4

self-attention에서 Wq, Wk, Wv weight matrix 학습과정 질문드립니다.

0

190

3

코랩 환경 설정할 때 질문이 있습니다.

0

248

1

transformer 훈련 마친 모델 공유 가능할까요?

0

217

2

130_Transformer.ipynb transformer.summary() 에러

0

183

2

강사님 궁금한게 있어 문의 드립니다.

0

129

1

강사님 Tensorflow 실습코드 중 궁금한 점이 있습니다.

0

125

1

패딩과 관련한 질문 드립니다.

0

172

1

Encoder Decoder 부터 Simple Chatbot까지 이상답변

0

219

1

seq2seq 모델

0

327

1

강의 내용중 질문있습니다.

0

198

1

Transformer 번역기 부분에 대해 질문 있습니다.

0

213

1

320_Custom_Sentiment_Analysis_navermovie.ipynb 실행 시 오류 납니다.

0

316

2