
ESP32S3에서 완전히 오프라인으로 실행되는 에스프레소 Q/A 모델
요약
ESP32S3 환경에서 클라우드 연결 없이 완전히 오프라인으로 작동하는 에스프레소 Q/A 전용 소형 모델 'barista v0.1'을 소개합니다. 메모리 효율을 위해 레이어별 임베딩과 비대칭 어휘 기술을 사용하여 제한된 하드웨어 자원에서 텍스트 생성을 구현했습니다.
핵심 포인트
- ESP32S3 N16R8에서 클라우드 없이 로컬 실행 가능
- 메모리 맵핑을 통한 플래시 기반 레이어별 임베딩 활용
- 출력 클래스를 854개로 제한한 비대칭 어휘 구조 적용
- 특정 도메인(에스프레소)에 최적화된 경량 모델 설계
저는 이미 이야기를 생성하는 ESP32를 가지고 있었지만, 텍스트를 생성하는 것과 질문을 받고 유용한 답변을 제공하는 것은 다릅니다. barista v0.1은 에스프레소 문제 해결을 위해 학습된 작은 모델이며, 클라우드 없이 ESP32S3 N16R8에서 실행됩니다. 질문을 입력하면(현재는 USB를 통해), ESP32가 OLED(또는 터미널로 다시)에 답변을 스트리밍합니다. 작동 방식은 다음과 같습니다:
레이어별 임베딩 (per-layer embeddings). 이 모델의 대부분의 파라미터(parameters)는 대규모 PLE 및 토큰 임베딩(token-embedding) 테이블에 있습니다. 모델이 특정 위치에서 각 테이블의 한 행만 필요하기 때문에, 이 테이블들은 플래시(flash)에 메모리 맵(memory-mapped)된 상태로 유지됩니다.
비대칭 어휘 (asymmetric vocabulary). 모델은 8k 이상의 입력 토큰(input-token) 어휘를 읽지만, 출력 클래스(output classes)는 854개만 작성합니다. 이 클래스들은 답변에 사용할 수 있는 단어, 문장 부호 및 특수 값들입니다. 좁은 범위의 에스프레소 답변에는 이것으로 충분합니다. 또한 출력 헤드(output head)를 약 1M 개의 파라미터에서 109K로 줄여줍니다. 클래스를 방출(emitting)한 후, 펌웨어는 이를 다시 입력 토큰 ID로 매핑하여 다음 자기회귀(autoregressive) 단계로 전달합니다. 제한된 출력 어휘는 실제적인 제약 사항이지만, 안전 필터(safety filter)는 아닙니다. 예를 들어, 모델에는 숫자 문자가 없으므로 물리적으로 숫자를 출력할 수 없습니다. 따라서 관련 없는 질문에 대해서도 거절 대신 잘못된 에스프레소 조언을 생성할 수 있습니다.
현재 이 모델은 이전의 이야기 생성 모델보다 작지만, 이는 의도된 것입니다. 더 깊은(deeper) 버전들을 학습시켜 보았으나 현재의 코퍼스(corpus)에서는 결과가 개선되지 않았습니다. 단순히 레이어를 늘리는 것이 아니라, 더 많고 더 나은 Q/A 데이터가 필요합니다. 코퍼스를 확장한 후에 더 큰 모델들을 테스트할 예정입니다.
repo: https://github.com/slvDev/esp32-ai
submitted by /u/slvDev_ [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기