안녕하세요, AI 오픈소스 프로젝트에 관심을 갖고 계신 여러분!
이번 주에도 여러 흥미로운 오픈소스 프로젝트들이 새롭게 릴리즈되었습니다.
여러분께 도움이 될 만한 주요 릴리즈 소식을 정리해 보았으니, 관심 있는 프로젝트가 있다면 업데이트된 기능과 버그 수정 내용을 확인해 보세요.
제가 평소에 관심있게 살펴보는 프로젝트들입니다.
아래 목록에 추가하고 싶은 오픈소스 프로젝트가 있다면, 댓글로 남겨주세요!
- langchain-ai/langchain
- huggingface/transformers
- vllm-project/vllm
- NVIDIA/TensorRT-LLM
- microsoft/DeepSpeed
- ollama/ollama
langchain-ai/langchain
langchain-core==0.2.34
https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.2.34
이번 langchain-core의 0.2.34 릴리즈는 여러 가지 주요 변경 사항을 포함하고 있습니다. 아래는 주요 업데이트 내용입니다:
- OAI Dicts 지원: 메시지로서 OAI 딕셔너리를 지원하는 기능이 추가되었습니다. 이는 더 다양한 형식의 데이터를 처리할 수 있게 해줍니다.
- Fallback Context 수정: 기존의 fallback context가 덮어쓰여지는 문제를 수정하였습니다. 이로 인해 더 안정적인 동작을 기대할 수 있습니다.
- Langsmith 문서 로더 추가: Langsmith 문서 로더가 추가되어, 문서 로드 작업이 보다 용이해졌습니다.
- Token Counter 개선: 메시지를 다듬는 과정에서 bound 모델을 token_counter로 사용할 수 있도록 변경되었습니다. 이는 메시지 처리의 유연성을 높여줍니다.
- GraphVectorStore 확장에 베타 데코레이터 추가: 누락된 GraphVectorStore 확장에 베타 데코레이터가 추가되어, 기능의 안정성을 높이고 향후 확장을 예고합니다.
- 채팅 프롬프트 직렬화/역직렬화 테스트: 채팅 프롬프트의 직렬화 및 역직렬화에 대한 테스트가 추가되었습니다. 이는 시스템의 일관성을 높이는 데 기여합니다.
이번 릴리즈는 여러 가지 버그 수정과 기능 개선을 통해 langchain-core의 전반적인 성능과 안정성을 향상시켰습니다.
langchain-core==0.2.35
https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.2.35
langchain-core의 버전 0.2.35 릴리즈 노트에는 여러 가지 주요 변경 사항이 포함되어 있습니다. 이번 릴리즈의 주요 내용은 다음과 같습니다:
- Lint 개선:
make lint
명령어의 개선이 이루어졌습니다. 이는 코드 품질을 유지하는 데 도움이 됩니다. - 최소 버전 테스트 재활성화: 최소 버전 테스트가 다시 활성화되었으며, CI에서는 ai21 관련 테스트를 무시하도록 설정되었습니다.
- 기본 프롬프트의 inner input 타입 수정: 기본 프롬프트에서 inner input의 타입이 수정되었습니다.
- simsimd 타입 사용: 파트너 코드에서 simsimd 타입을 사용하도록 변경되었습니다.
- MMR 유틸리티 추가: 새로운 MMR 유틸리티가 추가되었습니다.
- Pydantic 출력 파서 스트리밍 수정: Pydantic 출력 파서의 스트리밍 관련 문제가 수정되었습니다.
- 매개변수 이름 변경 지원: 함수에서 매개변수 이름을 변경할 수 있도록
_api.rename_parameter
가 추가되었습니다. - strict 모드에서 추가 속성 지원: strict 모드일 때 OAI 함수에
additionalProperties
를 재귀적으로 추가하는 기능이 추가되었습니다. - Pydantic v2 인자 테스트 수정: Pydantic v2 관련 인자를 사용하는 테스트가 수정되었습니다.
- UP(업그레이드) ruff 규칙 추가: 새로운 ruff 규칙이 추가되어 코드 품질을 높이는 데 기여하고 있습니다.
- 경고 메시지 개선: 서로 다른 부모 실행 ID에 대한 경고가 제거되었습니다.
- 중첩 서브 그래프 그리기 지원:
draw_mermaid
에서 중첩 서브 그래프를 그릴 수 있도록 지원이 추가되었습니다. - 메시지 병합 시 구분자 지정 옵션 추가:
merge_message_runs
에서 메시지 병합 시 사용할 구분자를 지정할 수 있는 옵션이 추가되었습니다. - UnionType 타입 변수 교체 수정: UnionType의 타입 변수 교체와 관련된 문제가 수정되었습니다.
- 오류 메시지 개선 및 테스트 추가: 일부 오류 메시지가 개선되었고,
RunnableWithMessageHistory
를 확인하기 위한 새로운 테스트가 추가되었습니다.
이와 같은 여러 가지 개선 사항이 포함된 이번 릴리즈는 코드의 안정성과 사용성을 높이는 데 기여하고 있습니다.
huggingface/transformers
v4.44.1
https://github.com/huggingface/transformers/releases/tag/v4.44.1
이번 Hugging Face Transformers v4.44.1 릴리즈는 다양한 버그 수정과 기능 개선이 포함되어 있습니다. 주요 내용은 다음과 같습니다:
- Gemma2 관련 수정:
- FA2 생성 문제를 해결했습니다.
- 패킹된 훈련을 사용하는 FA2의 문제를 수정했습니다.
- Gemma2FlashAttention2에서 슬라이딩 윈도우 주의(attention) 기능을 수정했습니다.
- 버그 수정 및 개선:
is_torchdynamo_compiling
기능에서 넓은 예외 처리를 추가했습니다.- CPU와 메타에서 FSDP를 적절히 샤딩하는 방식에 대한 이전 수정사항을 되돌렸습니다.
- 여러 GPU 환경에서 정적 캐시 문제를 수정했습니다.
- VLM 생성 문제를 해결했습니다.
inputs_embeds
를 입력으로 사용할 때 발생하는 문제를 수정했습니다.
- 기타 개선 사항:
- 모델 카드에 자동으로
transformers
태그를 추가하도록 했습니다. - RoPE의 경우 구성(config)에서
head_dim
을 사용할 수 있도록 했습니다. - 위치 ID를 다시 추가했습니다.
- Zero-3가 누락되었을 때 사용자에게 경고하는 기능을 되돌렸습니다.
- 코어 모델을 사용할 때 발생하는 오류 로그를 줄였습니다.
- 모델 카드에 자동으로
이 릴리즈는 전반적으로 Gemma2 모델의 특정 문제를 해결하고, 여러 가지 버그를 수정하여 안정성을 향상시키기 위한 노력의 일환으로 볼 수 있습니다.
v4.44.2
https://github.com/huggingface/transformers/releases/tag/v4.44.2
이번 릴리즈인 v4.44.2는 주로 두 가지 회귀 문제를 수정한 패치 릴리즈입니다. 주요 내용은 다음과 같습니다:
- Jamba 캐시 수정: Jamba 캐시가
torch.nn.module
을 제대로 사용하지 못하는 문제를 수정했습니다. (이슈 번호: #32894, 작성자: @xgal) - Jamba에서 A의 dtype 필요 없음: Jamba에서 A의 데이터 타입(dtype)을 설정할 필요가 없다는 점을 수정했습니다. (이슈 번호: #32924, 작성자: @xgal)
- Processor.save_pretrained 회귀 수정: 이전 버전(#31691)에서 발생한 Processor.save_pretrained의 회귀 문제를 수정했습니다. (이슈 번호: #32921, 작성자: @leloykun)
이러한 수정사항들은 Jamba와 Processor의 기능을 개선하는 데 기여하고 있습니다.
vllm-project/vllm
v0.5.5
https://github.com/vllm-project/vllm/releases/tag/v0.5.5
vllm 프로젝트의 v0.5.5 릴리즈 노트는 여러 가지 중요한 업데이트와 개선 사항을 포함하고 있습니다. 주요 내용을 요약하면 다음과 같습니다.
성능 업데이트
- 새로운 스케줄링 모드를 도입하여 CPU 오버헤드를 줄이고 여러 GPU 단계에서 미리 작업을 예약하는 기능을 추가했습니다. 이로 인해 8B 및 30B 모델을 실행하는 단일 GPU의 QPS(초당 쿼리 수)가 20% 향상되었습니다.
--num-scheduler-steps 8
옵션을 설정하여 이 기능을 사용할 수 있습니다. - 플래시 샘플링 커널을 사용하여 디코딩 스루풋을 7% 향상시키고, 파이썬 할당을 줄여 24%의 성능 향상을 달성했습니다.
- ZeroMQ 기반의 분리된 프론트엔드에 대한 여러 개선 사항도 포함되었습니다.
모델 지원
- Jamba 1.5 모델을 지원하며, 첫 번째 오디오 모델인
UltravoxModel
도 추가되었습니다. - 이미지 임베딩을 입력으로 지원하고, LLaVA 모델을 위한 SigLIP 인코더 및 대체 디코더를 지원하는 등 비전 모델에 대한 개선도 이루어졌습니다.
- GGUF 모델의 로딩 및 텐서 병렬 처리 지원이 추가되었습니다.
하드웨어 지원
- AMD의 경우, ROCm을 위한 fp8 선형 레이어가 추가되었습니다.
- TPU 지원을 강화하고, 여러 호스트에서의 추론을 지원합니다.
- Intel에 대한 여러 리팩토링도 진행되었습니다.
기타 개선 사항
- 접두사 캐싱 성능 최적화 및 추측적 디코딩 기능이 추가되었습니다.
LLM
클래스에 새로운chat
메서드가 추가되었고, run_batch API에서 임베딩을 지원합니다.- 다양한 양자화 관련 개선과 함께 커스텀 연산자 등록 기능을 통해 성능을 더욱 높였습니다.
버그 수정 및 기타 변경사항
- 여러 버그 수정 및 문서 업데이트가 포함되어 있으며, 새로운 기여자들이 다수 참여하여 프로젝트가 지속적으로 발전하고 있습니다.
이번 릴리즈는 성능 향상과 다양한 모델 지원, 하드웨어 최적화 등이 두드러지며, 사용자의 편의성을 더욱 높여주는 방향으로 나아가고 있습니다.
microsoft/DeepSpeed
v0.15.0
https://github.com/microsoft/DeepSpeed/releases/tag/v0.15.0
이번 DeepSpeed v0.15.0 릴리즈에서는 여러 가지 주요 변경 사항이 포함되었습니다. 주요 업데이트는 다음과 같습니다:
- 버전 업데이트: 0.14.5 릴리즈 이후 버전 정보를 업데이트했습니다.
- 설치 파일 조정: pynvml 설치를
setup.py
로 이동했습니다. - MoE 지원 추가: MoE (Mixture of Experts)에서 top-k 게이트(k>2) 지원을 추가했습니다.
- CPU 오프로드 최적화: inf_or_nan_tracker를 CPU로 이동하여 CPU 오프로드를 지원했습니다.
- 동적 형태 지원: 파이프라인 병렬 엔진 입력에 대해 동적 형태를 지원하게 되었습니다.
- ZeRO 3 훅 추가 및 제거: ZeRO 3 훅을 추가하거나 제거했습니다.
- DeepNVMe GDS: DeepNVMe GDS 기능이 추가되었습니다.
- Transformers 버전 고정: nv-nightly에서 transformers 버전을 고정했습니다.
- 버그 수정: 여러 버그를 수정했습니다.
- HuggingFace와의 통합: 긴 시퀀스 병렬 처리(Ulysses)를 HuggingFace와 통합했습니다.
- CPU 호스트 오버헤드 감소: MoE 사용 시 CPU 호스트 오버헤드를 줄였습니다.
- PyTorch 2.4.0 호환성 업데이트: linear.py를 PyTorch 2.4.0과 호환되도록 업데이트했습니다.
- XPU API 정렬: 새로운 Intel PyTorch 확장 릴리스에 맞춰 XPU API를 정렬했습니다.
ollama/ollama
v0.3.7-rc6
https://github.com/ollama/ollama/releases/tag/v0.3.7-rc6
이번 릴리즈(v0.3.7-rc6)에서는 몇 가지 주요 변경 사항이 있습니다:
- CUDA 12 지원: 최신 NVIDIA GPU에서 성능이 최대 10% 향상되었습니다.
ollama pull
및ollama push
성능 개선: 느린 연결 환경에서도 이러한 명령의 성능이 개선되었습니다.- 모델 재로드 문제 수정:
OLLAMA_NUM_PARALLEL
설정 시 낮은 VRAM을 가진 시스템에서 모델이 재로드되는 문제를 해결했습니다. - Linux 배포 방식 변경: 이제 Ollama는
tar.gz
파일로 배포되며, 이 파일에는ollama
바이너리와 필요한 라이브러리가 포함되어 있습니다.
이번 주에도 다양한 오픈소스 프로젝트들이 활발히 발전하고 있음을 알 수 있습니다.
여러분이 관심을 갖고 있는 프로젝트들도 이번 릴리즈에서 개선된 부분이 있는지 꼭 확인해 보시길 바랍니다.
오픈소스 커뮤니티의 발전에 기여하는 개발자들에게 감사의 마음을 전하며, 앞으로도 더 많은 흥미로운 소식을 전해드리겠습니다.
읽어주셔서 감사합니다! 다음 주에도 유용한 정보로 찾아뵙겠습니다.
'AI > 오픈소스 릴리즈 노트' 카테고리의 다른 글
오픈소스 릴리즈 노트 읽기 - 24년 9월 1주차 (1) | 2024.09.09 |
---|---|
오픈소스 릴리즈 노트 읽기 - 8월 5주차 (1) | 2024.09.02 |
오픈소스 릴리즈 노트 읽기 - 8월 3주차 (0) | 2024.08.20 |
오픈소스 릴리즈 노트 읽기 - 8월 2주차 (0) | 2024.08.10 |
오픈소스 릴리즈 노트 읽기 - 8월 1주차 (0) | 2024.08.04 |