approximatelabs/sketch
요약
Sketch는 pandas 데이터프레임에 직접 통합되어 데이터 분석 워크플로우를 지원하는 AI 코드 작성 어시스턴트입니다. 별도의 IDE 플러그인 없이 `.sketch` 확장 기능을 통해 데이터 카탈로깅, 엔지니어링, 시각화 및 코드 생성을 자연어로 수행할 수 있습니다.
핵심 포인트
- pandas 데이터프레임에 `.sketch` 확장 기능을 추가하여 즉시 사용 가능
- ask, howto, apply 세 가지 주요 인터페이스를 통한 데이터 질의 및 코드 생성 지원
- 데이터 클리닝, 피처 생성, 시각화 등 데이터 분석 전 과정을 자연어로 처리
- OpenAI API 또는 Hugging Face의 MPT-7B, StarCoder 모델 활용 가능
Sketch는 데이터의 문맥을 이해하여 제안의 관련성을 크게 향상시키는 pandas 사용자를 위한 AI 코드 작성 어시스턴트 (AI code-writing assistant)입니다. Sketch는 몇 초 만에 사용할 수 있으며 IDE에 플러그인을 추가할 필요가 없습니다.
pip install sketch
여기에서는 "표준" (가상의) 데이터 분석 워크플로우 (data-analysis workflow)를 따르며, 데이터 스택 환경 (data stack landscape) 내의 많은 작업들을 성공적으로 수행하는 자연어 인터페이스 (Natural Language interface)를 보여줍니다.
-
데이터 카탈로깅 (Data Catalogging):
- 일반 태깅 (예: 개인정보(PII) 식별)
- 메타데이터 생성 (이름 및 설명)
-
데이터 엔지니어링 (Data Engineering):
- 데이터 클리닝 (Data cleaning) 및 마스킹 (masking) (컴플라이언스 준수)
- 파생 피처 생성 및 추출 (Derived feature creation and extraction)
-
데이터 분석 (Data Analysis):
- 데이터 질문 (Data questions)
- 데이터 시각화 (Data visualization)
sketch-demo.mp4
사용법은 sketch를 임포트 (import)한 다음, 어떤 pandas 데이터프레임 (dataframe)에서든 .sketch 확장 기능을 사용하는 것만큼 간단합니다.
import sketch
이제 여러분이 가진 모든 pandas 데이터프레임에는 확장 기능이 등록됩니다. 데이터프레임 이름 뒤에 .sketch를 붙여 이 새로운 확장 기능에 접근하세요.
ask는 sketch의 기본적인 질의응답 (question-answer) 시스템으로, 데이터의 요약 통계량 (summary statistics)과 설명을 기반으로 텍스트 답변을 반환합니다.
데이터를 이해하거나, 더 나은 컬럼 (column) 이름을 얻거나, 가설을 질문하거나 (이 데이터로 X를 어떻게 수행할 수 있을까요?), 그 외 다양한 용도로 ask를 사용하세요.
df.sketch.ask("어떤 컬럼이 정수형(integer type)인가요?")
howto는 sketch의 기본적인 "코드 작성" (code-writing) 프롬프트 (prompt)입니다. 이는 여러분이 복사하여 붙여넣고, 데이터에 대해 질문해야 하는 모든 사항의 시작점 (또는 어쩌면 완성점!)으로 사용할 수 있는 코드 블록 (code-block)을 반환합니다. 데이터를 클리닝하거나, 정규화(normalize)하거나, 새로운 피처를 생성하거나, 플롯(plot)을 그리거나, 심지어 모델을 구축하는 방법까지 howto에게 물어보세요!
df.sketch.howto("시간에 따른 매출을 플롯하세요")
apply는 데이터 생성 (data generation)에 더 유용한 고급 프롬프트 (prompt)입니다. 필드 파싱 (parse fields), 새로운 피처 (features) 생성 등에 사용하세요. 이는 lambdaprompt를 기반으로 직접 구축되었습니다. 이를 사용하려면 OpenAI의 무료 계정을 설정하고, API 키를 환경 변수로 설정해야 합니다: OPENAI_API_KEY=YOUR_API_KEY
df['review_keywords'] = df.sketch.apply("제품 [{{ product_name }}]의 리뷰 [{{ review_text }}]에 대한 키워드 (쉼표로 구분):")
df['capitol'] = pd.DataFrame({'State': ['Colorado', 'Kansas', 'California', 'New York']}).sketch.apply("[{{ State }}]의 주도는 어디인가요?")
또한 몇 가지 사전 구축된 Hugging Face 모델 (현재 MPT-7B 및 StarCoder)을 직접 사용할 수 있으며, 이 모델들은 (HF에서 모델 가중치를 다운로드하면) 완전히 로컬에서 실행됩니다. 다음 3가지 환경 변수를 설정하여 수행하세요:
os.environ['LAMBDAPROMPT_BACKEND'] = 'StarCoder'
os.environ['SKETCH_USE_REMOTE_LAMBDAPROMPT'] = 'False'
os.environ['HF_ACCESS_TOKEN'] = 'your_hugging_face_token'
자신의 API 키를 사용하여 (저희 엔드포인트를 사용하지 않고) OpenAI를 직접 호출할 수도 있습니다. 이를 위해 2가지 환경 변수를 설정하세요.
(1) SKETCH_USE_REMOTE_LAMBDAPROMPT=False
(2) OPENAI_API_KEY=YOUR_API_KEY
Sketch는 데이터를 빠르게 요약하고 그 정보를 언어 모델 (language models)에 전달하기 위해 효율적인 근사 알고리즘 (approximation algorithms, data sketches)을 사용합니다. 현재는 컬럼을 요약하고 이러한 요약 통계량 (summary statistics)을 코드 작성 프롬프트에서 사용할 추가 컨텍스트 (context)로 작성하는 방식으로 작동합니다. 향후에는 더 정확한 결과를 얻기 위해 이러한 스케치 (sketches)를 맞춤 제작된 "데이터 + 언어" 파운데이션 모델 (foundation models)에 직접 입력하는 것을 목표로 하고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기