[카테고리:] Programming

  • 프로그래밍의 종말

    The End of Programming as We Know It
    Tim O’Reilly

    챗봇 기반 프로그래밍으로 이번에는 진짜 프로그래밍 종말이 온다는 주장을 받아들이지 않는다는 팀 오라일리 글. 챗봇 기반 프로그래밍의 진정한 가치는 이를 다루고 관리할 수 있는 숙련된 개발자들에게 있다고 말한다.

    갑자기 비프로그래머도 단순히 LLM이나 특화된 소프트웨어 에이전트와 평범한 영어(또는 원하는 인간 언어)로 대화하면, 유용한 Python 프로토타입(또는 원하는 프로그래밍 언어의 프로토타입)을 받아낼 수 있는 것처럼 보입니다. 이를 일컫는 새로운 유행어도 생겼는데, 바로 CHOP, 즉 “대화 지향 프로그래밍”입니다. 고급 추론 모델의 등장으로, 작업을 설명하는 고수준 프롬프트만으로도 복잡한 프로그램을 생성할 수 있는 AI가 나타나기 시작했습니다. 그 결과, 많은 사람들이 “이번에는 다르다”며 AI가 대부분의 인간 프로그래머, 그리고 사실상 대부분의 지식 노동자까지 완전히 대체할 것이라고 주장하고 있습니다. 하지만 나는 여전히 그것을 믿지 않습니다.

  • 대규모 언어모델 메모리 제약 극복

    LLM in a flash: Efficient Large Language Model Inference with Limited Memory

    직접 LLM 돌려보려고도 생각해본 적도 있지만, 아무래도 쉬운 일은 아니다. 여러가지 제약이 있는데 아래 논문은 메모리 문제를 해결하기 위해 SSD 사용하는 방법을 이야기한다. 논문을 자세히 읽어볼 건 아니지만 언젠가 이런 방법이 있다고 생각나길 바라며…

    대규모 언어 모델(LLM)은 최신 자연어 처리의 핵심으로, 다양한 작업에서 탁월한 성능을 제공합니다. 그러나 집중적인 연산 및 메모리 요구사항으로 인해 특히 DRAM 용량이 제한된 디바이스에서는 어려움을 겪습니다. 이 백서에서는 모델 파라미터를 플래시 메모리에 저장하고 필요에 따라 이를 DRAM으로 가져옴으로써 사용 가능한 DRAM 용량을 초과하는 LLM을 효율적으로 실행하는 문제를 다룹니다. 이 방법은 플래시 메모리 동작과 조화를 이루는 추론 비용 모델을 구축하여 플래시에서 전송되는 데이터의 양을 줄이고 더 크고 연속적인 청크로 데이터를 읽는 두 가지 중요한 영역에서 최적화하도록 안내합니다. 이 플래시 메모리 정보 기반 프레임워크에서는 두 가지 주요 기술을 소개합니다. 첫째, ‘윈도우링’은 이전에 활성화된 뉴런을 재사용하여 전략적으로 데이터 전송을 줄이고, 둘째, 플래시 메모리의 순차적 데이터 액세스 강점에 맞춘 ‘행-열 번들링’은 플래시 메모리에서 읽는 데이터 청크의 크기를 늘립니다. 이러한 방법을 종합하면 CPU와 GPU의 네이티브 로딩 방식에 비해 추론 속도가 각각 4~5배, 20~25배 증가하여 사용 가능한 DRAM의 최대 2배 크기까지 모델을 실행할 수 있습니다. 희소성 인식, 컨텍스트 적응형 로딩, 하드웨어 지향 설계의 통합은 메모리가 제한된 장치에서 LLM을 효과적으로 추론할 수 있는 길을 열어줍니다.

  • Waffle 패키지

    Infographic-style charts using the R waffle package

    인포그래픽 느낌의 차트를 그려주는 waffle이라는 패키지이다. 아직 나도 사용해보지는 않았다. 사실 시각화에 큰 관심이 없었는데 요즘 시각화 관련 패키지들을 좀 살펴보고 있다.

    이 패키지를 위해서 설치해야하는 건 기본적으로는 ggplot2이고 폰트는 Font Awesome에서 무료버전을 다운받고 fonts/fontawesome-webfont.ttf를 설치해야 한다.

    install.packages(c("waffle", "extrafont","ggplot2"))
    library(ggplot2)
    library(waffle)
    library(extrafont)
    font_import()
    # this should be fine for Mac OSX
    loadfonts()
    # use this if things look odd in RStudio under Windows
    loadfonts(device = "win")
    # check that Font Awesome is imported
    fonts()[grep("Awesome", fonts())]
    # [1] "FontAwesome"
    waffle(c(50, 30, 15, 5), rows = 5, use_glyph = "child", glyph_size = 6,
           title = "Look I made an infographic using R!")
    

  • Kaggle 설문결과 1위 파이썬, 2위 R, 3위 SQL

    2017 The State of Data Science & Machine Learning

    Kaggle 이용자 1만6천명을 대상으로 설문조사한 결과. 사이트에 직접 가서 보면 다른 결과들도 확인할 수 있다.

    가장 많이 이용한다고 응답한 도구는 1위 파이썬, 2위 R, 3위 SQL, 4위 주피터, 5위 텐서플로이다. SQL이야 워낙 전통적인 도구라서 그렇다고 하더라도 요즘 많이 언급되는 것들이 상위에 올라온 것 같다. Tableau가 8번째 있다는게 좀 신기하달까.

    제일 많이 사용하는건 logistic regression이나 decision tree라는 응답도 있었다. 전통적인 관계형 데이터 분석이 여전히 가장 많았지만 텍스트 데이터가 53%, 이미지 데이터 18.1% 응답도 나왔다. 앞으로 배우라고 추천하는건 역시 파이썬(63.1%). 2위는 R (24%)이다.

  • 엑셀 복사 후 클립보드에서 R로 불러오기

    대충 엑셀에서 확인해도 상관없지만 간단하게 R에서 확인해보고 싶은 것들이 있는 경우가 가끔 있다. R에서 불러오는게 귀찮거나 굳이 전체 파일을 다 불러오지 않아도 되는 경우 필요한 부분만 엑셀에서 복사한 후 R로 불러올 수 있다.

    read.excel <- function(header=TRUE,...) {
      read.table("clipboard",sep="t",header=header,...)
    }
    dat=read.excel()

    Mac에서는 오류가 난다

    Error in file(file, "rt") : X11 module cannot be loaded
    In addition: Warning message:
    In file(file, "rt") :
      unable to load shared object '/Library/Frameworks/R.framework/Resources/modules//R_X11.so':
      dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 6): Library not loaded: /opt/X11/lib/libSM.6.dylib
      Referenced from: /Library/Frameworks/R.framework/Resources/modules//R_X11.so
      Reason: image not found

    X11 모듈을 설치하면 해결된다고는 한다. (참고: Mac용 X11에 관하여) 아래 코드처럼 쓰면 맥에서도 따로 설치 없이 불러올 수 있다.

    read.excel <- function(header=TRUE,...) {
      read.table(pipe("clipboard",sep="t",header=header,...)
    }
    dat=read.excel()