Keras 및 TensorFlow Lite를 사용한 기기 내 대규모 언어 모델

1. 시작하기 전에

최근 가장 주목할 만한 머신러닝 혁신은 대규모 언어 모델(LLM)입니다. 포괄적이고 유익한 방식으로 텍스트를 생성하고, 언어를 번역하고, 질문에 답하는 데 사용할 수 있습니다. Google LaMDAPaLM과 같은 LLM은 대량의 텍스트 데이터를 기반으로 학습하므로 단어와 구문 간의 통계 패턴과 관계를 파악할 수 있습니다. 이를 통해 사람이 작성한 텍스트와 유사한 텍스트를 생성하고 높은 정확도로 언어를 번역할 수 있습니다.

LLM은 저장용량 측면에서 매우 크고 실행하는 데 일반적으로 많은 컴퓨팅 성능을 소비합니다. 이는 일반적으로 클라우드에 배포되므로 휴대기기의 제한된 컴퓨팅 성능으로 인해 기기 내 머신러닝(ODML)에는 매우 까다롭다는 의미입니다. 하지만 최신 Android 기기에서 더 작은 규모의 LLM(예: GPT-2)을 실행하면서 여전히 인상적인 결과를 얻을 수 있습니다.

이 Codelab에서는 다음을 사용하여 LLM 기반 앱을 빌드하는 방법을 알아봅니다.

  • KerasNLP: 선행 학습된 LLM(GPT-2) 로드
  • KerasNLP: LLM(GPT-2) 미세 조정
  • TensorFlow Lite: Android에서 LLM을 변환, 최적화, 배포

기본 요건

  • Keras 및 TensorFlow Lite에 관한 중급 지식
  • Android 개발에 관한 기본 지식

학습할 내용

  • KerasNLP를 사용하여, 선행 학습된 LLM을 로드하고 미세 조정하는 방법
  • LLM을 양자화하고 TensorFlow Lite로 변환하는 방법
  • 변환된 TensorFlow Lite 모델에서 추론을 실행하는 방법

필요한 항목

2. 설정

이 Codelab의 코드를 다운로드하려면 다음 안내를 따르세요.

  1. 이 Codelab의 GitHub 저장소로 이동합니다.
  2. Code > Download zip을 클릭하여 이 Codelab의 모든 코드를 다운로드합니다.

저장소 이미지

  1. 다운로드한 ZIP 파일의 압축을 풀어 필요한 모든 리소스가 포함된 examples 루트 폴더의 압축을 풉니다.

3. 시작 앱 실행

  1. examples/lite/examples/generative_ai 폴더를 Android 스튜디오로 가져옵니다.
  2. Android Emulator를 시작한 다음 탐색 메뉴에서 execute.png Run을 클릭합니다.

앱 실행 및 탐색

Android 기기에서 앱이 실행됩니다. 앱 이름은 'Auto-complete'입니다. UI는 매우 간단합니다. 텍스트 상자에 몇 개의 시드 단어를 입력하고 Generate를 탭하면 됩니다. 그러면 앱이 LLM에서 추론을 실행하고 입력에 따라 추가 텍스트를 생성합니다.

일부 단어를 입력한 후 Generate를 탭해도 지금은 아무 일도 일어나지 않습니다. 아직 LLM을 실행하지 않기 때문입니다.

시작 앱 스크린샷

4. 기기 내 배포를 위한 LLM 준비

5. Android 앱 완료

이제 GPT-2 모델을 TensorFlow Lite로 변환했으므로 최종적으로 앱에 배포할 수 있습니다.

앱 실행

  1. 지난 단계에서 다운로드한 autocomplete.tflite 모델 파일을 Android 스튜디오의 app/src/main/assets/ 폴더로 드래그합니다.

Android 스튜디오에 모델 추가

  1. 탐색 메뉴에서 execute.png Run을 클릭한 다음 앱이 로드될 때까지 기다립니다.
  2. 텍스트 필드에 시드 단어를 입력한 다음 Generate를 탭합니다.

완료된 앱 스크린샷

6. 책임감 있는 AI에 관한 참고사항

기존 OpenAI GPT-2 공지사항에서 언급한 바와 같이 GPT-2 모델에는 중요한 주의사항과 제한사항이 있습니다. 실제로 오늘날 LLM은 일반적으로 환각, 공정성, 편향과 같은 잘 알려진 문제가 있습니다. 이는 이러한 모델이 실제 데이터를 바탕으로 학습하여 실제 문제가 반영되기 때문입니다.

이 Codelab은 TensorFlow 도구를 사용하여 LLM 기반 앱을 만드는 방법을 보여주기 위해서만 작성되었습니다. 이 Codelab에서 생성된 모델은 교육용일 뿐이며 프로덕션 용도가 아닙니다.

LLM을 프로덕션 용도로 사용하려면 학습 데이터 세트와 포괄적인 안전 완화 조치를 신중하게 선택해야 합니다. LLM과 관련하여 책임감 있는 AI에 관해 자세히 알아보려면 Google I/O 2023의 생성형 언어 모델을 사용한 안전하고 책임감 있는 개발 기술 세션을 시청하고 책임감 있는 AI 툴킷을 확인하세요.

7. 결론

축하합니다. 선행 학습된 대규모 언어 모델을 기기에서만 실행하여 사용자 입력을 기반으로 일관된 텍스트를 생성하는 앱을 빌드했습니다.

자세히 알아보기