상세 컨텐츠

본문 제목

[자연어처리] 2주차 복습

딥러닝/자연어처리_학술대회

by grizzly 2025. 4. 2. 22:21

본문

Dialogue Manager by Dialogue Manager (Finite state Automata를 통하여 만듬)

: 간단히 설명해주심 (소개 정도 - 3주차 이후에 배운다하심)

 

Example: Dialogue state Tracker

위의 경우로 확인을 하면 Dialogue state Tracker에다가 정보를 계속하여 누적해서 정리하는 느낌

Dialogue State Tracker에다가 정보를 누적시킴

1. Input - Sentence로 들어옴

2. Tagset에서 해당 파트를 찾음

3. Dialogue State에다가 tagset 중 하나를 골라서 assignment 할 수 있음. (필요 시에 tracker에 저장)

-> Tracker에 저장 한다는 것 자체가 글 전체의 맥락 등을 기억한다는 의미가 강함

Ex) inform tag를 이용해서 inform(price=expensive) 라는 정보를 기억

+ near ansan이라는 정보를 통하여 inform(price=expensive, area=ansan) 라는 정보를 기억

이후 affirm(price=expensive,cusine=Mexican, area=ansan)이라고 확인 작업을 거친다.

 

Dialogue Policy

(System:A) System의 dialogue acts로 저장을 함.
Frame_(i-1) : 이전까지 채웠던 모든 Frame에 대해서, System, User에 대한 System Act A_i를 (가장 확률이 높은) output을 내라

argmax의 의미 자체가 가장 확률 높은 output을 내라

 

How can we estimate these probabilities?

Reinforcement algorithm 중 reinforce라는 알고리즘 관련한 설명 

처음 지식 주입 => Language modeling (지식 주입 = Pretraining) -> 기본적인 언어 지식

-> next token prediction이랑 training objective 를 갖는다 (교수님께서 왜 training objective를 갖는다고 말씀하셨는 지 궁금했는데 그 의미 자체가 목적함수라고 한다.)

 

Ex)

[6개의 단어로 이루어진 sentence] -> 실제 값

[이 중 5개 단어만 주어진 상태로] -> 다음 token은? prediction

해당 두 값의 차이를 측정함

실제 값 - prediction => loss = Cross Entropy loss을 기반으로 backpropagation(오차 전달)

=> weight update -> 초기 build up

LLama 와 같은 모델의 뒤에 붙어 있는 것이 숫자 or chat이 붙을 수 있음

-> 숫자가 붙어 있는 경우는 parameter 수

-> chat -> rlhf(reinforcement learning human feedback) 기법 적용 이후의 모델 => 결과가 훨씬 좋음

 

강화학습 사용 방법 (간단히)

(보통의)supervised learning <- data(feeding) (input, input에 대한 정답) => prediction, backpropagation

But, 강화학습 적용을 위해선 input을 다르게 정의함.

{state, action, next state, reward} 이러한 형태의 tuple이 준비되어야 함

+ 두 가지 network를 Define함

1. enviorment network -> state trainsition과 reward를 담당

2. policy network -> 다음 action을 취할 확률을 내보냄

 

reinforce algorithm에 두 가지 network를 주어서 Train 시킨다.

=> 한 dialogue가 끝날 때까지 (state가 final state에 올 때 까지) 반복한다 => 얼마만큼의 reward를 갖는지 계산 (sequential)

-> action sequence를 얻을 수 있음 (reward 얻음)

-> 그런 다음 policy gradient loss => loss를 구하고, policy network에 back propagation 해서 update

한 dialogue가 끝날 때 reward를 준다는 점에서 (step by step으로 reinforce 알고리즘을 적용 시킬 수도 있겠지만)

보통 reinforce => 한 dialoguedp reward로 얻는 방식으로 흘러감 (step by step으로 reward가 잘 정의가 안됨)

 

if Current 상태 - reference 사이의 차이가 너무 커진다면 update (feedback) => 이 방식이 PPO 알고리즘

 

그렇다면 Reinforcement learning human feedback은 무슨 개념?

Language modeling이 끝난 llm이 주어졌을 때 input에 대해서 여러가지 output을 내게함 (1, 2, 3, 4....)

이 때 Supervised finetuning을 함 (input -> output이 맞는 pair) -> 또 generation 5번 => 어떤 게 제일 best? (이 부분을 사람한테 물어봄) {1번 : good, 2번 : 조금 good , ... , 5번 : Bad} => Reinforce에 주입

가장 최적의 policy - reward => maxmize 할 수 있는 action은 무엇인가

 

Dialogue Mananger can make mistakes (실수 handiling 해야함, 대처 방안)

-> Confirming, Rejecting

 

1. Explicit Confirmation {User가 말한 것을 그대로 다시 따라하는 것 (다시 물어보는 느낌)}

2. Implicit Confirmation {Grounding 기반, 암시적 확인}

두 가지의 차이는 

1번의 경우 대화가 길어진다, 잘못 이해했다는 것을 바로 알아차릴 수 있음

2번의 경우 System이 잘못 이해한 부분에 대해서 explicit 만큼 이해하기 어려울 수 있음

 

만약 별 다른 방법이 없는 경우 -> Rejection (User의 input에 대해서 reject 한 후 progressvie prompting이라는 기술을 적용하면 됨)

Rapid Reprompting : 바로 못 알아 들었다고 말함

 

 

PPT #3 Text Preprocessing (Regular Expression and automata) : 자연어처리에 대한 수학적 상태로 바뀌기 위한 preprocessing , 개념, 지식

 

Regular Expressions : 정규표현 (정규식)

ex) happy라는 단어를 찾아내는 api를 만든다 가정, 생길 수 있는 문제는

1. Different captializations

2. Misspellings

3. Related forms, such as different parts of speech (happiness, happily)

 

Terminology

1. Disjunction : Logical OR (논리학)

2. Range : 범위

3. Negation : 부정

Regular expression : (regex로 표현)

 

Regular Expressions can determin the followings: (가능한 패턴 매칭의 예제를 보여준다고 생각하면 됨)

scope : how many times a pattern repeats

anchor : where it applies

 

Regular Expressions : Disjunctions (and Ranges)

(-> 가장 small 한 unit => character)

Disjunction : Letters inside square brackets [az]

Range: Hyphen between the first and last characters in the range [a-z]

[hH]의 경우 첫 번째 매칭된 결과만 return (무조건 가장 먼저 매칭된 happy를 먼저 반환)

[0123...789]의 경우 아무 숫자 하나

[@-@]의 경우 범위를 나타낸 느낌 (알파벳이나 이런 것을 적게 되면 효율적)

 

Regular Expressions: Negation in Disjunction

[^hH] : 소문자 h or 대문자 H 가 아닌 appy를 찾으라는 의미

[^^] (=[^\^])의 경우 문자 그대로 ^를 찾지 말라는 의미 : ^이 아닌 가장 먼저 나오는 것을 반환함

대괄호 없이 H^a의 경우 문자 그대로의 H^a를 의미함

Regular Expressions: More Disjunction

| : union (logical OR) of two smaller regular expressions

* : 0번 혹은 그 이상 나타나도록 하게 해라

. : 어떤 문자건 매칭 가능

+ : 한 번 또는 그 이상

? : 0번 또는 1번

(abc) : character들을 그룹화함

예시 부분 해당 부분의 예시를 통해서 앞선 표현에 대해서 알 수 있음

^Happy : Happy를 찾는데 문장 맨 앞에 나오는 Happy를 찾아줘 라는 의미

happy\.$ : happy라는 단어가 맨 뒤에 있을 때만 매핑해 라는 뜻

 

관련글 더보기