knights-analytics/hugot
Onnx transformer pipelines in Golang
해결하는 문제
Hugot은 Go 애플리케이션에서 transformer 기반 AI 모델을 기본적으로 실행할 수 있는 방법을 제공합니다. 추론을 위해 별도의 Python RPC 서비스를 유지하거나 외부 REST API에 의존할 필요가 없어지므로, 개발자는 ML 모델을 Go 프로덕션 스택과 긴밀하게 결합하여 더 나은 성능과 확장성을 얻을 수 있습니다.
작동 방식
이 라이브러리는 ONNX(Open Neural Network Exchange)를 기본 모델 형식으로 사용합니다. Hugging Face transformers 라이브러리를 통해 Python에서 학습된 모델을 ONNX로 내보낸 다음 Go에서 실행할 수 있습니다. Hugot은 실행을 위해 세 가지 플러그형 백엔드를 지원합니다:
- Go: 더 간단한 워크로드와 cgo가 없는 환경을 위한 기본 Go 백엔드.
- ONNX Runtime (ORT): 생성형 AI를 포함한 모든 파이프라인을 지원하는 고성능 C 백엔드.
- OpenXLA: TPU 및 훈련/미세 조정 기능을 지원하는 C 백엔드.
대상 독자
자체 하드웨어에서 처음부터 사용자 지정 추론 또는 훈련 코드를 작성하지 않고 transformer 파이프라인을 배포하고 미세 조정하려는 Go 개발자 및 ML 엔지니어를 위해 설계되었습니다.
주요 기능
- Hugging Face 호환성: Python에서 Go로 모델을 그대로 이동하고 동일한 예측 결과를 얻을 수 있습니다.
- 다양한 파이프라인 지원: 텍스트 생성, 이미지 분류, 객체 탐지, 질의응답 및 제로샷 분류를 포함합니다.
- 하드웨어 가속: CUDA, TPU, TensorRT, DirectML, CoreML 및 OpenVINO를 지원합니다.
- 훈련 기능: XLA 백엔드를 사용하여 특징 추출 파이프라인(예: RAG 및 의미 검색용)의 미세 조정을 지원합니다.
- 플러그형 스토리지: 기본 OS 파일 시스템을 오브젝트 스토어용 사용자 지정 어댑터로 교체할 수 있습니다.
관련
- Dispatch
- 프로젝트
- Dispatch
- Dispatch
- Dispatch