라벨이 LLM인 게시물 표시

GPU 없이 로컬 AI를 실행할 수 있을까? CPU 기반 LLM 활용법

이미지
GPU 없이도 로컬 AI를 실행할 수 있지만, 모델 크기와 응답 속도 사이에서 타협이 필요합니다. 이 글은 Windows 또는 Linux에서 명령어를 실행할 수 있는 환경을 가정하고, GGUF 모델과 llama.cpp로 CPU에서 LLM을 돌리는 방법을 다룹니다. 목차 CPU 기반 LLM은 어떻게 추론할까? GGUF와 llama.cpp로 실행하기 RAM 사용량과 모델 성능 판단 결론 CPU 기반 LLM은 어떻게 추론할까? CPU 기반 LLM의 추론은 입력 문장을 토큰(작게 나눈 단위)으로 바꾼 뒤, 모델의 가중치(학습 결과를 담은 값)를 이용해 다음 토큰을 예측하는 과정입니다. GPU는 이 계산을 병렬로 처리해 속도를 높이고, CPU는 멀티코어(여러 CPU 코어)와 RAM을 활용해 같은 작업을 수행합니다. 따라서 CPU 실행에서는 속도와 메모리 사용량 사이의 타협이 핵심입니다. GGUF와 llama.cpp로 실행하기 CPU 환경에서는 양자화 모델을 주로 사용합니다. 양자화는 모델 가중치의 표현 정밀도를 낮춰 파일 크기와 메모리 사용량을 줄이는 방식입니다. 4비트와 8비트 계열이 흔히 쓰이며, 정밀도를 낮추면 실행 부담은 줄지만 답변 품질과 안정성은 떨어질 수 있습니다. GGUF는 모델 가중치와 실행에 필요한 정보를 함께 담는 파일 형식입니다. llama.cpp는 이 GGUF 모델을 CPU에서 실행하도록 최적화된 오픈소스 프로젝트이며, 별도의 AI 서버를 구축하지 않아도 명령어만으로 실행할 수 있습니다. 먼저 Windows 또는 Linux에서 명령어를 실행할 수 있는 환경을 마련하고, llama.cpp를 빌드하거나 실행 파일을 준비합니다. 이어서 GGUF 모델 파일을 내려받아 실행 파일과 모델 경로를 명령어에 지정하면 됩니다. ./llama-cli -m ./models/model.gguf -p "CPU 기반 로컬 AI의 장점을 설명해줘" -m 은 모델 파일 위치를 지정하고, -p 는 AI에게 전달할 프롬프트(입력 문...

MCP(Model Context Protocol)란 무엇이며 왜 주목받는가?

목차 MCP의 정의와 등장 배경 호스트·클라이언트·서버 구조 프리미티브와 JSON-RPC 흐름 도구 발견·호출과 전송 방식 활용 예시 결론 MCP의 정의와 등장 배경 이 글은 MCP를 특정 서비스의 사용법이 아니라, AI 애플리케이션과 외부 도구를 연결하는 표준 구조로 이해하는 것을 전제로 합니다. MCP(Model Context Protocol)는 AI 애플리케이션이 파일, 데이터베이스, API, 업무 도구 등의 기능과 정보를 일정한 방식으로 주고받도록 정한 프로토콜입니다. 기존에는 AI 서비스마다 파일, 데이터베이스, API 같은 도구와 연결하는 방식을 따로 구현해야 했습니다. 서비스와 도구의 조합이 늘어날수록 연결 코드를 각각 유지해야 하는 부담도 커집니다. MCP는 공통 규격을 제공해 연결 코드를 재사용하기 쉽게 만들고, AI가 필요한 기능을 탐색한 뒤 호출하는 흐름을 표준화한다는 점에서 실질적인 이점을 제공합니다. 호스트·클라이언트·서버 구조 호스트는 사용자가 대화하는 AI 애플리케이션입니다. 호스트 안의 MCP 클라이언트는 특정 MCP 서버와 연결을 관리하고, MCP 서버는 파일 검색이나 데이터 조회처럼 외부 시스템에 접근할 수 있는 기능을 제공합니다. 비유하면 호스트는 사무실, 클라이언트는 담당 연락 창구, 서버는 외부 협력업체에 가깝습니다. 이 구조에서는 호스트가 시스템마다 다른 연결을 직접 구현하지 않습니다. 호스트는 MCP 클라이언트를 통해 서버와 통신하고, 클라이언트는 서버가 공개한 기능과 데이터를 호스트에 전달하며 MCP 메시지를 주고받습니다. 서버는 정해진 요청만 처리하므로 기능별 권한과 책임을 분리하기 쉽습니다. 다만 MCP가 자동으로 보안을 보장하는 것은 아니므로 서버 권한, 입력 검증, 인증·권한·네트워크 보안 설정을 별도로 관리해야 합니다. 프리미티브와 JSON-RPC 흐름 MCP 서버가 제공하는 핵심 프리미티브는 Tools, Resources, Prompts입니다. Tools는 AI가 인자를 넘겨 실...

AI 에이전트(Agent)란 무엇이며 일반 챗봇과 무엇이 다른가?

목차 먼저 알아둘 전제 일반 챗봇은 어떻게 동작할까? AI 에이전트의 동작 원리 Tool 사용 능력과 작업 범위 기억과 컨텍스트 관리 자율적 계획과 의사결정 결론 최근 AI 기술의 발전은 챗봇과 AI 에이전트라는 두 가지 주요 형태로 나타나고 있습니다. 이 둘은 모두 언어 모델을 기반으로 하지만, 작동 방식과 활용 목표에서 중요한 차이를 가집니다. 이 글에서는 챗봇과 에이전트의 근본적인 차이점과 각각의 특징을 살펴보며, 어떤 상황에서 어떤 방식이 더 적합한지 안내합니다. 먼저 알아둘 전제 구분 챗봇 (Chatbot) AI 에이전트 (AI Agent) 목표 사용자 질의에 대한 답변 생성 목표 달성 을 위한 작업 수행 외부 도구 사용 제한적 또는 선택적 Tool 을 통한 외부 시스템 연동 작업 방식 단일 질의-응답 다단계 작업 및 계획 수정 자율성 낮음 (정해진 범위 내 응답) 상대적으로 높음 (상황 판단 및 의사결정) 이 글은 AI 에이전트를 특정 서비스나 제품이 아닌, 언어 모델에 도구 사용과 작업 제어 기능을 결합한 소프트웨어 구조로 설명합니다. 구현 방식에 따라 기능과 자율성의 수준은 달라질 수 있습니다. 핵심 차이는 답변 생성에 있습니다. 일반 챗봇은 사용자의 질문에 문장으로 답하는 데 초점을 두지만, AI 에이전트는 목표를 달성하기 위해 상황을 판단하고 필요한 작업을 이어서 수행합니다. 일반 챗봇은 어떻게 동작할까? 일반 챗봇은 사용자의 입력과 이전 대화 내용을 컨텍스트(현재 답변에 참고하는 정보)로 받아 적절한 응답을 생성합니다. 예를 들어 “Docker가 무엇인가요?”라는 질문에 개념과 사용법을 설명하는 식입니다. 대부분의 챗봇은 답변 자체가 처리 결과입니다. 외부 시스템의 데이터를 조회하거나 파일을 수정하는 기능이 연결되지 않았다면, 실제 작업 대신 그 방법을 안내하는 수준에 머뭅니다. AI 에이전트의 동작 원리 AI 에이전트는 먼저 사용자의 목표를 해석하고, ...

RAG(Retrieval-Augmented Generation), AI 언어 모델의 지평을 넓히다

AI 언어 모델은 방대한 정보를 학습하지만, 학습 시점 이후의 최신 정보나 특정 분야의 상세 지식에 접근하지 못해 답변에 한계가 있습니다. 이러한 문제를 해결하고 모델이 외부 지식을 참고하게 만드는 핵심 기술이 바로 RAG(Retrieval-Augmented Generation)입니다. RAG는 외부 지식 기반에서 필요한 정보를 '검색'하여 '생성' 능력을 강화하는 방식으로, AI 모델이 더욱 정확하고 신뢰성 높은 답변을 제공하도록 돕습니다. 이 글은 AI 챗봇을 써본 경험이 있다면 충분히 이해할 수 있으며, RAG의 핵심 구성 요소와 작동 원리를 중심으로 설명합니다. 목차 RAG란 무엇인가요? RAG의 핵심 구성 요소 RAG의 작동 원리 RAG의 활용 예시와 주의점 결론 RAG란 무엇인가요? RAG는 AI 언어 모델에 '도서관 사서'를 붙여주는 것과 같습니다. 질문이 들어오면 사서(RAG 시스템)가 관련 서적(외부 데이터)을 찾아 내용을 요약해서 모델에게 전달하고, 모델은 그 정보를 바탕으로 답변합니다. 이 기술은 모델의 학습 이후에 생성된 최신 정보나 특정 도메인의 전문 지식을 외부 데이터 소스를 통해 활용하여 답변의 정확성과 신뢰성을 높입니다. RAG의 핵심 구성 요소 임베딩 (Embedding) 임베딩은 텍스트 문서를 의미 있는 숫자 벡터(vector) 형태로 변환하는 기술입니다. 마치 도서관 사서가 책의 내용을 파악해 주제별로 분류하고 서가에 배치하는 것과 비슷합니다. 단어나 문장 같은 언어 요소를 수치 공간의 한 점으로 표현하여, 의미적으로 유사한 텍스트는 벡터 공간에서 가까운 위치에 있도록 만듭니다. 이를 통해 시스템은 텍스트 사이의 의미적 유사성을 수치적으로 비교할 수 있습니다. 벡터 데이터베이스 (Vector Database) 벡터 데이터베이스는 임베딩된 벡터 데이터를 효율적으로 저장하고, 유사도 기반의 검색을 빠르게 수행할 수 있도록 설계된 특수 데이터베이스입니다. 도서관...

AI 음성 생성(TTS)과 음성 인식(STT)의 원리 및 실생활 활용법

AI 음성 기술은 텍스트를 사람처럼 자연스러운 음성으로 바꾸고(TTS), 사람의 말을 정확하게 텍스트로 옮기는(STT) 기술을 통해 인간과 기계가 소통하는 방식을 근본적으로 변화시키고 있습니다. 이 기술은 일상의 편리함을 넘어 정보 접근성을 높이고 새로운 형태의 콘텐츠를 가능하게 합니다. 이 글에서는 AI 음성 기술의 핵심 원리를 살펴보고, 다양한 활용 사례를 통해 그 가치를 조명합니다. 목차 음성 생성(TTS)의 기본 원리 음성 인식(STT)의 기본 원리 음성 기술을 구동하는 주요 딥러닝 모델 AI 음성 기술의 핵심 활용 사례 결론 음성 생성(TTS)의 기본 원리 음성 생성(Text-to-Speech, TTS)은 글자를 소리로 바꾸는 기술입니다. 이 과정은 입력된 텍스트를 음운학적 단위로 분석해 음소(phoneme) 같은 음성 표현으로 변환하는 단계로 시작합니다. 이 음성 표현을 기반으로 AI 모델은 멜 스펙트로그램(mel spectrogram)과 같은 음향 특징을 생성하고, 마지막으로 보코더(vocoder)가 이 음향 특징을 실제 사람의 음성과 유사한 음향 파형으로 합성하여 소리로 출력합니다. 음성 인식(STT)의 기본 원리 음성 인식(Speech-to-Text, STT)은 사람의 음성을 글자로 변환하는 기술입니다. 이 기술은 마이크를 통해 들어온 음성 신호에서 특징을 추출한 뒤, AI 모델이 소리의 패턴과 언어적 문맥을 함께 분석하여 가장 가능성 높은 텍스트를 생성합니다. 주변 소음이나 말하는 사람의 특성에도 영향을 덜 받으며 잘 작동하는 것이 중요합니다. 음성 기술을 구동하는 주요 딥러닝 모델 AI 음성 기술의 핵심에는 방대한 데이터를 학습한 딥러닝 모델이 있습니다. 음성 생성(TTS) 분야에서는 Tacotron, FastSpeech, VITS 같은 모델과 트랜스포머(Transformer) 기반 아키텍처가 주로 활용됩니다. 최근에는 확산(Diffusion) 및 생성형 음성 모델도 연구되며, 이들은 텍스트의 문맥적 특징을 반영하여...

AI로 문서 요약, 번역, 이메일 작성을 자동화하는 실전 가이드

반복적인 문서 요약 작업은 많은 시간과 노력을 요구하며, AI 기술을 활용하면 이러한 과정을 더욱 효율적으로 자동화할 수 있습니다. 이 글에서는 대규모 언어 모델(LLM)을 기반으로 문서를 효율적으로 처리하고 자동화 파이프라인을 구축하는 실질적인 방법을 소개합니다. 목차 AI 자동화의 핵심: 대규모 언어 모델 (LLM) 기본 정확한 결과물을 위한 프롬프트 엔지니어링 기초 자동화 구현 전략: 문서/텍스트 전처리 기법 자동화 구현 전략: API 연동 및 활용 자동화 구현 전략: LLM 출력 후처리 결론 AI 자동화의 핵심: 대규모 언어 모델 (LLM) 기본 대규모 언어 모델(LLM)은 방대한 양의 텍스트 데이터를 학습하여 사람의 언어를 이해하고 생성하는 AI입니다. 이 모델들은 복잡한 문맥을 파악하고, 다양한 유형의 질문에 답변하며, 요청에 따라 요약, 번역, 글쓰기와 같은 작업을 수행할 수 있습니다. LLM은 단순히 단어를 나열하는 것을 넘어, 문장의 의미와 의도를 파악하여 맥락에 맞는 적절한 결과물을 도출합니다. 이러한 능력은 문서 자동화 작업에 매우 중요한 역할을 합니다. 정확한 결과물을 위한 프롬프트 엔지니어링 기초 프롬프트 엔지니어링은 AI 언어 모델에게 원하는 결과물을 얻기 위해 효과적인 명령(프롬프트)을 설계하는 기술입니다. LLM은 일관된 문맥을 유지할 수 있으나, 때때로 사실 오류를 포함할 수 있으므로, 명확하고 구체적인 지시를 통해 모델의 잠재력을 최대한 끌어내고 정확도를 높여야 합니다. 역할 부여, 예시 제공, 제약 조건 명시 등의 기법이 활용됩니다. 예를 들어, 단순히 '문서 요약해 줘' 대신 '당신은 전문 편집자입니다. 다음 보고서를 300자 이내로 핵심 내용만 요약하고, 일반 독자가 이해하기 쉽게 작성해주세요'와 같이 구체적인 역할을 부여하고 길이를 제한하면 훨씬 더 정확하고 유용한 결과물을 얻을 수 있습니다. 자동화 구현 전략: 문서/텍스트 전처리 기법 LLM에 텍스트를 전달하기...

AI 무료 vs. 유료 서비스: 성능, 속도, 데이터 보호까지 핵심 차이점 분석

AI 무료와 유료 서비스는 단순한 가격 차이를 넘어 모델 성능, 응답 속도, 데이터 처리 등 핵심적인 영역에서 큰 차이를 보인다. 많은 사용자가 AI 도구를 경험하며 무료 서비스의 한계에 부딪히거나, 유료 전환의 필요성을 느끼는 경우가 많다. 이 글은 기본적인 AI 서비스 사용 경험이 있거나 AI 도구 도입에 관심 있는 IT 입문~중급자를 대상으로, 두 서비스 유형의 실질적인 차이점을 비교 분석한다. 비교 항목 무료 AI 서비스 유료 AI 서비스 모델 성능 구형 또는 제한된 기능의 모델 최신, 고성능 AI 언어 모델 사용량 제한 엄격한 횟수 및 토큰 제한 높은 한도, 종량제 선택 가능 응답 속도 지연 발생 가능성 높음 빠르고 안정적인 응답 속도 데이터 보안 서비스마다 정책 상이 서비스·요금제별 정책 상이, 기업용 보안 기능 제공 가능 목차 모델 성능 및 최신 버전 사용량 제한 및 과금 방식 응답 속도와 처리 우선순위 데이터 처리 및 개인 정보 보호 당신에게 맞는 AI 서비스 선택하기 결론 모델 성능 및 최신 버전 유료 AI 서비스는 일반적으로 최신 AI 모델과 고급 기능을 더 넓은 범위에서 제공하는 경우가 많다. 이 모델들은 방대한 데이터를 학습하여 복잡한 질문 이해, 추론 능력, 창의적인 콘텐츠 생성 등에서 뛰어난 성능을 발휘한다. 반면 무료 서비스는 구형 모델을 제공하거나, 최신 모델의 기능을 제한된 형태로만 제공하는 경우가 많다. 이러한 차이는 복잡한 작업이나 긴 문맥을 처리할 때 답변의 품질 차이로 이어질 수 있다. 중요한 업무나 고품질의 결과물이 필요한 경우, 유료 서비스의 최신 모델이 더 안정적인 결과를 제공하는 경향이 있다. 사용량 제한 및 과금 방식 무료 AI 서비스는 대부분 엄격한 사용량 제한을 둔다. 하루에 처리할 수 있는 질문 수, 한 번에 입력할 수 있는 글자(토큰) 수, 혹은 특정 기능의 사용 횟수 등이 제한될 수 있다. 이러한 제한은 일상적인 가벼운 사용...

좋은 AI 프롬프트 작성법: 원하는 답변을 얻는 10가지 방법

AI 언어 모델의 답변이 기대와 다르거나 일관성이 없다면, 프롬프트 작성법을 점검해볼 때입니다. 효과적인 프롬프트는 AI 모델이 사용자의 의도를 정확히 파악하고, 원하는 형식과 내용으로 응답하도록 돕는 중요한 도구입니다. AI 언어 모델의 답변이 들쭉날쭉하여 아쉬움을 느꼈던 사용자라면 주목해 주세요. 이 글에서는 AI 모델과의 상호작용을 극대화하여 더 유용하고 정확한 답변을 얻는 4가지 핵심 원칙과 3가지 추가 팁을 소개합니다. 목차 왜 좋은 프롬프트가 중요할까요? 효과적인 AI 프롬프트 작성 4가지 핵심 원칙 프롬프트 작성 시 추가 팁 3가지 결론 관련 글 왜 좋은 프롬프트가 중요할까요? AI 언어 모델은 방대한 데이터로 학습되었지만, 사용자의 구체적인 의도나 맥락을 완벽히 파악하지 못할 때가 있습니다. 모호하거나 추상적인 프롬프트는 모델이 여러 방향으로 해석할 여지를 주어, 사용자가 예상치 못한 답변을 받게 만듭니다. 반면, 잘 작성된 프롬프트는 모델이 특정 방향으로 추론하고, 필요한 정보를 정확히 추출하여 원하는 결과에 더 가까운 응답을 생성하도록 돕습니다. 결국, 좋은 프롬프트는 AI 모델을 효율적인 작업 처리와 고품질 결과물 도출을 위한 필수적인 기술입니다. 단순한 질문을 넘어, 프롬프트 설계에 공을 들여야 AI의 잠재력을 최대한 활용할 수 있습니다. 효과적인 AI 프롬프트 작성 4가지 핵심 원칙 AI 언어 모델로부터 원하는 답변을 얻기 위한 가장 중요한 4가지 원칙입니다. 1. 명확하고 구체적인 지시 모호한 지시보다는 명확하고 구체적인 지시를 내려야 합니다. AI 언어 모델은 문맥을 파악하지만, 여전히 사람처럼 말하지 않은 의도나 전제를 이해하는 데 한계가 있습니다. 질문의 목적, 원하는 정보의 종류, 제외할 내용, 그리고 답변의 길이, 사용 금지 단어, 포함해야 할 키워드 같은 구체적인 제약 조건을 상세히 명시하는 것이 중요합니다. 또한 질문과 관련된 배경 정보나 맥락을 충분히 제공하면 모델이 상황을 더 잘 이해하고 관...

LLM(대규모 언어 모델)의 답변 생성 원리: 토큰에서 문장까지

AI 언어 모델이 어떻게 사람의 질문에 그럴듯한 답변을 내놓는지는 많은 이들의 궁금증을 자아냅니다. 이 글은 AI 언어 모델이 답변을 생성하는 내부 과정을 토큰화, 어텐션 메커니즘, 다음 토큰 예측, 샘플링 전략의 네 가지 핵심 단계로 나누어 설명합니다. 이 글은 AI에 대한 기본적인 이해를 가진 독자를 대상으로 합니다. 목차 토큰화: 언어를 쪼개는 과정 어텐션 메커니즘: 중요한 정보에 집중하기 다음 토큰 예측: 확률로 단어 만들기 샘플링 전략: 창의성과 일관성 조절 결론 토큰화: 언어를 쪼개는 과정 AI 언어 모델은 텍스트를 바로 이해하지 못하고, 이를 숫자 형태로 변환해야 합니다. 이 과정이 바로 토큰화인데, 입력된 문장을 의미 있는 작은 단위인 '토큰'으로 쪼개는 것입니다. 토큰은 단어가 될 수도 있고, 단어의 일부 또는 구두점이 될 수도 있으며, 각 토큰은 고유한 숫자 ID로 매핑됩니다. 예를 들어 "안녕하세요, AI 모델!"이라는 문장은 모델이 사용하는 토크나이저에 따라 여러 개의 토큰으로 분리됩니다. 토큰은 단어 전체일 수도 있고, 단어의 일부나 구두점이 될 수도 있으며, 모델마다 분리 방식은 다를 수 있습니다. 이 토큰들은 모델의 학습된 어휘 사전에 따라 숫자로 변환되어 내부적으로 처리됩니다. 어텐션 메커니즘: 중요한 정보에 집중하기 토큰화된 입력이 모델에 들어가면, 모델은 문장 내의 모든 토큰을 똑같이 중요하게 보지 않습니다. 어텐션 메커니즘은 모델이 현재 생성하려는 토큰과 가장 관련 있는 입력 토큰 및 이전에 생성된 토큰의 정보를 가중치로 계산하여 활용하게 돕는 기술입니다. 이는 마치 사람이 대화할 때 중요한 단어에 귀 기울이는 것과 같습니다. 어텐션 메커니즘 덕분에 모델은 장문에서도 중요한 맥락을 놓치지 않고, 복잡한 질문에 대해 문맥을 유지한 답변을 생성할 수 있습니다. 이 기술은 특히 긴 텍스트나 복잡한 관계를 이해하는 데 필수적입니다. 다음 토큰 예측: 확률로 단어 만들기 AI...

생성형 AI란 무엇인가? ChatGPT부터 시작하는 AI 입문

AI 기술에 대한 관심이 커지면서 생성형 AI는 우리 삶 곳곳에 자리 잡고 있습니다. 특히, ChatGPT를 중심으로 중요한 기술인 대규모 언어 모델(LLM)과 효율적인 사용을 위한 프롬프트 엔지니어링의 기본을 다룹니다. 목차 생성형 AI란 무엇인가? ChatGPT의 등장과 핵심 특징 대규모 언어 모델(LLM)의 이해 프롬프트 엔지니어링의 시작 결론 생성형 AI란 무엇인가? 생성형 AI는 기존의 AI와 달리 새로운 콘텐츠를 스스로 만들어내는 인공지능 기술입니다. 데이터를 분석하고 패턴을 찾는 것을 넘어, 학습된 지식을 바탕으로 텍스트, 이미지, 오디오, 비디오, 심지어 소프트웨어 코드까지 창의적으로 생성합니다. 예를 들어, 특정 스타일의 음악을 작곡하거나, 간단한 설명만으로 사실적인 이미지를 생성하고, 주어진 주제에 대한 기사를 쓰는 등 인간의 창작 활동을 보조하거나 자동화하는 데 활용됩니다. ChatGPT의 등장과 핵심 특징 생성형 AI의 대표적인 서비스 중 하나인 ChatGPT는 2022년 말 출시 이후 인간과 거의 구분이 어려울 정도로 자연스럽고 유창한 대화를 가능하게 하여 큰 주목을 받았습니다. 복잡한 질문에 대해 맥락을 이해하고 논리적인 답변을 제공하는 능력이 뛰어납니다. ChatGPT 외에도 Google의 Gemini, Anthropic의 Claude 등 다양한 생성형 AI 서비스들이 활발히 사용되고 있습니다. ChatGPT의 주요 특징은 그 다재다능함에 있습니다. 시나 소설 같은 창의적인 글쓰기, 전문적인 보고서 초안 작성, 복잡한 데이터 요약, 이메일 작성, 회의록 요약, 여행 일정 만들기, 엑셀 함수 작성, 블로그 초안 작성, 코드 디버깅이나 새로운 코드 작성 등 다양한 작업을 수행할 수 있습니다. 이러한 기능은 개인의 업무 효율성을 높이고, 교육, 연구, 콘텐츠 제작 등 여러 분야에서 큰 변화를 가져오고 있습니다. 대규모 언어 모델(LLM)의 이해 ChatGPT와 같은 생성형 AI의 핵심에는 '대규모 언어 모...