오픈 소스 LLM을 위한 오픈 소스 AGI 서버
이것이 개방형 일반화 인공지능을 구축하려는 아나키의 노력이다. LLM-VM을 통해: LLM에 초능력을 부여하는 방법? 그리고 초고속?.
여기에서 실시간으로 시도해 볼 수 있는 자세한 지침을 찾을 수 있습니다: anarchy.ai
이 프로젝트는 베타 버전입니다. 지속적인 개선과 발전을 기대합니다.
Anarchy LLM-VM은 도구 사용, 영구 상태 저장 메모리, 실시간 데이터 증대, 데이터 및 작업 미세 조정, 출력 템플릿 작성 등 완료 시 기대할 수 있는 모든 최신 기능을 갖춘 LLM 실행을 위해 고도로 최적화되고 독보적인 백엔드입니다. 웹 놀이터, API 엔드포인트, 학생-교사 증류, 데이터 합성, 로드 밸런싱 및 오케스트레이션, 대규모 컨텍스트 창 모방.
공식적으로 이는 데이터, 모델(CPU), 프롬프트(코드) 및 도구(IO)를 조정하는 인간 언어를 위한 가상 머신/통역사입니다.
이러한 모든 작업을 한 곳에서 자신만의 방식으로 수행함으로써 LLM-VM은 분산된 엔드포인트에서 엄청나게 비용이 많이 드는 배치 호출을 적절하게 최적화할 수 있습니다. 또한 모델과 아키텍처 불가지론을 모두 추구하여 현재 아키텍처에 대해 선택한 모델을 적절하게 최적화합니다.
Anarchy의 사명에 따라 LLM-VM은 오픈 소스 모델을 지원하기 위해 노력합니다. 오픈 소스 모델을 활용하고 로컬로 실행하면 다음과 같은 여러 가지 이점을 얻을 수 있습니다.
AGI 개발 속도 향상: AnarchyAI를 사용하면 사용 가능한 최신 LLM과 상호 작용하는 데 필요한 모든 것이 하나의 인터페이스입니다.
비용 절감?: 로컬에서 모델을 실행하면 개발 및 테스트에 따른 종량제 비용을 줄일 수 있습니다.
유연성 ?♀️: Anarchy를 사용하면 인기 모델 간에 빠르게 전환할 수 있으므로 프로젝트에 딱 맞는 도구를 정확하게 찾아낼 수 있습니다.
Community Vibes ?: AGI 민주화를 위해 열정적으로 노력하는 의욕이 넘치는 개발자와 엔지니어로 구성된 활발한 커뮤니티에 참여하세요.
WYSIWYG ?: 오픈 소스는 아무것도 숨겨져 있지 않음을 의미합니다. 우리는 귀하가 건물 건설에만 집중할 수 있도록 투명성과 효율성을 위해 노력합니다.
암시적 에이전트?: 도구 설명만 제공하면 REBEL 과 같은 에이전트를 통해 외부 도구를 사용하도록 Anarchy LLM-VM을 설정할 수 있습니다!
추론 최적화?: Anarchy LLM-VM은 에이전트 수준에서 알려진 LLM 아키텍처의 조립에 이르기까지 최적화되어 비용 대비 효과를 극대화합니다. 최첨단 배치 처리, 희소 추론 및 양자화, 증류, 다단계 코로케이션을 통해 가장 빠른 프레임워크를 제공하는 것을 목표로 합니다.
작업 자동 최적화?: Anarchy LLM-VM은 학생-교사 증류를 활성화하여 정확도를 잃지 않고 보다 큰 일반 모델에서 매우 효율적인 소형 모델을 교육할 수 있는 반복 작업에 대한 사용 사례를 분석합니다. 또한 데이터 합성 기술을 활용하여 결과를 개선할 수도 있습니다.
Library Callable : 모든 Python 코드베이스에서 직접 사용할 수 있는 라이브러리를 제공합니다.
HTTP 엔드포인트 ?️: 우리는 완료 요청을 처리하기 위해 HTTP 독립형 서버를 제공합니다.
실시간 데이터 확대: (ROADMAP) 실시간 업데이트 데이터 세트를 제공할 수 있으며 Anarchy LLM-VM은 모델을 미세 조정 하거나 벡터 DB 와 협력하여 인용과 함께 최신 정보를 제공합니다.
Web Playground ?: (ROADMAP) Anarchy LLM-VM을 실행하고 브라우저에서 출력을 테스트할 수 있습니다.
로드 밸런싱 및 오케스트레이션 ⚖️: (ROADMAP) 활용하려는 LLM 또는 공급자가 여러 개인 경우 이를 Anarchy LLM-VM에 전달하여 함께 작업할 대상과 최적화 시기를 자동으로 파악할 수 있습니다. 가동 시간 또는 비용
출력 템플릿 ?: (ROADMAP) LLM이 특정 형식의 데이터만 출력하고 정규식, LMQL 또는 OpenAI의 템플릿 언어를 사용하여 템플릿의 변수를 채우도록 할 수 있습니다.
영구 상태 저장 메모리: (ROADMAP) Anarchy LLM-VM은 사용자의 대화 기록을 기억하고 그에 따라 대응할 수 있습니다.
Python >=3.10 지원됨. 이전 버전의 Python은 최선의 노력을 기반으로 합니다.
bash > python3 --version
사용하여 현재 사용 중인 버전을 확인하세요.
Python을 업그레이드하려면 bash > conda create -n myenv python=3.10
사용하여 새 python env를 생성하거나 https://www.python.org/downloads/로 이동하여 최신 버전을 다운로드하세요.
If you plan on running the setup steps below, a proper Python version will be installed for you
모델마다 시스템 요구 사항이 다릅니다. 대부분의 시스템에서 제한 요소는 RAM일 가능성이 높지만 많은 기능은 16GB RAM에서도 작동합니다.
즉, 사용 중인 모델에 대한 정보를 항상 검색하세요. 모델마다 메모리 및 컴퓨팅 리소스의 크기와 요구 사항이 다릅니다.
시작하는 가장 빠른 방법은 Python 환경에서 pip install llm-vm
실행하는 것입니다.
LLM-VM을 설치하는 또 다른 방법은 이 저장소를 복제하고 다음과 같이 pip를 사용하여 설치하는 것입니다.
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> ./setup.sh
위의 bash 스크립트 setup.sh
MacOS 및 Linux에서만 작동합니다.
또는 다음과 같이 할 수도 있습니다.
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> python -m venv < name >
> source < name > /bin/activate
> python -m pip install -e . " [dev] "
Windows를 사용하는 경우. 아래 두 가지 방법 중 하나를 따를 수 있습니다.
다음 단계를 수행하기 전에 먼저 관리자 권한으로 Powershell을 열고 아래 명령을 실행해야 합니다.
> Set-ExecutionPolicy RemoteSigned
> Press Y and enter
> exit
이제 아래 두 가지 방법 중 하나를 따를 수 있습니다.
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> .windows_setup.ps1
또는
> winget install Python.Python.3.11
> python --version
> git clone https://github.com/anarchy-ai/LLM-VM.git
> cd LLM-VM
> python -m venv anarchyai
> anarchyaiScriptsactivate
> python -m pip install -e .
메모 :
OpenAI 모델 중 하나를 사용하는 경우 API 키를 사용하여 LLM_VM_OPENAI_API_KEY
환경 변수를 설정해야 합니다.
LLM-VM을 사용하면 단 3줄만으로 인기 있는 LLM과 로컬로 직접 작업할 수 있습니다. 위와 같이 설치한 후에는 모델을 로드하고 생성을 시작하세요!
# import our client
from llm_vm . client import Client
# Select which LLM you want to use, here we have OpenAI
client = Client ( big_model = 'chat_gpt' )
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' , openai_key = 'ENTER_YOUR_API_KEY' )
print ( response )
# Anarchy is a political ideology that advocates for the absence of government...
# import our client
from llm_vm . client import Client
# Select the LlaMA 2 model
client = Client ( big_model = 'llama2' )
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' )
print ( response )
# Anarchy is a political philosophy that advocates no government...
다음 모델 중에서 선택하세요.
Supported_Models = [ 'chat_gpt' , 'gpt' , 'neo' , 'llama2' , 'bloom' , 'opt' , 'pythia' ]
로컬 모델에 대한 LLM-VM 기본 모델 크기는 모든 사람이 LLM을 실험할 수 있도록 하기 위한 것이지만, 필요한 메모리가 있는 경우 더 큰 매개변수 모델이 훨씬 더 나은 성능을 발휘합니다!
예를 들어 교사와 학생을 위해 크고 작은 neo 모델을 사용하고 RAM이 충분한 경우:
# import our client
from llm_vm . client import Client
# Select the LlaMA model
client = Client ( big_model = 'neo' , big_model_config = { 'model_uri' : 'EleutherAI/gpt-neox-20b' },
small_model = 'neo' , small_model_config = { 'model_uri' : 'EleutherAI/gpt-neox-125m' })
# Put in your prompt and go!
response = client . complete ( prompt = 'What is Anarchy?' , context = '' )
print ( response )
# Anarchy is a political philosophy that advocates no government...
기본 모델의 세부정보는 다음과 같습니다.
이름 | Model_Uri | 모델 매개변수 | 체크포인트 파일 크기 |
---|---|---|---|
네오 | EleutherAI/gpt-neo-1.3B | 1.3B | 5.31GB |
꽃 | bigscience/bloom-560m | 1.7B | 1.12GB |
고르다 | facebook/opt-350m | 350m | 622MB |
각 모델 계열의 메모리 사용량 및 매개변수 수에 대한 다른 선택 사항은 model_uri_tables 테이블을 확인하세요.
FLAT와 REBEL이라는 두 가지 에이전트가 있습니다.
src/llm_vm/agents/<AGENT_FOLDER>
로 이동하여 agent.py
라는 파일을 실행하여 에이전트를 별도로 실행합니다.
또는 간단한 인터페이스를 실행하고 CLI에서 실행할 에이전트를 선택하려면 src/llm_vm/agents/agent_interface.py
파일을 실행하고 명령 프롬프트 지침을 따르세요.
기여자를 환영합니다! 시작하려면 활발한 Discord 커뮤니티에 가입하세요. 그렇지 않은 경우에는 기여하고 급여를 받을 수 있는 몇 가지 방법이 있습니다.
특정 티켓 마감에 대한 포상금을 제공합니다! 현상금이 얼마인지 확인하려면 티켓 라벨을 확인하세요. 시작하려면 Discord에 가입하고 가이드를 읽어보세요.
매튜 미르만 - CEO
빅터 오데데 - 언두머
Abhigya Sodani - 연구원 인턴
Carter Schonwald - 두려움 없는 기고자
카일 와일드(Kyle Wild) - 두려움 없는 기여자
Aarushi Banerjee - 두려움 없는 기여자
앤드류 넬슨 - 두려움 없는 기고자
MIT 라이센스