본문으로 건너뛰기
피드

파이썬 노트북에서 노드 기반 AI 실험 러너로 넘어간 개인 프로젝트

open-source 약 6분
vote
0
댓글
북마크

이 글은 로컬 AI 모델로 자기 글쓰기 스타일을 흉내 내보려다, 범용 AI 실험 러너를 만들게 된 과정을 담은 저장소 소개야. 핵심은 Node 20 기반 runner, macOS Apple Silicon용 MLX, YAML recipe, 로컬 UI를 한 번에 실행해보는 작은 starter 구조임. 연구 논문급 새 기술이라기보다는 개인 AI 실험을 반복 가능하게 묶어보려는 오픈소스 도구에 가까워.

  • 1

    Node 20 이상, Python 3.10 이상, Apple Silicon macOS에서 MLX 기반 실험을 돌릴 수 있음

  • 2

    run-first.sh나 npm script로 setup, demo, ui, clean 라이프사이클을 제공함

  • 3

    프로젝트 루트의 UI 파일을 직접 고칠 수 있고, 패키지 업데이트와 분리됨

  • 4

    pipeline recipe를 바꿔 prompt, diary, LoRA, oracle, translation 실험으로 확장할 수 있음

  • 5

    override.yaml과 config YAML, CoffeeScript step override로 실험 구성을 바꾸는 구조임

  • 이 저장소는 “내 글쓰기 스타일을 따라 하는 로컬 AI 모델”을 만들려다 생긴 AI 실험 runner starter임

    • 출발점은 포틀랜드를 배경으로 한 weird fiction을 쓰던 개인 프로젝트였음
    • 처음엔 Python notebook으로 시작했는데, 끝까지 가보니 Node 기반 범용 실험 runner 형태가 됐다는 이야기임
    • 생성 예시 문단도 포함돼 있는데, 글쓴이는 embedding보다 keyword retrieval 쪽이 voice 유지에 영향을 줬다고 설명함
  • 사용 흐름은 꽤 작게 설계돼 있음

    • clone, install, run을 하면 1분 안쪽으로 test pipeline이 end-to-end로 실행되는 걸 목표로 함
    • package.json에는 runner GitHub 의존성, setup/pipeline/ui/clean 스크립트, 그 외에는 거의 아무것도 없음
    • recipe나 override는 runner package에서 오거나 첫 실행 때 scaffold되는 구조임
  • 요구 환경은 Node 중심이지만, MLX를 쓰려면 애플 생태계 제약이 붙음

    • Node 20 이상이 필요하고, runner는 CoffeeScript와 node:sqlite를 사용함
    • Python 3.10 이상은 MLX 표면을 실행할 때 필요함
    • MLX는 Apple Silicon 전용이라, 해당 부분까지 쓰려면 macOS와 Apple Silicon이 사실상 전제임
  • run-first.sh는 setup부터 demo까지 한 번에 묶어주는 입구임

    • npm run setup은 override.test.yaml을 override.yaml로 복사하고 Python 가상환경을 만든 뒤 MLX 관련 패키지를 설치함
    • npm run demo 또는 npm run pipeline은 override.yaml에 지정된 pipeline을 실행함
    • npm run ui는 127.0.0.1:4311에서 로컬 UI 서버를 띄움
    • npm run clean은 runtime artifact를 지워 fresh clone 상태로 되돌림
  • 흥미로운 건 UI를 node_modules 안에 숨기지 않고 프로젝트 루트에 둔다는 점임

    • ui와 ui_server.coffee가 first-class project file로 제공됨
    • 사용자는 패널 추가, protocol 변경, layout 교체 같은 수정을 프로젝트 파일에서 바로 할 수 있음
    • 패키지 업데이트가 이 파일들을 건드리지 않고, 필요하면 npm run ui:reset으로 기본값을 다시 덮어쓸 수 있음
  • 실험 확장은 override.yaml과 recipe 교체로 하는 방식임

    • 기본 pipeline은 test이고, 9단계로 runner 메커니즘을 한 번씩 보여주는 용도임
    • prompt_ite는 iterative prompt generation, diary_ite는 LoRA 유무에 따른 diary generation A/B, lora_ite는 LoRA adapter training 쪽임
    • oracle_ite는 raw story에서 KAG extraction을 하는 흐름이고, diary_translate_ite는 adapter 기반 translation recipe임
  • 자기 recipe를 만들려면 config 디렉터리와 scripts 디렉터리를 프로젝트 쪽에서 덮어쓰면 됨

    • config/myname.yaml을 만들고 override.yaml에서 pipeline 값을 myname으로 바꾸는 식임
    • step을 바꾸고 싶으면 scripts/name.coffee를 두면 runner가 제공하는 파일보다 프로젝트 파일이 우선함
    • 즉, engine은 패키지에서 가져오고 실험 구성과 override는 로컬 프로젝트에서 관리하는 모델임
  • 한국 개발자 관점에서는 “대세 도구”라기보다 로컬 LLM 실험을 구조화하는 참고 샘플에 가까움

    • Apple Silicon에서 MLX로 이것저것 실험하는 사람에게는 setup, recipe, UI 분리 방식이 꽤 참고될 수 있음
    • 반대로 클라우드 GPU나 리눅스 서버 중심 워크플로우라면 바로 가져다 쓰기엔 제약이 많음
    • 그래도 notebook에 실험이 흩어지는 문제를 runner와 YAML lifecycle로 묶는 접근은 꽤 현실적인 포인트임

개인 창작용 로컬 모델 실험에서 시작했지만, 실제로는 “AI 실험을 매번 노트북에서 손으로 굴리지 말고 recipe와 runner로 관리하자”는 쪽에 더 가까운 프로젝트야. 다만 Apple Silicon과 MLX에 묶인 부분이 있어서 한국 개발자 전체보다는 로컬 LLM 실험을 하는 사람에게 더 직접적으로 맞음.

댓글

댓글

댓글을 불러오는 중...

open-source

위키피디아에도 빅테크식 반노조 플레이북이 들어왔다

위키미디어 재단이 5월 열흘 사이 MediaWiki 장기 핵심 개발자를 해고하고, 자원봉사 편집자 요청을 처리하던 Community Tech 팀을 해산했다는 비판 글이다. 해고된 인력 상당수가 노조 조직 활동과 연결돼 있었고, 위키피디아 편집자들은 연대 파업까지 거론하고 있다. 재단은 2억9660만 달러의 준비금과 빠르게 성장하는 AI 대상 API 매출을 갖고 있어, 이 사안이 단순 비용 절감으로 보기 어렵다는 게 글의 핵심이다.

open-source

캘리포니아, 연령 확인법에서 리눅스 빼려는 수정안 추진

캘리포니아가 운영체제에 사용자 나이 확인을 요구하는 법안에서 대부분의 오픈소스 운영체제를 제외하는 수정안을 추진 중이다. 데비안, 페도라, 우분투, 아치, 리눅스 민트 같은 배포판은 빠질 가능성이 커졌지만, 스팀OS처럼 독점 앱 생태계와 연결된 플랫폼은 여전히 애매한 상태다.

open-source

마이크로소프트, 45년 전 86-DOS 소스코드를 오픈소스로 공개

마이크로소프트가 86-DOS 1.00 출시 45주년에 맞춰 지금까지 발견된 것 중 가장 오래된 DOS 소스코드를 공개했어. 팀 패터슨의 차고에 있던 도트 매트릭스 출력물을 스캔하고 옮겨 적어, 원본 바이너리와 바이트 단위로 동일하게 다시 컴파일되는 수준까지 복원한 게 포인트야.

open-source

밤부 랩, AGPLv3 위반 논란으로 오픈소스 커뮤니티와 충돌

3D 프린터 제조사 밤부 랩이 AGPLv3 라이선스 위반 논란에 휘말렸고, Software Freedom Conservancy가 두 건의 위반 사례를 확인했다는 내용이야. Louis Rossmann과 Gamers Nexus는 관련 개발자의 법적 방어를 위해 2만달러를 기부했고, 갈등의 핵심은 오픈소스 기반 생태계를 클라우드와 DRM으로 점점 닫아가려는 움직임이야.

open-source

플리퍼, 리눅스 기반 확장형 기기 '플리퍼 원' 공개

플리퍼가 기존 플리퍼 제로를 대체하는 후속작이 아니라, 리눅스 기반 네트워킹·확장형 기기인 플리퍼 원을 공개했어. RK3576 8코어 ARM 칩, 와이파이 6E, 듀얼 이더넷, NVMe, HDMI 4K 120Hz까지 넣으면서 장난감 같은 해킹 도구에서 훨씬 범용적인 리눅스 장비 쪽으로 방향을 넓히는 그림이야.