ProgramAsWeights(PAW): 영어로 텍스트 분류기를 정의하고 로컬 CPU에서 실행하기
요약
ProgramAsWeights (PAW)는 사용자가 영어로 텍스트 함수를 설명하면, 이를 작은 신경 프로그램으로 컴파일하여 로컬 CPU 환경에서 실행할 수 있게 하는 기술입니다. 이 시스템은 호스팅 컴파일러를 통해 LoRA 어댑터를 생성하고, 실제 추론 과정은 llama.cpp 등을 이용해 사용자 컴퓨터의 로컬 환경에서 안전하게 처리합니다.
핵심 포인트
- 영어 설명 기반 텍스트 함수 정의 및 컴파일 가능
- 추론(Inference) 단계는 로컬 CPU에서 실행되어 데이터 프라이버시 보장
- 작은 모델 크기(Qwen3 0.6B 기준, 기본 모델 약 594MB)
- 코드, 모델, 논문 등 모든 자료가 공개되어 있어 접근 용이
저희는 University of Waterloo에서 ProgramAsWeights (PAW)를 개발해 왔습니다. PAW는 사용자가 영어로 텍스트 함수를 설명하면, 이를 작은 신경 프로그램으로 컴파일하여 자신의 컴퓨터의 Python 환경에서 호출할 수 있게 해줍니다. 저희 코드, 모델, 논문은 모두 공개되어 있습니다.
[IMG:N]
로컬 이메일 분류기 가져오기: programasweights를 paw로 임포트하고, 함수를 정의합니다. fn = paw.compile_and_load("Classify urgent emails") 이후에 fn("Need this today") # "urgent" (로컬에서 실행)와 같이 호출할 수 있습니다.
어디서 무엇이 실행되는가:
- 컴파일(Compilation): 기본적으로 함수 설명을 저희 호스팅 컴파일러로 전송합니다. 학습된 컴파일러는 공유되는 작은 모델에 대한 작업별 LoRA 어댑터를 생성합니다. 이후의 함수 호출은 로컬에서 실행됩니다 (llama.cpp 사용). 예를 들어, 로컬 추론을 사용할 때 입력 이메일은 사용자 컴퓨터에 남아 있습니다.
- 모델 크기: 표준 Qwen3 0.6B 인터프리터의 경우 기본 모델 다운로드 용량은 약 594 MB이며, 각 프로그램당 약 22 MB가 필요합니다. 컴파일러 가중치 또한 공개되어 있어 직접 컴파일을 실행하거나 이를 기반으로 구축할 수 있습니다!
자료 링크:
- 코드 및 설치 문서: https://github.com/programasweights/programasweights-python
- 컴파일러 가중치: https://huggingface.co/programasweights/paw-4b-qwen3-0.6b
- 논문: https://arxiv.org/abs/2607.02512
- 문서 (에이전트가 쉽게 사용할 수 있도록): https://programasweights.com/AGENTS.md
- 직접 사용해 보기: https://programasweights.com/playground
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기