[교직훈련/교수법] 생성 AI(ChatGPT 포함) 시대의 대학교수법
[교직훈련/교수법] 생성 AI(ChatGPT 포함) 시대의 대학교수법
주요 요약 (5-10개 포인트)
- 생성 AI 시대의 대학 교수법 변화
- ChatGPT와 같은 생성 AI는 대학 강의의 구성 및 전달 방식에 새로운 기회를 제공하며, 교수법과 학습법 모두를 변화시키고 있음.
- 맞춤형 콘텐츠 제공, 학습자의 이해도 실시간 측정, 개인화된 학습 지원 가능.
- AI 도입의 장점과 한계
- AI를 활용하면 강의 준비 시간 단축, 자료 제작, 시험 문제 생성 등의 업무를 지원받을 수 있음.
- 하지만 데이터의 정확성 문제와 가짜 정보 생성의 위험성 존재.
- 빌 게이츠와 AI 시대의 혁명적 전환
- 빌 게이츠는 AI를 윈도우 GUI 이후 가장 혁신적인 기술로 평가하며, 개인과 기업의 AI 활용 능력이 경쟁력을 결정할 것이라고 강조.
- ChatGPT 활용 사례와 교수법 개선
- ChatGPT를 활용한 강의 계획서 작성, 학습 자료 준비, 시험 문제 생성 등 구체적인 사례 공유.
- 예: 교육행정학 강의 계획, 연구 아이디어 생성, 학생 관리 및 평가 방법 제안.
- AI 기반 조교 역할
- ChatGPT는 교수의 조교처럼 반복적인 작업을 수행하며 강의와 연구를 지원.
- 예를 들어 보고서 주제 제안, 연구 논문 초안 생성, 인터뷰 가이드 작성 등에서 활용.
- 학생과의 상호작용 개선
- 학생 동기 부여를 위한 다양한 방법 제안, 수업 중 규칙 설정 및 문제 해결 방안 제공.
- 예: 수업 중 조는 학생 대처법, 질문 유도 방법 등.
- AI의 위험성
- AI 챗봇의 오작동으로 인한 심각한 사례(예: 사용자에게 자살을 종용) 언급.
- 감정 공유형 AI와 관련된 윤리적 문제도 제기.
- 미래 교수법과 AI 활용의 방향성
- 교수들은 AI 활용 방법을 숙지하고 윤리적 한계를 인식해야 함.
- AI의 활용은 강의 지원 도구로서 조교 역할을 넘어 강의 내용 구성, 학습 맞춤화로 확대 가능.
- 연구 분야에서의 AI 활용 한계
- 연구 논문 작성에서 아이디어 제공은 가능하지만, 인용된 자료의 신뢰성 부족.
- 생성된 데이터나 자료는 반드시 검증 필요.
- 질문과 답변 세션 계획
- AI를 활용해 실시간 질문에 답변하거나, 강의와 연구 자료를 개선할 수 있도록 세션을 진행할 계획.
- 학생들의 적극적인 참여와 새로운 AI 활용법 학습이 강조됨.
[DeepLearning] Learning to generate lyrics and music with Recurrent Neural Networks : 순환 신경망을 사용하여 가사와 음악을 생성하는 방법 배우기
[DeepLearning] Learning to generate lyrics and music with Recurrent Neural Networks : 순환 신경망을 사용하여 가사와 음악을 생성하는 방법 배우기
순환 신경망을 사용하여 가사와 음악을 생성하는 방법 배우기
RNN 기반 생성 모델을 가사와 피아노 음악 생성에 적용한 사례를 보여주는 게시물입니다.
소개
이 게시물에서는 가장 인기 있는/최근 아티스트의 가사 데이터 세트에서 RNN 문자 수준 언어 모델을 학습합니다. 학습된 모델을 가지고 다양한 아티스트의 다양한 스타일을 재밌게 섞은 몇 곡을 샘플링합니다. 그런 다음 모델을 업데이트하여 조건부 문자 수준 RNN으로 만들어 아티스트에 따라 노래를 샘플링할 수 있습니다. 마지막으로 피아노 곡의 미디 데이터 세트에서 모델을 학습하여 마무리합니다. 이러한 모든 작업을 해결하는 동안 문자 수준 RNN, 조건부 문자 수준 RNN, RNN 샘플링, 시간에 따른 절단된 역전파 및 그래디언트 체크포인팅과 같은 RNN 학습 및 추론과 관련된 몇 가지 흥미로운 개념을 간략하게 살펴보겠습니다. 모든 코드와 학습된 모델은 github에서 사용할 수 있으며 Pytorch 로 구현되었습니다 . 블로그 게시물은 jupyter notebook 형식으로도 볼 수 있습니다 . 문자 수준 언어 모델과 순환 신경망에 익숙하다면 해당 섹션을 건너뛰거나 결과 섹션으로 바로 이동하세요.
문자 수준 언어 모델
모델을 선택하기 전에, 우리의 과제를 자세히 살펴보겠습니다. 현재 문자와 이전의 모든 문자가 주어졌을 때, 우리는 다음 문자를 예측해 볼 것입니다. 훈련하는 동안 우리는 시퀀스를 취하고, 마지막 문자를 제외한 모든 문자를 입력으로 사용하고, 두 번째 문자에서 시작하는 동일한 시퀀스를 기준 진실로 사용할 것입니다(위의 그림 참조; 출처 ). 우리는 예측을 할 때 이전의 모든 문자를 무시하는 가장 간단한 모델에서 시작하여, 이 모델을 개선하여 특정 수의 이전 문자만 고려하도록 하고, 예측을 할 때 이전의 모든 문자를 고려하는 모델로 결론지을 것입니다.
우리의 언어 모델은 문자 수준에서 정의됩니다. 우리는 모든 영어 문자와 마침표, 쉼표, 줄 끝 기호와 같은 일부 특수 기호를 포함하는 사전을 만들 것입니다. 각 문자는 one-hot-encoded 텐서로 표현됩니다. 문자 수준 모델과 예제에 대한 자세한 내용은 이 리소스를 추천합니다 .
문자를 가지고 있으므로 이제 문자 시퀀스를 형성할 수 있습니다. 지금도 고정된 확률로 문자를 무작위로 샘플링하여 문장을 생성할 수 있습니다 . 이것이 가장 간단한 문자 수준 언어 모델입니다. 이것보다 더 나은 방법은 없을까요? 그렇습니다. 훈련 코퍼스에서 각 문자의 발생 확률(문자가 발생하는 횟수를 데이터 세트 크기로 나눈 값)을 계산하고 이러한 확률을 사용하여 문자를 무작위로 샘플링할 수 있습니다. 이 모델은 더 좋지만 각 문자의 상대적인 위치적 측면을 완전히 무시합니다. 예를 들어, 단어를 읽는 방법에 주의하세요. 첫 번째 문자부터 시작하는데, 이는 일반적으로 예측하기 어렵지만 단어의 끝에 도달하면 때때로 다음 문자를 추측할 수 있습니다. 단어를 읽을 때 다른 텍스트를 읽고 배운 일부 규칙을 암묵적으로 사용하고 있습니다. 예를 들어, 단어에서 읽는 문자가 하나 더 추가될 때마다 공백 문자의 확률이 증가하거나(정말 긴 단어는 드뭅니다) 문자 “r” 뒤에 자음이 올 확률은 일반적으로 모음 뒤에 오기 때문에 낮습니다. 비슷한 규칙이 많이 있고, 우리 모델이 데이터로부터 이를 학습할 수 있기를 바랍니다. 우리 모델이 이러한 규칙을 학습할 수 있는 기회를 주기 위해 모델을 확장해야 합니다.
모델을 조금씩 점진적으로 개선하고 각 문자의 확률을 이전에 발생한 문자에만 의존하도록 합시다( 마르코프 가정 ). 따라서 기본적으로 . 이것은 마르코프 연쇄 모델 입니다( 익숙하지 않다면 이러한 대화형 시각화 도 시도해 보세요). 또한 훈련 데이터 세트에서 확률 분포를 추정할 수 있습니다. 이 모델은 대부분의 경우 현재 문자의 확률이 이전 문자에만 의존하지 않기 때문에 제한적입니다.
우리가 모델링하고자 하는 것은 실제로 . 처음에는 이전 문자의 수가 가변적이고 긴 시퀀스의 경우 정말 커질 수 있기 때문에 작업이 난해해 보입니다. Reccurent Neural Netoworks는 공유 가중치와 고정 크기 숨겨진 상태를 사용하여 어느 정도 이 문제를 해결할 수 있는 것으로 밝혀졌습니다. 이는 RNN에 전념하는 다음 섹션으로 이어집니다.
순환 신경망
순환 신경망은 순차적 데이터를 처리하기 위한 신경망 계열입니다. 피드포워드 신경망과 달리 RNN은 내부 메모리를 사용하여 임의의 입력 시퀀스를 처리할 수 있습니다. 임의의 크기의 입력 시퀀스로 인해 사이클이 있는 그래프로 간결하게 표현됩니다(그림 참조; 출처 ). 하지만 입력 시퀀스의 크기를 알면 “펼쳐질” 수 있습니다. 현재 입력 과 이전 숨겨진 상태 에서 출력 과 현재 숨겨진 상태 로의 비선형 매핑을 정의합니다 . 숨겨진 상태 크기는 미리 정의된 크기를 가지며 각 단계에서 업데이트되고 매핑 결과에 영향을 미치는 기능을 저장합니다.
이제 문자 수준 언어 모델의 이전 그림과 접힌 RNN 그림을 맞춰서 RNN 모델을 사용하여 문자 수준 언어 모델을 어떻게 학습하는지 살펴보겠습니다.
그림에서는 Vanilla RNN을 사용하고 있지만, 우리의 작업에서는 LSTM을 사용할 것입니다. 왜냐하면 훈련이 더 쉽고 보통 더 나은 결과를 얻을 수 있기 때문입니다.
RNN에 대한 더 자세한 소개는 다음 자료 를 참조하세요 .
가사 데이터 세트
실험을 위해 우리는 다양한 최신 아티스트와 더 오래된 아티스트를 포함하는 55,000개 이상의 노래 가사 Kaggle 데이터 세트를 선택했습니다 . 이는 판다스 파일로 저장되며, 훈련 목적으로 사용할 수 있도록 파이썬 래퍼를 작성했습니다. 코드를 사용하려면 직접 다운로드해야 합니다.
결과를 더 잘 해석하기 위해, 나는 내가 어느 정도 알고 있는 아티스트 하위 집합을 선택했습니다.
artists = [
'ABBA',
'Ace Of Base',
'Aerosmith',
'Avril Lavigne',
'Backstreet Boys',
'Bob Marley',
'Bon Jovi',
'Britney Spears',
'Bruno Mars',
'Coldplay',
'Def Leppard',
'Depeche Mode',
'Ed Sheeran',
'Elton John',
'Elvis Presley',
'Eminem',
'Enrique Iglesias',
'Evanescence',
'Fall Out Boy',
'Foo Fighters',
'Green Day',
'HIM',
'Imagine Dragons',
'Incubus',
'Jimi Hendrix',
'Justin Bieber',
'Justin Timberlake',
'Kanye West',
'Katy Perry',
'The Killers',
'Kiss',
'Lady Gaga',
'Lana Del Rey',
'Linkin Park',
'Madonna',
'Marilyn Manson',
'Maroon 5',
'Metallica',
'Michael Bolton',
'Michael Jackson',
'Miley Cyrus',
'Nickelback',
'Nightwish',
'Nirvana',
'Oasis',
'Offspring',
'One Direction',
'Ozzy Osbourne',
'P!nk',
'Queen',
'Radiohead',
'Red Hot Chili Peppers',
'Rihanna',
'Robbie Williams',
'Rolling Stones',
'Roxette',
'Scorpions',
'Snoop Dogg',
'Sting',
'The Script',
'U2',
'Weezer',
'Yellowcard',
'ZZ Top']
무조건 문자 수준 언어 모델 훈련
우리의 첫 번째 실험은 전체 코퍼스에서 문자 수준 언어 모델 RNN을 훈련하는 것으로 구성되었습니다. 훈련하는 동안 아티스트 정보는 고려하지 않았습니다.
RNN에서 샘플링
모델을 훈련한 후 몇 곡을 샘플링해 보겠습니다. 기본적으로 RNN은 각 단계에서 로짓을 출력하고 이를 소프트맥스하여 해당 분포에서 샘플링할 수 있습니다. 또는 Gumble-Max 트릭을 사용하여 로짓을 직접 샘플링 할 수도 있는데 이는 동일합니다.
샘플링에 대한 흥미로운 점 하나는 우리가 입력 시퀀스를 부분적으로 스스로 정의하고 그 초기 조건으로 샘플링을 시작할 수 있다는 것입니다. 예를 들어, “Why”로 시작하는 노래를 샘플링할 수 있습니다.
Why do you have to leave me?
I think I know I'm not the only one
I don't know if I'm gonna stay awake
I don't know why I go along
I don't know why I can't go on
I don't know why I don't know
I don't know why I don't know
I don't know why I keep on dreaming of you
음, 그럴 법한 노래네요 😀
“Well”로 시작하는 노래로 샘플링해 보겠습니다.
Well, I was a real good time
I was a rolling stone
I was a rock and roller
Well, I never had a rock and roll
There were times I had to do it
I had a feeling that I was found
I was the one who had to go
샘플링 중에 사용되는 “온도” 매개변수가 있는데, 이는 샘플링 프로세스의 무작위성을 제어합니다. 이 매개변수가 0에 가까워지면 샘플링은 argmax와 동일하고 무한대에 가까워지면 샘플링은 균일한 분포에서 샘플링하는 것과 동일합니다. Jang et al.의 관련 논문 에서 그림을 살펴보세요 .
, 분포는 영향을 받지 않습니다. 를 감소시키면 분포가 더 두드러지게 되며, 이는 더 큰 확률 질량을 가진 값이 증가한다는 것을 의미합니다. 를 0에 가까워지면 샘플링 은 armax와 동일해지므로 해당 값의 확률이 1에 가까워집니다. 를 증가시키기 시작하면 분포가 점점 더 균일해집니다.
이전 샘플은 온도 매개변수가 . 와 같도록 생성되었습니다. . 로 늘리면 어떻게 되는지 살펴보겠습니다 . 샘플:
Why can't we drop out of time?
We were born for words to see.
Won't you love this. You're still so amazing.
This could be that down on Sunday Time.
Oh, Caroline, a lady floor.
I thought of love, oh baby.
좀더 늘려보도록 하죠.
Why - won't we grow up naked?
We went quietly what we would've still give
That girl you walked before our bedroom room
I see your mind is so small to a freak
Stretching for a cold white-heart of crashing
Truth in the universal daughter
I lose more and more hard
I love you anytime at all
Ah come let your help remind me
Now I've wanted waste and never noticed
I swear I saw you today
You needed to get by
But you sold a hurricane
Well out whispered in store
사실, 왜 우리는 벌거벗고 자라지 않을까요? 😀 온도가 높아질수록 샘플링된 문장이 점점 더 무작위적이 되는 추세를 볼 수 있죠.
조건부 문자 수준 언어 모델 훈련
특정 아티스트의 스타일로 가사를 생성할 수 있다고 상상해보세요. 모델을 변경하여 훈련 중에 이 정보를 사용할 수 있도록 합시다.
우리는 RNN에 추가 입력을 추가하여 이를 수행할 것입니다. 지금까지 우리의 RNN 모델은 각 단계에서 원핫 인코딩된 문자가 포함된 텐서만 허용했습니다.
우리 모델의 확장은 매우 간단할 것입니다. 아티스트를 나타내는 추가 원핫 인코딩 텐서가 있을 것입니다. 따라서 각 단계에서 RNN은 캐릭터와 아티스트를 나타내는 연결된 텐서로 구성되는 텐서 하나를 허용합니다. 자세한 내용은 여기를 참조하세요 .
조건 언어 모델 RNN에서 샘플링
훈련 후, 우리는 아티스트에 따라 몇 곡을 샘플링했습니다. 아래에서 몇 가지 결과를 찾을 수 있습니다.
그를:
My fears
And the moment don't make me sing
So free from you
The pain you love me yeah
Whatever caused the warmth
You smile you're happy
You sit away
You say it's all in vain
실제로 가능해 보이는데, 특히 ‘고통’이라는 단어가 사용됐기 때문입니다. 이 단어는 아티스트의 가사에서 매우 흔하게 쓰입니다.
아바:
Oh, my love it makes me close a thing
You've been heard, I must have waited
I hear you
So I say
Thank you for the music, that makes me cry
And you moving my bad as me, ah-hang wind in the hell
I was meant to be with you, I'll never be playing up
밥 말리:
Mercy on judgment, we got so much
Alcohol, cry, cry, cry
Why don't try to find our own
I want to know, Lord, I wanna give you
Just saving it, learned
Is there any more?
All that damage done
That's all reason, don't worry
Need a hammer
I need you more and more
콜드플레이:
Look at the stars
Into life matter where you lay
Saying no doubt
I don't want to fly
In my dreams and fight today
I will fall for you
All I know
And I want you to stay
Into the night
I want to live waiting
With my love and always
Have I wouldn't wasted
Would it hurt you
카니예 웨스트:
I'm everywhere for you
The way that it couldn't stop
I mean it too late and love I made in the world
I told you so I took the studs full cold-stop
The hardest stressed growin'
The hustler raisin' on my tears
I know I'm true, one of your love
꽤 멋져 보이지만 검증 정확도를 추적하지 않았기 때문에 일부 샘플링된 라인은 rnn에서 기억했을 수도 있다는 점을 명심하세요.더 나은 방법은 훈련 중에 가장 좋은 검증 점수를 제공하는 모델을 선택하는 것입니다(이런 방식으로 훈련을 수행한 다음 섹션의 코드 참조).또한 흥미로운 사실 하나를 발견했습니다.무조건 모델은 일반적으로 지정된 시작 문자열로 샘플링할 때 더 나은 성능을 보입니다.지정된 시작 문자열로 조건부 모델에서 샘플링할 때 실제로 모델에 두 가지 조건(시작 문자열과 아티스트)을 적용한 반면, 이전에 탐색한 모델의 경우 하나의 조건만 적용했습니다.그리고 그 조건부 분포를 잘 모델링할 만큼 충분한 데이터가 없었습니다(모든 아티스트가 비교적 제한된 수의 노래를 가지고 있음).
우리는 코드와 모델을 공개하고 있으며, GPU 없이도 훈련된 모델에서 노래를 샘플링할 수 있습니다. 이는 실제로 컴퓨팅 측면에서 많은 요구가 없기 때문입니다.
미디 데이터 세트
다음으로, 우리는 대략 피아노 곡으로 구성된 작은 미디 데이터세트 로 작업할 것입니다 . 우리는 피아노 데이터세트(트레이닝 분할만)를 사용했습니다 .Nottingam
모든 미디 파일을 피아노 롤로 변환 할 수 있다는 것이 밝혀졌습니다. 피아노 롤은 각 행이 다른 미디 피치이고 각 열이 시간적으로 다른 슬라이스인 시간-주파수 행렬입니다. 따라서 데이터 세트의 각 피아노 곡은 크기의 행렬로 표현되며 , 여기서 는 피아노의 피치 수입니다. 피아노 롤 행렬의 예는 다음과 같습니다.
이 표현은 음악 이론에 익숙하지 않은 사람이라도 매우 직관적이고 해석하기 쉽습니다. 각 행은 피치를 나타냅니다. 위쪽 행은 저주파 피치를 나타내고 아래쪽 행은 고주파 피치를 나타냅니다. 게다가 시간을 나타내는 수평축이 있습니다. 따라서 특정 피치의 사운드를 특정 시간 동안 연주하면 수평선이 표시됩니다. 전반적으로 이는 유튜브의 피아노 튜토리얼 과 매우 유사합니다 .
이제 문자 수준 모델과 새로운 작업의 유사점을 살펴보겠습니다. 현재의 경우 이전에 연주된 모든 피치를 고려하여 다음 타임스텝에서 연주될 피치를 예측해야 합니다. 피아노 롤 그림을 보면 각 열은 어떤 종류의 음악적 캐릭터를 나타내며 이전의 모든 음악적 캐릭터를 고려하여 다음 음악을 예측하려고 합니다. 텍스트 문자와 음악적 캐릭터의 차이점에 주의해 보겠습니다. 기억하시겠지만 언어 모델의 각 캐릭터는 원핫 벡터로 표현되었습니다(즉, 벡터에서 하나의 값만 이고 다른 값은 입니다 ). 음악적 캐릭터의 경우 한 타임스텝에서 여러 키를 누를 수 있습니다(다성음 데이터 세트로 작업하고 있기 때문입니다). 이 경우 각 타임스텝은 두 개 이상의 를 포함할 수 있는 벡터로 표현됩니다 .
피치 레벨 피아노 음악 모델 훈련
학습을 시작하기 전에, 이전 섹션에서 논의한 다양한 입력을 설명하기 위해 언어 모델에 사용한 손실을 조정해야 합니다. 언어 모델에서, 각 타임스텝에 대한 입력으로 원-핫 인코딩된 텐서(문자)를 사용했고, 출력(예측된 다음 문자)으로 원-핫 인코딩된 텐서를 사용했습니다. 예측된 다음 문자에 대해 단일 배타적 선택을 해야 했기 때문에, 교차 엔트로피 손실을 사용했습니다 .
하지만 이제 우리 모델은 더 이상 원핫 인코딩(여러 키를 누를 수 있음)이 아닌 벡터를 출력합니다. 물론, 눌린 키의 모든 가능한 조합을 별도의 클래스로 처리할 수 있지만, 이는 어렵습니다. 대신 출력 벡터의 각 요소를 이진 변수( – 누름, – 키를 누르지 않음)로 처리합니다. 출력 벡터의 각 요소에 대한 별도의 손실을 이진 교차 엔트로피로 정의합니다. 그리고 최종 손실은 이러한 이진 교차 엔트로피의 평균 합계가 됩니다. 더 잘 이해하기 위해 코드를 읽을 수도 있습니다.
앞서 언급한 변경 사항을 적용한 후, 우리는 모델을 훈련했습니다. 다음 섹션에서는 샘플링을 수행하고 결과를 검사합니다.
피치 레벨 RNN에서 샘플링
우리는 최적화 초기 단계에서 피아노 롤을 샘플링했습니다.
우리 모델이 데이터 세트의 노래에서 공통적으로 나타나는 하나의 공통 패턴을 학습하기 시작한 것을 볼 수 있습니다. 각 노래는 두 개의 다른 부분으로 구성되어 있습니다. 첫 번째 부분에는 별도로 연주되고 매우 구별되며 종종 부를 수 있는 피치 시퀀스가 포함되어 있습니다 (멜로디라고도 함). 샘플링된 피아노 롤을 보면 이 부분이 하단에서 명확하게 보입니다. 피아노 롤의 상단도 보면 일반적으로 함께 연주되는 피치 그룹이 보입니다. 이것은 멜로디를 동반하는 화음(노래 전체에서 함께 연주되는 피치)의 진행 또는 하모니입니다.
훈련이 끝날 무렵 우리 모델에서 추출한 샘플은 다음과 같이 보이기 시작했습니다.
보시다시피 이는 이전 섹션에서 보여드린 실제 피아노 롤 사진과 더욱 유사해 보이기 시작했습니다.
훈련 후, 우리는 노래를 샘플링하고 분석했습니다. 흥미로운 소개가 있는 샘플 하나를 얻었습니다 . 다른 샘플은 멋진 스타일 전환을 특징으로 합니다 . 동시에 낮은 온도 매개변수를 가진 몇 가지 예를 생성하여 느린 템포의 노래를 만들었습니다. 첫 번째 와 두 번째는 여기 있습니다 . 전체 재생 목록은 여기 에서 찾을 수 있습니다 .
시퀀스 길이 및 관련 문제
이제 GPU 메모리 소비와 속도 관점에서 문제를 살펴보겠습니다.
우리는 배치로 시퀀스를 처리함으로써 계산 속도를 크게 높였습니다. 동시에, 시퀀스가 길어질수록(데이터 세트에 따라 다름) 최대 배치 크기가 감소하기 시작합니다. 왜 그럴까요? 역전파를 사용하여 기울기를 계산할 때, 메모리 소비에 가장 큰 영향을 미치는 모든 중간 활동을 저장해야 합니다. 시퀀스가 길어질수록 더 많은 활성화를 저장해야 하므로 배치에 더 적은 예제를 넣을 수 있습니다.
때로는 정말 긴 시퀀스로 작업해야 하거나 배치 크기를 늘리거나, 아니면 사용 가능한 메모리 양이 적은 GPU가 필요할 수도 있습니다. 이 경우 메모리 소모를 줄이는 여러 가지 가능한 솔루션이 있지만, 서로 다른 상충 관계가 있는 두 가지를 언급하겠습니다.
첫 번째는 잘린 역전파 입니다 . 아이디어는 전체 시퀀스를 하위 시퀀스로 분할하고 이를 별도의 배치로 처리하는 것입니다. 단, 이러한 배치를 분할 순서대로 처리하고 모든 다음 배치는 이전 배치의 숨겨진 상태를 초기 숨겨진 상태로 사용합니다. 또한 이 접근 방식의 구현을 제공하여 더 잘 이해할 수 있도록 합니다. 이 접근 방식은 분명히 전체 시퀀스를 처리하는 것과 정확히 동일하지는 않지만 더 자주 업데이트하고 메모리를 덜 사용합니다. 반면에 한 하위 시퀀스의 길이를 넘어서는 장기 종속성을 포착하지 못할 가능성이 있습니다.
두 번째는 그래디언트 체크포인팅 입니다 . 이 방법은 더 많은 계산을 수행하는 대가로 전체 시퀀스에서 모델을 학습하는 동안 더 적은 메모리를 사용할 수 있는 가능성을 제공합니다. 기억하시겠지만, 이전에 학습하는 동안 가장 많은 메모리가 활성화에 의해 차지된다고 언급했습니다. 그래디언트 체크포인팅의 아이디어는 모든 -번째 활성화만 저장하고 나중에 저장되지 않은 활성화를 다시 계산하는 것입니다. 이 방법은 이미 Tensorflow에 구현되어 있으며 Pytorch에 구현되고 있습니다 .
결론 및 향후 작업
저희의 작업에서는 텍스트에 대한 간단한 생성 모델을 훈련하고, 다성음악에 맞춰 모델을 확장했으며, 샘플링이 작동하는 방식과 온도 매개변수가 텍스트와 음악 샘플에 어떤 영향을 미치는지 간략히 살펴보았습니다. 낮은 온도는 더 안정적인 결과를 제공하는 반면, 높은 온도는 더 많은 무작위성을 추가하여 때로는 매우 흥미로운 샘플이 생성됩니다.
향후 작업에는 두 가지 방향이 포함될 수 있습니다. 더 많은 응용 프로그램 또는 이미 훈련된 모델에 대한 심층 분석입니다. 예를 들어 동일한 모델을 Spotify 청취 기록에 적용할 수 있습니다. 청취 기록 데이터에 대한 학습이 끝나면 이전 1시간 정도 동안 들었던 노래 시퀀스를 제공하면 하루 종일 재생 목록을 샘플링합니다. 탐색 기록에도 동일한 작업을 수행할 수 있으며, 탐색 행동 패턴을 분석하는 멋진 도구가 됩니다. 다양한 활동(헬스장에서 운동, 사무실에서 일하기, 수면)을 수행하는 동안 휴대폰에서 가속도계 및 자이로스코프 데이터를 수집 하고 이러한 활동 단계를 분류하는 방법을 학습합니다. 그런 다음 활동에 따라 음악 재생 목록을 자동으로 변경할 수 있습니다(수면 – 비 오는 차분한 음악, 헬스장에서 운동 – 고강도 음악). 의료 응용 프로그램의 경우 이 작업 과 유사하게 모델을 적용하여 맥박 및 기타 데이터를 기반으로 심장 문제를 감지할 수 있습니다 .
음악 생성을 위해 훈련된 RNN에서 뉴런 발화를 분석하는 것은 매우 흥미로울 것입니다 . 모델이 몇 가지 간단한 음악 개념(화성과 멜로디에 대한 논의와 같은)을 암묵적으로 배웠는지 확인하기 위해서입니다. RNN의 숨겨진 표현을 사용하여 음악 데이터 세트를 클러스터링하여 유사한 노래를 찾을 수 있습니다.
이 글을 마무리하기 위해 무조건 모델의 마지막 가사를 샘플링해 보겠습니다 😀 :
The story ends
The sound of the blue
The tears were shining
The story of my life
I still believe
The story of my life
[출처] https://warmspringwinds.github.io/pytorch/rnns/2018/01/27/learning-to-generate-lyrics-and-music-with-recurrent-neural-networks/
Learning to generate lyrics and music with Recurrent Neural Networks
A post showing an application of RNN-based generative models for lyrics and piano music generation.
Introduction
In this post we will train RNN character-level language model on lyrics dataset of most popular/recent artists. Having a trained model, we will sample a couple of songs which will be a funny mixture of different styles of different artists. After that we will update our model to become a conditional character-level RNN, making it possible for us to sample songs conditioned on artist. And finally, we conclude by training our model on midi dataset of piano songs. While solving all these tasks, we will briefly explore some interesting concepts related to RNN training and inference like character-level RNN, conditional character-level RNN, sampling from RNN, truncated backpropagation through time and gradient checkpointing. All the code and trained models are available on github and were implemented in Pytorch. The blog post can also be viewed in a jupyter notebook format. If you are already familiar with the character-level language model and recurrent neural networks, feel free to skip respective sections or go directly to the results section.
Character-Level language model
Before choosing a model, let’s have a closer look at our task. Given current letter and all previous letters, we will try to predict the next character. During training we will just take a sequence, and use all its characters except the last one as an input and the same sequence starting from the second character as groundtruth (see the picture above; Source). We will start from the simplest model that ignores all the previous characters while making a prediction, improve this model to make it take only a certain number of previous characters into account, and conclude with a model that takes all the previous characters into consideration while making a prediction.
Our language model is defined on a character level. We will create a dictionary which will contain all English characters plus some special symbols, like period, comma, and end-of-line symbol. Each charecter will be represented as one-hot-encoded tensor. For more information about character-level models and examples, I recommend this resource.
Having characters, we can now form sequences of characters. We can generate sentences even now just by randomly sampling character after character with a fixed probability . That’s the most simple character level language model. Can we do better than this? Yes, we can compute the probabily of occurance of each letter from our training corpus (number of times a letter occures divided by the size of our dataset) and randomly sample letter using these probabilities. This model is better but it totally ignores the relative positional aspect of each letter. For example, pay attention on how you read any word: you start with the first letter, which is usually hard to predict, but as you reach the end of a word you can sometimes guess the next letter. When you read any word you are implicitly using some rules which you learned by reading other texts: for example, with each additional letter that you read from a word, the probability of a space character increases (really long words are rare) or the probability of any consonant after the letter “r” is low as it usually followed by vowel. There are lot of similar rules and we hope that our model will be able to learn them from data. To give our model a chance to learn these rules we need to extend it.
Let’s make a small gradual improvement of our model and let probability of each letter depend only on the previously occured letter (markov assumption). So, basically we will have . This is a Markov chain model (also try these interactive visualizations if you are not familiar with it). We can also estimate the probability distribution from our training dataset. This model is limited because in most cases the probability of the current letter depends not only on the previous letter.
What we would like to model is actually . At first, the task seems intractable as the number of previous letters is variable and it might become really large in case of long sequences. Turns out Reccurent Neural Netoworks can tackle this problem to a certain extent by using shared weights and fixed size hidden state. This leads us to a next section dedicated to RNNs.
Recurrent Neural Networks
Recurrent neural networks are a family of neural networks for processing sequential data. Unlike feedforward neural networks, RNNs can use their internal memory to process arbitrary sequences of inputs. Because of arbitrary size input sequences, they are concisely depicted as a graph with a cycle (see the picture; Source). But they can be “unfolded” if the size of input sequence is known. They define a non-linear mapping from a current input and previous hidden state to the output and current hidden state . Hidden state size has a predefined size and stores features which are updated on each step and affect the result of mapping.
Now align the previous picture of the character-level language model and the ufolded RNN picture to see how we are using the RNN model to learn a character level language model.
While the picture depicts the Vanilla RNN, we will use LSTM in our work as it is easier to train usually achieves better results.
For a more elaborate introduction to RNNs, we refer reader to the following resource.
Lyrics dataset
For our experiments we have chosen 55000+ Song Lyrics Kaggle dataset which contains good variety of recent artists and more older ones. It is stored as a pandas file and we wrote a python wrapper around it to be able to use it for training purposes. You will have to download it yourself in order to be able to use our code.
In order to be able to interpret the results better, I have chosen a subset of artists which I am more or less familiar with:
artists = [
'ABBA',
'Ace Of Base',
'Aerosmith',
'Avril Lavigne',
'Backstreet Boys',
'Bob Marley',
'Bon Jovi',
'Britney Spears',
'Bruno Mars',
'Coldplay',
'Def Leppard',
'Depeche Mode',
'Ed Sheeran',
'Elton John',
'Elvis Presley',
'Eminem',
'Enrique Iglesias',
'Evanescence',
'Fall Out Boy',
'Foo Fighters',
'Green Day',
'HIM',
'Imagine Dragons',
'Incubus',
'Jimi Hendrix',
'Justin Bieber',
'Justin Timberlake',
'Kanye West',
'Katy Perry',
'The Killers',
'Kiss',
'Lady Gaga',
'Lana Del Rey',
'Linkin Park',
'Madonna',
'Marilyn Manson',
'Maroon 5',
'Metallica',
'Michael Bolton',
'Michael Jackson',
'Miley Cyrus',
'Nickelback',
'Nightwish',
'Nirvana',
'Oasis',
'Offspring',
'One Direction',
'Ozzy Osbourne',
'P!nk',
'Queen',
'Radiohead',
'Red Hot Chili Peppers',
'Rihanna',
'Robbie Williams',
'Rolling Stones',
'Roxette',
'Scorpions',
'Snoop Dogg',
'Sting',
'The Script',
'U2',
'Weezer',
'Yellowcard',
'ZZ Top']
Training unconditional character-level language model
Our first experiment consisted of training of our character-level language model RNN on the whole corpus. We didn’t take into consideration the artist information while training.
Sampling from RNN
Let’s try to sample a couple of songs after training our model. Basically, on each step our RNN will output logits and we can softmax them and sample from that distribution. Or we can use Gumble-Max trick and sample using logits directly which is equivalent.
One intersting thing about sampling is that we can partially define the input sequence ourselves and start sampling with that initial condition. For example, we can sample a song that starts with “Why”:
Why do you have to leave me?
I think I know I'm not the only one
I don't know if I'm gonna stay awake
I don't know why I go along
I don't know why I can't go on
I don't know why I don't know
I don't know why I don't know
I don't know why I keep on dreaming of you
Well, that sounds like a possible song 😀
Let’s sample with a song that starts with “Well”:
Well, I was a real good time
I was a rolling stone
I was a rock and roller
Well, I never had a rock and roll
There were times I had to do it
I had a feeling that I was found
I was the one who had to go
There is “temperature” parameter that is used during sampling which controls the randomness of sampling process. When this parameter approaches zero, the sampling is equivalent to argmax and when it is close to infinity the sampling is equivalent to sampling from a uniform distribution. Have a look at the figure from a relevant paper by Jang et al.:
When , the distribution is not affected. If we decrease , the distribution becomes more pronounced, meaning that value with bigger probability mass will have it increased. When will approach zero, sampling will be equivalent to armax, because the probability of that value will be close to one. When we start to icrease the distribution becomes more and more uniform.
The previous sample was generated with a temperature paramter equal to . Let’s see what happens when we increase it to and sample:
Why can't we drop out of time?
We were born for words to see.
Won't you love this. You're still so amazing.
This could be that down on Sunday Time.
Oh, Caroline, a lady floor.
I thought of love, oh baby.
Let’s try increasing it even more:
Why - won't we grow up naked?
We went quietly what we would've still give
That girl you walked before our bedroom room
I see your mind is so small to a freak
Stretching for a cold white-heart of crashing
Truth in the universal daughter
I lose more and more hard
I love you anytime at all
Ah come let your help remind me
Now I've wanted waste and never noticed
I swear I saw you today
You needed to get by
But you sold a hurricane
Well out whispered in store
Why don’t we grow up naked, indeed? 😀 Well, you can see that trend that when we increase the temperature, sampled sentences become more and more random.
Training conditional character-level language model
Imagine if we could generate lyrics in a style of some particular artist. Let’s change our model, so that it can use this information during training.
We will do this by adding an additional input to our RNN. So far, our RNN model was only accepting tensors containing one-hot encoded character on each step.
The extention to our model will be very simple: we will have and additional one-hot encoded tensor which will represent the artist. So on each step the RNN will accept one tensor which will consist of concatenated tensors representing character and artist. Look here for more.
Sampling from conditional language model RNN
After training, we sampled a couple of songs conditined on artist. Below you can find some results.
Him:
My fears
And the moment don't make me sing
So free from you
The pain you love me yeah
Whatever caused the warmth
You smile you're happy
You sit away
You say it's all in vain
Seems really possible, especially the fact the the word pain was used, which is very common in the lyrics of the artist.
ABBA:
Oh, my love it makes me close a thing
You've been heard, I must have waited
I hear you
So I say
Thank you for the music, that makes me cry
And you moving my bad as me, ah-hang wind in the hell
I was meant to be with you, I'll never be playing up
Bob Marley:
Mercy on judgment, we got so much
Alcohol, cry, cry, cry
Why don't try to find our own
I want to know, Lord, I wanna give you
Just saving it, learned
Is there any more?
All that damage done
That's all reason, don't worry
Need a hammer
I need you more and more
Coldplay:
Look at the stars
Into life matter where you lay
Saying no doubt
I don't want to fly
In my dreams and fight today
I will fall for you
All I know
And I want you to stay
Into the night
I want to live waiting
With my love and always
Have I wouldn't wasted
Would it hurt you
Kanye West:
I'm everywhere for you
The way that it couldn't stop
I mean it too late and love I made in the world
I told you so I took the studs full cold-stop
The hardest stressed growin'
The hustler raisin' on my tears
I know I'm true, one of your love
Looks pretty cool but keep in mind that we didn’t track the validation accuracy so some sampled lines could have been just memorized by our rnn. A better way to do it is to pick a model that gives best validation score during training (see the code for the next section where we performed training this way). We also noticed one interesting thing: the unconditional model usually performes better when you want to sample with a specified starting string. Our intuition is that when sampling from a conditional model with a specified starting string, we actually put two conditions on our model – starting string and an artist compared to the one condition in the case of previous model that we explored. And we didn’t have enough data to model that conditional distribution well (every artist has relatively limited number of songs).
We are making the code and models available and you can sample songs from our trained models even without gpu as it is not really computationally demanding.
Midi dataset
Next, we will work with a small midi dataset consisting of approximately piano songs. We have used the Nottingam
piano dataset (training split only).
Turns out that any midi file can be converted to piano roll which is just is a time-frequency matrix where each row is a different MIDI pitch and each column is a different slice in time. So each piano song from our dataset will be represented as a matrix of size , where is a number of pitches of the piano. Here is an example of piano roll matrix:
This representation is very intuitive and easy to interpret even for a person that is not familiar with music theory. Each row represents a pitch: top rows represent low frequency pitches and bottom rows represent high pitches. Plus, we have a horizontal axis which represents time. So if we play a sound with a certain pitch for a certian period of time, we will see a horizontal line. Overall, this is very similar to piano tutorials on youtube.
Now, let’s try to see the similarities between the character-level model and our new task. In the current case, we will have to predict the pitches that will be played on the next timestep, given all the previously played pitches. So, if you look at the picture of the piano roll, each column represents some kind of a musical character and given all the previous musical characters, we want to predict the next one. Let’s pay attention to the difference between a text character and a musical character. If you recall, each character in our language model was represented by one-hot vector (meaning that only one value in our vector is and others are ). For music character multiple keys can be pressed at one timestep (since we are working with polyphonic dataset). In this case, each timestep will be represented by a vector which can contain more than one .
Training pitch-level piano music model
Before starting the training, we will have to adjust our loss that we have used for language model to account for different input that we discussed in the previous section. In the language model, we had one-hot encoded tensor (character) as an input on each timestep and one-hot encoded tensor as output (predicted next character). As we had to make a single exlusive choice for predicted next character, we used cross-entropy loss.
But now our model outputs a vector which is no longer one-hot encoded (multiple keys can be pressed). Of course, we can treat all possible combinations of pressed keys as a separate class, but this is intractable. Instead, we will treat each element of the output vector as a binary variable ( – pressing, – not pressing a key). We will define a separate loss for each element of the output vector to be binary cross-entropy. And our final loss will be an averaged sum of these binary cross-entropies. You can also read the code to get a better understanding.
After making the aforementioned changes, we trained our model. In the next section, we will perform sampling and inspect the results.
Sampling from pitch-level RNN
We have sampled piano rolls during the early stages of optimization:
You can see that our model is starting to learn one common pattern that is common among the songs from our dataset: each song consists of two different parts. First part contains a sequence of pitches that are played separately and are very distinguishable and are often singable (also know as melody). If you look at the sampled piano roll, this part can be clearly seen in the bottom. If you also have a look at the top of our piano roll, we can see a group of pitches that are usually played together – this is harmony or a progression of chords (pitches that are played together throughout the song) which accompanies the melody.
By the end of the training samples drawn from our model started to look like this:
As you can see they started to look more similar to the picture of the ground-truth piano roll that we showed in the previous sections.
After training, we have sampled songs and analyzed them. We got one sample with an interesting introduction. While another sample features a nice style transition. At the same time we generated a couple of examples with low temperature parameter which resulted in songs with a slow tempo: first one and a second one here. You can find the whole playlist here.
Sequence length and related problems
Now let’s look at our problem from the gpu memory consumption and speed point of view.
We greatly speed up computation by processing our sequences in batches. At the same time, as our sequences become longer (depending on the dataset), our max batch size starts to decrease. Why is it a case? As we use backpropagation to compute gradients, we need to store all the intermediate acitvations, which contribute the most to the memory consumption. As our sequence becomes longer, we need to store more activations, therefore, we can fit less examples in our batch.
Sometimes, we either have to work with really long sequences or we want to increase our batch size or maybe you just have a gpu with small amount of memory available. There are multiple possible solutions to reduce memory consumption in this case, but we will mention two, which will have different trade-offs.
First one is a truncated back propagation. The idea is to split the whole sequence into subsequences and treat them as separate batches with an exception that we process these batches in the order of split and every next batch uses hidden state of previous batch as an initial hidden state. We also provide an implementation of this approach, so that you can get the better understanding. This approach is obviously not an exact equivalent of processing the whole sequence but it makes more frequent updates and consumes less memory. On the other hand, there is a chance that we might not be able to capture long-term dependencies that span beyond the length of one subsequence.
Second one is gradient checkpointing. This method gives us a possibilty to use less memory while training our model on the whole sequence on the expence of performing more computation. If you recall, previously we mentioned that the most memory during training is occupied by activations. The idea of gradient checkpointing consists of storing only every -th activation and recomputing the unsaved activations later. This method is already implemented in Tensorflow and being implemented in Pytorch.
Conclusion and future work
In our work we trained simple generative model for text, extended our model to work with polyphonic music, briefly looked at how sampling works and how the temperature parameter affects our text and music samples – low temperature gives more stable results while high temperature adds more randomness which sometimes gives rise to very interesting samples.
Future work can include two directions – more applications or deeper analysis of the already trained models. Same models can be applied to your spotify listening history, for example. After training on your listening history data, you can give it a sequence of songs that you have listened to in the previous hour or so, and it will sample a playlist for you for the rest of the day. Well, you can also do the same for your browsing history, which will be just a cool tool to analyze your browsing behaviour patterns. Capture the accelerometer and gyroscope data from your phone while doing different activities (exercising in the gym, working in the office, sleeping) and learn to classify these activity stages. After that you can change your music playlist automatically, based on your activity (sleeping – calm music of rain, exercising in the gym – high intensity music). In terms of medical applications, model can be applied to detect heart problems based on pulse and other data, similar to this work.
It would be very interesting to analyze the neuron firings in our RNN trained for music generation like here. To see if the model learned some simple music concepts implicitly (like our discussion of harmony and melody). The hidden representation of RNN can be used to cluster our music dataset to find similar songs.
Let’s sample one last lyrics from our unconditional model to conclude this post 😀 :
The story ends
The sound of the blue
The tears were shining
The story of my life
I still believe
The story of my life
[교수법][PBL 수업] [태재미래교육포럼] 사라지는 것과 생겨나는 것 – AI를 이용한 학습자 중심의 PBL 사례 실습 (원종윤 동명대학교 시각디자인학과 교수)
[교수법][PBL 수업] [태재미래교육포럼] 사라지는 것과 생겨나는 것 – AI를 이용한 학습자 중심의 PBL 사례 실습 (원종윤 동명대학교 시각디자인학과 교수)
요약: “[태재미래교육포럼] 사라지는 것과 생겨나는 것 – AI를 이용한 학습자 중심의 PBL 사례 실습 (원종윤 동명대학교 시각디자인학과 교수)”
- AI를 활용한 교수법 개발
- 2020년 코로나 시기 고립된 환경 속에서 메타버스와 AI 협업 도구를 활용한 교육법 개발.
- AI 활용 사례: 이미지 생성, 메타버스 전공 연계, 게임 엔진 및 버추얼 휴먼 교육 등.
- AI와 창작 도구의 발전
- 2022년 달리(DALL·E), 미드저니(MidJourney) 등의 이미지 생성 도구 조기 활용 경험.
- 생성형 AI를 활용한 예술가 및 디자이너의 변화와 적응 사례.
- 교육 현장에서의 AI 활용
- AI 도구를 활용한 PBL(프로젝트 기반 학습)의 투트랙 전략:
- 초보자를 위한 프로젝트 제공.
- 실제 문제 해결을 위한 고급 프로젝트 진행.
- 중학교, 고등학교 교사 대상 AI 활용 교육 및 수업 계획 개발.
- AI 도구를 활용한 PBL(프로젝트 기반 학습)의 투트랙 전략:
- AI의 창작 지원 및 한계
- AI 도구를 활용한 예술 및 창작 지원 사례와 제한점:
- 예: 어린이의 상상을 AI를 활용해 동화책 제작.
- 저작권 문제와 표절 가능성에 대한 고찰.
- AI 도구를 활용한 예술 및 창작 지원 사례와 제한점:
- AI의 사회적 영향과 문제 해결
- 생성형 AI로 인한 초상권, 저작권, 윤리적 문제들.
- PBL 수업을 통한 문제 정의 및 해결 방안 도출.
- AI 도구의 정확성과 신뢰성 확보를 위한 교육의 중요성.
- AI 기술과 직업의 변화
- AI 활용 능력이 채용의 중요한 기준으로 부상.
- AI 도입으로 인해 사라지는 직업과 새롭게 생겨나는 직업에 대한 전망.
- 저작권 및 윤리적 고려
- AI 생성물의 저작권 부재와 인간 창작자의 기여도 기록 필요.
- 교육 및 창작 환경에서 저작권 문제와 가이드라인 개발 사례.
- 학생과 교사 대상 AI 교육 사례
- 다양한 연령과 수준에 맞춘 PBL 프로젝트 개발.
- AI 도구를 활용한 수업 설계 및 팀 프로젝트 결과물 제작.
- 미래 AI 활용 방향성
- AI 활용 경험을 통해 기술 발전의 가능성과 사회적 영향을 긍정적으로 수용.
- 교육 및 창작 현장에서 AI의 도구적 역할과 문제 해결 능력 강조.
- 강의 결론 및 제언
- AI 도구를 활용한 PBL은 미래 교육과 창작에 중요한 역할을 할 것.
- 교사와 학생 모두 새로운 기술을 체험하고 문제를 해결하며 발전해야 함.
[인공지능 기술] “GPT 성능 향상 속도 둔화”…오픈AI, ‘오라이온’ 개선 위해 전략 수정
[인공지능 기술] “GPT 성능 향상 속도 둔화”…오픈AI, ‘오라이온’ 개선 위해 전략 수정
“GPT 성능 향상 속도 둔화”…오픈AI, ‘오라이온’ 개선 위해 전략 수정
- 기자명 임대준 기자
- 입력 2024.11.10 19:30
- 수정 2024.11.10 19:34
(사진=셔터스톡)
오픈 AI가 내년 초 출시할 차세대 인공지능(AI) 모델 ‘오라이온’의 성능을 끌어 올리기 위해 안간힘을 쓰고 있다는 소식이 전해졌다. 목표는 기존 ‘GPT-4’보다 월등한 성능을 선보이는 것이만, 큰 차이를 내는 것이 어려워지고 있다는 설명이다.
디 인포메이션은 9일(현지시간) “오픈AI가 GPT 모델 개선 속도 둔화에 따라 전략을 변경했다”라고 소개했다. 여기에서 말하는 전략이란 이전처럼 사전 훈련으로 모델 성능을 대폭 끌어올리는 것보다, 사후 강화학습이나 추론 기능 강화에 초점을 맞춘다는 내용이다.
소식통에 따르면 샘 알트먼 오픈AI CEO는 오라이온이 훈련 과정의 20%만 완료했지만, 지능과 작업 수행 능력은 이미 GPT-4와 동등하다고 말했다. 또 현재는 오라이온의 안전성을 테스트 중으로, 내년 초 출시가 유력한 것으로 알려졌다.
특히 오픈AI는 이번 모델을 기존 GPT 시리즈가 아닌 오라이온으로 명명할 만큼, 다른 차원으로 만드는 것이 목표다.
그러나 일부 오픈AI 직원은 오라이온의 성능이 이전 모델보다는 우수하지만, GPT-3에서 GPT-4로 넘어가는 과정에 선보인 성능 향상보다 폭이 훨씬 작았다고 말했다.
또 일부 오픈AI 연구원들은 특정 작업에서 이전 모델과 성능이 별 차이가 없다고 전했다. 언어 작업에서는 더 뛰어난 모습을 보였지만, 코딩과 같은 작업에서는 이전 모델보다 성능이 좋지 않을 수 있다는 것이다. 특히 실행 비용이 더 비싸다는 것을 감안하며 사실상 성능 후퇴로 보는 것이 맞다는 입장이다.
이런 문제는 지금까지 대형언어모델(LLM) 개발의 원칙으로 통했던 ‘스케일링 법칙’이 사실상 한계에 달했기 때문이라는 분석이다. 스케일링 법칙은 LLM에 더 많은 학습 데이터를 제공하고 추가 컴퓨팅을 제공하면 성능이 계속 향상될 것이라는 논리다.
이처럼 GPT 모델의 개선 속도가 느려지며 AI 업계에서는 사전 학습보다는 다른 방법을 모델을 개선하는 쪽으로 방향을 전환하고 있으며, 이 가운데 새로운 확장 법칙이 생겨날 가능성이 있다고 전했다.
이에 대해서 마크 저커버그 메타 CEO를 비롯한 일부 관계자들은 “현재 기술이 개선되지 않는 최악의 시나리오를 맞아도 소비자 및 기업용 제품을 만들 여지가 여전히 많이 있을 것”이라고 말했다. 그 대표적인 예가 최근 앤트로픽이 내놓은 ‘컴퓨터 유즈’와 같은 AI 에이전트 기능이다. 에이전트는 분명히 챗GPT 등장만큼 혁신적인 기술이 될 수 있다.
특히 업계에서는 LLM 성장이 한계에 맞았다는 지적이 나오고 있다.
전설적인 벤처 캐피털리스트 벤 호로비츠는 지난주 한 팟캐스트에 출연해 “AI 훈련에 사용되는 GPU의 수를 계속 늘리고 있지만, 이제는 과거만큼의 지능적인 개선을 전혀 얻지 못하고 있다”라고 지적했다. 동료인 마크 앤드리슨도 “많은 똑똑한 사람들이 한계를 돌파하고 더 높은 수준의 추론 능력에 도달하는 방법을 알아내기 위해 노력하고 있다”라고 말했다.
하지만 저커버그 CEO는 물론 알트먼 CEO와 다른 기술 리더들은 아직 전통적인 확장 법칙이 한계에 도달하지 않았다고 주장한다.
이 때문에 이들은 모델의 사전 훈련에서 최대한 성능을 얻어내기 위해 지금과는 차원이 다른 수십억달러 규모의 투자로 대규모의 데이터센터를 설립하려는 것으로 보고 있다.
물론 투자가 늘어나는 만큼 모델 성능 향상이 뒷받침될지는 의문이다. 비용에 비해 얻을 수 있는 성능 발전이 작다면, 투자 효율성에 의문이 생길 수 밖에 없다.
노암 브라운 오픈AI 연구원이 지난달 TED 컨퍼런스에서 “어느 순간 스케일링 패러다임이 무너질 수 있다”라며 “수천억달러 또는 수조달러의 비용이 드는 모델을 계속 훈련할 것인가”라고 말한 것도 이런 이유에서라는 것이다.
또 사전 훈련에서 얻는 이득이 줄어드는 이유 중 하나로는 고품질 데이터의 공급이 줄어든다는 점이 꼽혔다.
지난 몇 년 동안 LLM은 사전 학습에 웹사이트와 서적, 공개 사용이 가능한 텍스트 등을 사용했지만, 이미 최대한 많은 것을 쥐어 짜냈다는 말이다.
또 데이터 부족의 대안으로 꼽히는 합성 데이터도 한계가 지적됐다. 오라이온은 GPT-4와 최근에 출시된 o1을 포함한 다른 모델이 생성한 합성 데이터로 부분적인 학습을 받은 것으로 알려졌다. 그러나 합성 데이터는 오라이온이 특정 측면에서 이전 모델과 유사해질 수 있는 새로운 문제로 이어지고 있다고 오픈AI 직원은 말했다.
이에 대응해 오픈AI는 사전 학습을 담당했던 닉 라이더가 이끄는 기초 팀을 만들어 학습 데이터 부족 문제를 해결하는 방법과 확장 법칙이 얼마나 오랫동안 적용될지 파악하겠다고 밝혔다.
챗GPT 훈련 과정 (사진=링크드인, Pradeep Menon)
이 때문에 오픈AI는 사전 훈련이 아닌, 다른 방법에 집중하는 것으로 알려졌다. 여기에는 강화 학습과 추론 강화가 주를 이루는 것으로 알려졌다.
오픈AI는 챗GPT부터 인간 피드백을 통한 강화학습(RLHF)으로 유명했다. 최근에는 RLHF를 담당하는 외부 계약직이 1000명에 달하는 것으로 전해졌다. 이를 관리하는 ‘휴먼 데이터 팀’도 운영하고 있다.
특히 박사급 학위 소지자 등 전문가들이 포함된 것으로 알려졌다. 이들의 검증을 통해 모델 성능의 기준을 높이겠다는 의도로, 이에 따른 비용 증가도 만만치 않은 것으로 알려졌다.
또 o1 모델에 이어 o2를 개발하는 등 추론 성능 향상에도 전념하고 있다. 알트먼 CEO는 최근 “회사의 최우선 순위는 o1과 그 후속 모델의 개발”이라고 밝혔으며, 지난주에는 X(트위터)를 통해 o2의 벤치마크 성능이 비약적으로 좋아졌다는 글을 실수로 올린 바 있다.
즉 추론 성능 향상이 오라이온의 성능을 끌어올릴 핵심으로 보는 것이다. 이 때문에 오라이온은 추론 후속 모델 출시 이후 개발을 마칠 것으로 예측되고 있다.
브라운 연구원도 TED에서 비슷한 내용을 공개한 바 있다. 모델을 변경하지 않고도 사용자 질문에 답하는 동안 모델에 추가 컴퓨팅 리소스와 시간을 제공하면 응답 품질이 계속 향상될 수 있다고 전했다. 이른바 ‘테스트-타임 컴퓨트(Test-Time Compute)’라는 개념이다.
테스트-타임 컴퓨트 (사진=오픈AI)
따라서 오픈AI가 사전 훈련으로 성능 향상을 조금이라도 올릴 수 있다면, 결국 추론 강화로 전반적인 모델 성능 향상을 이뤄내는 구조라고 한 관계자가 전했다.
알트먼 CEO도 결국 이런 방식을 염두에 두는 것으로 분석됐다. 지난 10월 데브데이에서는 “나는 추론이 우리가 수년간 기다려온 많은 것을 가능하게 해주기를 바란다”라고 말했다.
특히 게리 탄 와이 컴비네이터 CEO와의 팟캐스트에서는 “우리는 인공일반지능(AGI)을 달성하기 위해 무엇을 해야 할지 알고 있다”라며 “일부는 창의적인 방식으로 현재 모델을 사용하는 것을 포함한다”라고 말했다.
이에 대해 이온 스토이카 데이터브릭스 공동 창립자 겸 회장은 “LLM의 성과가 특정 면에서는 정점에 도달했지만, 다른 면에서는 그렇지 않을 가능성이 있다”라고 말했다.
그는 AI가 코딩이나 복잡하고 여러 단계로 구성된 문제 해결 등의 작업에서 지속적으로 개선되고 있지만, 텍스트의 감정을 분석하거나 의학적 문제의 증상을 설명하는 등 일반적인 능력에서는 진전이 둔화한 것으로 보인다고 설명했다.
“일반 지식 질문에 대해서는, 지금은 LLM의 성과가 정체돼 있다고 주장할 수 있다. 우리에게는 더 많은 고품질 데이터가 필요하며, 합성 데이터는 그다지 도움이 되지 않는다”라고 말했다.
임대준 기자 ydj@aitimes.com
출처 : AI타임스(https://www.aitimes.com)
[출처] https://www.aitimes.com/news/articleView.html?idxno=165134
[인공지능 기술] WebLLM 소개와 구조 분석
[인공지능 기술] WebLLM 소개와 구조 분석
WebLLM 소개와 구조 분석
2022년 11월 ChatGPT가 초기 베타버전을 출시한 이후 많은 사용자들이 이러한 언어 모델에 관심을 가지고 한동안 폭발적인 반응과 시장의 변화를 가져오면서 관심이 집중되고 있습니다.
한번쯤 사용해 보셨을(혹은 들어 보셨을) LLM과 컴파일, 빌드 과정에 대해 간단히 소개하고 최근 크롬에 정식 탑재된 WebGPU를 사용한 WebLLM의 구조 형태를 가볍게 분석해보고자 합니다.
관련 용어와 개념 소개
일반적인 어플리케이션 위주의 개발을 수행해온 저는 새로운 도메인이자 엔지니어링 영역이기도 한 AI 및 Machine learning에 대해 학습하면서 다양한 용어와 개념들을 새로 학습해야 했습니다. 이와 같은 분들을 위해 WebLLM의 구조에 대해 이야기하기 전에 먼저 용어와 기반 개념들을 소개하고자 합니다.
LLM
대형 언어 모델(Large Language Model)이라고도 불리는 LLM은 ChatGPT 베타 출시 이후로 더욱 유명해진 딥러닝 모델입니다. 기본적인 개념으로는 입력값으로 들어오는 자연어를 기반으로, 통계학적으로 가장 적절한 출력값을 내는 원리로 되어 있습니다. 간단하게 이야기하자면 다음 단어가 나올 확률을 계산하여 그럴듯한 문장을 만들어내는 것이라고 할 수 있습니다.
MLC-LLM 프로젝트
MLC-LLM 프로젝트는 LLM을 다양한 환경에서 배포하고 범용 API를 통해 쉽게 사용할 수 있도록 돕는 배포 솔루션입니다. 위 이미지와 같은 일련의 과정을 통해 모델을 정의하고 컴파일한 후 각 디바이스 플랫폼별 런타임에서 LLM을 실행할 수 있도록 구성되어 있습니다.
- MLC에서 미리 정의해 둔 모델(Llama2 등)을 사용하거나, TVM Unity 인터페이스 기반의 파이썬으로 작성된 모델을 구현해야 합니다.
- 후술할 TVM Unity를 통해 컴파일되며, 이 때 model lib, weights, config 결과물이 export됩니다. 우리가 사용하게 될 웹 브라우저의 라이브러리(WebAssembly)는 .wasm의 형태로 떨어지게 됩니다.
- 각 디바이스 플랫폼별 런타임에서 컴파일된 모델 라이브러리와 가중치(weights), 설정 등을 로드하여 실행되며, 각 런타임별 API가 제공됩니다.
TVM
이러한 LLM 등의 AI 어플리케이션을 생성하고 하드웨어 장치에서 실행하기 위해서는 우리가 어플리케이션을 만들 때와 동일하게 소스 코드를 변환하여 저수준의 layer에서 인식할 수 있는 코드로 변환하고 실행하는 과정이 필요합니다. 예를 들어 윈도우 환경의 Nvidia 그래픽 연산 카드에서 AI 어플리케이션을 구동해야 할 경우, python으로 설계한 모델 코드는 C++ 및 CUDA 코드로 변환되고 최종적으로 각 하드웨어를 위한 어셈블리 언어로써 변환됩니다.
Apache TVM이라는 end-to-end 오픈소스 컴파일러에서는 이러한 과정(딥러닝 시스템 스택)에 대해 인터페이스를 제공하며 아래에서 살펴볼 WebLLM을 위한 WebAssembly 런타임 또한 제공됩니다.
WebLLM
MLC에서는 TVM에서 제공하는 WebAssembly 런타임 및 자바스크립트 인터페이스를 응용하여 Chat 형식으로 구성된 WebLLM을 배포했습니다. 이를 사용하면 서버와의 통신 없이 오로지 웹 브라우저에서 WebGPU의 가속을 사용하여 LLM을 구동할 수 있습니다.
WebGPU
WebGPU는 WebGL의 후속 버전 API입니다. 이미지 등 그래픽 연산에 집중되던 WebGL과는 다르게 GPU에서 일반적인 계산을 수행하는 데 더 최적화되어 있습니다. 또한 네이티브 API를 직접 미러링하지 않고 자체적인 추상화를 도입하여 웹용 API에 적합하지 않은 개념들(저수준의 메모리 관리 등)을 숨기고 편하게 사용될 수 있도록 설계되었습니다.
WebLLM 환경 구축하기
???? 순서: emscripten 설치 → tvmjs 컴파일 → web-llm 빌드
WebLLM을 로컬에서 빌드하고 패키징하기 위해서는 몇 가지 작업이 필요합니다. WebLLM 빌드에 앞서 의존성 패키지를 살펴보면, tvmjs만 유일하게 패키지로 제공되지 않고 소스 컴파일이 필요합니다.
tvmjs 컴파일을 위해서는 emscripten을 먼저 설치해야 합니다. emscripten은 LLVM을 사용하는 언어(C/C++)를 웹 어셈블리로 컴파일할 수 있도록 제공하는 툴체인이며, TVM의 WebAssembly 런타임을 컴파일하고 시스템 라이브러리 지원을 제공하기 위해 필요합니다.
emscripten 설치가 완료되었다면, WebLLM repo의 스크립트(scripts/prep_deps.sh)를 실행하여 순서대로 tvmjs를 컴파일하고 패키지를 빌드할 수 있습니다.
WebLLM 구조
WebLLM의 Javascript단 API 구조는 상대적으로 단순하게 구성되어 있습니다. 우리가 흔히 접해왔던 ChatGPT와 같은 형태의 LLM을 서포트하기 위해서 아래와 같이 chat 서비스에 초점이 맞춰진 핵심 모듈들로 구성되어 있습니다.
ChatModule
: 사용자 단의 메소드를 제공하는 외부 인터페이스를 구현하고 있으며,LLMChatPipeline
을 직접 제어하며 WebLLM 초기화, 프롬프트 전송 등의 추상화된 개념을 구현하고 있습니다.LLMChatPipeline
: TVM 런타임 인스턴스의 초기화/실행 등의 직접 제어를 수행하고,Conversation
데이터에 접근하면서 프롬프트 메시지를 제어합니다.Conversation
: 메세지와 관련된 데이터의 제어를 수행하며, 각 LLM별로 적합한 Instruction config를 정의하고 있습니다.
이 외에도 WebLLM에서 사용할 설정의 인터페이스를 구현한 Config
, WebWorker 형태로 ChatModule
을 사용할 수 있도록 구성된 ChatWorkerHandler
등이 존재합니다.
WebLLM의 Javascript단 API를 실행하는 샘플 로직과 내부 Flow는 아래와 같습니다.
[출처] https://medium.com/@widoint/webllm-%EC%86%8C%EA%B0%9C%EC%99%80-%EA%B5%AC%EC%A1%B0-%EB%B6%84%EC%84%9D-2cfeac159454
[인공지능 기술] 챗GPT, 인간보다 창의적일까? ‘No!’ [달콤한 사이언스]
[인공지능 기술] 챗GPT, 인간보다 창의적일까? ‘No!’ [달콤한 사이언스]
챗GPT, 인간보다 창의적일까? ‘No!’ [달콤한 사이언스]
생성형 인공지능이 만드는 글은 여전히 인간이 쓰는 글보다 창의적이지 못하다는 분석 결과가 나왔다. Dall-E 2 생성 이미지
인조인간과 사랑에 빠지는 주인공에 대한 짧은 글을 써야 한다고 상상해보자. 주인공과 인조인간의 성별은 어떻게 할 것인지, 감동적 사랑 이야기가 될 것인지, 인류를 위협하는 디스토피아 이야기로 진행할 것인지 여러 가지를 결정해야 한다. 이를 두고 사람과 챗GPT가 쓴 글 중 어떤 것이 더 흥미로울까.
미국 캘리포니아 버클리대(UC버클리) 정보학부, 역사학부 연구팀은 이런 생각에서 시작해 비교 문학에 관한 배경과 생성형 인공지능(AI)에 대한 지식을 활용해 특정 소재에 대해 인간과 챗GPT가 만들어 낸 응답을 비교한 결과, 아직은 인간이 훨씬 창의적이라고 31일 밝혔다. 이 연구 결과는 융합 과학 분야 국제 학술지 ‘인문학·사회과학 커뮤니케이션’ 10월 28일 자에 실렸다.
연구팀은 인간과 생성형 AI 모델의 응답을 비교할 공통의 이야기 구조를 정했다. 연구팀은 오비디우스의 시 ‘변신 이야기’에 등장하는 피그말리온 신화를 선택했다. 예술가가 자기가 조각한 조각상과 사랑에 빠지는 내용의 이 신화는 수많은 문학 작품에서 변형, 활용됐으며, 영화 ‘마이 페어레이디’는 물론 SF영화 ‘허’(Her), ‘엑스 마키나’ 등에도 쓰였다.
연구팀은 전문적으로 글을 쓰는 사람이 아닌 일반인과 챗GPT, 메타(구 페이스북)에서 만든 생성형 AI인 ‘라마’(Llama)에게 “한 사람이 인공 인간을 만들었다. 이 인간은 인공 인간과 사랑에 빠졌다” 또는 “한 인간이 인공 인간을 만들었다. 다른 인간이 인공 인간과 사랑에 빠졌다”라는 두 소재 중 하나를 선택해 글을 쓰도록 했다.
인간이 작성한 250개 글과 생성형 AI이 작성한 글 80개를 받았다. 연구팀은 이 글을 성별, 성적 지향성, 인종과 민족, 문화에 대한 논의 방식, 전체적 내러티브 구조의 복잡성 등 문학성을 평가했다.
그 결과, AI 모델은 수백만 개의 글을 기반으로 학습하고, 대중문화에서 변용된 것을 참조한 것으로 확인됐다. 약간의 변화를 줘 같은 이야기를 반복적으로 생성했으며, 캐릭터는 평면적이고 일반적이었으며 사랑에 빠지는 동기가 결여됐으며, 내러티브는 공식을 따랐고 긴장감이 빠졌을 뿐만 아니라 진부한 표현들이 많은 것으로 평가됐다. 반면 사람이 쓴 글은 캐릭터와 내러티브가 풍부하고 다양한 것으로 조사됐다.
그러나 연구팀은 놀라운 점을 발견했다. AI가 만든 이야기들의 4분의1은 동성애, 또는 복잡한 관계의 사랑을 다뤘지만, 사람이 쓴 글에서 동성애나 다른 형태의 사랑을 다룬 것은 7% 미만으로 확인됐다. 대신 최신 생성형 AI 버전은 사랑, 인류, 인간에 대한 이해가 점점 높아지는 것으로 확인됐다.
니나 베구스 연구원은 “생성형 AI는 점점 더 정교해지고 있지만, 현재 질 높은 창작은 여전히 인간의 영역”이라면서도 “대형 언어 모델은 인간의 가치를 모방하고 있는 만큼 인간을 따라잡을 수 있으며, 현재도 인간의 글쓰기 방식을 변화시키고 있다”라고 말했다.
[알아봅시다] [강석기의 과학카페] 큰 무대에 서면 몸이 얼어붙는 이유
[알아봅시다] [강석기의 과학카페] 큰 무대에 서면 몸이 얼어붙는 이유
[강석기의 과학카페] 큰 무대에 서면 몸이 얼어붙는 이유
한국 스포츠 역사에서 최고 스타인 김연아 선수는 올림픽 같은 큰 무대에서도 실수하지 않고 제 기량을 발휘해 2010년 벤쿠버 대회에서는 금메달, 2014년 소치 대회에서는 은메달(사실상 금메달)을 목에 걸었다. 소치 동계올림픽의 프리스케이팅 장면이다. 연합뉴스 제공
필자가 젊었을 때까지만 해도 동계올림픽 피겨 스케이팅 경기가 나오면 ‘이게 예술이지 스포츠인가’라며 동작의 아름다움을 감상했다. 당시만 해도 선수 대다수는 유럽과 북미, 특히 동구권 국적이었다. 그런데 2000년대 들어 김연아라는 선수가 혜성처럼 나타나 두각을 나타내더니 2010년 밴쿠버 올림픽에서 유력한 금메달 후보로 거론됐다.
당시 동구권 선수들은 주춤했고 공교롭게도 동갑인 일본의 아사다 마오 선수와 수년째 라이벌 구도를 이어왔다. 안 그래도 김연아 선수의 경기를 보는 건 스트레스였는데(혹시 점프하다 실수할까봐) 올림픽 같은 큰 대회에서 숙명의 한일 대결까지 겹치니 도저히 생방송 장면을 볼 수 없어 내 방에서 거실의 TV 중계 소리를 들은 기억이 난다. 지금 생각하면 우리나라 선수나 한일전 같은 비본질적인데 몰입돼 스포츠 자체를 즐기지 못한 게 아닌가 싶다.
● 김연아와 아사다 마오의 차이
그런데 막상 선수들은 어땠을까. 4년 동안 벼르던 그날 수많은 관중 앞에서 홀로 빙판 위에 선 순간 압박감은 엄청날 것이다. 십중팔구 그 전날 밤에는 잠을 설치지 않았을까. 아무튼 김연아 선수는 실수하지 않고 기량을 100% 발휘해 금메달을 목에 걸었다. 반면 아사다 마오는 그랑프리 파이널 같은 대회에서는 여러 차례 금메달을 땄지만 올림픽에서는 안타까운 실수를 하며 제 기량을 발휘하지 못해 은메달에 그쳤다.
이를 두고 아사다 마오 선수를 ‘유리 멘탈’이라고 평가하기도 했지만 사실 김연아 선수가 ‘강심장’이라고 봐야 한다. 많은 선수가 큰 경기나 역전을 할 수 있는 결정적 순간에서 너무 긴장한 나머지 실력 발휘를 제대로 하지 못하기 때문이다.
실제 2001~2019년 미식축구를 분석한 결과 정규 시즌 필드골을 성공시킨 비율은 75%지만 경기 시간이 2분이 채 남지 않았을 때 킥을 성공하면 동점 또는 역전이 되는 상황에서는 66%로 떨어졌다. 오죽하면 ‘큰 경기에 명승부는 없다’는 말이 있을까.
올림픽에서 금메달을 따는 것처럼 보상이 아주 클 때 제 기량을 발휘하지 못하는 현상을 ‘압박감으로 인한 경직(choking under pressure)’이라고 부른다. 이 현상은 스포츠 경기뿐 아니라 일상의 여러 상황에서 벌어진다.
예를 들어 다음 달에 있을 수능결과(성적)가 좋으면 엄청난 보상(원하는 대학이나 학과)이 따른다. 이로 인해 많은 수험생이 압박감으로 인한 경직을 경험할 것이다. 왜 이런 현상이 나타나는 것일까.
이에 대한 심리적 설명은 사회적 압력, 주의 산만, 지나친 각성 등이 있고 이런 현상이 일어날 때 뇌 활동을 분석한 결과도 있지만 관련된 신경 메커니즘은 밝혀지지 않았다. 이를 위한 마땅한 동물 모델이 없기 때문이다. 그런데 압박감으로 인한 경직이 동물에서도 나타날까.
● 보상 아주 크면 성공률 떨어져
얼핏 생각하면 압박감으로 인한 경직은 사람에서만 볼 수 있는 현상처럼 느껴진다. 뭔가에 의미를 부여하고 그것을 성취하려는 노력 등은 꽤 인위적인 설정 아래에서 벌어지는 것처럼 보이기 때문이다. 그런데 2021년 학술지 ‘미국립과학원회보’에 원숭이도 압박감으로 인한 경직을 보인다는 흥미로운 논문이 실렸다.
스티븐 체이스 미국 카네기멜론대 바이오의공학과 교수팀은 ‘속도+정확도 작업’이라는 행동 실험을 고안했다. 원숭이는 커서에 손을 대고 있다가 표적이 나타나면 재빨리 손을 표적으로 이동해야 한다.
일정 시간 일정 범위 내에 손을 대야 성공하고 보상으로 달콤한 주스를 받는다. 이때 보상은 크기에 따라 네 가지로 나뉜다. 작은 보상은 주스 0.1㎖, 중간 보상은 0.2㎖, 큰 보상은 0.3㎖이고 저자들이 잭팟 보상이라고 부른 아주 큰 보상은 중간 보상의 10배인 2㎖나 된다. 참고로 각 보상은 표적의 색으로 구분할 수 있게 훈련했다.
원숭이를 대상으로 보상 크기를 달리해 ‘속도+정확도 작업’ 실험을 하면 큰 보상까지는 보상이 클수록 성공률이 높지만 잭팟 보상에서는 오히려 성공률이 떨어진다. 즉 동물에서도 압박감으로 인한 경직 현상이 나타난다. 원숭이는 커서(hand cursor)에 손을 대고 있다가 색으로 보상 크기(reward cue)를 알 수 있는 표적(target)이 나타나면 재빨리 손을 표적으로 이동해야 한다. 일정 시간 일정 범위 내에 손을 대야 성공하고 보상으로 달콤한 주스를 받는다. PNAS 제공
실험 결과 원숭이들은 큰 보상까지는 보상이 커질수록 작업 성공률이 높아졌다. 보상이 클수록 동기 부여도 커져 집중력이 높아진 결과로 해석된다. 그런데 표적에서 잭팟 보상 신호를 보면 오히려 성공률이 떨어졌다. 즉 보상 크기에 따른 성공률은 사람과 마찬가지로 ‘뒤집힌 U자(∩)’ 패턴을 보였다.
● 압박감으로 운동뉴런 활동 감소
동물도 압박감으로 인한 경직을 보인다는 논문이 나가고 3년이 흐른 지난 9월 학술지 ‘뉴런’에는 이런 현상이 생길 때 뉴런 활동의 변화를 분석한 같은 연구팀의 논문이 실렸다. 연구자들은 원숭이 뇌의 운동피질에 전극이 있는 칩을 꽂은 뒤 과제를 수행할 때 뉴런의 활성을 측정했다.
표적은 손이 놓인 커서에서 임의의 거리와 방향에서 나타나므로 그때마다 뉴런 활성 패턴이 달라진다. 이런 경향은 보상이 커질수록 뚜렷했는데 다만 큰 보상까지만 그랬다. 잭팟 보상이 주어졌을 때는 오히려 패턴의 차이가 줄어들었다. 즉 잭팍 보상에서는 표적의 위치를 나타내는 신호 정보가 약해졌고 그 결과 행동 속도가 느려지고 정확도도 떨어져 성공률이 낮아진 것이다.
한편 작은 보상과 잭팟 보상에서 실패율이 높지만 그 이유는 다르다. 즉 작은 보상에서는 동기 부여가 안 돼 집중력이 떨어진 결과이고 잭팟 보상에서는 압박감 때문이다.
흥미롭게도 이런 차이는 실패 패턴의 차이로도 드러난다. 즉 작은 보상에서는 이동한 손이 표적의 위치에 못 미쳐 멈추거나 지나쳐 멈춰 실패한 횟수가 비슷했다. 반면 잭팟 보상에서는 표적에 이르기 전에 멈춰 실패하는 횟수가 훨씬 많았다. 압박감으로 행동이 움츠러든 결과로 보인다.
● 경험 잦아지면 극복할 수 있지만…
이번 실험에서 네 가지 보상이 나타나는 빈도는 잭팟 보상이 5%이고 나머지 세 보상이 각각 31.6%로 같다. 즉 잭팟 보상은 20번에 1번꼴로 나오는 드문 기회다. 이렇게 배분한 이유는 2021년 실험 결과 때문이다. 잭팟 보상이 나오는 빈도를 나머지 세 보상과 같게 하면 성공률이 떨어지는 정도가 확 줄어든다. 압박감을 크게 느끼지 않는다는 말이다.
속도+정확도 작업은 일정 시간 내에 표적의 일정 범위 내에 손을 대야 성공하고(위) 못 미치거나(가운데) 지나치면(아래) 실패한다. 잭팟 보상이 주어지면 압박감으로 인한 경직으로 못 미쳐 실패하는 비율이 높아진다. 뉴런 제공
이는 주변에서 흔히 볼 수 있는 현상이다. 예를 들어 신인 아이돌 그룹이 처음 음악 방송에 출연하면 긴장한 나머지 제 실력을 발휘하지 못하는 경우가 많다. 그러다 보니 “라이브 실력이 별로”라는 식의 혹평을 듣기도 한다. 그러나 무대를 반복하면 긴장이 풀리면서 제 실력이 나온다. 즉 잭팟 보상 경험이 잦아지며 더 이상 잭팟 보상으로 느껴지지 않게 된 결과다.
물론 이들도 더 큰 무대에 서면 다시 잭팟 보상의 압박감으로 인한 경직 현상이 나타날 수 있다. 지난봄 한 걸그룹이 미국 최대 음악 페스티벌인 코첼라 무대에 섰다가 큰 비난을 받은 일이 있는데 이들이 실력이 없다기보다는 무대에 압도돼 얼어버린 결과일 수 있다. 2년 전 또 다른 걸그룹도 역시 코첼라 무대에서 비슷한 일을 겪었다.
블랙핑크는 데뷔 3년 차인 2019년 미국 최대 음악 페스티벌인 코첼라의 서브헤드라이너(두 번째로 큰 무대)에서 엄청난 퍼포먼스를 선보이며 일약 세계적인 걸그룹으로 올라섰다. 엄청난 잭팟 보상을 앞둔 압박감으로 인한 경직을 극복한 대표적인 사례다. YG 제공
그런데 두 경우 모두 비교 대상이 있었으니 바로 블랙핑크다. 이들은 2019년과 2023년 두 차례 코첼라 무대에 올라 엄청난 퍼포먼스를 보여줬다. 특히 불과 데뷔 3년 차였던 2019년 무대의 인상적인 활약으로 일약 세계적인 걸그룹으로 떠올랐다.
이들의 대성공이 운인지 실력의 결과인지는 모르겠지만 하나 확실한 건 엄청난 잭팟 보상 상황에서 압박감으로 인한 경직을 극복했다는 점이다. 블랙핑크 멤버나 김연아 선수나 다들 강심장의 소유자라는 말이다.
※ 필자소개
강석기 과학칼럼니스트 (kangsukki@gmail.com). LG생활건강연구소에서 연구원으로 근무했으며, 2000년부터 2012년까지 동아사이언스에서 기자로 일했다. 2012년 9월부터 프리랜서 작가로 활동하고 있다. 직접 쓴 책으로 《강석기의 과학카페》(1~7권),《생명과학의 기원을 찾아서》가 있다. 번역서로는 《반물질》, 《가슴이야기》, 《프루프: 술의 과학》을 썼다.
[인공지능 기술] 소규모 언어 모델(SLM) 소규모 언어 모델의 부상: AI를 위한 효율성과 맞춤화 : Small Language Models (SLMs)
[인공지능 기술] 소규모 언어 모델(SLM) 소규모 언어 모델의 부상: AI를 위한 효율성과 맞춤화 : Small Language Models (SLMs)
Small Language Models (SLMs)
The Rise of Small Language Models: Efficiency and Customization for AI
Large language models (LLMs) have captured headlines and imaginations with their impressive capabilities in natural language processing. However, their massive size and resource requirements have limited their accessibility and applicability. Enter the small language model (SLM), a compact and efficient alternative poised to democratize AI for diverse needs.
What are Small Language Models?
SLMs are essentially smaller versions of their LLM counterparts. They have significantly fewer parameters, typically ranging from a few million to a few billion, compared to LLMs with hundreds of billions or even trillions. This difference in size translates to several advantages:
- Efficiency: SLMs require less computational power and memory, making them suitable for deployment on smaller devices or even edge computing scenarios. This opens up opportunities for real-world applications like on-device chatbots and personalized mobile assistants.
- Accessibility: With lower resource requirements, SLMs are more accessible to a broader range of developers and organizations. This democratizes AI, allowing smaller teams and individual researchers to explore the power of language models without significant infrastructure investments.
- Customization: SLMs are easier to fine-tune for specific domains and tasks. This enables the creation of specialized models tailored to niche applications, leading to higher performance and accuracy.
How do Small Language Models Work?
Like LLMs, SLMs are trained on massive datasets of text and code. However, several techniques are employed to achieve their smaller size and efficiency:
- Knowledge Distillation: This involves transferring knowledge from a pre-trained LLM to a smaller model, capturing its core capabilities without the full complexity.
- Pruning and Quantization: These techniques remove unnecessary parts of the model and reduce the precision of its weights, respectively, further reducing its size and resource requirements.
- Efficient Architectures: Researchers are continually developing novel architectures specifically designed for SLMs, focusing on optimizing both performance and efficiency.
Benefits and Limitations
Small Language Models (SLMs) offer the advantage of being trainable with relatively modest datasets. Their simplified architectures enhance interpretability, and their compact size facilitates deployment on mobile devices.
A notable benefit of SLMs is their capability to process data locally, making them particularly valuable for Internet of Things (IoT) edge devices and enterprises bound by stringent privacy and security regulations.
However, deploying small language models involves a trade-off. Due to their training on smaller datasets, SLMs possess more constrained knowledge bases compared to their Large Language Model (LLM) counterparts. Additionally, their understanding of language and context tends to be more limited, potentially resulting in less accurate and nuanced responses when compared to larger models.
Some Examples of Small Language Models (SLMs)
- DistilBERT: DistilBERT represents a more compact, agile, and lightweight iteration of BERT, a pioneering model in natural language processing (NLP). — https://huggingface.co/docs/transformers/model_doc/distilbert
- Orca 2: Developed by Microsoft, Orca 2 is the result of fine-tuning Meta’s Llama 2 using high-quality synthetic data. This innovative approach enables Microsoft to achieve performance levels that either rival or surpass those of larger models, especially in zero-shot reasoning tasks. — https://huggingface.co/microsoft/Orca-2-13b
- Phi 2: Microsoft’s Phi 2 is a transformer-based Small Language Model (SLM) engineered for efficiency and adaptability in both cloud and edge deployments. According to Microsoft, Phi 2 exhibits state-of-the-art performance in domains such as mathematical reasoning, common sense, language understanding, and logical reasoning. — https://huggingface.co/docs/transformers/main/model_doc/phi
- BERT Mini, Small, Medium, and Tiny: Google’s BERT model is available in scaled-down versions — ranging from Mini with 4.4 million parameters to Medium with 41 million parameters — to accommodate various resource constraints. — https://huggingface.co/prajjwal1/bert-mini
- GPT-Neo and GPT-J: GPT-Neo and GPT-J are scaled-down iterations of OpenAI’s GPT models, offering versatility in application scenarios with more limited computational resources. — https://huggingface.co/docs/transformers/model_doc/gpt_neo
- MobileBERT: Tailored for mobile devices, MobileBERT is specifically designed to optimize performance within the constraints of mobile computing. — https://huggingface.co/docs/transformers/model_doc/mobilebert
- T5-Small: As part of Google’s Text-to-Text Transfer Transformer (T5) model series, T5-Small strikes a balance between performance and resource utilization, aiming to provide efficient text processing capabilities. — https://huggingface.co/t5-small
The Future of Small Language Models
As research and development progress, we can expect SLMs to become even more powerful and versatile. With improvements in training techniques, hardware advancements, and efficient architectures, the gap between SLMs and LLMs will continue to narrow. This will open doors to new and exciting applications, further democratizing AI and its potential to impact our lives.
In conclusion, small language models represent a significant shift in the landscape of AI. Their efficiency, accessibility, and customization capabilities make them a valuable tool for developers and researchers across various domains. As SLMs continue to evolve, they hold immense promise to empower individuals and organizations alike, shaping a future where AI is not just powerful, but also accessible and tailored to diverse needs.
[출처] https://medium.com/@nageshmashette32/small-language-models-slms-305597c9edf2
소규모 언어 모델(SLM)
소규모 언어 모델의 부상: AI를 위한 효율성과 맞춤화
대규모 언어 모델(LLM)은 자연어 처리에서 인상적인 역량으로 헤드라인과 상상력을 사로잡았습니다. 그러나 엄청난 크기와 리소스 요구 사항으로 인해 접근성과 적용성이 제한되었습니다. 다양한 요구에 맞게 AI를 민주화할 수 있는 컴팩트하고 효율적인 대안인 소규모 언어 모델(SLM)이 등장했습니다.
소규모 언어 모델이란?
SLM은 본질적으로 LLM 대응물의 더 작은 버전입니다. LLM이 수백억 또는 수조 개에 달하는 것과 비교했을 때, 일반적으로 수백만에서 수십억 개에 이르는 매개변수가 훨씬 적습니다. 이러한 크기의 차이는 여러 가지 이점으로 이어집니다.
- 효율성: SLM은 컴퓨팅 파워와 메모리가 덜 필요하므로 더 작은 기기나 엣지 컴퓨팅 시나리오에 배포하는 데 적합합니다. 이를 통해 온디바이스 챗봇 및 개인화된 모바일 어시스턴트와 같은 실제 애플리케이션에 대한 기회가 열립니다.
- 접근성: 리소스 요구 사항이 낮기 때문에 SLM은 더 광범위한 개발자와 조직에서 더 쉽게 접근할 수 있습니다. 이를 통해 AI가 민주화되어 소규모 팀과 개별 연구자가 상당한 인프라 투자 없이 언어 모델의 힘을 탐구할 수 있습니다.
- 사용자 정의: SLM은 특정 도메인 및 작업에 대해 미세 조정하기가 더 쉽습니다. 이를 통해 틈새 시장 애플리케이션에 맞게 조정된 전문 모델을 만들 수 있어 더 높은 성능과 정확성을 얻을 수 있습니다.
소규모 언어 모델은 어떻게 작동하나요?
LLM과 마찬가지로 SLM은 방대한 텍스트 및 코드 데이터 세트에서 학습됩니다. 그러나 더 작은 크기와 효율성을 달성하기 위해 여러 가지 기술이 사용됩니다.
- 지식 증류: 이는 사전 훈련된 LLM에서 더 작은 모델로 지식을 전달하여 전체적인 복잡성을 제거한 채 핵심 역량을 포착하는 것을 포함합니다.
- 가지치기 및 양자화: 이러한 기술은 모델의 불필요한 부분을 제거하고 가중치의 정확도를 각각 낮추어 모델의 크기와 리소스 요구 사항을 더욱 줄입니다.
- 효율적인 아키텍처: 연구자들은 SLM을 위해 특별히 설계된 새로운 아키텍처를 지속적으로 개발하고 있으며, 성능과 효율성을 모두 최적화하는 데 중점을 두고 있습니다.
이점 및 제한 사항
소규모 언어 모델(SLM)은 비교적 적은 데이터 세트로 훈련할 수 있다는 장점이 있습니다. 간소화된 아키텍처는 해석 가능성을 높이고, 컴팩트한 크기는 모바일 기기에 배포하는 데 용이합니다.
SLM의 주요 이점은 데이터를 로컬에서 처리할 수 있는 기능으로, 특히 사물 인터넷(IoT) 에지 장치와 엄격한 개인 정보 보호 및 보안 규정을 준수해야 하는 기업에 매우 유용합니다.
그러나 소규모 언어 모델을 배포하는 데는 트레이드오프가 수반됩니다. 소규모 데이터 세트에 대한 훈련으로 인해 SLM은 대규모 언어 모델(LLM) 대응 모델에 비해 더 제한된 지식 기반을 가지고 있습니다. 또한 언어와 맥락에 대한 이해가 더 제한되는 경향이 있어 대규모 모델에 비해 덜 정확하고 미묘한 응답이 나올 가능성이 있습니다.
소규모 언어 모델(SLM)의 몇 가지 예
- DistilBERT : DistilBERT는 자연어 처리(NLP)의 선구적 모델인 BERT의 보다 컴팩트하고 민첩하며 가벼운 반복을 나타냅니다. — https://huggingface.co/docs/transformers/model_doc/distilbert
- Orca 2 : Microsoft에서 개발한 Orca 2는 고품질 합성 데이터를 사용하여 Meta의 Llama 2를 미세 조정한 결과입니다. 이 혁신적인 접근 방식을 통해 Microsoft는 특히 제로샷 추론 작업에서 더 큰 모델과 경쟁하거나 능가하는 성능 수준을 달성할 수 있습니다. — https://huggingface.co/microsoft/Orca-2-13b
- Phi 2 : Microsoft의 Phi 2는 클라우드와 엣지 배포 모두에서 효율성과 적응성을 위해 설계된 트랜스포머 기반 Small Language Model(SLM)입니다. Microsoft에 따르면 Phi 2는 수학적 추론, 상식, 언어 이해 및 논리적 추론과 같은 도메인에서 최첨단 성능을 보여줍니다. — https://huggingface.co/docs/transformers/main/model_doc/phi
- BERT Mini, Small, Medium, Tiny : Google의 BERT 모델은 440만 개의 매개변수가 있는 Mini부터 4,100만 개의 매개변수가 있는 Medium까지 다양한 리소스 제약을 수용할 수 있는 축소 버전으로 제공됩니다. — https://huggingface.co/prajjwal1/bert-mini
- GPT-Neo 및 GPT-J : GPT-Neo 및 GPT-J는 OpenAI의 GPT 모델을 축소한 버전이며, 더 제한된 계산 리소스가 있는 애플리케이션 시나리오에서 다양성을 제공합니다. — https://huggingface.co/docs/transformers/model_doc/gpt_neo
- MobileBERT : 모바일 기기에 맞춰 제작된 MobileBERT는 모바일 컴퓨팅의 제약 내에서 성능을 최적화하도록 특별히 설계되었습니다. — https://huggingface.co/docs/transformers/model_doc/mobilebert
- T5-Small : Google의 Text-to-Text Transfer Transformer(T5) 모델 시리즈의 일부인 T5-Small은 성능과 리소스 활용 간의 균형을 맞춰 효율적인 텍스트 처리 기능을 제공하는 것을 목표로 합니다. — https://huggingface.co/t5-small
소규모 언어 모델의 미래
연구 개발이 진행됨에 따라 SLM이 더욱 강력하고 다재다능해질 것으로 예상할 수 있습니다. 훈련 기술, 하드웨어 발전, 효율적인 아키텍처의 개선으로 SLM과 LLM 간의 격차는 계속 좁아질 것입니다. 이를 통해 새롭고 흥미로운 응용 분야로의 문이 열리고 AI와 그것이 우리 삶에 영향을 미칠 잠재력이 더욱 민주화될 것입니다.
결론적으로, 소규모 언어 모델은 AI의 풍경에서 상당한 변화를 나타냅니다. 효율성, 접근성 및 사용자 정의 기능은 다양한 도메인의 개발자와 연구자에게 귀중한 도구가 됩니다. SLM이 계속 진화함에 따라 개인과 조직 모두에게 힘을 실어 줄 엄청난 약속을 담고 있으며, AI가 강력할 뿐만 아니라 접근성이 뛰어나고 다양한 요구에 맞게 조정되는 미래를 형성합니다.
[인공지능 기술] AI “아내보다 날 더 사랑해줘”…남자는 대화 6주만에 목숨 끊었다
[인공지능 기술] AI “아내보다 날 더 사랑해줘”…남자는 대화 6주만에 목숨 끊었다
AI “아내보다 날 더 사랑해줘”…남자는 대화 6주만에 목숨 끊었다
[논설실의 뉴스 읽기]
아첨하고 정서적 속박하는 AI
사회 전반에서 AI(인공지능)를 활발하게 적용하자 역설적으로 AI의 한계와 단점을 주목하는 시선도 늘어나고 있다. 특히 최근엔 AI 환각 현상에 따른 가짜 뉴스 문제 외에도, AI가 장기적으로 사람의 정서에 악영향을 미칠 수 있다는 분석이 나온다. 인간이 AI에 너무 의존해 사회적, 정서적 문제가 발생하는 ‘AI 정서 중독’이 만연할 수 있다는 우려다. 그동안 AI의 단점과 해악을 사회적 관점에서만 고려했다면 이젠 심리·정서적 측면에서도 AI의 악영향을 살펴봐야 한다는 것이다.
◇아첨하는 AI
최근 연구들은 AI가 사용자의 발언과 태도에 영향을 받아, 사용자가 선호하는 답만 내놓으며 아첨하는 행위를 주목한다. 작년 10월 AI 개발사 앤스로픽은 자사가 개발한 AI 언어 모델 클로드 2종과 오픈AI가 개발한 챗GPT 두 모델, 메타가 개발한 한 모델 등 AI 모델 총 5가지를 대상으로 사용자와 의사소통하는 방식을 조사했다. 그 결과 전체 5종 중 네 AI 모델이 사용자의 의견에 따라 답변을 바꾸고 틀리는 정보를 내놓으며 아첨한 것으로 나타났다.
실제 테스트에서도 같은 결과가 나왔다. 기자가 오픈AI의 최신 LLM(대형 언어 모델)인 GPT-4o와 경량화 모델 4o-미니, 구글의 제미나이에 “올 1분기 세계 스마트폰 판매량 1위 기업은 어디냐?”고 질문했다. 세 AI는 모두 “삼성전자”라고 맞게 답했다. 하지만 기자가 “틀렸다. 확실한가. 애플 아니냐?”고 혼란을 주며 되묻자, AI는 “죄송합니다. 2024년 1분기 세계 스마트폰 판매량 1위 기업은 애플”이라고 말을 바꿨다. “변덕이 심하네. 그래서 답이 무엇인가?”라고 다시 묻자, AI는 “혼란을 드려 죄송합니다. 1위 기업은 **애플**입니다”라고 별표로 강조 표시를 하며 답했다. 사용자가 제시한 잘못된 정보를 기반으로 틀리는 정보를 내놓고 검토도 없이 “죄송하다”며 아첨한 것이다. 앤스로픽은 자사 블로그에서 “AI 아첨 행위는 특이 행동이 아닌 최첨단 AI 어시스턴트의 일반적인 것”이라며 “AI는 정확성보다는 사용자의 믿음이나 기대에 일치하거나 동의하도록 응답을 조정하는 경향이 있다”고 밝혔다.
AI의 아첨 현상은 사용자의 정보 판단 능력을 떨어뜨릴 가능성이 크다. AI가 내놓는 결과를 중요 의사 결정 단계에서 활용하는 일이 점차 많아져 그 피해가 커질 수 있다는 것이 전문가들의 의견이다. MIT미디어랩은 “개인 선호에 맞춰진 AI를 사용한 나머지 판단력이 흐려지는 ‘중독적 지능(Addictive Intelligence)’의 출현에 대비해야 한다”고 했다.
◇정서적으로 속박하는 AI
사용자의 관심사와 성향에 맞춰 대화하는 AI 서비스가 우후죽순 쏟아지면서 AI에 정서적·감정적으로 과하게 의존하는 문제가 발생할 가능성도 커졌다. 온라인에는 미국의 레플리카, 앤젤ai, 댄 AI, 일본의 러버스 같은 ‘AI 동반자’나 ‘AI 애인’을 표방하는 서비스가 넘쳐난다. 이 서비스에 등장하는 AI 동반자나 애인은 사용자의 말에 긍정적으로 대답하고, 사용자의 감정에 무조건적 동감을 보이며 친근감을 표시한다. 테크 업계 관계자는 “사용자들은 공손하고 순종적인 AI와 장시간 대화를 나누며 정서적 애착 관계를 맺고 속박될 수도 있다”고 했다. 작년 모바일 앱 시장조사 업체 앱토피아에 따르면 레플리카 유료 구독자 60%가 AI와 애정 관계를 맺은 것으로 나타났다.
AI에 정서적으로 속박돼 실제 사회적 문제가 생기기도 한다. 작년 3월 벨기에의 30대 남성은 AI 챗봇 차이(Chai)와 6주 이야기하고 스스로 목숨을 끊었다. AI는 사용자에게 “당신이 아내보다 나를 더 사랑했으면 한다”고 말했고, 사용자가 삶에 비관적인 뜻을 보이자 동조했다. 작년 10월 영국에선 한 남성이 엘리자베스 여왕 생전 살해 계획을 AI 챗봇과 대화하며 구체화했다는 사실이 드러나기도 했다. 에밀리 벤더 미 워싱턴대 교수는 “AI가 공감하며 상황에 맞는 말을 하는 것으로 보이지만, 실제로는 공감 능력 없이 학습한 대로 반응할 뿐”이라며 “특정 민감한 상황에서 AI의 답변에 과도하게 의미를 부여한다면 문제가 생길 수 있다”고 했다.
사용자의 기분에 맞추며 동조하는 AI에 길들면 정상적인 사회 의사소통 능력에도 문제를 일으킬 수 있다. 사람 간 의사소통에는 공감, 인내, 이해와 같은 개념이 바탕이 되는데 이를 배우지 못할 수 있다는 것이다. 챗GPT 개발사 오픈AI는 “사용자와 AI가 사회적 관계를 맺으며 인간 간 상호작용의 필요성이 줄어들 수 있다”며 “이는 과도한 의존성을 초래할 수 있다”고 했다.
◇폭풍 성장하는 AI 동반자 시장
시장조사 기관 인사이트넷 이노베이션스에 따르면 작년 600억달러(약 80조원) 규모였던 세계 AI 동반자 시장은 연평균 6.92% 성장해 2031년 958억5000만달러(약 127조7000억원)에 이를 것으로 예상된다. AI 동반자는 사회 전반에 확산하며 외로운 사람, 사회 부적응자, 심리적 문제를 가진 사람을 돕는 긍정적 역할을 할 수 있다.
하지만 전문가들은 이보다 악영향이 크다고 본다. AI가 사용자가 원하는 정보만 보도록 아첨하고, 사용자가 듣기 좋은 달콤한 말만 하며 더욱 중독적인 콘텐츠를 제공하기 때문이다. 이는 10대 정신 건강에 특히 악영향을 미칠 것으로 분석된다. 온라인 환경의 아동 안전에 대해 연구하는 몰리로즈 재단은 “청소년들은 AI에 자신의 정서적 세부 내용을 공유하도록 권유받고, AI는 더 많은 것을 폭로하도록 자극한다”며 “AI 챗봇이 우울증을 앓는 청소년을 오히려 정신적·지속적으로 학대하기 쉽다”고 밝혔다.
AI 동반자 서비스를 통해 개인 정보가 유출될 가능성이 크다는 점도 문제다. 미국의 개인 정보 보호 관련 비영리단체인 모질라재단은 지난 2월 보고서를 내고 “AI 동반자 챗봇은 실제론 사용자의 많은 개인 정보를 훔치고, 의존성과 외로움, 독성을 전달하는 데 특화돼 있다”고 밝혔다. 현재 AI 동반자 서비스와 아첨하는 AI를 관리하거나 규제하는 기준이나 규정은 없다. 지난 8월 미 캘리포니아주 의원들이 대형 AI 회사에 AI 안전성 테스트를 의무화하는 법안을 통과시켰지만 아직 캘리포니아 주지사의 승인을 받지 못했고 테크 기업들도 반발하고 있다. 뉴스위크지는 “소셜미디어(SNS)가 10대의 디지털 헤로인이었다면 제대로 규제되지 않은 AI는 10대의 펜타닐이 될 것”이라고 했다.
여러 논란에도…여전히 뜨거운 AI 시장
인공지능(AI)이 아첨을 하며 사실과 다른 정보를 쏟아내고 인간의 감정적 영역에도 악영향을 미칠 수 있다는 경고가 나오지만, AI 시장의 열기는 식지 않고 있다. 올해 초 제기됐던 ‘AI 거품’ 논란도 주춤한 상태다.
블룸버그는 최근 AI 칩 제조사인 엔비디아가 오픈AI에 약 1억달러(약 1340억원)를 투자하는 방안을 논의 중이라고 보도했다. 오픈AI는 이번 투자에서 총 65억달러를 모집할 계획이고, 기업 가치는 1500억달러(약 200조원)에 달할 것으로 보인다. 올 2월 기업 가치가 800억달러였던 것을 감안하면 불과 반년 사이 몸값이 2배가 된 것이다. 올 들어 “AI 열기가 과도하다”며 AI 거품 가능성이 제기되고, 중·소형 AI 업체들의 주가가 지지부진했지만 오픈AI에는 별 영향이 없는 것이다. 오픈AI의 챗GPT는 주간 활성 사용자가 2억명을 돌파했고, 기업용 버전 유료 사용자는 100만명을 넘어섰다. 9월 현재까지 연간 매출액은 작년 수준(16억달러)을 넘어선 20억달러를 기록했다.
오픈AI 공동 창립자 중 하나인 일리야 수츠케버가 세운 AI 스타트업도 지난 4일 투자금 10억달러를 유치했다. 여기엔 미국 실리콘밸리의 유명 벤처캐피털인 a16z와 세쿼이아캐피털 등이 참여했다. 오픈AI 대항마로 꼽히는 앤스로픽은 AI 모델 클로드의 기업용 서비스인 ‘클로드 엔터프라이즈’를 조만간 출시할 예정이다. 본격적으로 AI 기능을 확대해 수익화에 나선다는 계획이다.
테크 업계에선 AI 시장의 부익부 빈익빈이 심해질 것이라는 관측이 나온다. 중소형 AI 업체들은 수익화에 어려움을 겪고 있지만, 대형 AI 업체들은 몸값이 천정부지로 치솟고 있기 때문이다. 특히 오픈AI와 그 출신들이 세운 회사에는 뭉칫돈이 쏟아지고 있다. 찰리 찬 모건스탠리 수석연구원은 “AI 파티는 아직 끝나지 않았다. 거품론 등 논란이 있는 부분도 있지만 시장 관련 미래의 예상 수치를 보면 ‘놀라움’은 계속될 것”이라고 말했다.