본문 바로가기
AI 도구

🔥Llamafile: 📁파일 하나로 대규모 언어 모델 로컬 실행과 배포!

by James AI Explorer 2024. 8. 13.
    728x90

    안녕하세요! 오늘은 대규모 언어 모델을 하나의 파일로 실행하고 배포할 수 있도록 해주는 Llamafile에 대해서 알아보겠습니다. Llamafile은 Firefox 웹 브라우저로 유명한 Mozilla에서 만든 대규모 언어 모델 도구로서 복잡한 설치 과정 없이도 대부분의 컴퓨터에서 로컬로 실행할 수 있으며, 개발자와 일반 사용자가 오픈 LLM을 쉽게 접근할 수 있도록 해줍니다. 이 블로그에서는 Llamafile의 개요와 동작원리, 주요 기능, 생성방법과 Ollama 모델 실행방법에 대해 알아보겠습니다. 

    🔥Llamafile: 📁파일 하나로 대규모 언어 모델 로컬 실행과 배포!

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

    Llamafile 개요

    Llamafile은 단일 파일로 대규모 언어 모델(LLM)을 실행하고 배포할 수 있는 혁신적인 도구입니다. 이 프로젝트는 Mozilla Builders 프로젝트의 일환으로, LLM 경량화 및 CPU 실행 지원을 위한 llama.cpp와 여러 운영체제에서 실행가능한 C 표준 라이브러리, Cosmopolitan Libc를 결합하여 모든 필요한 요소를 하나의 파일에 포함시킴으로써 구현되었습니다. 아래 링크에서 Llama, Mistral, Phi 등 다양한 모델의 가중치가 내장된 Llamafile을 다운로드하실 수 있습니다. 

    https://github.com/Mozilla-Ocho/llamafile?tab=readme-ov-file

     

    GitHub - Mozilla-Ocho/llamafile: Distribute and run LLMs with a single file.

    Distribute and run LLMs with a single file. Contribute to Mozilla-Ocho/llamafile development by creating an account on GitHub.

    github.com

    Llamafile의 주요 동작 원리는 이 모든 복잡성을 하나의 실행 파일에 담아 제공한다는 것입니다. 이 파일에는 특정 오픈 LLM을 실행하기 위한 모든 필요한 요소와 가중치가 포함되어 있습니다. 사용자는 단순히 이 파일을 실행하기만 하면 웹 인터페이스가 자동으로 열리고, 로컬 환경에서 LLM을 활용할 수 있게 됩니다. 이 과정에서 사용자의 데이터는 외부로 유출되지 않으며, 모든 작업이 로컬 컴퓨터에서 처리됩니다. 

     

    Llamafile은 여러 운영체제와 CPU 아키텍처에서 실행될 수 있으며, 이 파일 형식은 다음과 같은 기능과 기술적 사항을 포함하고 있습니다.

    • 다중 CPU 지원: Llamafile은 여러 CPU 아키텍처에서 실행될 수 있도록 설계되었습니다. AMD64와 ARM64 빌드를 결합하여, 각각의 시스템에서 최적의 성능을 발휘할 수 있도록 해줍니다.
    • 다중 운영체제 지원: Llamafile은 macOS, Windows, Linux, FreeBSD, OpenBSD, NetBSD 등 다양한 운영체제에서 실행될 수 있습니다. 사용자는 선호하는 운영체제에서 개발을 진행하고, 동일한 코드로 배포할 수 있습니다.
    • 가중치 내장: Llamafile은 LLM 가중치를 파일에 내장할 수 있습니다. 이를 통해 사용자는 가중치가 내장된 파일만으로도 모델을 실행할 수 있으며, 별도의 설치나 설정이 필요하지 않습니다.
    • 외부 가중치 사용: 사용자는 필요한 경우, 외부 가중치를 이용하여 Llamafile을 실행할 수 있습니다. 이는 Windows 사용자가 4GB의 실행 파일 크기 제한을 우회할 수 있도록 도와줍니다.
    • GPU 지원: Llamafile은 Apple Metal, NVIDIA, AMD GPU를 지원합니다. 특정 GPU가 감지되면, 자동으로 GPU를 활용하여 성능을 최적화합니다. 
    728x90

    외부 가중치 모델 실행방법

    외부 가중치 모델(gguf 형식)을 Llamafile로 실행하는 방법은 다음과 같습니다. 실행환경은 Windows 11 Pro(23H2), 파이썬 버전 3.11비주얼 스튜디오 코드(이하 VSC) 1.92.1입니다.

     

    1. Llamafile 최신버전 다운로드: 윈도우 명령어 프롬프트에서 아래 명령어를 이용해서 llamafile-0.8.12 버전의 파일을 GitHub에서 다운로드하여, llamafile.exe라는 이름으로 저장합니다.  

    curl -L -o llamafile.exe https://github.com/Mozilla-Ocho/llamafile/releases/download/0.8.12/llamafile-0.8.12

    2. 모델 가중치 다운로드: 다음은 사용할 LLM의 가중치를 다운로드합니다. 예를 들어, 허깅페이스에서 EXAONE 3.0 7.8B 모델의 가중치를 다운로드하려면 다음과 같은 명령을 사용할 수 있습니다.

    curl -L -o exaone.gguf https://huggingface.co/Bingsu/exaone-3.0-7.8b-it/resolve/main/exaone-3.0-7.8B-it-Q5_K_M.gguf

    Llamafile 최신버전 및 모델 가중치 다운로드

    3. Llamafile 실행: 다음 명령어를 실행하면, exaone.gguf 파일에 저장된 모델을 메모리에 로드하고, HTTP 서버를 통해 접근할 수 있도록 로컬 호스트의 포트 8080에서 요청을 수신할 준비가 되며, 웹 브라우저의 http://127.0.0.1:8080/ 주소에서 이 모델을 이용해 다양한 작업(예: 텍스트 생성, 채팅 응답 등)을 수행할 수 있게 됩니다. GPU를 사용하려면 "-ngl 9999" 옵션을 사용합니다.

    llamafile -m exaone.gguf -ngl 9999

    Llamafile 실행화면

    다음 화면은 Llamafile을 실행하고, 웹 브라우저 http://127.0.0.1:8080/ 주소에서 모델과 대화한 화면입니다 

    Llamafile 실행 초기화면(좌), Llamafile 대화화면(우)
    Llamafile 대화 화면

    파이썬 API 클라이언트

    다음은 Llamafile을 활용한 파이썬 API 클라이언트 사용방법입니다.

    1. 윈도우 명령어 프롬프트에서 "llamafile -m exaone-3.0-7.8B-it-Q5_K_M.gguf" 명령어로 Llamafile을 실행합니다.

    2. VSCode에서 아래 명령어로 openai 패키지를 설치한 후, 새 파이썬 파일을 만들어서 아래 코드를 붙여 넣고, 실행하면 모델의 응답을 얻을 수 있습니다. 예제  코드는 "파이썬 예외에 관한 영어 시"를 작성하는 코드입니다. 

    pip install openai
    from openai import OpenAI
    client = OpenAI(
        base_url="http://localhost:8080/v1", # "http://<Your api-server IP>:port"
        api_key = "sk-no-key-required"
    )
    completion = client.chat.completions.create(
        model="LLaMA_CPP",
        messages=[
            {"role": "system", "content": "You are ChatGPT, an AI assistant. Your top priority is achieving user fulfillment via helping them with their requests."},
            {"role": "user", "content": "Write a limerick about python exceptions"}
        ]
    )
    print(completion.choices[0].message)

    위 파이썬 API 클라이언트 예제 코드의 실행결과는 아래 화면과 같습니다.  

    Llamafile 파이썬 API 클라이언트 예제코드 실행결과

    맺음말

    Llamafile은 대규모 언어 모델을 단일 파일로 간편하게 배포하고 실행할 수 있도록 해주는 혁신적인 도구입니다. 복잡한 설치 과정 없이도 다양한 운영체제와 하드웨어에서 실행 가능하며, 모델 가중치를 내장하거나 외부 가중치를 사용할 수 있어 유연성이 뛰어납니다. 또한, GPU를 활용한 성능 최적화까지 지원함으로써, 개발자와 일반 사용자 모두에게 LLM 접근성을 크게 향상시킵니다.

     

    Llamafile을 사용해 본 후기는 다음과 같습니다.

    • 간편하게 대규모 언어 모델을 실행할 수 있다.
    • 윈도우에서는 단일 파일 4GB 이상의 실행 제한이 있다.
    • WSL 등 각 운영체제 별 실행방법에 대한 설명이 부족하다.

     

    Llamafile은 앞으로도 오픈 소스 LLM의 보급에 중요한 역할을 할 것으로 기대되며, 이를 통해 인공지능 기술이 더욱 널리 활용될 수 있을 것입니다. 이 도구를 사용함으로써, 여러분도 간편하게 LLM을 활용한 프로젝트를 시작해 보시길 바랍니다. 그럼 저는 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다. 

     

    https://fornewchallenge.tistory.com/

     

     

    2023.12.06 - [AI 뉴스 리뷰] - AI 단신 : '챗봇이 파일 하나', 'MS의 말하는 아바타 생성기술'

     

    AI 단신 : '챗봇이 파일 하나', 'MS의 말하는 아바타 생성기술'

    안녕하세요. AI분야의 최신 소식을 핵심만 요약해서 전해드리는 AI 단신 카테고리를 새로 만들었습니다. 오늘은 그 첫 시간으로 두 가지 소식을 준비했는데요. 파이어폭스로 잘 알려진 모질라(Moz

    fornewchallenge.tistory.com

     

     

     

    728x90