Gradio-Lite: 브라우저 내에서 완전히 실행되는 서버리스 Gradio

Hugging Face는 Gradio-Lite (@gradio/lite)를 발표했습니다. 이는 사용자의 웹 브라우저 내에서 완전히 실행될 수 있도록 Gradio 애플리케이션을 허용하는 JavaScript 라이브러리입니다. Pyodide, WebAssembly용 Python 런타임을 활용하여 @gradio/lite는 서버 측 인프라의 필요성을 제거하여 인터랙티브 머신러닝 앱의 서버리스 배포를 가능하게 합니다.

기술 아키텍처 및 구현

@gradio/lite는 Pyodide를 사용하여 브라우저 환경에서 Python 코드를 직접 실행합니다. 이 아키텍처는 개발자가 Gradio 애플리케이션용 표준 Python 코드를 작성하고 클라이언트 측에서 원활하게 렌더링될 수 있도록 허용합니다.

통합 단계

Gradio-Lite 앱을 배포하기 위해 개발자는 세 가지 주요 단계를 따릅니다:

  1. 에셋 가져오기: CDN을 통해 @gradio/lite JavaScript 및 CSS 파일을 포함합니다(예: jsDelivr).
  2. 컨테이너 정의: HTML 본문 내에서 <gradio-lite> 태그를 생성하여 앱이 렌더링되어야 할 위치를 지정합니다. theme 속성(예: theme="dark")은 시스템 테마를 재정의하는 데 사용할 수 있습니다.
  3. Python 코드 작성: Gradio Python 코드를 <gradio-lite> 태그 내부에 직접 배치합니다.

고급 구성

@gradio/lite는 단일 파일 스크립트를 넘어 복잡한 애플리케이션 구조를 지원합니다:

  • 다중 파일: <gradio-file> 태그는 개발자가 여러 파일을 정의할 수 있게 합니다. 애플리케이션의 진입점은 entrypoint 속성으로 표시되어야 합니다.
  • 의존성 관리: micropip 래퍼를 사용하여 브라우저에서 맞춤 Python 요구 사항을 설치할 수 있습니다. 요구 사항은 표준 requirements.txt 구문을 사용하는 <gradio-requirements> 태그 내에 나열됩니다.

브라우저 기반 실행의 주요 장점

클라이언트 측에서 Gradio 애플리케이션을 실행하면 기존 서버 기반 호스팅에 비해 세 가지 주요 장점이 제공됩니다:

  • 서버리스 배포: 서버 인프라의 필요성을 제거하여 호스팅 비용을 줄이고 공유 프로세스를 단순화합니다.
  • 저지연: 데이터가 클라이언트와 서버 간에 이동할 필요가 없으므로 상호 작용이 더 빨라져 사용자 경험이 더욱 원활해집니다.
  • 개인 정보 및 보안: 모든 데이터 처리는 사용자 기기에서 로컬로 발생하여 사용자 데이터가 비공개かつ 안전하게 유지됨을 보장합니다.

현재 제한 사항

서버리스 실행의 장점에도 불구하고, @gradio/lite에는 두 가지 주요 제약이 있습니다:

  • 초기 로드 시간: 애플리케이션은 일반적으로 브라우저가 먼저 Pyodide 런타임을 다운로드하고 설치해야 하기 때문에 초기 로드에 5~15초가 소요됩니다.
  • 패키지 호환성: 모든 Python 패키지가 지원되는 것은 아닙니다. numpy, scikit-learn, transformers-js와 같은 인기 라이브러리는 호환되지만, 개발자는 특정 종속성이 Pyodide에서 사용 가능한지 또는 micropip을 통해 설치할 수 있는지 확인해야 합니다.

Sources