Meta의 Llama: 단순 언어 모델 그 이상

Llama의 진화: 현상 유지에 대한 도전

Llama가 처음 등장했을 때, 거대 기술 기업들의 크고 폐쇄적인 소스 LLM의 지배력에 도전했습니다. Meta AI는 더 작고 일반화된 모델에 초점을 맞춘 전략을 채택했습니다. 핵심 아이디어는 방대한 수의 토큰으로 훈련된 이러한 소규모 모델이 특수 작업에 대해 재훈련하고 미세 조정하는 것이 더 쉽고 비용 효율적이라는 것이었습니다. 이러한 접근 방식은 점점 더 크고 자원 집약적인 모델을 구축하는 추세와는 극명한 대조를 이루었습니다.

그러나 Llama의 ‘오픈 소스’ 성격은 논쟁의 대상입니다. Meta Llama 라이선스에는 상업적 및 허용 가능한 사용에 대한 특정 제한 사항이 포함되어 있습니다. 이러한 제한은 논쟁의 여지가 있지만 Open Source Initiative의 엄격한 오픈 소스 정의와 충돌합니다. 이로 인해 Llama가 진정으로 오픈 소스 자격이 있는지에 대한 논쟁이 계속되고 있습니다.

법적 문제 탐색: 저작권 문제

Llama의 개발에는 법적인 문제가 없었던 것은 아닙니다. 2023년에 Meta는 저작권이 있는 책이 Llama를 훈련하는 데 허가 없이 사용되었다고 주장하는 저자들로부터 두 건의 집단 소송에 직면했습니다. 이러한 소송은 대규모 언어 모델의 훈련 데이터와 관련된 복잡한 저작권 문제를 강조합니다. 지금까지 법원은 저자들의 주장에 대해 그다지 동정적이지 않았습니다.

기능 확장: Llama의 성장하는 모델 제품군

2023년 후반부터 Meta AI는 Llama 제품군을 크게 확장했습니다. 모델은 더 이상 텍스트 기반 상호 작용에만 국한되지 않습니다. 현재 Llama 생태계에는 텍스트와 시각적 입력을 모두 처리할 수 있는 다중 모드 모델과 코드 해석 및 도구 통합을 위해 설계된 모델이 포함됩니다. 또한 Meta는 잠재적인 위험과 공격을 식별하고 완화하기 위해 ‘Llama Guard’라는 안전 구성 요소를 도입했으며, 이는 ‘Llama Stack’이라는 전체 프레임워크의 일부로 설계되었습니다.

다음은 Llama 제품군의 주요 모델에 대한 자세한 설명입니다(Meta AI의 모델 카드에서 요약).

Llama Guard 1: 상호 작용 보호

Llama Guard 1은 Llama 2를 기반으로 하는 70억 개의 매개변수 모델입니다. 사용자 프롬프트(프롬프트 분류)와 LLM 응답(응답 분류) 모두에서 콘텐츠를 분류하는 입력-출력 보호 장치 역할을 합니다. 이 모델은 Llama 기반 시스템과의 더 안전하고 책임감 있는 상호 작용을 보장하는 데 도움이 됩니다.

Llama Guard는 잠재적인 피해를 분류하기 위해 6단계 분류 체계를 사용합니다.

  • 폭력 및 증오: 개인 또는 그룹에 대한 폭력 또는 증오를 조장하는 콘텐츠.
  • 성적인 콘텐츠: 성적으로 노골적인 자료 또는 아동을 착취, 학대 또는 위험에 빠뜨리는 콘텐츠.
  • 총기 및 불법 무기: 총기 및 기타 무기의 불법 판매, 사용 또는 개조와 관련된 콘텐츠.
  • 규제 또는 통제 물질: 마약, 알코올 또는 담배의 불법 사용 또는 판매를 조장하는 콘텐츠.
  • 자살 및 자해: 자살 또는 자해를 조장하거나 지침을 제공하는 콘텐츠.
  • 범죄 계획: 불법 활동을 용이하게 하거나 계획하는 콘텐츠.

Code Llama 70B: 코딩 능력의 3요소

Code Llama 70B는 Llama의 코딩 기능을 크게 확장했습니다. 이 모델은 세 가지 변형으로 제공됩니다.

  • Code Llama: 일반적인 코드 합성 및 이해를 위해 설계된 기본 모델입니다. 코드를 생성하고, 코드 기능을 설명하고, 디버깅을 지원할 수 있습니다.
  • Code Llama – Python: Python 프로그래밍에 특화된 버전입니다. 이 모델은 Python 코드 생성 및 이해에 최적화되어 있어 Python 개발자에게 유용한 도구입니다.
  • Code Llama – Instruct: 지침을 따르고 더 안전한 배포를 보장하는 데 중점을 둔 변형입니다. 이 모델은 특정 지침 및 안전 프로토콜을 준수하는 코드를 생성하는 데 특히 유용합니다.

세 가지 변형 모두 70억, 130억, 340억, 700억 개의 매개변수로 제공됩니다. Code Llama 및 그 변형은 주로 영어 및 관련 프로그래밍 언어로 상업적 및 연구용으로 설계되었습니다. Code Llama가 강력한 코딩 능력을 보유하고 있다는 충분한 증거가 있습니다.

Llama Guard 2: 향상된 안전 분류

Llama Guard 2는 이전 모델의 기반을 바탕으로 향상된 안전 분류 기능을 제공합니다. Llama 3를 기반으로 하는 이 80억 개의 매개변수 모델은 MLCommons 위험 분류 체계에 따라 11개 범주에서 안전 레이블을 예측하도록 훈련되었습니다.

Llama Guard 2가 다루는 위험 범주는 다음과 같습니다.

  • S1: 폭력 범죄: 폭력적인 범죄 행위와 관련된 콘텐츠.
  • S2: 비폭력 범죄: 비폭력적인 범죄와 관련된 콘텐츠.
  • S3: 성 관련 범죄: 성범죄와 관련된 콘텐츠.
  • S4: 아동 성 착취: 아동을 성적으로 착취, 학대 또는 위험에 빠뜨리는 콘텐츠.
  • S5: 전문적인 조언: 전문 분야(예: 의료, 법률, 금융)에서 자격이 없거나 오해의 소지가 있는 조언.
  • S6: 개인 정보: 동의 없이 개인 정보를 침해하거나 공개하는 콘텐츠.
  • S7: 지적 재산: 지적 재산권을 침해하는 콘텐츠.
  • S8: 무차별 무기: 광범위하고 무차별적인 피해를 일으키는 무기와 관련된 콘텐츠.
  • S9: 증오: 개인 또는 그룹에 대한 증오 또는 편견을 표현하는 콘텐츠.
  • S10: 자살 및 자해: 자살 또는 자해를 조장하거나 지침을 제공하는 콘텐츠.
  • S11: 성적인 콘텐츠: 성적으로 노골적인 자료.

Meta Llama 3: 대화의 다양성

Meta Llama 3는 80억 개와 700억 개의 매개변수, 두 가지 크기로 제공되며 사전 훈련된 변형과 지시 튜닝된 변형이 모두 제공됩니다. 지시 튜닝된 모델은 특히 대화 기반 애플리케이션에 최적화되어 챗봇 및 대화형 AI 시스템에 적합합니다.

Prompt Guard: 악의적인 입력 방어

Prompt Guard는 jailbreak(안전 제한 우회 시도) 및 프롬프트 주입(조작된 입력을 통해 모델의 출력을 조작하려는 시도)을 포함한 악의적인 프롬프트를 감지하도록 설계된 분류기 모델입니다. Meta AI는 최적의 성능을 위해 애플리케이션별 데이터로 Prompt Guard를 미세 조정할 것을 권장합니다.

Llama Guard와 달리 Prompt Guard는 특정 프롬프트 구조가 필요하지 않습니다. 문자열 입력을 기반으로 작동하여 안전하거나 안전하지 않음(두 가지 심각도 수준)으로 분류합니다. 레이블만 출력하는 BERT 모델입니다.

Llama Guard 3: 다중 모드 및 다국어 안전

Llama Guard 3는 Llama Guard 3 1B, Llama Guard 3 8B, Llama Guard 3 11B-Vision의 세 가지 버전으로 제공됩니다. 처음 두 개는 텍스트 전용 모델이고, 세 번째는 Llama 3.2 11B-Vision 모델의 시각적 이해 기능을 통합합니다. 모든 버전은 다국어(텍스트 전용 프롬프트의 경우)이며 MLCommons 컨소시엄에서 정의한 위험 범주를 준수합니다.

Llama Guard 3 8B는 S14, 코드 인터프리터 남용 범주에도 사용할 수 있습니다. Llama Guard 3 1B 모델은 이 특정 범주에 최적화되어 있지 않습니다.

Llama Guard 2의 위험 범주를 확장한 내용은 다음과 같습니다.

  • S1: 폭력 범죄
  • S2: 비폭력 범죄
  • S3: 성 관련 범죄
  • S4: 아동 성 착취
  • S5: 명예 훼손
  • S6: 전문적인 조언
  • S7: 개인 정보
  • S8: 지적 재산
  • S9: 무차별 무기
  • S10: 증오
  • S11: 자살 및 자해
  • S12: 성적인 콘텐츠
  • S13: 선거
  • S14: 코드 인터프리터 남용

Meta Llama 3.1: 다국어 생성 모델

Meta Llama 3.1 컬렉션은 80억, 700억, 4050억 개의 매개변수 크기(텍스트 입력, 텍스트 출력)로 사전 훈련되고 지시 튜닝된 생성 모델을 포함하는 다국어 대규모 언어 모델입니다.

지원되는 언어는 영어, 독일어, 프랑스어, 이탈리아어, 포르투갈어, 힌디어, 스페인어, 태국어입니다.

Meta Llama 3.2: 향상된 대화 기능

Llama 3.2 컬렉션은 10억 및 30억 개의 매개변수 크기(텍스트 입력, 텍스트 출력)로 사전 훈련되고 지시 튜닝된 생성 모델을 포함하는 다국어 대규모 언어 모델을 특징으로 합니다. 이러한 모델의 양자화된 버전도 사용할 수 있습니다. Llama 3.2 지시 튜닝된 텍스트 전용 모델은 다국어 대화에 최적화되어 에이전트 검색 및 요약과 같은 작업에 탁월합니다. 1B 및 3B 모델은 Llama 3.1의 더 작고 덜 강력한 파생 모델입니다.

공식적으로 지원되는 언어는 영어, 독일어, 프랑스어, 이탈리아어, 포르투갈어, 힌디어, 스페인어, 태국어입니다. 그러나 Llama 3.2는 이 8개 언어 외에도 더 광범위한 언어로 훈련되었습니다.

Llama 3.2-Vision: 이미지 추론 및 이해

Llama 3.2-Vision 컬렉션은 다중 모드 대규모 언어 모델을 도입합니다. 이러한 모델은 이미지 추론을 위해 사전 훈련되고 지시 튜닝되었으며 110억 및 900억 개의 매개변수 크기(텍스트 및 이미지 입력, 텍스트 출력)로 제공됩니다. 지시 튜닝된 모델은 시각적 인식, 이미지 추론, 캡션 생성 및 이미지에 대한 일반적인 질문에 답변하는 데 최적화되어 있습니다.

텍스트 전용 작업의 경우 공식적으로 지원되는 언어는 영어, 독일어, 프랑스어, 이탈리아어, 포르투갈어, 힌디어, 스페인어, 태국어입니다. Llama 3.2는 더 광범위한 언어로 훈련되었지만 이미지+텍스트 애플리케이션의 경우 영어만 지원됩니다.

Meta Llama 3.3: 강력한 70B 모델

Meta Llama 3.3 다국어 대규모 언어 모델은 700억 개의 매개변수(텍스트 입력, 텍스트 출력)를 가진 사전 훈련되고 지시 튜닝된 생성 모델입니다.

지원되는 언어: 영어, 독일어, 프랑스어, 이탈리아어, 포르투갈어, 힌디어, 스페인어, 태국어.

대규모 언어 모델(Llama 3.2 포함)은 독립적인 배포를 위한 것이 아닙니다. 적절한 안전 가드레일이 있는 포괄적인 AI 시스템에 통합되어야 합니다. 개발자는 특히 에이전트 시스템을 구축할 때 시스템 안전 장치를 구현해야 합니다.

Llama 3.3, Llama 3.2 텍스트 전용 모델 및 Llama 3.1에는 다음 도구에 대한 기본 지원이 포함되어 있습니다.

  • Brave Search: 웹 검색을 수행하기 위한 도구 호출.
  • Wolfram Alpha: 복잡한 수학 계산을 실행하기 위한 도구 호출.
  • Code Interpreter: 모델이 Python 코드를 출력할 수 있도록 하는 도구 호출.

참고: Llama 3.2 비전 모델은 텍스트+이미지 입력으로 도구 호출을 지원하지 않습니다.

Llama Stack: 통합 프레임워크

Llama 모델의 수가 너무 많아서 혼란스러울 수 있습니다. 선택 및 통합 프로세스를 단순화하기 위해 Meta는 Llama Stack을 제공합니다. 이 프레임워크는 Llama 모델을 강조하지만 RAG(검색 증강 생성)를 위한 벡터 데이터베이스와 같은 관련 기능에 대한 어댑터도 제공합니다.

Llama Stack은 현재 Python, Swift, Node, Kotlin에서 SDK를 지원합니다. 다음과 같은 다양한 배포를 제공합니다.

  • 로컬 배포(Ollama 사용): 로컬 개발 및 테스트용.
  • 온디바이스 배포(iOS 및 Android): 모바일 장치에 Llama 모델을 배포하기 위한 것입니다.
  • GPU용 배포: 더 빠른 처리를 위해 GPU의 성능을 활용하기 위한 것입니다.
  • 원격 호스팅 배포(Together 및 Fireworks): 클라우드 기반 서비스를 통해 Llama 모델에 액세스하기 위한 것입니다.

Llama Stack의 핵심 개념은 개발자가 로컬에서 애플리케이션을 구축한 다음 프로덕션 환경으로 쉽게 전환할 수 있도록 하는 것입니다. 원격 Llama Stack에 대한 로컬 개발을 위한 대화형 Llama Stack Playground도 제공합니다.

Llama 모델 실행: 다양한 배포 옵션

Llama 모델은 Linux, Windows, macOS 및 클라우드를 포함한 다양한 플랫폼에 배포할 수 있습니다. Llama 3.2 및 Llama 3.2-Vision과 같은 양자화된 Llama 모델은 Ollama와 같은 도구를 사용하여 M4 Pro MacBook Pro와 같은 노트북에서도 최신 하드웨어에서 효과적으로 실행할 수 있습니다.

Meta는 Llama 모델 배포 및 사용에 대한 포괄적인 사용법 가이드를 제공합니다. 또한 LangChain 및 LlamaIndex와 같은 인기 있는 프레임워크에 대한 통합 가이드도 제공됩니다.

요약하자면, Llama는 단순한 언어 모델을 넘어 안전 기능, 코드 생성 및 다양한 언어 지원을 갖춘 다중 모드 AI 프레임워크로 발전했습니다. Meta의 시스템은 다양한 곳에 배포할 수 있지만 훈련 데이터와 관련된 법적 문제와 Llama가 오픈 소스인지에 대한 논쟁은 계속되고 있습니다.