fastllm-proxy

요청 경로에 입출력이 없는 러스트 라우터

git clone https://github.com/azrtydxb/Fastllm-proxy && cd Fastllm-proxy && docker compose up -d

여러 추론 백엔드와 80개 제공자를 주소 하나 뒤에 세웁니다. 저장소는 요청당 처리 비용을 0.76마이크로초로 밝히고, 요청 경로에 입출력이 없다는 것을 시험 코드로 강제합니다. 권한과 속도 제한, 예산 판단이 메모리에 펼쳐 둔 스냅숏에 대한 정수 비교라 그렇습니다. 응답도 해석하지 않고 위에서 온 프레임을 그대로 흘려보내므로 사용자가 많이 읽어도 비용이 늘지 않습니다. 앞부분이 같은 요청은 그 캐시를 가진 노드로 되돌려 보내되 그 노드가 뚜렷하게 더 바쁘면 예외를 둡니다. 제어 계층이 끊겨도 마지막 스냅숏으로 계속 응답합니다. 리트LLM 형식 설정 파일을 그대로 읽습니다.

판단

이럴 때 씁니다

  • 게이트웨이 자체가 병목이 되는 규모일 때
  • 자체 추론 서버의 캐시를 살려야 할 때
  • 제어 계층이 끊겨도 서비스가 계속돼야 할 때

이럴 땐 쓰지 마세요

  • 소규모에서는 차이를 못 느낍니다
  • 판이 0.2x 대라 설정이 바뀔 수 있습니다
  • 응답을 해석하지 않으므로 내용 기반 후처리는 못 합니다

차별점

  • 요청당 처리 비용을 마이크로초 단위로 밝히고 시험으로 강제합니다.
  • 위에서 온 프레임을 해석하지 않고 그대로 흘려보냅니다.
  • 앞부분이 같은 요청을 그 캐시를 가진 노드로 되돌립니다.
  • 제어 계층이 끊겨도 마지막 스냅숏으로 계속 응답합니다.

워크플로

  1. 01저장소를 받아 컴포즈로 띄웁니다.
  2. 02관리자 비밀번호를 설정합니다.
  3. 03리트LLM 형식 설정 파일을 그대로 넣습니다.
  4. 04클라이언트를 4000번 포트로 돌립니다.
  5. 05관리 화면에서 권한과 예산을 잡습니다.

주요 명령

명령설명
docker compose up -d띄웁니다.
docker compose exec fastllm fastllm-proxy set-password --name you --password '...'관리자 비밀번호를 정합니다.
SIGHUP스트림을 끊지 않고 라우팅 표를 바꿉니다.

함정

설치 전에 확인하세요

  • 응답 본문을 해석하지 않습니다. 내용을 보고 판단하는 후처리는 이 계층에서 못 합니다.
  • 요청 경로에 입출력이 없다는 것이 설계 전제입니다. 그 전제를 깨는 변경은 시험이 막습니다.
  • 캐시 친화 라우팅은 노드 부하가 고르지 않아 보일 수 있습니다. 균등해 보이는 것이 목표가 아닙니다.
  • 판이 0.2x 대입니다. 게이트웨이 구성과 설정 규격이 바뀔 수 있습니다.

비교

대부분의 게이트웨이는 스트림 조각마다 해석하고 다시 만들어 내보냅니다. 그 비용은 사용자가 많이 읽을수록 커집니다. 이쪽은 그 과정을 아예 없앤 쪽이라 규모가 커질수록 차이가 벌어집니다. 대신 내용 기반 처리는 포기합니다.

최근 변경

같은 키와 권한, 회계 아래에서 도는 게이트웨이 두 종류가 새로 들어갔습니다. 배포 이미지는 두 아키텍처를 각각 그 아키텍처의 실행기에서 만들어 하나로 묶습니다.