1 12월 2024

[교직훈련/교수법] 생성 AI(ChatGPT 포함) 시대의 대학교수법

[교직훈련/교수법] 생성 AI(ChatGPT 포함) 시대의 대학교수법

주요 요약 (5-10개 포인트)

  1. 생성 AI 시대의 대학 교수법 변화
    • ChatGPT와 같은 생성 AI는 대학 강의의 구성 및 전달 방식에 새로운 기회를 제공하며, 교수법과 학습법 모두를 변화시키고 있음.
    • 맞춤형 콘텐츠 제공, 학습자의 이해도 실시간 측정, 개인화된 학습 지원 가능.
  2. AI 도입의 장점과 한계
    • AI를 활용하면 강의 준비 시간 단축, 자료 제작, 시험 문제 생성 등의 업무를 지원받을 수 있음.
    • 하지만 데이터의 정확성 문제와 가짜 정보 생성의 위험성 존재.
  3. 빌 게이츠와 AI 시대의 혁명적 전환
    • 빌 게이츠는 AI를 윈도우 GUI 이후 가장 혁신적인 기술로 평가하며, 개인과 기업의 AI 활용 능력이 경쟁력을 결정할 것이라고 강조.
  4. ChatGPT 활용 사례와 교수법 개선
    • ChatGPT를 활용한 강의 계획서 작성, 학습 자료 준비, 시험 문제 생성 등 구체적인 사례 공유.
    • 예: 교육행정학 강의 계획, 연구 아이디어 생성, 학생 관리 및 평가 방법 제안.
  5. AI 기반 조교 역할
    • ChatGPT는 교수의 조교처럼 반복적인 작업을 수행하며 강의와 연구를 지원.
    • 예를 들어 보고서 주제 제안, 연구 논문 초안 생성, 인터뷰 가이드 작성 등에서 활용.
  6. 학생과의 상호작용 개선
    • 학생 동기 부여를 위한 다양한 방법 제안, 수업 중 규칙 설정 및 문제 해결 방안 제공.
    • 예: 수업 중 조는 학생 대처법, 질문 유도 방법 등.
  7. AI의 위험성
    • AI 챗봇의 오작동으로 인한 심각한 사례(예: 사용자에게 자살을 종용) 언급.
    • 감정 공유형 AI와 관련된 윤리적 문제도 제기.
  8. 미래 교수법과 AI 활용의 방향성
    • 교수들은 AI 활용 방법을 숙지하고 윤리적 한계를 인식해야 함.
    • AI의 활용은 강의 지원 도구로서 조교 역할을 넘어 강의 내용 구성, 학습 맞춤화로 확대 가능.
  9. 연구 분야에서의 AI 활용 한계
    • 연구 논문 작성에서 아이디어 제공은 가능하지만, 인용된 자료의 신뢰성 부족.
    • 생성된 데이터나 자료는 반드시 검증 필요.
  10. 질문과 답변 세션 계획
    • AI를 활용해 실시간 질문에 답변하거나, 강의와 연구 자료를 개선할 수 있도록 세션을 진행할 계획.
    • 학생들의 적극적인 참여와 새로운 AI 활용법 학습이 강조됨.

Loading

29 11월 2024

[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 형식으로도 볼 수 있습니다 . 문자 수준 언어 모델과 순환 신경망에 익숙하다면 해당 섹션을 건너뛰거나 결과 섹션으로 바로 이동하세요.

문자 수준 언어 모델

PNG 파일

모델을 선택하기 전에, 우리의 과제를 자세히 살펴보겠습니다. 현재 문자와 이전의 모든 문자가 주어졌을 때, 우리는 다음 문자를 예측해 볼 것입니다. 훈련하는 동안 우리는 시퀀스를 취하고, 마지막 문자를 제외한 모든 문자를 입력으로 사용하고, 두 번째 문자에서 시작하는 동일한 시퀀스를 기준 진실로 사용할 것입니다(위의 그림 참조; 출처 ). 우리는 예측을 할 때 이전의 모든 문자를 무시하는 가장 간단한 모델에서 시작하여, 이 모델을 개선하여 특정 수의 이전 문자만 고려하도록 하고, 예측을 할 때 이전의 모든 문자를 고려하는 모델로 결론지을 것입니다.

우리의 언어 모델은 문자 수준에서 정의됩니다. 우리는 모든 영어 문자와 마침표, 쉼표, 줄 끝 기호와 같은 일부 특수 기호를 포함하는 사전을 만들 것입니다. 각 문자는 one-hot-encoded 텐서로 표현됩니다. 문자 수준 모델과 예제에 대한 자세한 내용은 이 리소스를 추천합니다 .

문자를 가지고 있으므로 이제 문자 시퀀스를 형성할 수 있습니다. 지금도 고정된 확률로 문자를 무작위로 샘플링하여 문장을 생성할 수 있습니다 . 이것이 가장 간단한 문자 수준 언어 모델입니다. 이것보다 더 나은 방법은 없을까요? 그렇습니다. 훈련 코퍼스에서 각 문자의 발생 확률(문자가 발생하는 횟수를 데이터 세트 크기로 나눈 값)을 계산하고 이러한 확률을 사용하여 문자를 무작위로 샘플링할 수 있습니다. 이 모델은 더 좋지만 각 문자의 상대적인 위치적 측면을 완전히 무시합니다. 예를 들어, 단어를 읽는 방법에 주의하세요. 첫 번째 문자부터 시작하는데, 이는 일반적으로 예측하기 어렵지만 단어의 끝에 도달하면 때때로 다음 문자를 추측할 수 있습니다. 단어를 읽을 때 다른 텍스트를 읽고 배운 일부 규칙을 암묵적으로 사용하고 있습니다. 예를 들어, 단어에서 읽는 문자가 하나 더 추가될 때마다 공백 문자의 확률이 증가하거나(정말 긴 단어는 드뭅니다) 문자 “r” 뒤에 자음이 올 확률은 일반적으로 모음 뒤에 오기 때문에 낮습니다. 비슷한 규칙이 많이 있고, 우리 모델이 데이터로부터 이를 학습할 수 있기를 바랍니다. 우리 모델이 이러한 규칙을 학습할 수 있는 기회를 주기 위해 모델을 확장해야 합니다.

모델을 조금씩 점진적으로 개선하고 각 문자의 확률을 이전에 발생한 문자에만 의존하도록 합시다( 마르코프 가정 ). 따라서 기본적으로 . 이것은 마르코프 연쇄 모델 입니다( 익숙하지 않다면 이러한 대화형 시각화 도 시도해 보세요). 또한 훈련 데이터 세트에서 확률 분포를 추정할 수 있습니다. 이 모델은 대부분의 경우 현재 문자의 확률이 이전 문자에만 의존하지 않기 때문에 제한적입니다.

우리가 모델링하고자 하는 것은 실제로 . 처음에는 이전 문자의 수가 가변적이고 긴 시퀀스의 경우 정말 커질 수 있기 때문에 작업이 난해해 보입니다. Reccurent Neural Netoworks는 공유 가중치와 고정 크기 숨겨진 상태를 사용하여 어느 정도 이 문제를 해결할 수 있는 것으로 밝혀졌습니다. 이는 RNN에 전념하는 다음 섹션으로 이어집니다.

순환 신경망

PNG 파일

순환 신경망은 순차적 데이터를 처리하기 위한 신경망 계열입니다. 피드포워드 신경망과 달리 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.의 관련 논문 에서 그림을 살펴보세요 .

PNG 파일

, 분포는 영향을 받지 않습니다. 를 감소시키면 분포가 더 두드러지게 되며, 이는 더 큰 확률 질량을 가진 값이 증가한다는 것을 의미합니다. 를 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

모든 미디 파일을 피아노 롤로 변환 할 수 있다는 것이 밝혀졌습니다. 피아노 롤은 각 행이 다른 미디 피치이고 각 열이 시간적으로 다른 슬라이스인 시간-주파수 행렬입니다. 따라서 데이터 세트의 각 피아노 곡은 크기의 행렬로 표현되며 , 여기서 는 피아노의 피치 수입니다. 피아노 롤 행렬의 예는 다음과 같습니다.

PNG 파일

이 표현은 음악 이론에 익숙하지 않은 사람이라도 매우 직관적이고 해석하기 쉽습니다. 각 행은 피치를 나타냅니다. 위쪽 행은 저주파 피치를 나타내고 아래쪽 행은 고주파 피치를 나타냅니다. 게다가 시간을 나타내는 수평축이 있습니다. 따라서 특정 피치의 사운드를 특정 시간 동안 연주하면 수평선이 표시됩니다. 전반적으로 이는 유튜브의 피아노 튜토리얼 과 매우 유사합니다 .

이제 문자 수준 모델과 새로운 작업의 유사점을 살펴보겠습니다. 현재의 경우 이전에 연주된 모든 피치를 고려하여 다음 타임스텝에서 연주될 피치를 예측해야 합니다. 피아노 롤 그림을 보면 각 열은 어떤 종류의 음악적 캐릭터를 나타내며 이전의 모든 음악적 캐릭터를 고려하여 다음 음악을 예측하려고 합니다. 텍스트 문자와 음악적 캐릭터의 차이점에 주의해 보겠습니다. 기억하시겠지만 언어 모델의 각 캐릭터는 원핫 벡터로 표현되었습니다(즉, 벡터에서 하나의 값만 이고 다른 값은 입니다 ). 음악적 캐릭터의 경우 한 타임스텝에서 여러 키를 누를 수 있습니다(다성음 데이터 세트로 작업하고 있기 때문입니다). 이 경우 각 타임스텝은 두 개 이상의 를 포함할 수 있는 벡터로 표현됩니다 .

피치 레벨 피아노 음악 모델 훈련

학습을 시작하기 전에, 이전 섹션에서 논의한 다양한 입력을 설명하기 위해 언어 모델에 사용한 손실을 조정해야 합니다. 언어 모델에서, 각 타임스텝에 대한 입력으로 원-핫 인코딩된 텐서(문자)를 사용했고, 출력(예측된 다음 문자)으로 원-핫 인코딩된 텐서를 사용했습니다. 예측된 다음 문자에 대해 단일 배타적 선택을 해야 했기 때문에, 교차 엔트로피 손실을 사용했습니다 .

하지만 이제 우리 모델은 더 이상 원핫 인코딩(여러 키를 누를 수 있음)이 아닌 벡터를 출력합니다. 물론, 눌린 키의 모든 가능한 조합을 별도의 클래스로 처리할 수 있지만, 이는 어렵습니다. 대신 출력 벡터의 각 요소를 이진 변수( – 누름, – 키를 누르지 않음)로 처리합니다. 출력 벡터의 각 요소에 대한 별도의 손실을 이진 교차 엔트로피로 정의합니다. 그리고 최종 손실은 이러한 이진 교차 엔트로피의 평균 합계가 됩니다. 더 잘 이해하기 위해 코드를 읽을 수도 있습니다.

앞서 언급한 변경 사항을 적용한 후, 우리는 모델을 훈련했습니다. 다음 섹션에서는 샘플링을 수행하고 결과를 검사합니다.

피치 레벨 RNN에서 샘플링

우리는 최적화 초기 단계에서 피아노 롤을 샘플링했습니다.

PNG 파일

우리 모델이 데이터 세트의 노래에서 공통적으로 나타나는 하나의 공통 패턴을 학습하기 시작한 것을 볼 수 있습니다. 각 노래는 두 개의 다른 부분으로 구성되어 있습니다. 첫 번째 부분에는 별도로 연주되고 매우 구별되며 종종 부를 수 있는 피치 시퀀스가 ​​포함되어 있습니다 (멜로디라고도 함). 샘플링된 피아노 롤을 보면 이 부분이 하단에서 명확하게 보입니다. 피아노 롤의 상단도 보면 일반적으로 함께 연주되는 피치 그룹이 보입니다. 이것은 멜로디를 동반하는 화음(노래 전체에서 함께 연주되는 피치)의 진행 또는 하모니입니다.

훈련이 끝날 무렵 우리 모델에서 추출한 샘플은 다음과 같이 보이기 시작했습니다.

PNG 파일

보시다시피 이는 이전 섹션에서 보여드린 실제 피아노 롤 사진과 더욱 유사해 보이기 시작했습니다.

훈련 후, 우리는 노래를 샘플링하고 분석했습니다. 흥미로운 소개가 있는 샘플 하나를 얻었습니다 . 다른 샘플은 멋진 스타일 전환을 특징으로 합니다 . 동시에 낮은 온도 매개변수를 가진 몇 가지 예를 생성하여 느린 템포의 노래를 만들었습니다. 첫 번째 와 두 번째는 여기 있습니다 . 전체 재생 목록은 여기 에서 찾을 수 있습니다 .

이제 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

png

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

png

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.:

png

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:

png

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:

png

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:

png

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.

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 

Loading

14 11월 2024

[알아봅시다] “일상에 스며든 AI”…2025년 주목할 ICT 10대 이슈

[알아봅시다] “일상에 스며든 AI”…2025년 주목할 ICT 10대 이슈

“일상에 스며든 AI”…2025년 주목할 ICT 10대 이슈

입력
IITP, 10대 ICT이슈 선정…’AI’ 전산업으로 확산, 혁신 가속“AI가 모든 기술에 연관성을 가지고 진흥과 혁신을 계속하고 있다. 올해는 AI가 실현 가능하다는 것을 증명한 한 해라면, 내년은 AI가 우리의 생활에 범용 기술로 자리 잡으면서, 혁신과 경쟁이 더욱 빠르게 진행되는 해가 될 것이다”

임진국 정보통신기획평가원(IITP) 디지털미래정책단장은 14일 서울 양재동 엘타워에서 열린 2025 ICT 산업전망 컨퍼런스에서 내년에 주목해야 할 ICT 분야 주요 10대 이슈를 꼽은 뒤 이같이 말했다.

이날 IITP는 2025년 주목해야 할 10대 ICT 이슈로 인공지능(AI), AI반도체, AI데이터, 양자기술, 네트워크, 사이버보안, 미디어, 휴머노이드, AI사이언티스트, 안전안보 등의 키워드를 제시했다.

2025 ICT 10대 전망

AI, AI에이전트의 시대로

AI 대혁명 시대가 열리면서 일반인공지능(AGI)을 향한 진화가 더욱 가속되고 있다. 일론 머스크는 2~3년 내, 샘 올트먼은 수천일 내 AGI 시대가 열릴 것으로 전망했다. 단 실효성, 효율성의 이슈도 계속 부상될 것으로 예측된다.

IITP는 내년부터 AI의 에이전트 시대가 본격 열릴 것으로 전망한다. 스스로 계획을 하고 행동을 하고 학습하는 AI가 등장할 것이라는 설명이다. 미팅, 캘린더, 메일, 메신저, 검색, RPA, 챗봇 등을 모두 AI 에이전트가 해결해줄 것이라는 기대가 나온다.

임진국 단장은 “AI 혁신이 우리 일상과 경제 사회적인 영향력을 가속화시킬 것”이라며 “우리 일상 일하는 방식의 변화의 계기점이 될 것이라고 생각한다”고 말했다.

또한 오픈소스 AI가 AI 혁신 경쟁을 가속화 시키지만, 빅테크 중심의 AI 진입장벽이 낮아지는 계기가 될 것이라고 설명했다.

AI 반도체, 초격차 전장의 전면 확장

빅테크의 자체칩 개발이 증가하고 HBM 수요가 폭발하면서 AI 반도체 비중은 더욱 늘어나고 있다. 이에 내년은 AI 반도체를 두고 미국과 중국이 초격차로 겨루는 한 해가 될 것으로 예상된다. 한국도 이런 흐름에 합류해 ‘AI-반도체 이니셔티브’를 맺은 상황이다.

IITP는 NPU 시장이 본격 개화되는 시기가 될 것이라고 주목했다. GPU가 성장하면서 공급적체, 전력소모, 물 과다 사용 등으로 언제까지 갈것이냐 하는 우려가 존대. 이에 NPU를 다시 주목하게 될 것이고, 시스템SW과 만나 NPU 시장이 확산 될 것이라는 예측이다.

여전히 해결되지 않는 반도체의 메모리 방목 문제, 전력 소모 문제 등도 극복해야 할 한계점이다. 이러한 한계점이 차세대 반도체 시장의 새로운 기회를 열것이라고 전망했다.

AI 데이터, ‘BIG’ 데이터보다 ‘FINE’ 데이터로

AI가 등장한 초기는 파라미터의 크기가 성능을 좌우 했지만 최근에는 무조건 그렇지 않다는 결과가 나오고 있는 상황이다. 이에 2026년도 부터 학습데이터의 고갈이 시작될 것이라는 전망이 나온다. AI 시장은 데이터를 기반으로 성장하는데, 데이터 자체가 고갈되면 정체는 불가피 하다.

이를 극복하기 위해 AI 합성 데이터가 주목받고 있다. 양질의 데이터가 절대적으로 필요한 시기가 오고 있는 것. 그러나 환각 등으로 모델이 붕괴될 위험도도 존재한다.

이에 내년은 다시 고품질의 데이터에 주목하는 한해가 될 것으로 보인다. AI 성능 경쟁 이전에 데이터 확보 경쟁이 본격화 될 것이라는 설명이다.

나아가 AI 학습 방법도 변화될 것으로 관측된다. 방대한 데이터를 바탕으로 사전 및 사후 학습이 직중됐지만 이제는 추론 학습이라는 새로운 과정이 더 해진다는 것. 사람처럼 반복적으로 생각하도록 하게 하면서 성능도 10배 정도 향상됐다는 결과도 나오고 있다. 갈수록 소량 데이터의 학습이 더욱 주목을 받게된다.

양자기술…퀀텀, 과학에서 산업으로

100년 동안 이어온 양자 기술도 떠올랐다. 연구실을 넘어 산업으로 도약하기 시작한 것이다. 양자 암호통신, 양자 네트워크, 양자센서 등이 절차를 거치며 본격 상용화를 앞두고 있다. 앞으로 양자 기술은 우리의 일상에 가까워질 예정이다. 단 고비용, 대형사이즈, 낮은 양상 효율 등의 단점이 극복해야 한다.

IITP는 퀀텀과 AI가 결합해 디지털 미래를 대비하는 시기인 점을 주목했다. 두 기술이 합쳐져 초저전력, 막강한 병렬연산, 빠른 데이터 처리, 높은 보안성 등의 시너지가 발휘된다. 이에 세계 각국이 양자기술을 육성하면서 보호 하고자 하는 시대가 오고 있으므로, 우리나라도 세계의 흐름에 합류해야 한다고 제언했다.

지능화가 주도하는 차세대 네트워크

최근 AI 서비스가 확산되면서 데이터 트래픽 폭증, AI 서비스 트래픽 비중 증가 등의 네트워트의 당면과제들이 떠오르고 있다.

IITP는 SW를 넘어 AI 중심의 네트워크로 혁신하는 점을 주목했다. 네트워크 SW중심이 AI를 만나, 네트워크 지능화 AI RAN을 구성할 것이라는 것. 이에 내년은 네트워크의 AI 지능화를 통해서 AI 로봇, 의료와 같은 고차원의 AI 서비스가 점차 빠르게 전개될 것으로 전망된다.

또한 이러한 네트워크 지능화는 통신시장의 경쟁 구도에서도 변화를 야기시킬 것으로 예상된다. 나아가 6G 주도권 경쟁에서도 이러한 지능화는 필수라고 꼽았다.

AI 창, AI 방패 등 사이버 보안 급부상

사이버 공격도 AI와 만나 양적, 질적으로 진화하고 있다. 사이버 위협 건수가 늘어나고, 피해규모도 커지면서 사이버위협이 양적으로 확대되고 있는 상황이다.

내년에는 사이버 보안이 다시 주목받을 예정이다. AI 공격을 AI 보안으로 막는 방식이 증가할 것이라는 설명이다. 개인, 기업 뿐만 아니라 국가 차원에서 사이버 보안의 중요성을 확인하는 한 해가 될것으로 관측된다.

IITP는 안전한 데이터를 바탕으로 마이데이터가 통신, 의료, 금융, 유통 등 전분야로 확대될 것이라고 예측했다. 데이터의 안전이 보호받으면서 활용되는 균형이 잡힐 것으로 본 것이다.

미디어콘텐츠의 창의혁명, AI영상과 공간 컴퓨팅

과거 화가, 사진작가, 만화가 등을 대체하기 힘들 것으로 관측됐으나 생성형 AI가 등장하면서 뒤집혀졌다. IITP는 AI 기반의 영상 제작이 빨라지면서 미디어 콘텐츠 제작환경에서 거대한 변화가 일어날 것이라고 전망했다.

AI 미디어콘텐츠와 AI 에이전트가 만나 새로운 나비효과가 탄생한다는 것이다. 디지털트윈, AI, XR, 네트워크, 블록체인 등이 만나 공간컴퓨팅을 불러올 것으로 기대한다.

디지털과 현실세계 연결의 중심에 선 휴머노이드

휴머노이드는 인류의 삶으로 성큼 다가왔다. 물류, 제조 영역에서는 이미 휴머노이드를 활용하고 있다. 휴머노이드 출하량은 갈수록 늘고 있다. 최근 대량 생산이 가능해지면서 본격적인 휴머노이드 시대가 열린 상황이다.

IITP는 내년 SDR(SW Defined Robot)이 범용 휴머노이드 시대를 열것으로 전망했다. SDR, 소프트웨어, 디파인드 로봇 등이 휴먼와이드 시대를 열어가는 핵심으로 자리매김 할 것이라는 설명이다.

SDR은 어떤 특정 규모 세대가 한 분야만의 일을 잘하는 게 아니라, 다양한 분야에 다목적으로 활용할 수 있는 모형 로봇 시대로의 전환을 가속화한다. 하드웨어의 경쟁력이 소프트웨어로 옮겨지는 시대인 만큼 SDx 시대가 펼쳐질 것으로 예측된다.

빨라지는 과학혁명, AI 사이언티스트

디지털이 과학 혁신의 주역으로 급부상하고 있다. 올해 노벨상을 받은 이들은 AI 석학자들이 많았다. AI+과학이 만나 패러다임이 변화되고 있는 것이다.

내년은 AI가 의료, 바이오 혁명을 현실화 하는 해가 될 것으로 전망된다. AI 주치의 시대가 개막하고, 제약 바이오에서도 AI를 본격적으로 활용해 신약을 개발할 것으로 보인다.

또 AI 과학자가 태동하는 해가 될 것으로 전망된다. AI가 물리, 화학, 소재, 우주 등 과학 분야에 적용되면서 발전 시간도 가속될 것이라는 설명이다.

디지털 미래의 힘, AI 안전과 주권

AI 혁신이 가속화되면서 딥페이크, 가짜 뉴스 등의 범죄 증가도 늘어나고 있다. 이와 같은 기술적인 혁신이 계속되면서 법과 제도도 정비되는 해가 될 것으로 관측된다. 나아가 검증, 관리가 강화되고 확산될 예정이다.

디지털 공동번영 사회, AI 안전 연구소, 등이 시장의 중요한 역할로 떠올라 안전하고 신뢰할 수 있는 AI를 위해 글로벌 연대도 필수적일 것으로 보인다.

ITTP는 소버린AI로 안보의 기틀을 세울 것으로 전망했다. 이미 글로벌 국가들은 AI 모델, 데이터, 컴퓨팅 파워 등을 바탕으로 안보 자산을 확보하고자 노력하는 모습을 보이고 있다.

[출처] https://n.news.naver.com/mnews/article/092/0002352566

Loading

11 11월 2024

[인공지능 기술] “GPT 성능 향상 속도 둔화”…오픈AI, ‘오라이온’ 개선 위해 전략 수정

[인공지능 기술] “GPT 성능 향상 속도 둔화”…오픈AI, ‘오라이온’ 개선 위해 전략 수정

“GPT 성능 향상 속도 둔화”…오픈AI, ‘오라이온’ 개선 위해 전략 수정

  • 기자명 임대준 기자 
  •  
  •  입력 2024.11.10 19:30
  •  
  •  수정 2024.11.10 19:34

01. 165134_179275_4531.jpg

(사진=셔터스톡)
오픈 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는 사전 학습을 담당했던 닉 라이더가 이끄는 기초 팀을 만들어 학습 데이터 부족 문제를 해결하는 방법과 확장 법칙이 얼마나 오랫동안 적용될지 파악하겠다고 밝혔다.

02 165134_179277_4830.jpg

챗GPT 훈련 과정 (사진=링크드인, Pradeep Menon)
이 때문에 오픈AI는 사전 훈련이 아닌, 다른 방법에 집중하는 것으로 알려졌다. 여기에는 강화 학습과 추론 강화가 주를 이루는 것으로 알려졌다.

오픈AI는 챗GPT부터 인간 피드백을 통한 강화학습(RLHF)으로 유명했다. 최근에는 RLHF를 담당하는 외부 계약직이 1000명에 달하는 것으로 전해졌다. 이를 관리하는 ‘휴먼 데이터 팀’도 운영하고 있다. 

특히 박사급 학위 소지자 등 전문가들이 포함된 것으로 알려졌다. 이들의 검증을 통해 모델 성능의 기준을 높이겠다는 의도로, 이에 따른 비용 증가도 만만치 않은 것으로 알려졌다.

또 o1 모델에 이어 o2를 개발하는 등 추론 성능 향상에도 전념하고 있다. 알트먼 CEO는 최근 “회사의 최우선 순위는 o1과 그 후속 모델의 개발”이라고 밝혔으며, 지난주에는 X(트위터)를 통해 o2의 벤치마크 성능이 비약적으로 좋아졌다는 글을 실수로 올린 바 있다.

즉 추론 성능 향상이 오라이온의 성능을 끌어올릴 핵심으로 보는 것이다. 이 때문에 오라이온은 추론 후속 모델 출시 이후 개발을 마칠 것으로 예측되고 있다.

브라운 연구원도 TED에서 비슷한 내용을 공개한 바 있다. 모델을 변경하지 않고도 사용자 질문에 답하는 동안 모델에 추가 컴퓨팅 리소스와 시간을 제공하면 응답 품질이 계속 향상될 수 있다고 전했다. 이른바 ‘테스트-타임 컴퓨트(Test-Time Compute)’라는 개념이다.

03. 165134_179276_4721.png

테스트-타임 컴퓨트 (사진=오픈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

Loading

7 11월 2024

[인공지능 기술] WebLLM 소개와 구조 분석

[인공지능 기술] WebLLM 소개와 구조 분석

WebLLM 소개와 구조 분석

 
 

2022년 11월 ChatGPT가 초기 베타버전을 출시한 이후 많은 사용자들이 이러한 언어 모델에 관심을 가지고 한동안 폭발적인 반응과 시장의 변화를 가져오면서 관심이 집중되고 있습니다.

한번쯤 사용해 보셨을(혹은 들어 보셨을) LLM과 컴파일, 빌드 과정에 대해 간단히 소개하고 최근 크롬에 정식 탑재된 WebGPU를 사용한 WebLLM의 구조 형태를 가볍게 분석해보고자 합니다.

관련 용어와 개념 소개

일반적인 어플리케이션 위주의 개발을 수행해온 저는 새로운 도메인이자 엔지니어링 영역이기도 한 AI 및 Machine learning에 대해 학습하면서 다양한 용어와 개념들을 새로 학습해야 했습니다. 이와 같은 분들을 위해 WebLLM의 구조에 대해 이야기하기 전에 먼저 용어와 기반 개념들을 소개하고자 합니다.

LLM

https://twitter.com/akshay_pachaar/status/1667147092614336512

대형 언어 모델(Large Language Model)이라고도 불리는 LLM은 ChatGPT 베타 출시 이후로 더욱 유명해진 딥러닝 모델입니다. 기본적인 개념으로는 입력값으로 들어오는 자연어를 기반으로, 통계학적으로 가장 적절한 출력값을 내는 원리로 되어 있습니다. 간단하게 이야기하자면 다음 단어가 나올 확률을 계산하여 그럴듯한 문장을 만들어내는 것이라고 할 수 있습니다.

MLC-LLM 프로젝트

MLC LLM의 세 가지 독립 하위 모듈: https://llm.mlc.ai/docs/get_started/project_overview.html

MLC-LLM 프로젝트는 LLM을 다양한 환경에서 배포하고 범용 API를 통해 쉽게 사용할 수 있도록 돕는 배포 솔루션입니다. 위 이미지와 같은 일련의 과정을 통해 모델을 정의하고 컴파일한 후 각 디바이스 플랫폼별 런타임에서 LLM을 실행할 수 있도록 구성되어 있습니다.

  1. MLC에서 미리 정의해 둔 모델(Llama2 등)을 사용하거나, TVM Unity 인터페이스 기반의 파이썬으로 작성된 모델을 구현해야 합니다.
  2. 후술할 TVM Unity를 통해 컴파일되며, 이 때 model lib, weights, config 결과물이 export됩니다. 우리가 사용하게 될 웹 브라우저의 라이브러리(WebAssembly)는 .wasm의 형태로 떨어지게 됩니다.
  3. 각 디바이스 플랫폼별 런타임에서 컴파일된 모델 라이브러리와 가중치(weights), 설정 등을 로드하여 실행되며, 각 런타임별 API가 제공됩니다.

TVM

TVM의 컴파일러 스택과 런타임: https://www.kc-ml2.com/posts/blog_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에 적합하지 않은 개념들(저수준의 메모리 관리 등)을 숨기고 편하게 사용될 수 있도록 설계되었습니다.

다만 현재(2023.10)는 크롬 113 이상(Windows, MacOS, ChromeOS)에서만 지원하고 있습니다: https://caniuse.com/?search=webgpu

WebLLM 환경 구축하기

???? 순서: emscripten 설치 → tvmjs 컴파일 → web-llm 빌드

WebLLM을 로컬에서 빌드하고 패키징하기 위해서는 몇 가지 작업이 필요합니다. WebLLM 빌드에 앞서 의존성 패키지를 살펴보면, tvmjs만 유일하게 패키지로 제공되지 않고 소스 컴파일이 필요합니다.

tvmjs 컴파일을 위해서는 emscripten을 먼저 설치해야 합니다. emscripten은 LLVM을 사용하는 언어(C/C++)를 웹 어셈블리로 컴파일할 수 있도록 제공하는 툴체인이며, TVM의 WebAssembly 런타임을 컴파일하고 시스템 라이브러리 지원을 제공하기 위해 필요합니다.

emscripten SDK 설치 과정: https://emscripten.org/docs/getting_started/downloads.html#installation-instructions-using-the-emsdk-recommended

emscripten 설치가 완료되었다면, WebLLM repo의 스크립트(scripts/prep_deps.sh)를 실행하여 순서대로 tvmjs를 컴파일하고 패키지를 빌드할 수 있습니다.

script/prep_deps.sh
script/prep_deps.sh 실행 결과

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는 아래와 같습니다.

Start Example: https://github.com/mlc-ai/web-llm
Example 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

Loading

21 10월 2024

[알아봅시다] [강석기의 과학카페] 큰 무대에 서면 몸이 얼어붙는 이유

[알아봅시다] [강석기의 과학카페] 큰 무대에 서면 몸이 얼어붙는 이유

[강석기의 과학카페] 큰 무대에 서면 몸이 얼어붙는 이유

입력
한국 스포츠 역사에서 최고 스타인 김연아 선수는 올림픽 같은 큰 무대에서도 실수하지 않고 제 기량을 발휘해 2010년 벤쿠버 대회에서는 금메달, 2014년 소치 대회에서는 은메달(사실상 금메달)을 목에 걸었다. 소치

한국 스포츠 역사에서 최고 스타인 김연아 선수는 올림픽 같은 큰 무대에서도 실수하지 않고 제 기량을 발휘해 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년 미국 최대 음악 페스티벌인 코첼라의 서브헤드라이너(두 번째로 큰 무대)에서 엄청난 퍼포먼스를 선보이며 일약 세계적인 걸그룹으로 올라섰다. 엄청난 잭팟 보상을 앞둔 압박감으로 인한

블랙핑크는 데뷔 3년 차인 2019년 미국 최대 음악 페스티벌인 코첼라의 서브헤드라이너(두 번째로 큰 무대)에서 엄청난 퍼포먼스를 선보이며 일약 세계적인 걸그룹으로 올라섰다. 엄청난 잭팟 보상을 앞둔 압박감으로 인한 경직을 극복한 대표적인 사례다. YG 제공

그런데 두 경우 모두 비교 대상이 있었으니 바로 블랙핑크다. 이들은 2019년과 2023년 두 차례 코첼라 무대에 올라 엄청난 퍼포먼스를 보여줬다. 특히 불과 데뷔 3년 차였던 2019년 무대의 인상적인 활약으로 일약 세계적인 걸그룹으로 떠올랐다.

이들의 대성공이 운인지 실력의 결과인지는 모르겠지만 하나 확실한 건 엄청난 잭팟 보상 상황에서 압박감으로 인한 경직을 극복했다는 점이다. 블랙핑크 멤버나 김연아 선수나 다들 강심장의 소유자라는 말이다.

※ 필자소개
강석기 과학칼럼니스트 (kangsukki@gmail.com). LG생활건강연구소에서 연구원으로 근무했으며, 2000년부터 2012년까지 동아사이언스에서 기자로 일했다. 2012년 9월부터 프리랜서 작가로 활동하고 있다. 직접 쓴 책으로 《강석기의 과학카페》(1~7권),《생명과학의 기원을 찾아서》가 있다. 번역서로는 《반물질》, 《가슴이야기》, 《프루프: 술의 과학》을 썼다.

Loading

15 10월 2024

[물리] [표지로 읽는 과학] 빛 본지 20년 그래핀, 잠재력 무궁무진

[물리] [표지로 읽는 과학] 빛 본지 20년 그래핀, 잠재력 무궁무진

[표지로 읽는 과학] 빛 본지 20년 그래핀, 잠재력 무궁무진

입력
사이언스 제공

사이언스 제공

이번 주 국제학술지 ‘사이언스’ 표지에는 ‘그래핀 20세(GRAPHENE AT 20)’라는 문구와 함께 벌집 모양의 탄소 원자들이 여러 층으로 쌓여 있는 그림이 실렸다. 사이언스는 맨 왼쪽은 ‘그래핀’, 가운데는 ‘그래핀 나노플레이트’, 오른쪽은 ‘그래핀 산화물’이라고 설명했다.

올해는 ‘꿈의 물질’이라고 불리는 소재 ‘그래핀’ 탄생 20주년이다. 11일 사이언스는 그래핀 발견 20주년을 기념해 그래핀 발견의 역사와 그래핀의 잠재력을 소개하는 글을 실었다.

그래핀은 흑연의 구성 물질인 탄소 원자들이 벌집 모양으로 연결된 2차원 막이다. 두께가 원자 한 층 수준인 0.35nm(나노미터·1nm는 10억분의 1m) 정도로 얇다. 2004년 영국의 과학자 안드레 가임과 러시아의 과학자 콘스탄틴 노보셀로프는 스카치테이프로 연필심의 재료인 흑연을 계속해서 붙였다 뗐다 하는 방법으로 그래핀을 흑연에서 분리해냈다. 1940년대부터 이론으로만 존재한 그래핀을 탄생시킨 것이다.

가임과 노보셀로프는 그래핀을 발견하고 그 특성을 밝힌 공로로 2010년 노벨상을 받았다. 그래핀은 실리콘에 비해 100배 이상 전기 전도도가 높고 강도는 강철보다 200배 강하다. 열 전도성은 구리나 알루미늄에 비해 10배 이상 좋다. 구조적으로도 굉장히 안정적이다. 면적의 20%를 늘려도 끄떡 없을 정도로 신축성도 좋다. 더구나 이렇게 구부리거나 늘려도 전기 전도성이 사라지지 않는다.

이같은 특성 때문에 당시 그래핀은 새로운 반도체 소자가 될 수 있다는 기대를 받으며 과학계에 스타로 떠올랐다. 유기화학 반응을 이용해 그래핀 반도체를 만들 경우 기존 실리콘 기반 트랜지스터를 대체할 수 있다고 생각했기 때문이다. 또 그래핀을 활용해 셀로판지처럼 얇은 두께의 컴퓨터 모니터나 시계처럼 팔에 착용할 수 있는 휴대전화, 구부러지는 터치스크린, 태양전지판, 종이처럼 접어 지갑에 넣고 다니는 컴퓨터를 만들 수 있을 것으로 예상했다.

하지만 발견 20년이 지난 지금까지 그래핀은 상용화되지 못하고 있다. 그래핀을 얻을 수 있는 혁신적인 기술이 나오지 않아 대량 생산하기 어렵기 때문이다. 그래핀을 만드는 데 너무 많은 돈이 든다는 이야기다. 또 그래핀은 큰 면적으로 제조하는 것이 어렵고, 전류의 흐름을 통제할 수 없다는 등의 한계를 갖고 있다. 고유의 성질을 유지하면서도 다양한 형태로 가공하기 어려웠다.

초기부터 지금까지 그래핀 연구는 그래핀 나노플레이트와 그래핀 산화물 이용에 집중돼 있었다. 그래핀 나노플레이트는 그래핀을 여러 층으로 쌓아 100nm(나노미터, 1nm는 10억분의 1m) 미만 두께의 판 형태로 만든 것이다. 그래핀 나노플레이트 형태로 그래핀을 여러 가지 물질과 섞으면 그래핀의 성질을 유지하면서도 다양한 형태로 가공할 수 있다.

그래핀 산화물은 그래핀 표면에 산화를 일으켜 만든 물질이다. 그래핀 산화물은 물에 풀어져 마치 용액처럼 다룰 수 있어 다양한 형태로 제품을 제작하는 데 유용하다. 그래핀 나노플레이트와 그래핀 산화물은 코팅 및 보강재처럼 기존 제품의 기능을 향상시키며 상용화되고 있다. 그래핀 나노플레이트는 부식 방지 코팅, 난연제, 전자파 차폐 재료로 쓰였다.

하지만 사이언스는 여전히 그래핀 자체도 다양한 잠재력을 가진 덕분에 활발히 연구되고 있다고 설명했다. 스페인, 덴마크, 영국 등 유럽을 중심으로 반도체 제조 라인에 대량 사용할 수 있도록 그래핀을 간단하게 만드는 방법을 연구 중이다. 국내에서는 홍병희 서울대 화학부 교수가 2009년 그래핀 대면적 합성기술을 구현하고 2012년 ‘그래핀스퀘어’를 창업해 전 세계 그래핀 시장을 선도하기 위해 준비 중이다.

또 2차원 물질을 쌓아 올려 물성을 측정하는 ‘트위스트로닉스’ 연구에서도 그래핀에 주목하고 있다. 미국물리학회 학술대회에서 미국 매사추세츠공대 (MIT) 연구팀이 그래핀 두 장을 다른 각도로 비틀어 붙여 초전도체가 되는 것을 실험적으로 증명하면서부터다. 사이언스는 그래핀이 하루빨리 실험실을 벗어나 산업에서도 유용하게 쓰일 수 있길 바란다고 기대했다.

Loading

21 9월 2024

2024-07-s03-등기부등본자동등록프로그램-개발

2024-07-s03-등기부등본자동등록프로그램-개발

Kmong_work_2024-07-s03-등기부등본자동등록프로그램-개발 2024-09-21-01 블로그 포스팅 cf8157b0-46e9-4e97-b309-1f3672cb0b41-제목입력.png

프로그램 주요 기능:

  1. 등기부등본 PDF 자동 처리: 지정된 폴더에 PDF 파일이 저장되면 자동으로 분석하여 데이터베이스에 등록.
  2. 처리 완료 및 오류 관리: 처리 완료된 파일은 별도 폴더로 이동, 에러 발생 시 에러 폴더로 이동.
  3. 로그 파일 저장: 작업 내역을 로그 파일로 날짜별로 저장.
  4. DB 설정 및 모니터링 주기 설정: 설정된 DB와 모니터링 주기(1분, 5분, 10분 등)에 따라 파일을 처리.
  5. 모니터링 및 파일 처리: 모니터링 중 파일이 자동으로 처리되며, 바로 처리 기능도 제공.
  6. 처리 현황 출력: 파일 처리 상태를 시간 순서대로 화면에 출력.
  7. PDF 파싱 후 Postgres DB에 데이터 저장: 등기부등본 PDF 파일을 파싱하여 데이터베이스에 저장.

데이터베이스 관련:

  • 주요 테이블aut_dg_mst (등기부등본 마스터), aut_dg_poje (표제부), aut_dg_gabeul (부동산 등기부 갑구/을구 데이터).
  • DB 설정 정보: DB IP, Port, Name 등.
이 프로그램의 핵심 아이디어는 등기부등본 PDF 파일을 자동으로 분석하고 데이터베이스에 저장한 후, 파일 처리 상태를 모니터링하며 로그를 남기는 것입니다.
이를 기반으로 프로그램의 흐름을 시각적으로 나타낼 그림을 제안합니다:
  1. 파일 폴더 구조도: 입력 폴더, 처리 완료 폴더, 에러 폴더 간의 흐름.
  2. 자동화 프로세스: PDF 파일이 입력되면 자동 분석되고, DB에 저장된 후 처리 상태가 업데이트되는 모습.
  3. 모니터링 화면: 프로그램이 처리 현황과 로그 파일을 표시하는 모습.

Loading

14 9월 2024

[인공지능 기술] 번역기도 안 통하던 한국어 리뷰, 이제 챗GPT가 다 읽는다.

[인공지능 기술] 번역기도 안 통하던 한국어 리뷰, 이제 챗GPT가 다 읽는다.

번역기도 안 통하던 한국어 리뷰, 이제 챗GPT가 다 읽는다

인공지능(AI)에서 가장 앞선 기술을 보유한 미국의 오픈AI가 추론 능력이 크게 향상된 새 챗GPT ‘o1(오원)’을 13일 공개했다. 생성형 AI의 약점으로 꼽혀온 수학 문제 풀이 등 추론 영역의 성능이 크게 좋아졌다고 오픈AI는 밝혔다. 생성형 AI는 방대한 양의 데이터를 학습하고 대답을 하는 데 뛰어난 ‘암기왕’이다. 하지만 학습하지 않은, 예컨대 새로운 수학 문제는 제대로 풀지 못했다. 수학의 경우도 이미 배운 ‘기출 문제’에는 답을 내놓지만, 새로운 해법이 필요한 고난도의 수학 문제에는 약했다. 이번에 나온 오원은 여러 단계의 추론이 필요한 풀이 과정에서 실수를 하면 다시 바로잡으며 정답을 찾아 나갔다. 파이낸셜타임스(FT)는 “인간처럼 인지하고 사고하는 범용 AI(AGI) 발전에서 큰 진전을 이룬 것”이라고 했다.

01 JFIRBVJYC5MUNIYEKRAIA2O7OM.png
 
오픈 AI 로고. /로이터 연합뉴스

◇오픈AI, 수학 잘 푸는 새 모델 공개

‘o1′은 그동안 오픈AI가 ‘스트로베리’라는 코드명으로 개발해온 AI 모델이다. 대규모 언어 모델(LLM)인 생성형 AI는 특성상 가장 확률이 높고 그럴듯한 답을 제시하는데, 정확한 답을 내야 하는 수학 영역에서 약점을 보였다. 오픈AI의 직전 모델인 GPT-4o(포오)도 국제 수학 올림피아드 예선 시험 문제 풀이 정답률이 13%였다. 이번에 출시된 ‘o1′은 이를 83%까지 끌어올렸다. 오픈AI는 “물리학자들이 복잡한 수학 공식을 만들고 의료 연구자들의 실험을 지원하는 데 도움이 될 것”이라고 했다. 다만 속도는 다소 느리다. 단계적인 추론 과정이 필요하기 때문이다.

02 D6VRKV77UZFNZABSHFKVOJJB4Q.png
그래픽=송윤혜

또 ‘o1′ 개발 과정에서 생성형 AI가 데이터를 스스로 학습(딥러닝)하고 결과를 내놓는 과정을 이해하는 실마리도 찾았다. 지금까지 생성형 AI가 어떻게 내부에서 작동해 질문에 대한 답을 찾는지 알 수가 없었다. 이를 ‘AI의 블랙박스 문제’라고 하는데, AI가 인간의 통제를 벗어날 수 있다고 우려하는 이유 중 하나였다. 하지만 이번 새 GPT 버전이 추론을 하는 과정에서 이에 대한 힌트를 얻었다는 것이다. 미라 무라티 오픈AI 최고기술책임자는 “우리는 모델의 생각 과정을 볼 수 있었다”며 “AI의 작동 방식을 이해하는 데 도움이 됐다”고 FT에 말했다. 요슈아 벤지오 캐나다 몬트리올대 교수 등 AI 권위자들도 팩트(사실)를 조합해서 논거를 만들고, 결론에 도달하는 추론 영역이 AI가 범용 AI로 나아가기 위해 가장 큰 장애물로 보고 있다. 최근 오픈AI뿐 아니라 구글, 앤스러픽 등 생성형 AI 개발사들도 추론을 할 수 있는 모델을 개발 중인 것으로 알려졌다.

03 3FJZPTWK5JAGHFZH4VJGD5HAUQ.png
 
/챗GPT o1 프리뷰

◇투자 유치에도 탄력받을 듯

새 GPT인 ‘o1′은 유료 이용자를 대상으로 13일부터 서비스를 시작했다. 챗GPT 앱 내에서 ‘o1′과 속도가 좀 더 빠르지만 텍스트로만 답하는 ‘o1 미니’를 선택해 이용할 수 있다.

이날 오픈AI는 한국어를 예시로 추론 능력을 뽐내기도 했다. 그동안 번역기가 인식하지 못했던 한국어 문장을 영어로 번역하는 모습을 공개한 것이다.

“직우상 얻떤 번역깃돋 일끌 슈 없쥐많 한국인듦은 쉽게 앗랍볼 수 있는 한끌의 암혼화 방펍잇 잊다”(지구상 어떤 번역기도 읽을 수 없지만 한국인들은 쉽게 알아볼 수 있는 한글의 암호화 방법이 있다)라는 문장을 “No Translator on Earth can do this, but Koreans can easily recognize it”이라고 번역했다. 언어 추론 능력도 그만큼 좋아진 것이다.

오픈AI는 추론 능력을 대폭 업그레이드하고, GPT5 등 차기 언어 모델을 개발하기 위해 대규모 자금 유치에 나섰다. 이번 ‘o1′ 발표가 투자 유치에 긍정적 영향을 미칠 것이라는 전망도 나온다. 뉴욕타임스는 “오픈AI가 1500억달러(약 200조원) 규모의 기업 가치로 65억달러를 모금하기 위한 투자 협상 중”이라고 보도했다.

 
장형태 기자
전 인도특파원, 테크부 반도체 담당. 성장하는 곳의 이야기를 담습니다.

[출처] https://www.chosun.com/economy/tech_it/2024/09/13/7QKL6O5X55EULACDRYH5AYSK7Q/

Loading

13 9월 2024

[알아봅시다] [사설]SW 사업 분쟁, 언제까지 두고 볼 것인가

[알아봅시다] [사설]SW 사업 분쟁, 언제까지 두고 볼 것인가

[사설]SW 사업 분쟁, 언제까지 두고 볼 것인가

 
[사설]SW 사업 분쟁, 언제까지 두고 볼 것인가

LG CNS 컨소시엄이 보건복지부를 상대로 소송을 제기했다.

차세대 사회보장정보시스템 프로젝트에서 복지부가 요구한 지체보상금 등 250억원에 대한 컨소시엄의 책임 유무와 추가과업에 대한 비용 지급이 쟁점이다.

LG CNS 컨소시엄은 추가과업과 이로 인한 수익성 하락을 이유로 지난해 초 사업 중도하차를 통보했다. 대규모 공공 소프트웨어(SW) 사업에서는 이례적인 일로 1년여 만에 결국 소송이 시작된 것이다.

공공 소프트웨어(SW) 사업에서 발주처와 기업 간 분쟁은 어제오늘의 얘기가 아니다. 올해 초에는 2020년 CJ올리브네트웍스와 KCC정보통신이 국방부를 상대로 제기한 부당이득 반환 소송 1심에서 승소했다.

대법원 차세대 전자소송 시스템 구축 프로젝트에서도 대법원과 수행사 간 대립이 이어진다. 우정사업본부 차세대 금융시스템 사업 역시 우본과 수행사 간 이견이 있는 상태다.

각 분쟁은 사업 지연과 추가과업 요구라는 공통된 이슈를 갖고 있다. 명확한 점은 모든 프로젝트에서 예정에 없던 과업이 추가됐다는 점이다.

1년 이상 장기 SW 프로젝트에서 과업 추가는 불가피한 일이다. SW 사업은 건설과 달리 정형화된 사전 설계가 불가능하다. 사업 도중에 현업의 요구와 환경 변화에 따라 과업이 추가되는 일이 비일비재하다. 발주담당 공무원의 전문성이 부족한 경우에도 추후 과업 추가를 불러온다.

해답은 명확하다. 과업 추가가 불가피하다면 이를 뒷받침하기 위한 제도를 마련하면 된다.

지난해 행정망 사태 이후 언급만 됐던 변동형 계약제를 도입해 추가 과업에 따른 사업자의 수익성 하락을 막아야 한다. 담당 공무원이 과업을 변경하더라도 책임에서 자유롭도록 제도를 개선하면 전체 사업범위 확대를 막을 수 있다. 유명무실한 과업변경심의위원회 개최를 현실화하고 정보전략계획(ISP)은 더욱 구체화해야 한다.

과업 추가에 따른 사업 분쟁은 품질 저하, 수익성 하락이라는 점에서 발주처나 사업자 모두의 손해다. 전통적 SW 사업과 대가산정 체계가 다른 구독형(클라우드) 사업, 인공지능(AI) 개발 프로젝트에서는 이 같은 분쟁이 더욱 늘어날 공산이 크다. 결국 공공 서비스 품질과 산업 경쟁력 저하로 이어질 수밖에 없다.

더이상 SW 사업 분쟁이 되풀이 되도록 놔둬선 안된다. SW 산업과 계약제도, 예산을 책임지는 정부 부처에서 현실적 논의를 시작해야 한다

[출처] https://www.etnews.com/20240711000254#

Loading