본문 바로가기
AI 도구

[꿀팁] 비행기 모드 AI 채팅! MLCChat으로 스마트폰 데이터 연결 없이 AI 즐기기

by James AI Explorer 2024. 3. 10.
    728x90

    안녕하세요! 오늘은 "MLCChat"이라는 앱을 이용해서 데이터 연결 없이 스마트폰에서 대형 언어 모델과 대화하는 방법에 대해 알아보겠습니다. MLCChat(Machine Learning Chat)은 웹, iOS 및 Android 등 다양한 플랫폼에서 대규모 언어 모델을 실행할 수 있도록 지원하는 MLC LLM(Machine Learning Compilation for Large Language Models) 프로젝트의 일부로써, MLC LLM에서 컴파일하고 변환한 대형 언어 모델을 이용해서 대화형 인터페이스를 구현한 프로그램입니다. 이 블로그에서는 MLC LLM의 개요와 MLCChat DEMO 앱 설치 및 사용방법에 대해서 알아보겠습니다. 

    [꿀팁] 비행기 모드 AI 채팅! MLCChat으로 스마트폰 데이터 연결 없이 AI 즐기기

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    MLC LLM 개요

    MLC LLM(Machine Learning Compilation for Large Language Models)은 미국의 카네기 멜론 대학교 재학생인 Ruihang Lai를 포함한 94명의 개발자가 참여한 깃허브 프로젝트로써, 대형 언어 모델을 효율적으로 컴파일하여 어디서나 실행할 수 있게 해주는 솔루션입니다. 이 솔루션은 컴파일러 가속화를 통해 대규모 언어 모델을 다양한 플랫폼에 최적화하여 배포할 수 있도록 해줍니다. MLC LLM의 주요 역할은 다음과 같습니다:

    • 대규모 언어 모델의 컴파일: MLC LLM은 대규모 언어 모델을 효율적으로 실행가능한 형태로 변환하는 컴파일 기능을 제공합니다. 이를 통해 모델의 크기를 줄이고 실행 속도를 향상시킬 수 있습니다.
    • 네이티브 API와의 통합: MLC LLM은 컴파일된 언어 모델을 네이티브 API와 함께 통합하여 원하는 플랫폼 또는 환경에서 실행할 수 있도록 지원합니다. 네이티브 API는 특정 플랫폼이나 운영 체제에 내장된 기능 및 기능을 프로그램에서 직접 호출할 수 있는 인터페이스를 제공함으로써, 해당 플랫폼의 하드웨어와 소프트웨어 기능에 접근하여 외부 라이브러리나 서비스를 사용하는 것보다 더 빠르고 효율적인 솔루션을 개발할 수 있습니다.
    • 성능 최적화: MLC LLM은 컴파일러 가속화 기술을 사용하여 언어 모델의 성능을 최적화합니다. 이를 통해 모델의 실행 속도를 향상시키고 리소스를 효율적으로 활용할 수 있습니다.

    MLC LLM은 머신 러닝 모델을 개발, 최적화 및 배포할 수 있는 환경을 제공함으로써, 다양한 환경에서 머신 러닝 모델을 보다 쉽게 구현하고 실행할 수 있도록 지원합니다. 아래 이미지는 MLC LLM에서 지원하는 플랫폼과 하드웨어입니다. 

    MLC LLM 호환 플랫폼 및 하드웨어

    MLC LLM 프로젝트는 모델 정의, 모델 컴파일 및 런타임 세 가지 독립적인 하위 모듈로 구성되어 있습니다. 

    • 모델 정의: MLC는 다양한 사전 정의된 아키텍처를 제공합니다. 예를 들어, Llama (예: Llama2, Vicuna, OpenLlama, Wizard), GPT-NeoX (예: RedPajama, Dolly), RNNs (예: RWKV) 및 GPT-J (예: MOSS) 등이 있습니다. 모델 개발자는 Python만으로 코드 생성 및 런타임을 수정하지 않고도 모델을 정의할 수 있습니다.
    • 모델 컴파일: MLC는 대형 언어 모델을 특정 플랫폼 환경에 맞게 압축하고 가속화하기 위한 양자화 및 최적화 알고리즘을 Python으로 개발할 수 있습니다. TVM(Tensor Virtual Machine) Unity 컴파일러를 사용하면 모델을 효율적으로 변환하고 최적화하여 실행 속도를 향상시키고 여러 플랫폼에 배포할 수 있습니다.
    • 런타임: MLCChat은 여러 플랫폼에서 실행될 수 있도록 명령 줄(command line)용 C++, 웹용 Javascript, iOS용 Swift 및 Android용 Java 설계되었으며, 앱 개발자는 각 플랫폼의 런타임에 맞춰 MLC로 컴파일된 언어 모델을 자신의 프로젝트에 통합할 수 있습니다. 

    이러한 구조를 통해 개발자는 모델을 정의하고 컴파일한 다음, 해당 모델을 원하는 환경에 쉽게 통합하여 다양한 디바이스 및 플랫폼에서 사용할 수 있습니다. 아래 링크는 MLC LLM의 홈페이지입니다. 

    https://llm.mlc.ai/docs/

     

    👋 Welcome to MLC LLM — mlc-llm 0.1.0 documentation

    Table of Contents Docs > 👋 Welcome to MLC LLM Edit on GitHub 👋 Welcome to MLC LLM Discord | GitHub Machine Learning Compilation for Large Language Models (MLC LLM) is a high-performance universal deployment solution that allows native deployment of a

    llm.mlc.ai

     

    MLCChat 개발방법 소개

    MLCChat(Machine Learning Chat)은 MLC LLM 프로젝트의 일부로, MLC LLM으로 컴파일된 언어 모델을 사용하여 대화형 인터페이스를 구현하는 프로그램입니다. MLCChat은 명령 줄(C++), 웹(Javascript), iOS(Swift), Android(Java)와 같은 여러 플랫폼에 대한 런타임을 제공하며, 이를 통해 개발자는 MLC로 컴파일된 언어 모델을 쉽게 해당 플랫폼의 프로젝트에 통합할 수 있습니다. 

     

    안드로이드 환경에서 MLCChat을 개발하는 방법은 아래 링크에 나와있지만, CUDA, TVM, CMake, Android Studio 및 NDK, 리눅스 운영체제 등 여러 분야에 대한 높은 수준의 개발능력을 요구하기 때문에 쉽게 따라 하기 어려운데요. 안드로이드 환경에서 개발방법을 소개하면 다음과 같습니다. 

    • 1. Rust, Android Studio 및 NDK, CMake, JDK를 설치하고 환경 변수를 설정합니다.
    • 2. PyTorch 모델을 HuggingFace에서 다운로드하고 컴파일합니다. MLC LLM 프로젝트를 클론하고 필요한 모델을 다운로드한 후, TVM Unity 컴파일러를 사용하여 Android용 모델을 컴파일합니다.
    • 3. 컴파일된 모델을 사용하여 Android 프로젝트를 생성합니다. Android 라이브러리 디렉토리로 이동하고, 필요한 종속성을 빌드하고 Android 프로젝트를 설정합니다.
    • 4. 모델 가중치를 포함시키고 APK를 생성합니다. Android Studio에서 서명된 번들 또는 APK를 생성하고, ADB를 사용하여 APK와 모델 가중치를 디바이스에 설치합니다.

    자신이 원하는 허깅페이스 대형 언어 모델을 MLC LLM으로 컴파일해서, MLCChat 안드로이드 APK를 만드실 분들은 아래 링크를 참고하시기 바랍니다. 저는 Android 프로젝트 생성단계에서 라이브러리 빌딩에러가 발생하고 있네요. 

    https://llm.mlc.ai/docs/deploy/android.html

     

    Android App — mlc-llm 0.1.0 documentation

    Table of Contents Docs > Android App Edit on GitHub Android App Table of Contents The demo APK below is built for Samsung S23 with Snapdragon 8 Gen 2 chip. Rust (install) is needed to cross-compile HuggingFace tokenizers to Android. Make sure rustc, cargo,

    llm.mlc.ai

    728x90

    MLCChat DEMO 앱

    원하는 대형 언어 모델을 자유롭게 선택해서 스마트폰에서 사용하려면 MLCChat 앱을 개발하는데 시간이 걸리기 때문에 DEMO 앱을 통해서 기능을 체험해 보겠습니다. 아래 다운로드 버튼을 클릭하시면 MLCChat DEMO 앱을 다운로드하실 수 있습니다. 스마트폰에 앱을 설치하고 "MLCChat" 앱을 실행하면 아래 화면 좌측과 같이 Model List가 표시되는데요. 

    MLCChat 앱 다운로드

    DEMO 앱에서는 좌측 화면과 같이 "Llama 2 7B" 모델과 "RedPajama-INCITE-Chat-3B"의 두 가지 모델을 사용하실 수 있습니다. 휴지통 왼쪽 아이콘을 클릭하면, 언어 모델이 다운로드되고, 아이콘은 채팅아이콘으로 바뀌며, 이때부터는 스마트폰의 데이터 연결을 해제하거나, 상단 상태표시줄에 보시는 것처럼 "비행기모드" 상태에서 채팅을 하실 수 있습니다.

     

    채팅은 각 모델의 휴지통 왼쪽 채팅 아이콘을 통해 하실 수 있으며, 아이콘 클릭 후 약 1~2초 정도 모델 초기화 시간이 소요됩니다. 아래 오른쪽 화면은 Llama 2 7B와의 대화 화면인데요. Llama 2 7B 모델은 한국어 질문을 이해는 하지만 답변하거나, 번역하는 능력은 부족하네요.

    MLCChat  초기화면(좌), Llama 2 7B 대화화면(우) - 비행기 모드
    MLCChat Llama 2 7B 한국어 질문(좌), 답변내용 번역(우) - 비행기 모드

    다음 화면은 "RedPajama-INCITE-Chat-3B" 언어 모델과의 대화인데요. 이 언어 모델은 차에 침입하는 방법과 같은 부적절한 내용에도 표현의 제한 없이 응답하는 "Uncensored(무검열)" 모델이며, 다양한 질문을 해보실 수 있습니다. 

    RedPajama-INCITE-Chat-3B "Uncensored" 언어 모델

    위와 같이 MLCChat 앱을 통해 "Llama 2 7B", "RedPajama-INCITE-Chat-3B" 두 가지 모델과 채팅을 해보았는데요. 앱의 반응속도와 두 언어 모델의 응답속도는 아주 빠른 속도는 아니지만 사용하기에 불편이 없는 수준이었습니다. 다만 DEMO앱이라 그런지 한글이 지원되지 않고 대화기록 저장기능이 없는 점은 아쉬웠습니다.

     

    마치며

    오늘은 MLCChat 앱을 통해 데이터 연결 없이 스마트폰에서 대형 언어 모델과 대화하는 방법을 살펴보았습니다. MLCChat은 다양한 플랫폼에서 대규모 언어 모델을 실행할 수 있도록 지원하는 MLC LLM 프로젝트의 일부로, 원하는 언어 모델을 컴파일해서 직접 대화 인터페이스를 개발할 수 있습니다. 앱 개발 과정 없이 간편하게 MLCChat을 체험하고 싶다면 DEMO 앱을 이용할 수 있습니다. 

     

    DEMO 앱에서는 "Llama 2 7B"와 "RedPajama-INCITE-Chat-3B" 두 가지 모델을 사용할 수 있으며, 데이터 연결 없이도 다양한 질문에 대한 답변을 얻거나 창의적인 작업을 수행할 수 있습니다. MLCChat은 스마트폰에서 언제 어디서든 AI와 소통하고 다양한 작업을 수행할 수 있는 기술이며, 앞으로 MLCChat과 같은 기술의 발전은 우리의 일상과 업무 방식에 큰 변화를 가져올 것으로 기대됩니다.

     

    오늘 내용은 여기까지입니다. 여러분도 MLC LLM 프로젝트에 도전해 보시면 소프트웨어 개발능력을 좀 더 발전시키실 수 있을 것 같습니다. 저는 그럼 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다. 

     

     

    https://fornewchallenge.tistory.com/

    2024.03.06 - [대규모 언어모델] - 클로드(Claude) 3: GPT-4와 제미나이를 뛰어넘은 언어 모델의 등장!

     

    클로드(Claude) 3: GPT-4와 제미나이를 뛰어넘은 언어 모델의 등장!

    안녕하세요! 오늘은 3월 4일 발표된 앤트로픽의 최신 대형 언어 모델 클로드(Claude) 3에 대해서 알아보겠습니다. 이번에 발표된 클로드 3 모델 패밀리는 Haiku, Sonnet 및 Opus라는 세 가지 최신 모델로

    fornewchallenge.tistory.com

     

    728x90