일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 논문작성법
- 딥러닝
- Python
- Numerical Analysis
- 옵시디언
- 수치해석
- 생산성
- 고체역학
- 수식삽입
- teps
- IEEE
- Dear abby
- 텝스
- 우분투
- Julia
- WOX
- Statics
- 인공지능
- obsidian
- MATLAB
- Zotero
- ChatGPT
- 에러기록
- LaTeX
- 텝스공부
- Linear algebra
- matplotlib
- 논문작성
- JAX
- pytorch
- Today
- Total
목록인공지능 (6)
뛰는 놈 위에 나는 공대생
ChatGPT를 연구에 활용할 수 있는 방안에 대한 강연을 듣고 내용을 정리하는 글. 나에게 도움이 될 만한 것 위주로 작성했기 때문에 직접 듣고 싶다면 연사 분이었던 커맨드스페이스의 구요한 대표님의 유튜브 채널을 참고해보는 것도 좋을 것 같다. 1. chatGPT 사용법 chatGPT는 3.5보다는 4.0 활용을 권한다. 파일을 업로드해서 파일을 기반으로 대화 가능하다. chatGPT에 다양한 플러그인(울프람알파, 파이썬 등)을 통해 그래프를 그리고 수식을 해결할 수 있다. custom instructions 기능을 통해 미리 내가 어떤 배경을 가진 사람인지를 알려줌으로써 대화에 더 도움을 받을 수 있다. 한 대화 당 토큰 수가 제한되어있기 때문에 이 기능을 유용하게 쓸 수 있다. (3.5와 4.0 모..
인공지능을 하다보면 경험적으로 알게 되는 것들이 있는데 그 중 하나가 scaling의 문제이다. 간단한 regression 문제를 풀어보자. import jax import jax.numpy as jnp from jax import random, vmap from jax.example_libraries import optimizers def diffusion(t, y, args): sigma = 0.15 diff = sigma * jnp.sqrt(y) return diff # Define a simple neural network model def init_params(layer_sizes, key): params = [] for i in range(1, len(layer_sizes)): key, sub..
MATLAB을 제외하고 인공지능 툴을 쓸 수 있는 환경은 대부분 파이썬이다. 그런데 파이썬만 있다고 끝나는 것이 아니라 인공지능 라이브러리를 동반해야 한다. 나는 Tensorflow2, Keras, PyTorch, JAX 까지 다 써보고 현재는 Julia도 고려하는 중이다. (Tensorflow1은 써봤는데 불편하기도 하고 그 때는 2가 막 활발해지던 시점이라서 그냥 넘겼다.) 철저히 개인적인 경험을 바탕으로 작성하는 것이라서 연구 쪽에 초점이 맞춰져있고, 그걸 감안하고 보면 될 것이다. 혹시 실무를 하시는 분들이 있으면 본인의 경험을 공유해주시면 정말 좋을 것 같다. 아래가 내용을 정리한 표 Tensorflow Keras PyTorch JAX Julia 특징 Google에서 시작 프랑소와 숄레가 창시한..
JAX를 쓰다가 너무 많은 양의 데이터를 쓰다보니 메모리 부족(OOM: Out of memory) 현상을 겪었다. 근본적인 해결책은 달리 없다. 데이터가 너무 많아서 생기는 문제이니 데이터 양을 줄이던가 아니면 병렬 컴퓨팅을 하는 방법이 있다. 병렬 컴퓨팅을 간단한 코드에서는 실행해보았는데 큰 네트워크에서는 해본 적이 없다. 일단 임시방편으로는 다음과 같다. 메모리 부족이 쉽게 발생할 수 있는 이유는 JAX에서 처음에 import를 할 때 대부분의 메모리를 미리 할당해놓기 때문이다. 따라서 이 preallocation을 막거나 줄이면 도움이 된다. 1. Preallocation 중단 XLA_PYTHON_CLIENT_PREALLOCATE=false # 구체적으로는 다음과 같이 구현한다. import os ..
from jax.ops import index_update, index = index_update(, index[], ) % example u = index_update(u, index[0, :], g(t)) 다음 코드를 실행할 때 발생하는 문제이다. JAX 0.3.2부터는 jax.opt.index_update, jax.opt.index가 사라졌기 때문에 이 기능을 쓰기 위해서는 jax와 jaxlib을 0.3.2 버전 전으로 돌려야 한다. 혹은 저 위의 기능은 특정 인덱스에 배열 값을 바꾸는 코드이기 때문에 x = x.at[idx].set(y) 와 같이 특정 인덱스에 y라는 값으로 바꾸는 코드로 바꿔줄 수 있다.
cudnn은 GPU로 인공지능을 돌릴 때 도와주는 라이브러리고 CUDA는 GPU에서 수행하는 알고리즘을 C와 같은 프로그래밍으로 작성할 수 있도록 하는 프로그램이라고 한다. 이것을 설치해야 딥러닝 중 대표적인 CNN과 RNN을 긴 시간을 들이지 않고 학습할 수 있다. 그런데 설치 방법이 긴 매뉴얼 문서로 되어있어서 나중에 찾으면 매번 헷갈리는 바람에 기록해놓는다. 이 글의 전제 => 이미 엔비디아 홈페이지에서 회원가입을 했고, 엔비디아에서 출시한 그래픽 카드가 탑재되어 있는 경우 1. NVIDIA 그래픽 드라이버 설치 https://www.nvidia.com/Download/index.aspx?lang=en-us Download Drivers | NVIDIA www.nvidia.com 본인의 그래픽 카드..