| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 터치바
- 시에라
- catalina
- 맥북프로
- 모하비
- Fedora
- iOS 13
- tevo
- 터미널
- mojave
- AirPods
- 업데이트
- high sierra
- 3D 프린터
- 버그
- 아이폰
- Linux
- 3D프린터
- 컨트롤러
- 애플
- 맥
- Tarantula
- asahi linux
- 에어팟
- beta
- IOS
- macos
- Mac
- asahi
- sierra
- Today
- Total
elsa in mac
Google의 Gemma-4 를 사용해 봤습니다. 꽤~ 인상적이네요. 본문

본 포스트는 Fedora Asahi Linux에서 작성되었습니다.
최근 Claude, Gemini, OpenAI 등의 유료 구독 모델에서 잇따라 서비스 품질과 토큰 사용량 부족이라는 잡음이 나오면서 사용자들의 불만도 예전과 달리 높아지고 있습니다. 궁극적으로 AI를 사용하는 사용자 측면에서 보면, 구독 서비스보다는 자신의 개인용 컴퓨터에서 AI를 마음껏 사용하는 것을 가장 이상적으로 생각할 것입니다. 하지만 최근 RAM을 포함하여 전반적으로 컴퓨터 부품 가격이 폭등하면서 개인용 AI 머신을 구축하는 것이 아직은 경제적 경쟁력을 갖추지 못하는 상황입니다. 그래서 아마도 대부분은 AI 구독을 주로 사용하고 있을 것입니다. 성능 좋은 시스템을 수백만원 주고 구측하는 데 들어가는 비용과 연간 구독료를 비교 계산해 본다면 아직은 구독이 더 유리한 것 같습니다.
그런데, 때마침 Google DeepMind가 2026년 4월 2일에 Gemma-3에 이은 Gemma-4 오픈소스 모델을 공개했습니다. 사용자나 전문가들의 초기 평가는 매우 좋은 것 같더군요. Gemini 3 기반으로 성능과 효율성을 비약적으로 끌어올린 모델로 평가를 받고 있는 것 같습니다.
공개된 Gemma-4 모델은 E2B, E4B, 26B MoE, 31B Dense 이렇게 네 종류입니다.
E2B는 모바일 디바이스 타깃 모델이고, E4B는 온디바이스에서 추론 기능과 속도에 대한 균형을 맞춘 모델입니다. 26B MoE는 260억 개 파라미터 규모이면서 실제 추론에는 40억 개만 사용하는 모델로, 대규모 모델이면서도 빠른 속도를 낼 수 있는 모델입니다. 마지막으로 31B Dense 모델은 Gemma-4에서 가장 강력한 모델로 복잡한 추론 및 코딩 작업에 특화된 모델입니다.
전반적인 Gemma-4의 성능이나 각 모델이 갖는 성능과 특성은 많은 자료들이 있으니 설명은 필요 없을 것 같습니다.
바로 본론으로 들어가서 필자가 어떤 모델을 어떻게 사용하고 있는지를 소개해 봅니다.
우선 필자의 시스템은 Mac Mini M1 8/256 (2020) 깡통 모델입니다. 현재 시점에서 보면 임진왜란 때 기종이라고 볼 수 있습니다. 더군다나 macOS도 아니고 Asahi Linux를 사용하고 있습니다. Linux 부팅을 하고 나면 여유 메모리가 5GB밖에 안 됩니다. Swap Memory까지 더해도 12GB 수준이죠. 여기에 기본적으로 터미널 몇 개를 띄우고 웹 브라우저를 띄워 놓으면 가용한 실제 물리적 메모리 공간은 2GB 수준입니다.
AI는 Gemini와 Claude를 각각 구독하고 있는데, 조만간 Gemini 구독을 멈출 생각입니다. Gemini부터 사용을 시작했지만, Claude의 적수가 못되기에 그렇습니다. 그렇다고 Gemini가 아주 몹쓸 녀석은 아닙니다. 적어도 코드 분석이나 수정계획 같은 것은 탁월합니다. 다만 Code 수정/최적화/생성에서 Claude의 적수가 못될 뿐입니다. 그리고 토큰 사용량에 있어서도 Gemini가 Claude보다 훨씬 좋습니다. 물론 이것이 장점이 될 수 없는 이유는 응답 속도가 느리고 (최근에 들어서 더욱 심각해졌습니다...) Claude로 한 번에 처리할 수 있는 코딩을 Gemini로는 하루 종일 걸릴 수도 있는 수준이기 때문입니다.
필자는 Gemma-4-E2B와 Gemma-4-E4B를 사용합니다. 주력으로는 속도가 빠른 E2B를 사용합니다. 남들처럼 LM-studio나 Ollama 같은 것으로 모델 서버를 돌리고 OpenCode를 사용할 수는 없습니다. 그러기에는 메모리가 엄청 부족하고 GPU는 전혀 사용할 수 없어 최소한의 요구 컨텍스트조차 맞출 수가 없습니다.
그래서 직접 Gemini-CLI, 나 Claude Code 같은 터미널 기반의 Gemma-CLI를 만들어 사용하고 있습니다. 적은 메모리와 CPU만으로 구동해야 하기 때문에 채팅 모드를 살짝 변형하여 사용합니다.
다만, system prompt, 즉 GEMINI.md나 CLAUDE.md와 같이 GEMMA.md에 규칙을 정의하고 이를 매 채팅 질의 때마다 반드시 프롬프트로 포함하여 요청하는 방식을 사용합니다. 이렇게 하면 굳이 서버를 돌릴 필요도 없고 매우 적은 컨텍스트만으로 몇 가지 일을 시킬 수 있습니다. 물론 프로젝트 기반의 소스코드 분석은 완전 무리가 있고, 설사 코드 분석을 시킬 수 있게 만들더라도 History Sliding Window 기법과 코드를 80라인씩 쪼개서 분석하는 방식을 사용해야 합니다. 굉장히 시간이 오래 걸릴 수밖에 없지요.
따라서 현실적으로는 Claude를 주력으로 사용하면서 단순한 보조 역할로 사용합니다. Git 관리, 웹 검색이나 매우 빈번히 사용하는 GitHub 프로젝트 관리, 번역, 글 교정 등에 활용합니다. 이러한 작은 도우미 역할로는 꽤 좋습니다. 오히려 규모가 작은 모델이라 더 효율적입니다. 물론 Claude의 토큰 소모를 조금이라도 줄이는 데 기여하고 있지요.

위의 스샷은 E4B 모델로 이미지 분석을 요청해 본 예입니다. 비교적 정확하게 이미지를 분석합니다. 질의를 하고 결과가 나오기 시작할 때까지 대략 8초 정도 대기한 것 같습니다. (실제 사용에서는 개인적으로는 별 의미는 없습니다. ^^)

위의 스샷은 git commit을 수행하는 예를 보여 줍니다. 코드 분석도 꽤 잘하는 편이라서, Commit 제목이나 변경 내용도 매우 정확하게 define 하는 것을 알 수 있습니다. 이 작업을 수행하려면, GEMMA.md 이 외에 GEMMA-git.md 라는 시스템 프름프트를 이용해야 합니다.

위의 스샷은 기본 System Prompt의 내용입니다. 매 질의 때마다 자동으로 위의 내용이 질문과 함께 요청됩니다. gemma-4는 기본적으로 function-calling 및 tool-calling 기능을 갖고 있기 때문에, 권한에 대한 기준만 설정해 주면 내부적으로 정의된 function 이나 tool을 사용할 수 있고, 따라서 shell 명령어나 web fetch 등을 사용할 수 있습니다.

위의 스샷은 git 사용에 대한 rule을 정의한 system prompt 입니다. git commit 요청을 받으면 어떤 과정으로 처리할지를 정의하고 있습니다.
gemma 모델을 구동하기 위한 도구로는 LiteRT-LM 이라는 도구를 사용합니다. 이 프로젝트는 edge device에서 LLM을 빠르고 효과적으로 구동하기 위한 것으로 IOS, Andriod, Web, Desktop 등에서 사용할 수 있고 CPU, GPU, NPU 등을 사용할 수 있으며, python, JVM, Swift(IOS, macOS), C++ 등의 언어를 지원합니다. 서비를 구동하는 것이 아니고 직접 prompt를 통해 AI model을 사용할 수 있는데, Gemma-4에 맞춰 function-call , tool-call 을 사용할 수 있고, MultiModal 도 지원하여 이미지, 오디오 등을 Ai Model에 전달할 수 있습니다. 가장 특징적인 것은 메모리나 GPU RAM 등이 절대적으로 작아도 사용할 수 있다는 점입니다. Mobile 기기에서 On-Device AI를 타깃으로 하고 있기 때문입니다. 실제 물리적인 Memory도 사용하지만, 대부분은 저장장치에 cache 파일을 운용하는 방식입니다.

위와 같이 일반적인 질의에도 잘 대응을 합니다. 물론, 당연히 헛소리를 하는 경우도 있습니다. E2B 보다 E4B가 반응 속도면에서는 느리지만, 확실히 E2B보다는 좀 더 정확하고 디테일한 결과를 보여 줍니다.
Frontend 구현은 Rust 언어 기반으로 터미널 app으로 만들었으며, Model 과의 소통은 외부에 LiteRT-LM python SDK를 이용하여 engine.py를 만들고 이를 rust가 stdin/stdout JSON으로 통신하도록 했습니다. Session 기능이 있어서 지난 대화 내용을 기억하지만, 워낙 소규모 모델이기 때문에, 구독형 AI 모델보다는 당연히 수준이 떨어집니다. 따라서 대부분 단발성으로 문/답하는 것이 더 효과적입니다.

아니면, 외국어 회화 연습을 상항극으로 하는 것도 좋습니다. gemma-4는 다국어를 지원하므로 다양한 회화연습에 도움이 될 수 있습니다. 오히려 출력 결과가 너무 빠르지 않기 때문에 출력문을 꼼꼼이 읽을 수 있는 여유가 있습니다. 이 작은 모델로도 외국어 강의를 듣는 것보다 효과적이니 굉장하죠 ?

그리고, 마지막으로 가장 중요한 거. Claude의 Sub-Agent로 사용을 합니다. Claude가 필요하고 사용할 수 있을 것이라고 판단하는 부분에 Claude 직접 위임(task delegation)을 통해 Gemma-4를 사용하도록 하는 것입니다.


처리 속도 때문에, 약간의 작업상 지연이 있을 수는 있겠지만. 얼마나 Token 소모를 줄일 수 있을지 .. 써 보고 나중에 확인을 해 볼 예정 입니다.

위의 스샷은 Claude가 Gemma-4 를 잘 사용하는지 테스트를 해 본 것입니다. 잘 사용하네요.. 환경 구축도 Claude에게 요청하니 알아서 다 만들어 주었습니다. agent로 구성 했습니다. 물론 이 것도 claude 에게 설정을 부탁 했습니다.
여기서 중요한 점!
Claude의 Token 소모를 줄이기 위해 Gemma 를 사용하는 경우 Sub-Agent 로 설정을 하면 안됩니다. Claude Code 의 Agent 툴로 Sub-Agent를 생성하면, 에이전트가 tools:Bash만 가지더라도 그 에이전트를 구동하는 Claude 모델 인스턴스가 내부적으로 만들어지는데, 이 때, 시스템 프롬프트, CLAUDE.md, Memory.md 등이 그 인스턴스에 로드되므로 Token 소모량이 오히려 늘어 날 수 있습니다. 따라서, Token 소모를 최소화(거의 0)로 만들려면 Claude가 직접 Bash로 claude-gemma-ask 라는 도구를 호출하고 이를 통해 gemma 에게 요청을 하도록 해야 합니다. 그리고, 그 응답을 받아서 화면에 표시하도록 해야 하는 것이죠.
이는 마치, "현재 디렉터리 목록을 알려줘" 라고 요청했을때, claude가 "ls -al" 을 실행하고 그 결과를 표시하는 것과 동일하게 만드는 것이라고 이해하면 됩니다.
따라서, ~/.claude/CLAUDE.md 파일에 아래와 같이 Gemma 자동 위임 규칙을 아주 강하게 규정해야 합니다. 이것은 한 예 입니다.
## Gemma 자동 위임 규칙 (MANDATORY)
### 절대 금지
다음 작업에서 Claude가 **직접** 툴을 사용하는 것은 **절대 금지**:
- shell 명령 실행 시 Bash 툴 직접 사용 금지
- 파일/디렉터리 탐색 시 Glob 툴 직접 사용 금지
- 내용 검색 시 Grep 툴 직접 사용 금지
- 문장 번역, 주석/docstring, 커밋 메시지, 이슈/PR 초안, 보일러플레이트 등 단순 반복 작업을 Claude가 직접 처리 금지
### 반드시 Gemma에게 위임
위 작업은 반드시 Bash 툴로 `claude-gemma-ask`를 호출하여 Gemma에게 위임한다. `gemma` agent(서브에이전트)는 사용하지 않는다.
```bash
# shell 명령/탐색/검색
claude-gemma-ask "현재 디렉터리 파일 개수 알려줘"
# 번역/요약
claude-gemma-ask "Translate to Korean: I am a boy"
# 코드와 함께
echo "코드내용" | claude-gemma-ask "한국어 주석 달아줘"
# 파일 직접
claude-gemma-ask "이 파일 핵심 로직 요약해줘" < path/to/file
```
### 예외 (Claude가 직접 처리)
- 코드 수정, 버그 분석, 아키텍처 판단 등 **복잡한 추론이 필요한 작업**
- Gemma 결과를 받아 후속 판단이 필요한 경우
### 결과 표시 규칙
`claude-gemma-ask` 결과를 표시할 때는 반드시 아래 형식을 따른다:
```
gemma:
(응답 내용)
```
아래는 실행 예 입니다.

Gemma-4 E2B, 나 E4B 등을 빠르게 돌릴 수 있는 시스템이라면 충분히 유용한 방법이라고 할 수 있을 것 같습니다.
'애플 및 기타 IT 소식 > 기타 IT 소식' 카테고리의 다른 글
| 가속화되어가는 AI 시대 - 우리는 과연 감당할 수 있는 것일까 ? (0) | 2026.03.29 |
|---|---|
| Firefox가 AI Browser가 된다고 ? (0) | 2025.12.19 |
| Zen Browser를 투명하게.... (0) | 2025.06.27 |
| zen browser github 가 접근 차단 되었네요 ?! 뭔 일? (0) | 2025.06.19 |
| google 검색에서 AI 및 추천 콘텐츠를 비활성화 하는 방법 (0) | 2025.05.25 |