# Zed, 새로운 오픈 모델 Zeta로 "다음 편집 예측" 기능 제공

> Clean Markdown view of GeekNews topic #19235. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19235](https://news.hada.io/topic?id=19235)
- GeekNews Markdown: [https://news.hada.io/topic/19235.md](https://news.hada.io/topic/19235.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-02-15T09:41:10+09:00
- Updated: 2025-02-15T09:41:10+09:00
- Original source: [zed.dev](https://zed.dev/blog/edit-prediction)
- Points: 4
- Comments: 2

## Summary

Zed는 사용자의 다음 편집 동작을 예측하는 edit prediction 기능을 새롭게 공개했으며, 이는 Zeta라는 오픈 소스 모델을 기반으로 동작합니다. 이 기능은 `tab` 키를 통해 예측된 편집을 바로 적용할 수 있으며, 현재 퍼블릭 베타 기간 동안 무료로 제공되고 있습니다. Zeta 모델은 Qwen2.5-Coder-7B를 기반으로 개발되었으며, 다양한 기법을 통해 모델의 성능과 지연 시간을 최적화하고 있습니다.

## Topic Body

- Zed는 속도를 위해 설계된 편집기로, 항상 `instant`한 편집 경험을 목표로 해왔음  
- `instant`보다 더 빨라지기 위해, 사용자의 "다음 편집 동작을 예측"하는 방식을 채택  
- 이를 위해 Zed는 새롭게 edit prediction 기능을 공개했고, 이는 Zeta라는 오픈 소스 모델을 기반으로 동작함  
- 사용 중에 `tab` 키로 예측된 편집을 바로 적용할 수 있으며, 여러 후속 편집도 연속으로 실행 가능함  
- 많은 요청을 받은 기능이며, 최대한 자연스럽게 Zed 편집 환경과 어우러지도록 개발됨  
- 현재 퍼블릭 베타 기간 동안 Zed를 다운로드해 GitHub 계정으로 로그인하면 무료로 Zeta를 이용 가능함  
- 다만 edit prediction은 추후 무료가 아닐 수도 있으나, 지금은 함께 실험하고 배우기 위해 공개 중임  
  
### Thoughtful Integration  
- edit prediction 기능이 추가되면서 `tab` 키가 강력해졌음  
- 하지만 기존에 `tab`으로 들여쓰기를 하거나, 언어 서버(LS)에서 제공하는 제안사항을 확인하는 사용 방식과 충돌할 수 있음  
- 언어 서버에서 제공하는 코드 제안이 보이면, `option`/`alt` 키를 눌러야 비로소 예측 편집이 미리보기로 표시됨  
- macOS에서는 `tab`으로 예측 편집을 확정할 수 있고, `option`을 해제하면 원래 언어 서버 제안 화면으로 돌아옴  
- Linux에서 `alt-tab`이 윈도 매니저에 예약된 경우가 많아, 기본값으로 `alt-l`을 제공함  
- Linux 환경에서 `alt-tab`이 충돌되지 않는다면 그대로 사용 가능함  
  
### Introducing Zeta: Zed's Open Source Edit Prediction Model  
- [Zeta](https://huggingface.co/zed-industries/zeta)는 Qwen2.5-Coder-7B를 기반으로 개발된 오픈 소스 모델임  
- 오픈 데이터셋([링크](https://huggingface.co/datasets/zed-industries/zeta))도 공개 중임  
- 오픈 소스 저장소에서 작업하는 경우, Zeta 향상을 위해 데이터셋에 기여해 주길 희망함  
- 초기에는 안전과 프라이버시 검토를 거친 뒤 데이터가 반영될 예정임  
- 함께 노력해 edit prediction을 전반적으로 더 나은 기능으로 만들고자 함  
- 영상 링크: [How Zed’s Open-Source Edit Predictions Work](https://youtu.be/r1A268kA1uM)  
  
### Editing By Rewriting  
- 대부분의 코딩 모델은 “fill in the middle” 방식으로 학습함  
- prefix와 suffix를 주고, 그 사이를 모델이 생성하는 구조임  
- 한편 Zeta는 임의 위치의 편집을 예측해야 해서 기존 구조와 맞지 않는 과제임  
- 모델이 세밀한 단위의 변경보다는 비교적 큰 코드 덩어리 재작성에 능숙하다는 점에 주목함  
- 그래서 최근 편집 이력과 커서 위치를 입력받아, 해당 코드 조각을 재작성하는 방식을 택함  
  
### Evaluating Predictions  
- 대형 언어 모델의 결과는 매번 동일하게 나오지 않을 수 있어, 테스트가 까다롭다는 문제점이 있음  
- 온도(`temperature`)를 0으로 설정하거나, RNG 시드를 지정해 변동을 어느 정도 제어할 수 있음  
- 하지만 코드라는 것은 여러 정답이 가능해서, 결과가 기대 답안과 달라도 올바를 때가 있음  
- 전통적 단위 테스트가 어려워서, 더 큰 LLM을 활용해 Zeta의 결과를 자연어로 검사하는 방식을 시도함  
- 예: “왼쪽과 오른쪽 배열에 대해 재귀적으로 quicksort 함수를 호출하는지”와 같은 요구사항을 두고, Claude가 의도에 부합하는지 판별하도록 만듦  
  
### Prompt Engineering  
- 처음에는 Qwen2.5-Coder-32B 모델을 사용해, 어떤 편집을 예측해야 하는지 명확히 지시하는 프롬프트를 구성함  
- 초기 몇 개의 테스트(eval)는 통과했으나, 테스트가 늘어날수록 프롬프트만 변경해서는 일관된 결과를 내기 어려워짐  
- 32b 모델은 응답 지연이 커서, Zed의 엄격한 성능 기준에도 맞지 않았음  
  
### Supervised Fine-Tuning  
- 여러 접근을 시도한 끝에, Unsloth와 LoRA를 이용한 감독학습(fine-tuning)으로 전환함  
- 최근 편집 이력에서 사용자가 원하는 변화를 추론하고, 코드 조각을 부정확한 삽입 없이 잘 작성하도록 가르치는 목표임  
- 하지만 초기에는 실제 사용자 데이터가 부족해, Claude를 통해 50개 정도 합성 예시를 만들어 [데이터셋](https://huggingface.co/datasets/zed-industries/zeta-dataset)에 추가함  
- 이후 초기 버전을 Zed에 기능 플래그로 배포해, 내부 팀이 실제 사용 예시를 생성해 데이터셋을 확대함  
- 약 400개 예시로 모델 정확도를 높였으나, 파일 일부 구간만 편집할 때 모델이 불필요한 변경을 가하는 문제가 남아있었음  
  
### Direct Preference Optimization  
- 이 문제 해결을 위해 DPO(Direct Preference Optimization) 기법을 도입함  
- 단순히 ‘좋은 예시’를 보여주는 것뿐 아니라 ‘피해야 할 예시’도 명시하며, 모델이 부적절한 편집을 구분하도록 학습함  
- 약 150개의 주의 깊게 선정된 예시만으로도 까다로운 사례에서 모델 동작이 크게 향상됨  
- 더 다양한 예시를 수집하면 추가 개선이 가능할 것으로 기대함  
  
### Minimizing Latency: Speculative Decoding  
- Zed의 모든 기능과 마찬가지로, edit prediction에서도 지연(레이턴시)을 최소화하는 것이 핵심임  
- p50이 200ms 이하고, p90이 500ms 이하가 목표임  
- 코드 일부를 재작성하려면 생성해야 할 토큰 수가 많아져, 일반적인 fill-in-middle 방식보다 느릴 수 있음  
- 그러나 rewrite 과정에서 원본 코드와 상당히 비슷한 부분이 많다는 점을 활용해, speculative decoding 기법을 적용함  
- 입력을 참조해 n-gram 검색으로 병렬 토큰 생성을 진행, 품질 저하 없이 속도를 높이는 전략임  
  
### Minimizing Latency: Serving The Model  
- 모델 추론 속도 외에도 서버 환경에서의 모델 제공(Serving) 방식이 큰 과제였음  
- 지금까지 팀이 수행해온 것 중 가장 많은 연산량이 필요한 문제임  
- 런칭 시점에 짧은 검증 과정을 거쳐 [Baseten](https://www.baseten.co/)을 선택함  
- Baseten 엔지니어들이 Zeta 모델을 최적화해 주었고, 원하는 지연 기준을 달성했음  
- 네트워크 전송 시간도 주요 요인이므로, 미국과 유럽 지역에 GPU를 배치해 물리적으로 가까운 위치에서 요청을 처리함  
- [Cloudflare Workers](https://workers.cloudflare.com/)를 통해 사용자와 가까운 데이터 센터에서 요청을 중계함  
  
### Conclusion  
- 앞으로 edit prediction을 더 강력하게 만들 다양한 방향을 탐색할 예정임  
- 모델이 받는 컨텍스트 양을 늘리고, 추가 fine-tuning을 진행하며, Zeta 데이터셋을 확장해 개선해 나갈 계획임  
- 작년 가을 Zed AI를 출시한 이후로 많은 것을 배웠음  
- 세상이 빠르게 바뀌는 만큼, 사용자들이 사랑할 만한 기능을 지속적으로 실험하고 구축 중임  
- AI도 Zed가 추구해온 오픈소스 정신으로 함께 발전시키고 싶음  
- 사용자, 기여자, 팀원으로 누구나 함께할 수 있길 바라며, 더욱 멋진 미래를 열기 위해 달리는 중임

## Comments



### Comment 34634

- Author: xguru
- Created: 2025-02-16T11:09:29+09:00
- Points: 1

[Atom 개발자들이 만든 새로운 에디터. 오픈 베타 시작](https://news.hada.io/topic?id=8739)  
[협업용 코드 편집기 'Zed', 이제 오픈 소스로 전환](https://news.hada.io/topic?id=13025)  
[Zed AI 공개 (with Anthropic)](https://news.hada.io/topic?id=16398)

### Comment 34591

- Author: neo
- Created: 2025-02-15T09:41:11+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43045606) 
- Zed의 예측 편집 기능은 현재 무료지만, 나중에는 유료화될 가능성이 있음. 사용자는 가격이 정해지면 워크플로우에 통합할지 결정할 것임. 무료 체험을 원하지만, 가격이 비싸면 사용하지 않을 것임
  - Zed는 파일 유형당 하나의 LSP만 실행 가능함. Rust와 C++는 잘 작동하지만, Angular는 그렇지 않음
  - 원격 편집 기능은 Windows에서 작동하지 않음. Windows에서 원격 편집 기능을 사용하려면 SSH 지원이 필요함
- 예측 기능이 너무 과도하게 사용되고 있음. 사용자는 예측 기능이 방해가 된다고 느끼며, 자신의 작업 흐름을 방해한다고 생각함
  - 예측 기능이 너무 많이 사용되면 오히려 도움이 되지 않음. 알고리즘이 사람의 생각을 읽을 수 없으므로, 사용자의 작업을 방해하지 않도록 해야 함
- 코드가 제3자에게 전송되는 것을 원하지 않음. 특히 비밀 파일을 편집할 때, 개인 키나 API 키가 전송될 수 있음
  - 로컬 옵션이 제공되기를 바람
- Zed의 새로운 기능 광고 방식이 마음에 듦. 상단 왼쪽에 배너로 표시되며, 사용자의 작업을 방해하지 않음
  - 다른 소프트웨어처럼 사용자가 새로운 기능을 확인하도록 강요하지 않음
- Zed는 주석 자동 완성을 시도함. 사용자는 주석 부분에서 자동 완성을 원하지 않으며, 이를 비활성화할 수 있는 옵션이 추가됨
- CoPilot의 제안 수락 인터페이스가 불편함. 탭 키를 사용하면 원치 않는 AI 제안이 많이 나옴
- 텍스트 에디터에서 안정성을 선호함. AI 관련 기능이 많으면 오히려 불편함
  - Zed를 사용해보니 좋았음
- 현대 Intellisense는 적절한 예측 기능을 제공함. AI 예측은 너무 과도하게 사용됨
  - AI가 프로그램 구조와 패턴 추천을 제공하면 유용할 것임. 프로그램이 커질수록 구조화하기 어려워짐
- Zed의 기능을 로컬에서 사용하기 위한 모델 파일을 정의할 수 있음. 하지만 Zed가 이 기능의 엔드포인트를 변경할 수 있는지는 불확실함
