The best open source software of 2023
InfoWorld의 2023 Bossie Awards는 올해 소프트웨어 개발, 데이터 관리, 분석, 인공 지능 및 기계 학습을 위한 선도적인 오픈 소스 도구를 선정하였습니다.
Apache Hudi
개방형 데이터 레이크 또는 데이터 레이크하우스를 구축할 때 많은 산업에서는 더욱 발전하고 변경 가능한 플랫폼이 필요합니다. 게시자, 광고주, 미디어 구매자를 위한 광고 플랫폼을 살펴보세요. 빠른 분석만으로는 충분하지 않습니다. Apache Hudi는 빠른 데이터 형식, 테이블 및 SQL을 제공할 뿐만 아니라 지연 시간이 짧은 실시간 분석도 지원합니다. Apache Spark , Apache Flink 및 Presto , StarRocks(아래 참조) 및 Amazon Athena와 같은 도구 와 통합됩니다 . 간단히 말해서, 데이터 레이크에 대한 실시간 분석을 찾고 있다면 Hudi가 정말 좋은 선택입니다.
— 앤드류 C. 올리버
Apache Iceberg
결과가 오래 걸리면 어떤 것이 "잘 확장"되는지 누가 신경 쓰나요? HDFS와 Hive는 너무 느렸습니다. Hive에서 작동할 뿐만 아니라 Apache Spark 및 Apache Flink는 물론 ClickHouse, Dremio 및 StarRocks 와 같은 다른 시스템에서도 직접 작동하는 Apache Iceberg를 입력하세요 . Iceberg는 이러한 모든 시스템에 고성능 테이블 형식을 제공하는 동시에 전체 스키마 진화, 데이터 압축 및 버전 롤백을 지원합니다. Iceberg는 많은 현대 오픈 데이터 레이크의 핵심 구성 요소입니다.
— 앤드류 C. 올리버
Apache Superset
수년 동안 Apache Superset은 데이터 시각화의 괴물이었습니다. Superset은 셀프 서비스, 고객 대면 또는 사용자 대면 분석을 대규모로 배포하려는 모든 사람을 위한 사실상 유일한 선택입니다. Superset은 원형 차트부터 복잡한 지리공간 차트까지 모든 것을 포함하여 거의 모든 분석 시나리오에 대한 시각화를 제공합니다. 대부분의 SQL 데이터베이스와 통신하며 드래그 앤 드롭 빌더와 SQL IDE를 제공합니다. 데이터를 시각화하려는 경우 Superset을 먼저 살펴볼 가치가 있습니다.
— 앤드류 C. 올리버
Bun
JavaScript가 예측 가능한 루틴에 안착하고 있다고 생각한 바로 그 순간 Bun이 등장합니다 . 경솔한 이름은 진지한 목표를 담고 있습니다. 런타임, 번들러, 패키지 관리자 등 서버측 JS에 필요한 모든 것을 하나의 도구 에 담는 것입니다 . Node.js 및 NPM을 즉시 대체 하지만 훨씬 더 빠릅니다. 이 간단한 제안은 Node가 applecart를 뒤집은 이후 Bun을 JavaScript의 가장 파괴적인 부분으로 만든 것 같습니다.
Bun의 속도는 Zig 덕분입니다(아래 참조). 나머지는 설립자 Jared Sumner의 성능에 대한 집착 덕분입니다. 명령줄에서 즉시 차이를 느낄 수 있습니다. 성능 외에도 모든 도구를 하나의 통합 패키지에 포함하는 것만으로도 Bun은 Node 및 Deno 에 대한 강력한 대안이 됩니다 .
— 매튜 타이슨
Claude 2
Anthropic의 Claude 2는 단일 프롬프트에서 최대 100,000개의 토큰(약 70,000단어)을 허용하며 최대 수천 개의 토큰까지 스토리를 생성할 수 있습니다. Claude는 구조화된 데이터를 편집, 재작성, 요약, 분류, 추출하고 콘텐츠를 기반으로 Q&A 등을 수행할 수 있습니다. 영어로 가장 많은 교육을 받았지만 다양한 다른 일반 언어에서도 잘 작동합니다. Claude는 또한 일반적인 프로그래밍 언어에 대한 광범위한 지식을 가지고 있습니다.
Claude는 도움이 되고, 정직하며, 무해하도록(HHH) 헌법적으로 훈련을 받았으며, 더 무해하고 공격적이거나 위험한 결과물을 생성하기가 더 어렵도록 광범위하게 레드 팀으로 구성되었습니다. 데이터를 학습하거나 인터넷에서 답변을 참조하지 않습니다. Claude는 미국과 영국 사용자에게 무료 베타로 제공되며 Jasper , Sourcegraph 및 AWS 와 같은 상용 파트너가 채택했습니다 .
— 마틴 헬러
CockroachDB
강력하게 일관된 ACID 트랜잭션을 가능하게 하는 분산 SQL 데이터베이스인 CockroachDB는 데이터베이스 읽기 및 쓰기의 수평적 확장성을 지원하여 고성능, 트랜잭션 집약적 애플리케이션의 주요 확장성 문제를 해결합니다. CockroachDB는 또한 대기 시간을 줄이고 데이터 규정을 준수하기 위해 다중 지역 및 다중 클라우드 배포를 지원합니다. 배포 예로는 미디어 애플리케이션과 장치 관리를 지원하는 100개 이상의 프로덕션 CockroachDB 클러스터가 포함된 Netflix의 데이터 플랫폼이 있습니다. Marquee 고객에는 Hard Rock Sportsbook , JPMorgan Chase, Santander 및 DoorDash도 포함됩니다.
— 아이작 사콜릭
CPython
기계 학습, 데이터 과학, 작업 자동화, 웹 개발… Python 프로그래밍 언어를 사랑해야 할 이유는 셀 수 없이 많습니다. 아쉽게도 런타임 성능은 그중 하나가 아니지만 변화하고 있습니다. 마지막 두 릴리스인 Python 3.11 과 Python 3.12 에서 핵심 Python 개발 팀은 Python 인터프리터의 참조 구현인 CPython 에 대한 수많은 혁신적인 업그레이드를 공개했습니다 . 그 결과 새로운 라이브러리나 최첨단 구문을 사용하기로 선택한 소수만이 아니라 모든 사람에게 더 빠른 Python 런타임이 탄생했습니다. 그리고 오랫동안 Python의 진정한 다중 스레드 병렬 처리를 방해했던 전역 해석기 잠금(Global Interpreter Lock)을 제거 하려는 계획을 통해 훨씬 더 큰 개선을 위한 무대가 마련되었습니다 .
— 세르다르 예굴랄프
DuckDB
OLAP 데이터베이스는 규모가 엄청나겠죠? IBM Cognos, Oracle OLAP, SAP Business Warehouse 또는 ClickHouse를 "경량"이라고 설명하는 사람은 아무도 없습니다. 하지만 외부 종속성 없이 내장되어 프로세스 내에서 실행되는 분석 데이터베이스인 충분한 OLAP가 필요한 경우에는 어떻게 될까요 ? DuckDB는 SQLite와 같은 작지만 강력한 프로젝트 정신으로 구축된 분석 데이터베이스입니다. DuckDB는 SQL 쿼리, ACID 트랜잭션, 보조 인덱스 등 익숙한 RDBMS 기능을 모두 제공하지만 대규모 데이터 세트에 대한 조인 및 집계와 같은 분석 기능을 추가합니다. 또한 Parquet 와 같은 일반적인 빅 데이터 형식을 수집하고 직접 쿼리할 수도 있습니다 .
— 세르다르 예굴랄프
HTMX and Hyperscript
아마도 HTML은 결코 변하지 않을 것이라고 생각했을 것입니다. HTMX는 여러분이 알고 좋아하는 HTML을 최신 웹 애플리케이션 작성을 더욱 쉽게 해주는 향상된 기능으로 확장합니다. HTMX는 웹 프런트 엔드를 백엔드에 연결하는 데 사용되는 상용구 JavaScript의 대부분을 제거합니다. 대신 직관적인 HTML 속성을 사용하여 AJAX 요청 발행 및 요소에 데이터 채우기와 같은 작업을 수행합니다. 형제 프로젝트인 Hyperscript는 비동기 작업 및 DOM 조작을 포함한 많은 JavaScript 작업을 단순화하기 위해 HyperCard와 유사한 구문을 도입합니다. HTMX 와 Hyperscript는 함께 반응형 프레임워크 의 현재 추세에 대한 대담한 대안 비전을 제공합니다 .
— 매튜 타이슨
Istio
컨테이너 기반 마이크로서비스 의 네트워킹 및 통신을 단순화하는 Istio 는 트래픽 라우팅, 모니터링, 로깅 및 관찰 가능성을 제공하는 동시에 암호화, 인증 및 권한 부여 기능으로 보안을 강화하는 서비스 메시 입니다 . Istio는 통신과 해당 보안 기능을 애플리케이션 및 인프라에서 분리하여 보다 안전하고 일관된 구성을 가능하게 합니다. 아키텍처는 Kubernetes 클러스터에 배포된 제어 평면과 통신 정책을 제어하기 위한 데이터 평면으로 구성됩니다. 2023년에 Istio는 Google, IBM, Red Hat, Solo.io 등의 지원과 기여를 포함하여 클라우드 기반 커뮤니티에서 상당한 견인력을 얻으며 CNCF 인큐베이션을 졸업했습니다 .
— 아이작 사콜릭
Kata Containers
컨테이너의 속도와 가상 머신의 격리를 결합한 Kata 컨테이너 는 하이퍼바이저 기반 런타임인 Hyper.sh runV 와 함께 Intel Clear Container를 사용하는 보안 컨테이너 런타임입니다 . Kata Containers는 x86_64, AMD64, Arm, IBM p 시리즈, IBM z 시리즈를 포함한 여러 하드웨어 아키텍처를 지원하면서 Kubernetes 및 Docker 와 함께 작동합니다 . Google Cloud, Microsoft, AWS, Alibaba Cloud는 인프라 후원자 입니다 . Kata 컨테이너를 지원하는 다른 회사로는 Cisco, Dell, Intel, Red Hat, SUSE 및 Ubuntu가 있습니다. 최근 릴리스에서는 기밀 컨테이너를 GPU 장치에 도입하고 장치 관리를 추상화했습니다.
— 아이작 사콜릭
LangChain
LangChain은 언어 모델을 기반으로 하는 애플리케이션 개발을 쉽게 해주는 모듈식 프레임워크입니다 . LangChain을 사용하면 언어 모델이 데이터 소스에 연결하고 환경과 상호 작용할 수 있습니다. LangChain 구성 요소는 모듈식 추상화 및 추상화 구현 모음입니다. LangChain 기성 체인은 특정 상위 수준 작업을 수행하기 위한 구성 요소의 구조화된 어셈블리입니다. 구성요소를 사용하여 기존 체인을 사용자 정의하고 새 체인을 구축할 수 있습니다. 현재 LangChain에는 세 가지 버전이 있습니다. 하나는 Python , 하나는 TypeScript/JavaScript , 하나는 Go 입니다 . 이 글을 쓰는 시점에서 대략 160개의 LangChain 통합이 있습니다 .
— 마틴 헬러
Language Model Evaluation Harness
새로운 LLM(대형 언어 모델)이 출시되면 일반적으로 특정 벤치마크에서 ChatGPT 와 모델을 비교하는 평가 점수가 표시됩니다 . 아마도 모델 뒤에 있는 회사는 해당 점수를 생성하기 위해 lm-eval-harness를 사용했을 것입니다. 분산형 인공 지능 연구 기관인 EleutherAI에서 만든 lm-eval-harness에는 200개가 넘는 벤치마크가 포함되어 있으며 쉽게 확장할 수 있습니다. 하네스는 기존 벤치마크의 결함을 발견 하고 Hugging Face의 Open LLM 순위표를 강화하는 데에도 사용되었습니다 . xkcd 만화 에서처럼 , 그것은 전 세계를 지탱하는 작은 기둥 중 하나입니다.
— 이안 포인터
Llama 2
Llama 2 는 차세대 Meta AI 대규모 언어 모델로 , Llama 1 보다 40% 더 많은 데이터(공개적으로 사용 가능한 소스의 2조 토큰)에 대해 훈련되었으며 컨텍스트 길이(4096)가 두 배입니다. Llama 2는 최적화된 변환기 아키텍처를 사용하는 자동 회귀 언어 모델입니다. 조정된 버전은 SFT(감독 미세 조정) 및 RLHF(인간 피드백을 통한 강화 학습)를 사용하여 유용성과 안전성에 대한 인간 선호도에 맞춰 조정합니다. 코드별 데이터 세트에 대해 Llama 2를 미세 조정하여 훈련된 Code Llama 는 코드 또는 자연어 프롬프트에서 코드 및 코드에 대한 자연어를 생성 할 수 있습니다.
— 마틴 헬러
Ollama
Ollama 는 Windows 지원이 예정된 macOS 및 Linux에서 Llama 2, Code Llama 및 기타 모델을 로컬로 실행할 수 있는 명령줄 유틸리티입니다. Ollama는 현재 거의 24개 언어 모델 계열을 지원하며 각 모델 계열에 사용할 수 있는 많은 "태그"가 있습니다. 태그는 다양한 미세 조정을 사용하여 다양한 크기로 훈련되고 로컬에서 잘 실행되도록 다양한 수준에서 양자화되는 모델의 변형입니다. 양자화 수준이 높을수록 모델은 더 정확하지만 실행 속도가 느려지고 더 많은 메모리가 필요합니다.
Ollama가 지원하는 모델에는 검열되지 않은 일부 변형이 포함되어 있습니다. 이는 일반적인 가드레일 없이 모델을 훈련하기 위해 Eric Hartford가 고안한 절차를 사용하여 구축되었습니다. 예를 들어, Llama 2에게 화약 만드는 방법을 물으면 폭발물 제조는 불법이고 위험하다고 경고합니다. 무수정 Llama 2 모델에게 같은 질문을 하면 그냥 알려줄 것입니다.
— 마틴 헬러
Polars
이미 훌륭한 Pandas가 있는데 Python에 또 다른 데이터프레임 조정 라이브러리가 필요한 이유가 무엇인지 물을 수도 있습니다 . 하지만 좀 더 깊이 살펴보면 Polars가 바로 귀하가 찾고 있는 것임을 발견할 수 있습니다. Polars는 Pandas가 할 수 있는 모든 것을 할 수는 없지만, Pandas보다 최대 10배 빠른 속도로 메모리를 절반만 사용하여 빠르게 수행합니다. PySpark 에서 온 개발자는 Pandas의 보다 난해한 작업보다 Polars API를 통해 좀 더 편안함을 느낄 것입니다. 많은 양의 데이터로 작업하는 경우 Polars를 사용하면 더 빠르게 작업할 수 있습니다.
— 이안 포인터
PostgreSQL
PostgreSQL은 35년 넘게 개발되었으며 700명이 넘는 기여자의 의견을 반영했으며 관계형 데이터베이스 관리 시스템 중 약 16.4%의 시장 점유율을 차지하고 있습니다 . 90,000명의 개발자 중 45%가 PostgreSQL을 최고의 선택으로 선택한 최근 설문 조사에 따르면 이러한 추세는 점점 더 커지고 있습니다 . 9월에 출시된 PostgreSQL 16은 집계 및 선택 개별 쿼리의 성능을 향상하고 쿼리 병렬 처리를 향상했으며 새로운 I/O 모니터링 기능을 제공하고 더욱 세분화된 보안 액세스 제어를 추가했습니다. 또한 2023년에 Amazon Aurora PostgreSQL은 생성적 AI 임베딩을 지원하기 위해 pgVector를 추가했으며 Google Cloud는 AlloyDB PostgreSQL을 위한 유사한 기능을 출시했습니다 .
— 이안 포인터
QLoRA
Tim Dettmers와 팀은 토스터에 이르기까지 모든 것에 대해 대규모 언어 모델을 실행하는 임무를 수행하고 있는 것 같습니다. 작년에 그들의 bitandbytes 라이브러리는 소비자 하드웨어에 더 큰 LLM의 추론을 가져왔습니다. 올해 그들은 훈련으로 전환하여 이미 인상적인 LoRA 기술을 축소하여 양자화된 모델에 대한 작업을 수행했습니다. QLoRA를 사용한다는 것은 데스크탑 컴퓨터에서 대규모 30B 이상의 매개변수 모델을 미세 조정할 수 있다는 것을 의미하며, 여러 GPU에 걸친 전체 조정에 비해 정확도 손실이 거의 없습니다. 실제로 QLoRA가 더 나은 경우도 있습니다. 낮은 비트 추론 및 교육은 LLM에 더 많은 사람들이 액세스할 수 있다는 것을 의미합니다. 이것이 오픈 소스의 전부가 아닐까요?
— 이안 포인터
RAPIDS
RAPIDS 는 일반적인 데이터 과학 및 분석 작업을 위한 GPU 가속 라이브러리 모음입니다. 각 라이브러리는 데이터프레임 처리를 위한 cuDF, 그래프 분석을 위한 cuGraph, 기계 학습을 위한 cuML과 같은 특정 작업을 처리합니다 . 다른 라이브러리에서는 이미지 처리, 신호 처리, 공간 분석을 다루고, 통합을 통해 RAPIDS를 Apache Spark , SQL 및 기타 워크로드에 적용합니다. 기존 라이브러리 중 어느 것도 적합하지 않은 경우 RAPIDS에는 자체 솔루션 구축을 위한 GPU 가속 기본 요소 모음인 RAFT도 포함되어 있습니다. RAPIDS는 또한 Dask 와 함께 작동하여 여러 노드에 걸쳐 확장하고 Slurm 과 함께 작동하여 고성능 컴퓨팅 환경에서 실행됩니다.
— 세르다르 예굴랄프
Spark NLP
Spark NLP는 Python , Scala 및 Java 지원을 통해 Apache Spark 에서 실행되는 자연어 처리 라이브러리 입니다 . 이 라이브러리는 개발자와 데이터 과학자가 Google, Meta, OpenAI 등의 변환기 모델을 포함한 대규모 언어 모델을 실험하는 데 도움이 됩니다. Spark NLP의 모델 허브에는 언어 번역, 명명된 엔터티 인식, 텍스트 분류, 질문 답변, 감정 분석 및 기타 사용 사례를 위해 다운로드할 수 있는 20,000개가 넘는 모델과 파이프라인이 있습니다. 2023년 Spark NLP는 이미지 캡션 작성, 모든 주요 공용 클라우드 스토리지 시스템 지원 및 ONNX(Open Neural Network Exchange) 지원을 위해 설계된 새로운 이미지-텍스트 주석자인 많은 LLM 통합을 출시했습니다.
— 아이작 사콜릭
StarRocks
분석이 변경되었습니다. 오늘날 기업에서는 복잡한 데이터를 수백만 명의 동시 사용자에게 실시간으로 제공하는 경우가 많습니다. 페타바이트 쿼리도 몇 초 안에 처리되어야 합니다. StarRocks 는 효율적인 비용 기반 최적화 프로그램인 네이티브 코드(C++), SIMD 명령어 세트를 사용한 벡터 처리, 캐싱 및 구체화된 뷰를 결합하여 대규모 조인을 효율적으로 처리하는 쿼리 엔진입니다. StarRocks는 Apache Hudi 및 Apache Iceberg를 포함한 데이터 레이크 및 데이터 레이크하우스에서 직접 쿼리할 때 거의 기본 성능을 제공합니다 . 실시간 분석을 추구하든, 고객 대면 분석을 제공하든, 데이터를 이동하지 않고 데이터 레이크를 쿼리하려는 경우 StarRocks를 살펴볼 가치가 있습니다.
— 이안 포인터
TensorFlow.js
TensorFlow.js는 Google의 TensorFlow 기계 학습 프레임워크 의 강력한 기능을 JavaScript 패키지에 담아 최소한의 학습 곡선으로 JavaScript 개발자에게 뛰어난 기능을 제공합니다. TensorFlow.js는 브라우저, WebGL 가속 기능이 있는 순수 JavaScript 스택 또는 서버의 tfjs-node 라이브러리에 대해 실행할 수 있습니다. Node 라이브러리는 동일한 JavaScript API를 제공하지만 최대 속도와 CPU/GPU 사용량을 위해 C 바이너리 위에서 실행됩니다.
머신러닝에 관심이 있는 JS 개발자라면 TensorFlow.js가 당연히 갈 곳 입니다 . 이는 AI를 광범위한 개발자 커뮤니티에 더 쉽게 접근할 수 있게 해주는 JS 생태계에 대한 환영받는 기여입니다.
— 매튜 타이슨
vLLM
프로덕션에 대규모 언어 모델을 배포하려는 움직임으로 인해 가능한 한 빨리 추론하는 데 초점을 맞춘 프레임워크가 급증했습니다. vLLM은 Hugging Face 모델 지원, OpenAI 호환 API 및 Hugging Face 변환기 라이브러리의 처리량을 최대 20배까지 달성하는 알고리즘인 PagedAttention을 갖춘 가장 유망한 솔루션 중 하나입니다 . 이는 현재 프로덕션에서 LLM을 제공하기 위한 확실한 선택 중 하나이며 FlashAttention 2 지원과 같은 새로운 기능이 빠르게 추가되고 있습니다.
— 이안 포인터
Weaviate
생성 적 AI 붐으로 인해 대량의 복잡하고 구조화되지 않은 데이터를 지원할 수 있는 새로운 유형의 데이터베이스에 대한 필요성이 촉발되었습니다. 벡터 데이터베이스를 입력하세요. Weaviate는 배포 모델, 생태계 통합 및 데이터 개인 정보 보호와 관련하여 개발자에게 많은 유연성을 제공합니다. Weaviate는 다중 모드 데이터(텍스트, 이미지, 오디오, 비디오 등)의 빠르고 확장 가능한 검색을 위해 키워드 검색과 벡터 검색을 결합합니다. 또한 RAG(검색 증강 생성)를 위한 기본 모듈이 있어 챗봇 및 기타 생성 AI 앱에 도메인별 데이터를 제공하여 더욱 유용하게 만듭니다.
— 앤드류 C. 올리버
Zig
오늘날 진행 중인 모든 오픈 소스 프로젝트 중에서 Zig가 가장 중요할 수 있습니다. Zig는 C 보다 성능이 뛰어나 면서 더 강력하고 오류가 덜 발생하는 구문을 제공하는 프로그램 수준 메모리 제어 기능을 갖춘 범용 프로그래밍 언어를 만들기 위한 노력입니다 . 목표는 프로그래밍 생태계의 기본 언어 로 C를 대체하는 것입니다. C는 어디에나 존재하기 때문에(즉, 모든 곳의 시스템과 장치에서 가장 일반적인 구성 요소) Zig의 성공은 성능과 안정성의 광범위한 향상을 의미할 수 있습니다. 그것은 우리 모두가 희망해야 할 것입니다. 게다가 Zig는 거대한 야망과 오픈 소스 정신을 지닌 훌륭하고 구식의 풀뿌리 프로젝트입니다.
— 매튜 타이슨
https://www.infoworld.com/article/3709196/the-best-open-source-software-of-2023.html