최신 글
-
SLM survey : On The Landscape of Spoken Language Models: A Comprehensive Survey논문 리뷰 2025.06.18 22:10
Chat GPT를 필두로 텍스트 기반의 생성형 언어모델이 성공하자 이를 활용한 멀티모달 인공지능에 대한 연구가 활발해지고 있습니다. (멀티모달이란, 텍스트 외에 사진이나 소리 등을 입력으로 함께 받아 이를 함께 활용하는 인공지능 모델을 의미)오늘은 그 중에서 음성을 같이 활용한 SLM(Speech Language Model)에 대하여 포스팅 하도록 하겠습니다.SLM은 최근에 급격하게 연구가 이루어지고 있는 분야로, 사실 이를 부르는 용어도 통일 되지 않았습니다. speech LM 이라고도 불리고, Spoken LM이라고도 불리며 Large Audio Language Model(LALM) 이라고 불리기도 한답니다.이를 공부하기 위해 저희는 “On The Landscape of Spoken Language ..
-
고성능 파이썬 Chapter 11 - RAM 덜 사용하기고성능 파이썬 2025.02.09 20:23
들어가며해당 챕터는 다양한 자료구조를 통해 메모리를 적게 사용하는 방법을 알려준다. 특히 문자열을 저장하고, count 하는 방식에 대해서 알려준다. 특히 정확도를 약간 희생해서 RAM 사용량을 줄였다는 점에서 count 알고리즘이 흥미로웠다. 해당 알고리즘을 어떤 때 사용해야 하는지도 관심 있게 보면 좋을 것 같다.이 장에서 배울 내용- RAM을 덜 사용해야 하는 이유.- 원시 타입의 수를 많이 저장하는 데 numpy와 array가 더 좋은 이유- 많은 텍스트 정보를 RAM에 효율적으로 저장하는 방법- 1바이트로 1076(대략적으로!)을 세는 방법- 블룸(Bloom) 필터의 정의와 이 필터가 필요한 이유 list 대신 numpy, array를 사용하여 RAM 사용량 줄이기 RAM에 많은 텍스트를 효율..
-
고성능 파이썬 Chapter 10 - 클러스터와 작업 큐고성능 파이썬 2025.02.02 22:20
들어가며해당 챕터는 실습 보다는 정보 전달이 더 큰 내용인 것 같다. 현재 회사에서는 kubernetis 오케스트레이션을 이용하여 서버 자원을 관리하고 있으므로, 해당 내용은 참고만 하면 될 것 같다. 클러스터는 대표적인 Scale Out 방식이다. 예전 분산시스템 수업에서 배웠던 베오울프, 맵 리듀스 등이 나와서 친숙했다.이 장에서 배울 내용- 클러스터가 유용한 이유- 클러스터링에 등는 비용- multiprocessing 해법을 클러스터를 사용한 해법으로 바꾸는 방법- IPython 클러스터의 작동 방식- Dask와 Swifter를 사용한 팬더스 병렬화 방법- NSQ가 강건한 프로덕션 시스템 구축에 도움이 되는 이유클러스터링은 멀티 프로세싱과 유사한 동작 방식을 생각하면 된다. IPython Paral..
-
고성능 파이썬 Chapter 09 - Multiprocessing 모듈 part 2 (9.5절~)고성능 파이썬 2025.01.19 18:34
9.5절 부터의 내용은 생성된 프로세스간의 통신을 하는 내용이다.원하는 값을 찾는걸 다른 프로세스에서 끝냈다면, 더 진행할 일이 없을텐데 다른 프로세스의 진행 상황을 알지 못하고 수행한다면 모든 프로세스가 종료 되어야 비로소 프로그램이 종료되게 되기 때문이다.프로세스간의 통신으로 인한 오버헤드 또한 고려사항이다. 오히려 오버헤드가 많아지면서 더 느려지는 상황이 생길 수 있다. 이 책에서 제안하는 방식은MPI(via MPI4PY, 책에서 다루지는 않음), pool 사용, flag 사용, redis, Raw Value, mmap을 이용한 방법이다.또한 위의 방식들은 단순히 flag 값만을 주고 받았는데numpy 배열 전체를 프로세스간 공유하여 메모리를 효율적으로 이용하는 방법에 대해서도 다룬다. (np.fr..
-
고성능 파이썬 Chapter 09 - Multiprocessing 모듈 part 1 (~9.4절)고성능 파이썬 2025.01.12 15:47
들어가며파이썬은 기본적으로 1개의 CPU 코어만을 사용하도록 되어 있어서 이번 과를 통해 더욱 효율적으로 프로그램을 돌릴 수 있도록 해주는 방법을 배울 수 있기를 바란다.이 장에서 배울 내용- multiprocessing 모듈이 제공하는 기능- 프로세스와 스레드의 차이- 프로세스 풀의 적절한 크기를 정하는 방법- 작업 처리를 위해 영속적이지 않은 큐를 사용하는 방법- 프로세스 간 통신의 비용과 효과- 여러 CPU를 사용해 numpy 데이터를 처리하는 방법- joblib을 사용해 병렬화하고 캐시된 과학 계산 작업을 단순화하는 방법- 데이터 손실을 막기 위해 락을 사용해야 하는 이유파이썬 프로그램을 실행시키면 기본적으로 1개의 CPU가 모든 동작을 수행한다. 하지만 2000년대 후반 이후 거의 모든 CPU는..