머신러닝AI2024. 5. 25. 21:40

 그동안 뇌를 이해하기 위한 측정은 MRI를 통해서 진행되었다. 특정 생각을 할때 혈류량을 측정해서 시각화하여 연구하는 방식이다. 그런데 이 방식은 여전히 한계가 있고 가장 중요한 한계점은 해상도가 낮다는 점이다.

 

 예를 들어, 기능적 자기공명영상(fMRI)은 뇌의 활동을 시각화하는 데 사용되지만, 그 해상도는 매우 낮아 세밀한 신경 활동을 포착하는 데 제한적이다. 그러나 최근의 연구는 대규모 언어 모델(LLM, Large Language Model)을 활용하여 뇌 연구의 새로운 길을 열 수 있음을 시사한다.

 

 LLM은 이미 그 내부 구조와 가중치, 계산값 등을 실시간으로 관측할 수 있는 특성을 가지고 있다. 이는 LLM을 디지털 뇌로 간주하고 이를 분석하는 것이 실제 뇌 연구에 유용할 수 있음을 암시한다(물론 둘의 유사성이 있다는 가정하이지만). 구체적으로, LLM의 모든 레이어와 노드의 결과값들을 표준화하여 시각화하는 방법을 제안할 수 있다. 예를 들어, LLM이 문장을 입력받아 토큰을 생성할 때마다 각 레이어와 노드의 값을 0에서 255 사이의 수치로 변환하여 1,000x1,000 픽셀의 이미지로 만들 수 있다. 이러한 이미지를 연속적으로 배열하여 영상을 생성하면, 마치 fMRI 영상처럼 LLM 내부의 신경망 작동 패턴을 시각적으로 관찰할 수 있다. 모델이 너무 크다면 몇개 주변 픽셀을 합쳐서 averaging할 수도 있고, 영상을 몇개로 분할할 수도 있겠다.

 

 이 방법은 LLM의 작동 원리를 이해하는 데 큰 도움이 될 뿐만 아니라, 인간의 뇌 연구에도 혁신적인 기여를 할 수 있다.

 

 LLM은 다양한 언어 데이터를 학습하여 추상화하는 능력을 가지고 있다. 따라서 LLM의 각 노드의 결과값 매트릭스를 분석하여 패턴을 찾는다면, 이는 인간의 뇌가 정보를 처리하는 방식을 이해하는 데 중요한 단서를 제공할 수 있다. 값이 많다는 점이 장애물이 될 수 있지만, 데이터를 구석구석 나누어 발화 패턴을 추상화하고 이를 다시 통합한다면, 대규모 신경망 구조에서도 의미 있는 패턴을 발견할 수 있을 것이다.

 

 이러한 접근 방식은 다음과 같은 과학적 가능성을 열어준다.

  1. 신경망의 시각적 분석: LLM의 내부 작동을 시각적으로 분석함으로써, 뇌 활동을 이해하는 새로운 방법을 제시한다. 이는 전통적인 fMRI보다 훨씬 높은 해상도를 제공할 수 있다.
  2. 추상적 패턴의 발견: LLM의 데이터를 통해 추상적 발화 패턴을 발견하고 이를 인간의 언어 처리 과정과 비교함으로써, 인간의 언어 처리 메커니즘을 더 잘 이해할 수 있다.

  3. 신경과학 연구의 새로운 도구: LLM을 디지털 뇌로 활용하는 연구는 신경과학자들에게 새로운 도구를 제공하여, 기존의 뇌 연구 방법론을 보완하고 확장할 수 있다.

 결론적으로, LLM을 활용한 디지털 뇌 연구는 인간의 뇌를 이해하는 데 새로운 길을 열어줄 수 있는 잠재력을 가지고 있다. 이를 통해 우리는 인간의 인지 과정, 언어 처리 메커니즘, 그리고 전반적인 뇌 기능에 대한 깊은 통찰을 얻을 수 있을 것이다. 앞으로의 연구는 이러한 가능성을 현실로 만들기 위한 구체적인 방법론을 개발하고, 이를 통해 신경과학의 새로운 시대를 여는 데 기여할 수 있지 않을까.

반응형
Posted by 작동미학
카테고리 없음2024. 5. 15. 18:43

이 학습 및 실험은 kohya_ss기반으로  https://infoengineer.tistory.com/134 의 설명을 그대로 따른다. 다만 아래와 같이 셋팅했다.

 

1. 집 고양이 사진을 100장 정도 준비했다. 600*400 정도로 리사이즈해둔다. 알씨같은 툴로 전체 선택후 일괄 조정이 가능하다.

 

2. kohya_ss를 시작한다. 설정은 기존 강좌와 동일하다. 물론 Utilities에서 BIP로 자막을 생성해둔다. 그리고 기존과 같은 방식으로 LORA로 학습하며 여기에서는 Civit의 Pet Photo(SD 1.5기반)를 base모델로 한다. 

    https://civitai.com/models/267871/pet-photography-album-of-animals-cats-and-dogs

   

아래는 셋팅의 내용들이다. 

 

 

3. 학습을 시작한다. 10 epochs으로 설정해두었다. (사실 3회 정도만으로도 충분히 효과를 얻을 수 있었으나 어쩐지 많이 돌리면 더 비슷하게 나올것 같은 마음이 늘 든다)

이미지 수정

 

4. Easy Diffusion을 통해 Lora를 구동한다. 단순한 합성과 다른 것은, 프롬프트를 통해 여러가지 효과를 줄 수 있다

  fat cat, cat with clothes, white background 같은 옵션으로 여러가지 효과를 얻는다. 다만 발이 여러개인 점은 피할 수 없는 것인가 보다. 필자의 경우에는 냥이의 전체적인 모습은 얼른 봐서는 차이점이 없다고 느끼는 정도로 유사했다. 

 

fat cat, 즉 뚱냥이로 묘사해서 얻은 이미지

 

with clothes 를 프롬프트에 넣어 얻은 이미지
a cat on the table, 어릴적 사진이 같이 들어가서 그런지 다양한 나이대를 보여준다. 발이 어색하다.

 

발과 몸이 어색한 경우가 있으나 전체적인 분위기는 동일하다.

 

5. 좀더 다양한 형태를 만들어보자.

  LoRA는 재미있는 속성이 있어서 "a tiger looks like a cat" 같은 형태로 써먹을 수 있다. 토끼, 소녀, 소년, 개, 호랑이 등으로 요청해서 생성한 이미지를 추가로 공유한다. 특히나 원래 원천 모델이 아니라 SD 1.5같은 기본 모델이 같으면 어느정도의 효과를 거둘 수 있다.

 

a boy looks like a cat, white background (with magicmix/civit.ai)
a girl looks like a cat, white background (with magicmix/civit.ai)
a dog looks like a cat, white background
a rabbit looks like a cat, white background
a tiger looks like a cat, white background

 

반응형
Posted by 작동미학
머신러닝AI2024. 5. 1. 10:53

윈도우(windows)에서도 easy_diffusion과 kohya_ss를 어느 정도 실행해서 이미지 합성에 대한 작업을 진행할 수 있다.

Windows 10 pro + RTX 4080 (536.23 driver) 기준의 환경에서 실행해 보았다. 명령은 모두 command 상에서 실행한다

(윈도우키+R을 누른 후 cmd를 실행하면 명령 실행이 가능하다)

 

 

1. easy_diffusion

 

 

이 설치는 너무나 간단하다. 아래 링크에서 Windows용 Easy Diffusion 최신 버전을 받자

https://github.com/easydiffusion/easydiffusion/tree/main#installation

 

이 글을 쓰는 시점에서는 Easy Diffusion 3.0이 최신이다. 아래 Download for Windows 버튼을 누르고 실행해주면 된다. linux/mac/windows 동일한 방식으로 간단하게 실행해서 웹 인터페이스로 생성해볼 수 있다.

 

[easy_diffusion의 윈도우 설치 가이드 포함 페이지]

 

[easy_diffusion을 실행 설치하면 나오는 화면이다.내부에 conda와 git을 자체로 가지고 있다]
[설치가 끝나면 역시 자동으로 브라우저가 떠서 실행해볼 수 있게 된다.]

 

실제 사용 관련해서는 다른 글들을 참조하면 된다. models/stable-diffusion/ 에 사용하는 모델파일을 넣어 사용해보자(civit.ai에서 checkpoint 모델들을 크기가 크지만, 다양하게 다운로드 받을 수 있다. https://infoengineer.tistory.com/122 를 참조하자)

 

2. kohya_ss

 

모델을 학습하기 위한 kohya_ss에 대한 설치이다.

 

A. python 10와 git이 필요하다.

 

    개인적으로는 Anaconda설치를 권한다. 따라서 Anaconda 사이트에서 윈도우용 Anaconda를 설치하고

    아래와 같이 실행한다. git은 윈도우용 git을 다운로드받아( https://git-scm.com/download/win ) 기본옵션으로 설치하여 실행하면 된다. (만약에 python 3.10을 직접 설치해서 곧바로 진행한다고 하면 그렇게 해도 상관없다.)

 

    D:\dev\conda> conda create -n kohya_ss python=3.10

    D:\dev\conda> conda activate kohya_ss

 

B. git으로 kohya_ss를 checkout 하고 setup.bat를 실행한다.

 

    D:\dev> git clone https://github.com/bmaltais/kohya_ss.git 

    D:\dev> cd kohya_ss

    D:\dev\kohya_ss> setup.bat

 

 이때 NVidia GPU 사용자는 2번을 눌러 cudnn을 최신으로 받아주자. 시간이 조금 걸린다(고속화에 도움이 된다고 한다)

 그런 후 1번을 선택해 Kohya_ss를 GUI로 실행한다.

 

setup.bat 실행 후 화면, 2번과 1번을 차례대로 선택해주자.

끝나면 7. Exit Setup을 선택해서 나오면 된다.

 

C. 아래와 같이 실행하면 내부에 웹서버가 뜨면서 우리가 활용할 수 있는 단계로 진입한다.

 

 D:\dev\kohya_ss> gui.bat

kohya_ss 윈도우 실행화면

 

위의 마지막 부분에 표시된 http://127.0.0.1:7860 주소를 브라우저로 열어보자. kohya_ss의 gui가 보인다. 해당 사용법 관련해서는 연관 글을 참조한다. ( https://infoengineer.tistory.com/134 )

kohya_ss의 윈도우가 보인다.

 

 

 

 

 

 

반응형
Posted by 작동미학