LLM은 스스로 사고할 수 있는가?

LLM이 스스로 사고를 하는지에 대한 것은 이제 더 이상하지 않는 조금 지난 주제입니다.

아직까지 그런 생각을 하는 분들이 있어서 포스트를 올려둡니다.

현재의 LLM은 구글의 트랜스포머 AI 아키텍쳐를 계승받은 AI모델 중에 초대량의 학습데이터와 파라미터를 가진 모델들을 말합니다.

그 중 대표적인 것이 트랜스포머에서 생성형 부분만 따로 분리해서 만든 모델인 GPT입니다. 그 외에 구글의 Palm이나 메타의 LLamma가 있지만 구조는 차이가 별로 없습니다.

LLM은 Large Language Model의 약어입니다. 이름이 내포하듯이 LLM은 언어처리를 위한 인공지능 모델입니다. 언어처리와 관련된 것 외의 것을 하도록 설계된 것은 구조만 볼때는 거의 없습니다.

LLM은 사고를 하지 못합니다.
혹시 LLM은 의식을 가지고 있거나 사고를 할 수 있는것이 아닐까하는 의심에
빅테크 회사와 많은 과학자들이 테스트를 했지만 그 증거가 있다는 발표나 연과결과는 없습니다.

오히려 관련이 없다는 연구결과만 있습니다.

LLM은 의식이 없습니다.

영혼이 없습니다. 사고를 하지 못하연 영혼도 없고, 의식이 없으면 자아도 없습니다.

이 역시 의식이 있는지 테스트한 연구가 있었지만 의식이 있다는 결론이 난 것은 없습니다.

LLM은 계산을 하지 못합니다.

LLM은 단순한 사칙연산도 수리적으로는 하지 못합니다.
1 + 2 = 3이라는 대답을 LLM이 한다고 계서 계산을 했다고 생각해서는 안됩니다.
문제에 대한 답을 외웠다고 생각해야 합니다.

트랜스포머의 구조에 대해서 이해하고 있다면 이런 것들이 당연히 되지 않는 다는 것을 알게되는데 이해가 부족하게 되면 그와 같은 주장을 하게됩니다.

그럴만도 한데 LLM에 프롬프트를 주면 마치 생각을 하는 것 처렁 대답하기 때문입니다.
하지만 그것은 명백한 착각입니다.


아직까지 LLM이 사고를 가지고 있거나 의식이 있다는 것을 증명한 사람은 없으며
실제로 그런 결과를 LLM이 내놓는 경우도 없습니다.

그러니 그런 착각으로 LLM의 가능성에 접근하게 되면 큰 낭패를 보게 됩니다.

더닝크루거 현상이라는 유명한 신드롬에 대한 용어가 있습니다.
아는 만큼 보이고 어설픈 지식이 얼마나 큰 착각과 오해를 불러일으키는지에 대한 용어입니다.

R에서 T-test, 카이제곱으로 가설검정 결과 간단하게 확인하기

R언어에서 T-test와 Chi-square 검정을 하는 간단한 스니펫입니다.
간단한 것이지만 자주 쓰지 않으면 너무 기본이라서 오히려 기억이 잘 나지 않기 마련입니다.

t.test와 chisq.test 함수 모두 list(object)를 리턴하게 되고 멤버 변수인 p.value에 접근해서 P값을 알아낼 수 있습니다.

# T-test two vectors
a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
b <- c(2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

t.test(a, b)

# 결과에 대한 자세한 설명을 화면에 출력해봐
t.test(a, b)$p.value
t.test(a, b)$statistic
t.test(a, b)$conf.int
t.test(a, b)$estimate
t.test(a, b)$null.value
t.test(a, b)$alternative
t.test(a, b)$method
t.test(a, b)$data.name
t.test(a, b)$conf.int[1]
t.test(a, b)$conf.int[2]

# chi-square test for two vectors

a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
b <- c(2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
chisq.test(a, b)
if (chisq.test(a, b)$p.value < 0.05) {
  print("귀무가설 기각")
} else {
  print("귀무가설 채택")
}

Azure OpenAI GPT4-Turbo 지원 리전

2023년 11월 17일부로 Azure Openai에서 GPT4-Turbo를 지원하는 리전 목록입니다.

GPT-4 Turbo 모델을 Azure에서 사용하기 위해서 계속 기다렸지만 소식이 없어서 조사해봤더니 토쿄를 제외한 다른 리전에서는 지원을 하고 있었네요.

한국에서는 거리가 가까운 도쿄 리전을 사용하기 마련인데 도쿄는 아직까지도 GPT4-Turbo 모델을 지원하지 않고 있네요.

Azure에서 GPT4 Turbo를 쓰려면 리전을 사용이 가능한쪽으로 옮겨야 할 것 같습니다

ModelRegions
GPT-4 Turbo
(gpt-4-1106-preview)
Australia East
Canada East
East US 2
France CentralNorway EastSouth India
Sweden Central
UK SouthWest US
GPT-3.5 Turbo 1106
(gpt-35-turbo-1106)
Australia East
Canada East
France CentralSouth India
Sweden Central
UK SouthWest US

참고: https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/azure-openai-service-launches-gpt-4-turbo-and-gpt-3-5-turbo-1106/ba-p/3985962

R로 베타 분포 그래프그리기 – Plotting Beta Distribution

베타분포는 시행에 따른 성공결과에 대한 분포로 베이지안의 기본이 되며 여러가지로 사용이 많이 되는 분포입니다.

강화학습이나 Multi Armed Bandit 에서도 나옵니다.
베타분포를 이해하려면 플롯을 그려보면 도움이 많이 됩니다.

베타분포를 플롯팅하는 R코드입니다.

# Install required package (if not already installed)
install.packages("ggplot2")
# Load the required library
library(ggplot2)
plot_beta_dist <- function(success_count, fail_count) {    # Generate a sequence of x-values
    x <- seq(0, 1, length.out = 1000)
 
    # Calculate the probability density function values
    pdf_values <- dbeta(x, success_count, fail_count)
 
    # Create a data frame with x and pdf values
    data <- data.frame(x = x, pdf = pdf_values)
 
    # Plot the Beta distribution
    ggplot(data, aes(x)) +
    geom_line(aes(y = pdf), color = "blue", size = 1) +
    xlab("x") +
    ylab("Probability Density") +
    ggtitle("Beta Distribution") +
    theme_minimal()
}
 
plot_beta_dist(10, 10)
plot_beta_dist(100, 100)
plot_beta_dist(1000, 1000)