# DeepSeek-V4-Flash로 LLM 조향(Steering)이 다시 흥미로워졌다

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29573](https://news.hada.io/topic?id=29573)
- GeekNews Markdown: [https://news.hada.io/topic/29573.md](https://news.hada.io/topic/29573.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2026-05-17T08:13:21+09:00
- Updated: 2026-05-17T08:13:21+09:00
- Original source: [seangoedecke.com](https://www.seangoedecke.com/steering-vectors/)
- Points: 1
- Comments: 1

## Topic Body

- **DwarfStar 4**는 llama.cpp를 DeepSeek-V4-Flash 전용으로 줄여, 로컬 모델에서 **LLM 조향** 을 실험하기 쉽게 만듦  
- 조향은 “짧게 답하기” 같은 **개념**의 활성화 차이를 벡터로 뽑아, 추론 중 같은 층에 더해 행동을 바꾸는 방식  
- 조향은 가중치나 활성화 접근이 필요해 **로컬 실행**이 전제이며, API 사용자에게는 OpenAI 같은 제공자만 가능한 영역  
- 많은 기본 조정은 **프롬프트**가 더 간단하지만, 거부 제거처럼 프롬프트로 요청하기 어려운 학습된 행동 변경 가능성은 남아 있음  
- DeepSeek-V4-Flash와 DwarfStar 4로 오픈소스 실험이 늘 수 있으며, 실제 응용은 앞으로 **6개월** 안에 드러날 수 있음  
  
---  
  
### DeepSeek-V4-Flash와 DwarfStar 4  
- [DwarfStar 4](https://github.com/antirez/ds4/tree/main)는 [llama.cpp](https://github.com/ggml-org/llama.cpp)를 DeepSeek-V4-Flash 실행 전용으로 줄인 프로젝트이며, **로컬 모델**에서 LLM 조향을 실험하기 쉽게 만듦  
- DeepSeek-V4-Flash는 프런티어 모델의 낮은 수준 에이전트형 코딩과 경쟁할 만큼 충분히 좋은 로컬 모델일 가능성이 있음  
- 조향은 모델의 가중치나 활성화에 접근해야 하므로 **로컬 실행**이 필요하며, DeepSeek-V4-Flash 같은 모델이 등장하면서 더 많은 엔지니어가 직접 실험할 수 있는 조건이 생김  
- antirez는 DwarfStar 4에 [조향](https://github.com/antirez/ds4/tree/main/dir-steering)을 1급 기능으로 넣었지만, 현재 예제는 프롬프트로도 재현 가능한 장난감 수준의 **“verbosity” 조정**에 가까움  
- DwarfStar 4의 초기 릴리스는 [8일 전](https://github.com/antirez/ds4/commit/d997b56c151184bcff469dd8302ed97f23481024)에 나왔고, 조향 기능이 앞으로 어떻게 발전할지가 주목됨  
  
### 조향이 작동하는 방식  
- 조향의 기본 아이디어는 “짧게 답하기” 같은 **개념**을 모델 내부 상태에서 뽑아낸 뒤, 추론 중 그 개념을 이루는 수치적 활성화를 키우는 것  
- ## 단순한 조향 벡터 추출  
  - 같은 100개 프롬프트 집합을 모델에 두 번 넣고, 한 번은 일반 프롬프트로, 다른 한 번은 “respond tersely”를 붙여 실행할 수 있음  
  - 각 프롬프트 쌍에서 모델의 **활성화 차이**를 측정하고, 한 활성화 행렬에서 다른 활성화 행렬을 빼면 조향 벡터가 됨  
  - 임의의 프롬프트에 대해 같은 활성화 층에 이 벡터를 더하면 모델이 더 **간결하게 응답**하는 효과를 기대할 수 있음  
  - 측정 가능한 활성화는 attention 이후, 각 층 사이 등 여러 지점에 있으며, 하나를 고르거나 여러 지점을 시도해 가장 잘 작동하는 곳을 찾을 수 있음  
- ## 더 정교한 특징 추출  
  - 별도 모델을 학습시켜 원래 모델의 활성화에서 함께 나타나는 행동 패턴인 **특징(feature)** 을 추출할 수도 있음  
  - 추출한 특징을 개별 개념에 다시 매핑한 뒤 같은 방식으로 활성화를 키우는 접근이 가능함  
  - Anthropic의 [sparse autoencoders](https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html)는 이 원리에 가까운 방식으로 소개됨  
  - 이 방식은 단순한 차분 벡터보다 더 깊은 패턴을 포착할 수 있지만, **시간·연산·전문성 비용**이 훨씬 큼  
  - 오픈 LLaMA 모델로 이런 방식을 다룬 [심층 분석](https://huggingface.co/spaces/dlouapre/eiffel-tower-llama)이 있으며, 직접 시도한 결과는 [혼재된 결과](https://github.com/sgoedecke/skills/blob/main/skills/extract-features-clamp-inference/SKILL.md)에 가까웠음  
  
### 조향이 흥미로운 이유  
- 조향은 학습셋을 힘들게 구성해 모델을 “똑똑한” 분포 쪽으로 밀어붙이는 대신, 모델 내부의 **“smart” 다이얼**을 찾아 오른쪽 끝까지 돌리는 가능성처럼 보임  
- 말투 조정에서도 프롬프트에 “you MUST” 같은 수식어를 붙이거나 빼는 대신, **간결함/장황함**이나 **성실함/속도** 같은 슬라이더를 직접 움직이는 제어판을 상상할 수 있음  
- [Golden Gate Claude](https://www.anthropic.com/news/golden-gate-claude)는 모든 문장을 Golden Gate Bridge로 끌고 가며, 조향이 모델 행동을 얼마나 강하게 바꿀 수 있는지 보여주는 흥미롭고 불안한 예가 됨  
  
### 조향이 널리 쓰이지 않은 이유  
- 조향은 AI 연구에서 일종의 **“중산층” 아이디어**처럼 위치해 있어, 대형 AI 연구소와 일반 사용자 모두에게 애매하게 맞지 않음  
- ## 대형 연구소에는 덜 필요함  
  - 대형 AI 연구소는 추론 중 어색한 “뇌수술”을 하지 않아도 모델을 직접 조작할 수 있음  
  - Anthropic은 이 영역을 다루지만, 주로 **해석 가능성**과 안전성 관점에서 접근함  
  - 대형 연구소가 특정 행동을 원할 때는 보통 조향보다 모델을 **학습**시키는 쪽을 택함  
- ## 일반 사용자는 접근 권한이 없음  
  - API로 LLM을 쓰는 일반 사용자는 모델 가중치나 활성화에 접근할 수 없어 조향에 필요한 정보를 얻기 어려움  
  - 예를 들어 GPT-5.5의 조향 벡터를 식별하거나 노출할 수 있는 쪽은 OpenAI뿐  
  - 오픈 가중치 모델에서는 가능하지만, 최근까지는 조향을 시도할 만큼 충분히 강한 오픈 모델이 없었다는 평가가 있음  
- ## 많은 기본 용도는 프롬프트가 더 효율적임  
  - 모델의 “뇌”를 직접 조작한다는 표현은 인상적이지만, **프롬프트 토큰**도 모델의 내부 상태를 직접 바꿈  
  - 조향으로 활성화를 꽤 세밀하게 제어할 수 있지만, 프롬프트 문구를 바꾸는 것만으로도 매우 세밀한 제어가 가능함  
  - 모델을 더 장황하게 만들기 위해 조향을 쓰기보다 그냥 그렇게 **요청**하는 편이 훨씬 간단함  
  
### 프롬프트로 어려운 대상을 조향할 수 있는가  
- 조향이 정말 유용해지는 한 가지 가능성은 프롬프트로 요청할 수 없는 **개념**을 찾아 조향하는 경우  
- “지능”은 후보처럼 보이지만, 현재 세대 모델은 이미 그런 성격을 내장하고 있어 “you are an expert” 같은 4o 시절 프롬프팅이 더 이상 의미 있는 효과를 내기 어려움  
- “지능” 조향 벡터가 존재하는지는 경험적 문제지만, 그런 벡터가 존재한다는 데에는 회의적  
- “지능”처럼 어려운 개념을 이루는 조향 벡터는 모델 전체 가중치 집합과 거의 같은 범위에 걸쳐 있을 수 있으며, 이 경우 벡터를 찾는 문제는 결국 **똑똑한 모델을 학습**하는 문제로 환원됨  
- GPT-2의 각 층 활성화를 같은 구조의 훨씬 강한 모델 활성화로 바꾸면 더 나은 결과가 나오겠지만, 이 경우 GPT-2를 더 똑똑하게 만든 것이 아니라 사실상 **더 강한 모델**과 대화하는 것에 가까움  
- 충분히 정교한 조향은 실제 모델을 대체하게 되며, 지능은 원래 모델이 아니라 조향 자체에 들어가게 됨  
  
### 데이터 압축으로서의 조향  
- 조향의 또 다른 가능성은 많은 토큰이 필요한 개념을 하나의 조향 벡터로 담아 **컨텍스트 창**을 절약하는 것  
- 이는 개념을 모델의 작업 기억에서 암묵적 기억으로 옮기는 방식처럼 볼 수 있음  
- 예를 들어 GPT-5.5가 특정 코드베이스를 빠르게 읽을 때 얻은 지식 일부가 활성화에 묻힌다면, 이를 매우 큰 조향 벡터로 꺼낼 수 있을지 생각해볼 수 있음  
- “내 코드베이스를 아는 상태”라는 개념도 “지능”과 비슷하게 충분히 복잡해서 **전체 파인튜닝**이 필요할 가능성이 높음  
- 산업계에서 “코드베이스로 모델을 파인튜닝”한 결과도 대체로 성공적이지 않았음  
- 다만 이런 형태의 조향이 가능할 여지는 완전히 배제되지 않음  
  
### 전망과 커뮤니티 실험  
- 조향에는 매력이 있지만, 대부분의 이득은 프롬프트로 더 효율적으로 재현될 수 있고, 더 야심적인 목표는 학습이나 파인튜닝으로 더 효율적으로 재현될 수 있다는 회의가 있음  
- 오픈소스 커뮤니티는 아직 조향을 많이 다루지 않았지만, DeepSeek-V4-Flash와 DwarfStar 4 같은 흐름으로 상황이 바뀌기 시작할 수 있음  
- 조향에 실제적인 응용이 있다면 앞으로 **6개월** 안에 드러날 가능성이 있음  
- DwarfStar 4 같은 모델별 도구가 부스트 가능한 특징들의 **라이브러리**를 포함하게 될지도 주목할 부분  
- 인기 있는 오픈 가중치 모델이 나오면 커뮤니티가 래퍼와 양자화 버전을 빠르게 내놓듯, 모델에서 부스트 가능한 특징을 추출하려는 움직임도 생길 수 있음  
  
### 추가 논의: 거부 제거와 런타임 조향  
- 이후 [Hacker News](https://news.ycombinator.com/item?id=48160807) 댓글에서 여러 댓글러와 antirez는 조향이 프롬프트로 바꾸기 어려운 **학습된 행동**을 바꿀 수 있다고 봄  
- 대표적인 예는 모델의 **거부(refusal)** 제거  
- 한 댓글러에 따르면 오픈 모델에서 검열 해제나 abliteration은 이미 이런 방식으로 이뤄짐  
- antirez에 따르면 가중치를 수정하면 모델 능력을 더 손상시킬 수 있는 반면, 더 가벼운 **런타임 조향**은 필요할 때만 적용할 수 있음

## Comments



### Comment 57615

- Author: neo
- Created: 2026-05-17T08:13:22+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48160807) 
- 올려줘서 고맙고, 한 가지 уточ정하자면 **DwarfStar 조향 기능**으로 DS4의 거부를 완전히 제거할 수 있었음  
  장난감 수준인 건 예시 데이터셋, 즉 내가 제공한 프롬프트 쌍뿐이지 기능 자체가 아님  
  적절한 데이터셋을 만들 수 있고 문서화가 잘 된 조향 기능 사용법을 이해하는 사람이라면 조향에 접근할 수 있다고 봤음  
  아무 이해 없이 복사·붙여넣기만 할 사람들도 거부 없는 모델에 접근하는 게 좋은지는 잘 모르겠고, 그래서 조향 파일은 공개하지 않았지만 여전히 꽤 혼란스러움  
  최근에는 지원이 확장돼서 조향 벡터를 항상, 생각한 뒤에만, 도구 호출 밖에서만 등 **서로 다른 시점의 활성값**에 적용할 수 있게 됨  
  많은 사람이 잘 모르는 중요한 점은, 추론 엔진 내부에서 벡터 방향 조향을 하는 방식이 같은 방식으로 수정된 GGUF를 쓰는 것보다 훨씬 낫다는 것임  
  조향을 많이 할수록 모델 능력이 손상되므로, 실행 시점에 적용하면 원하는 목표에 필요한 최소한만 적용할 수 있고, 선택한 순간에만 적용하는 것도 가능함  
  아직 구현하지는 않았지만, 거부 방향의 에너지가 특정 임계값을 넘을 때만 조향을 적용하는 것도 가능해 보이고, 실험해볼 여지가 많음
  - 내가 이해한 바로는 **DeepSeek V4**는 무해한 입력에 대해 서구권 AI 모델에서 흔히 보이는 거부 행동이 거의 없거나 없음  
    이건 주로 소프트웨어 보안 평가 사례를 말하는 건가?

- 이 글이 **조향 벡터**의 가장 큰 활용처, 즉 모델의 거부를 제거하는 가능성(abliteration 또는 uncensoring)을 언급하지 않은 게 놀라움  
  예전에 “대부분의 거부는 단일 벡터 위에 있다”는 논문이 있었고, 그 벡터를 찾아 약화시키면 모델이 거부를 건너뛰고 “어떤” 요청에도 일반적으로 답하게 만들 수 있었음  
  거부를 지도 미세조정(SFT)으로 학습한 초기 모델에서는 꽤 가능했고, 최신 모델에서는 조금 더 복잡해 보이지만 어느 정도는 여전히 가능함  
  이미 이 과정을 자동화해 거부를 줄이는 라이브러리들이 있는데, 보통은 모델을 식별·수정한 뒤 검열 해제 모델로 배포하는 데 초점을 둠  
  조향 방식은 이 벡터 변경을 동적으로 켤 수 있어서, abliteration 과정이 관련 없는 작업의 정확도를 해치더라도 모델 자체를 바꿀 필요가 없음
  - p-e-w가 며칠 전 Discord에서 이 얘기를 했음  
    **단일 뉴런 방식**은 KLD에 꽤 나쁜 것으로 보여서, 그래서 최신 기법들이 자리 잡은 듯함
  - 왜 검열에 그렇게 고정돼 있는지 모르겠음  
    관점을 뒤집으면, “백신은 해롭다” 같은 거짓을 말하지 않는 것도 검열에 포함됨  
    과학과 논리는 이런 주제를 종종 검열로 다루지만, 인터넷을 균등하게 샘플링한 모델은 백신이 해롭다고 생각할 수 있음  
    덜 순진한 보정은 이런 문제적 맥락을 검열할 것임  
    그래서 어떤 편향이 검열되어 있다고 보고 그것을 벗기면 **일반적 사용성**이 좋아질 거라고 생각하는 이유가 헷갈림

- DS4 저장소에서 정말 흥미로운 건, **프런티어 연구소들이 사용자에게 숨겨둔 조절 손잡이**들을 탐색하고, 그것들이 실제 개발·상호작용 흐름에 어떻게 들어갈 수 있을지 생각하는 부분이라고 봄  
  서로 다른 상호작용 방식을 탐색하고, 예를 들어 조향을 사용자 인터페이스에 유용하게 녹여 넣는 방법을 고민하는 게 정말 멋짐  
  일단 비밀이 풀리고 사용자가 이런 식으로 내부가 드러난 모델에서 얻을 수 있는 제어 수준과 효용을 이해하면, 조향은 도구함의 핵심 요소가 될 것임  
  모델이나 모델 제공자에게 이런 수준의 제어를 기대하는 것이 자연스러워질 듯함

- “llama.cpp를 줄여서 DeepSeek-V4-Flash만 실행하도록 만든 버전이 DwarfStar 4”라는 설명은 사실이 아님  
  **DwarfStar 4**는 자체 프로젝트임  
  llama.cpp에 빚지고 있는 건 맞지만, 축소판은 아님
  - 맞음. 코드 겹침은 몇몇 커널 정도로 최소임  
    구현한 양자화기를 위한 일부 양자화 코드가 있고, **DwarfStar 4**는 llama.cpp의 포크가 아님  
    다만 llama.cpp가 없었다면 중요한 세부사항을 빠르게 확인할 수 없었을 테니 프로젝트가 훨씬 빈약했을 것임  
    하지만 축소된 llama.cpp는 아님  
    이것이 llama.cpp가 이 프로젝트뿐 아니라 뒤따른 모든 프로젝트에 얼마나 중요한지 줄여주지는 않음  
    핵심은 코드가 아니라, 따라갈 길, 양자화 형식, 교훈, 패턴을 배우기 위해 확인할 수 있는 최적화 커널들임
  - 진실은 그 중간쯤에 있는 듯함  
    DwarfStar 4는 주로 llama.cpp 덕분에 존재하는 것으로 보이고, 작성자들도 llama.cpp 코드에서 크게 영감을 받았으며, 일부는 적절한 저작권 표시와 함께 실제로 가져다 쓴 부분도 있음  
    나쁘다는 뜻은 아니고, 괜찮아 보임  
    `ds4.c`는 GGML에 링크하지 않지만, llama.cpp 프로젝트가 열어준 길과 그곳에서 개발된 커널, 양자화 형식, GGUF 생태계, 어렵게 얻은 엔지니어링 지식 덕분에 존재함  
    DeepSeek V4 Flash 전용 추론 경로를 만들 때 구현, 커널, 테스트, 설계 선택이 핵심 참고 자료였고, MIT 라이선스 아래 GGUF 양자화 레이아웃과 표, CPU 양자화·점곱 로직, 일부 커널 같은 소스 수준 조각이 유지되거나 적용됨  
    그래서 진심으로 감사하는 의미로 LICENSE 파일에 GGML 작성자 저작권 고지를 유지한다는 내용임 - [https://github.com/antirez/ds4#acknowledgements-to-llamacpp-...](<https://github.com/antirez/ds4#acknowledgements-to-llamacpp-and-ggml>)  
    [https://news.ycombinator.com/item?id=48142885](<https://news.ycombinator.com/item?id=48142885>) 이후 약 이틀 동안 가지고 놀기 꽤 재미있었고, 지금까지 생성 속도를 **47.85 t/s에서 57.07 t/s**로 올림

- 조향으로 AI를 더 급진적으로 만들어봤음  
  글: [https://www.outcryai.com/research/shift-a-models-political-i...](<https://www.outcryai.com/research/shift-a-models-political-ideology-with-a-16kb-file>)  
  앱: [https://apps.apple.com/us/app/outcry-activist-ai/id676208676...](<https://apps.apple.com/us/app/outcry-activist-ai/id6762086768>)  
  이 기법은 잠재력이 큼
  - 솔직히 조향보다 더 흥미로운 건 **소프트 프롬프트**, 즉 가상 토큰 사용임  
    이런 가상 토큰으로 AI의 의미 공간 중 언어적이지 않은 영역을 찾아낼 수 있고, 복잡한 방식으로 행동을 바꿀 수 있음  
    활동가 AI에 소프트 프롬프트를 통합한 방법을 여기 적었음: [https://micahbornfree.substack.com/p/the-week-outcry-woke-up...](<https://micahbornfree.substack.com/p/the-week-outcry-woke-up-notes-from>)  
    그리고 [https://www.outcryai.com/research/how-to-create-activist-ai](<https://www.outcryai.com/research/how-to-create-activist-ai>)

- 좋은 글이지만 한 가지가 헷갈림  
  글에서는 조향이 로컬 모델에서만 작동한다고 하는데, **GitHub Copilot**에는 “steer with message” 기능이 있어서 실행 중간에 방향을 바로잡을 수 있고 자주 씀  
  아마 서로 다른 종류의 조향일 것 같음  
  에이전트 조향은 하네스와 LLM 사이의 왕복 흐름 중간에 또 다른 사용자 메시지를 삽입하는 방식일 가능성이 큼  
  - [https://docs.github.com/en/copilot/how-tos/copilot-cli/use-c...](<https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/steer-agents>)  
  - [https://docs.github.com/en/copilot/how-tos/copilot-sdk/use-c...](<https://docs.github.com/en/copilot/how-tos/copilot-sdk/use-copilot-sdk/steering-and-queueing>)
  - 다른 종류의 조향임  
    그건 모델의 자연어 사고 출력에 텍스트를 주입하는 것, 또는 매우 비슷한 방식임  
    다만 Anthropic의 **NLA 작업**을 이용해 특정 층에서 모델 활성값의 자연어 표현을 보고, 그 텍스트를 편집한 뒤 완전히 다른 활성값으로 다시 변환하는 중간 방식도 가능함

- 모델이 어떻게 로컬이라고 할 수 있지? **RAM 약 192GB**가 필요하다면 로컬이라고 하기엔 좀 과해 보임
  - 96GB MacBook에서도 돌아감  
    128GB면 더 좋고, DwarfStar README를 보면 됨
  - 하드웨어가 있으면 다운로드해서 실행할 수 있나? 그렇다면 필요한 하드웨어를 실제로 갖고 있든 아니든 **로컬**임  
    필요한 무선 장치나 안테나가 없는 사람에게 Zigbee를 로컬/LAN으로 볼 수 있냐고 묻는 것과 비슷함

- 연결된 DwarfStar 저장소의 이 줄을 보니 **제어 벡터**가 떠오름  
  `y = y - scale * direction[layer] * dot(direction[layer], y)`  
  [https://vgel.me/posts/representation-engineering/](<https://vgel.me/posts/representation-engineering/>)에서는 제어 벡터를 “추가 프롬프트 없이 추론 중 모델 활성값에 적용해 모델 행동을 제어할 수 있는 벡터, 엄밀히는 층마다 하나씩 있는 벡터 목록”이라고 설명함

- 실제로 쓰고 싶은 것이라기보다는 **딥러닝 연구**용에 더 가까워 보임
  - 아님. 거부 방지 벡터를 로드하면 예를 들어 컴퓨터 보안과 관련된 여러 질문을 할 수 있음  
    배우고 싶을 때 “이 문제 있는 요청은 도와줄 수 없습니다”라고 계속 말하는 모델보다 훨씬 나음

- “프롬프트 문구를 조정하는 것만으로 이미 매우 세밀한 제어를 할 수 있다”는 부분은 잘 모르겠음  
  내가 프롬프트를 못 쓰는 걸 수도 있지만, 학습 데이터나 후처리 학습에서 온 **편향**을 극복하는 건 불가능하게 느껴짐  
  프롬프트로는 학습 데이터에서 패턴을 캐내는 정도만 가능하고, 실제로 세밀한 제어 같은 건 별로 없음
