娇色导航

????

??? ??

Martin Heller
Contributing Writer

??? AI? ??’ ??? ?? ?? ???

??
2023.11.2212?

GPT, ??, ?? 2 ?? ??? ?? ??(LLM)? ??? ???? ???? ??? ??? ????. LLM? ?? ??? ??? ????? ??? ?? ??? ??, ??? ??? ??? ?? ? ?????? ????. ??, ?? ???? ????? ????, ?? ???? LLM? ?? ????.

대규모 언어 모델이란?

언어 모델의 시초는 20세기 초까지 거슬러 올라가지만 대규모 언어 모델이 본격적으로 부상한 시점은 신경망이 도입된 이후다. 특히 2017년에 등장한 트랜스포머(Transformer) 심층 신경망 아키텍처는 언어 모델에서 LLM으로의 진화에 큰 역할을 했다. 

대규모 언어 모델은 설명 프롬프트를 기반으로 한 텍스트 생성, 코드 생성 및 코드 완성, 텍스트 요약, 언어 간 번역, 텍스트-투-스피치 및 스피치-투-텍스트 애플리케이션을 포함한 다양한 작업에 유용하다.

한편, 적어도 현재 개발 단계에서의 LLM에는 단점도 있다. 생성된 텍스트의 품질이 그다지 좋은 편이 아니며, 형편없는 경우도 종종 발생한다. LLM은 없는 사실을 만들어 내기도 하는데 이를 환각(hallucination)이라고 한다. 답을 구하는 사용자에게 관련 지식이 없다면 환각은 상당히 그럴듯하게 들릴 것이다. 

언어 번역의 경우, 네이티브 스피커의 검수를 받지 않은 문장은 100% 정확한 경우가 거의 없지만, 검수는 일반적으로 상용구에 한해서만 이뤄진다. 생성된 코드에는 버그가 흔하고, 아예 실행되지 않는 경우도 있다. 대체로 LLM은 논란의 여지가 있는 언급을 하거나 불법적인 행동을 추천하는 일이 없도록 미세한 조정을 거치지만 악의적인 프롬프트를 사용하면 안전 장치를 무력화할 수도 있다.

대규모 언어 모델을 학습시키기 위해서는 대규모 텍스트 말뭉치(corpus)가 하나 이상 필요하다. 학습 예제에는 1B 워드 벤치마크(1B Word Benchmark), 위키피디아, 토론토 북 코퍼스(Toronto Books Corpus), 커먼 크롤(Common Crawl) 데이터 집합, 그리고 공개 오픈소스인 깃허브 리포지토리 등이 포함된다. 

대규모 텍스트 데이터 집합에는 저작권 침해와 쓰레기라는 두 가지 문제점이 있다. 저작권 침해의 경우 현재 여러 관련 소송이 진행 중이다. 쓰레기는 최소한 청소는 가능하다. 쓰레기 청소가 된 데이터 집합의 예로, 커먼 크롤 데이터 집합을 기반으로 한 800GB 용량의 데이터 집합인 콜로설 클린 크롤드 코퍼스(Colossal Clean Crawled Corpus: C4)가 있다.

대규모 언어 모델은 딥러닝 신경망, 대규모 학습 말뭉치를 사용하며, 신경망을 위한 수백만 개 이상의 매개변수 또는 가중치를 필요로 한다는 면에서 전통적인 언어 모델과 다르다.

하나 이상의 대용량 학습 말뭉치와 함께 LLM에는 많은 수의 매개변수, 즉 가중치가 필요하다. 매개변수의 수는 지금까지 매년 증가했다. 엘모(ELMo, 2018)의 매개변수 수는 9,360만 개이며 버트(BERT, 2018)는 1억 1,700만 개, T5(2020)는 2억 2,000만 개다. GPT-2(2019)의 경우 16억 개, GPT-3(2020)는 1,750억 개, 팜(PaLM, 2022)은 5,400억 개이며 GPT-4(2023)의 매개변수는 1조 7,600억 개에 이른다.

 매개변수가 많을수록 모델의 정확도는 높아지지만 그만큼 더 많은 메모리가 필요하고 실행 속도가 느려진다. 2023년에는 비교적 작은 모델들이 여러 가지 크기로 출시되기 시작했다. 예를 들어 라마 2(Llama 2)는 70억 개, 130억 개, 700억 개 버전으로 제공되며 클로드 2(Claude 2)는 930억 개와 1,370억 개의 매개변수 크기로 제공된다.

텍스트를 생성하는 AI 모델의 역사

언어 모델의 시초는 1913년에 시에 수학을 적용한 안드레이 마코프다. 마코프는 푸시킨의 유게니 오네긴에서 한 문자가 나타날 확률은 이전 단어에 따라 달라지며, 일반적으로 자음과 모음이 번갈아 나타나는 경향이 있음을 밝혀냈다. 현재 마코프 체인은 각 이벤트의 확률이 이전 이벤트의 상태에 따라 달라지는 이벤트 시퀀스를 설명하는 데 사용된다.

마코프의 연구는 1948년 클로드 섀넌의 통신 이론에서 확장됐고, 이후 IBM의 프레드 젤리넥과 로버트 머서가 1985년에 교차 검증 기반의 언어 모델을 만들어 실시간 대규모 어휘 음성 인식에 적용하면서 다시 한번 확장됐다. 기본적으로 통계적 언어 모델은 단어의 시퀀스에 확률을 할당한다.

언어 모델의 실제 작동을 간단히 보려면 구글 검색 또는 휴대폰에서 자동 완성을 켠 상태로 문자 메시지 앱에 단어를 몇 개 입력해보면 된다.

2000년에 요슈아 벤지오와 공동 저자들은 통계적 언어 모델의 확률을 신경망으로 대체하여 차원의 저주를 회피하고 당시 최첨단 기술이었던 평탄화 트라이그램(smoothed trigram) 모델에 비해 단어 예측을 20%~35% 개선하는 신경 확률 언어 모델을 다룬 논문을 발표했다. 피드 포워드 자동 회귀 신경망 언어 모델 개념은 지금도 여전히 사용되지만, 현재의 모델은 매개변수 수가 수십억 개에 이르고 광범위한 말뭉치로 학습되며, 그래서 ‘대규모 언어 모델’이라는 명칭으로 불린다.


언어 모델이 성능 개선을 목표로 발전하면서 시간이 갈수록 크기도 커졌다. 그러나 이 같은 크기 증가에는 단점도 있다. 2021년에 발표된 논문 ‘확률적 앵무새의 위험에 대해: 언어 모델의 크기에는 한계가 없는가?’는 언어 모델은 클수록 좋다고 생각하는 경향에 대해 의문을 제기한다. 논문 저자는 웹의 모든 것을 수집하지 말고 환경적, 재정적 비용을 먼저 고려해서 데이터 집합을 선별 및 문서화하는 데 투자할 것을 제안한다.

언어 모델과 LLM에 대한 이해

현재의 언어 모델은 다양한 작업과 목표가 있고 형태도 다양하다. 예를 들어 언어 모델은 문서에서 다음 단어를 예측하는 작업 외에 새로운 텍스트를 생성하고 텍스트를 분류하고 질문에 답하고 감정을 분석하고 명명된 개체를 인식하고 음성을 인식하고 이미지의 텍스트를 인식하고 손글씨를 인식할 수 있다. 일반적으로 중소 규모의 보충 학습 집합을 사용하여 실시되는 특정 작업을 위한 언어 모델 맞춤 설정을 미세 조정(fine-tuning)이라고 한다. 

  • 언어 모델에 들어가는 중간 작업의 예를 들면 다음과 같다.
  • 학습 말뭉치를 문장으로 세분화
  • 단어 토큰화
  • 어간 추출
  • 표제어 추출(어근 단어로 변환)
  • POS(Part Of Speech) 태깅
  • 정지단어 식별 및 제거(경우에 따라)
  • 명명된 객체 인식(NER)
  • 텍스트 분류
  • 청킹(Chunking, 문장을 유의미한 구로 분할)
  • 상호참조 해결(텍스트의 동일한 개체를 가리키는 모든 표현 찾기)

이 중에서 일부는 텍스트 분류와 같이 자체적인 작업 또는 애플리케이션으로도 유용하다.

대규모 언어 모델은 딥러닝 신경망과 대규모 학습 말뭉치를 사용하며, 신경망을 위한 수백만 개 이상의 매개변수 또는 가중치를 필요로 한다는 면에서 기존 언어 모델과 다르다. LLM 학습은 지정된 작업에 대한 모델의 오류를 가능한 가장 낮게 하기 위한 가중치 최적화의 문제다. 예를 들어 보통 자기 지도 방식으로 말뭉치의 임의의 지점에서 다음 단어를 예측하는 작업이 있다.

가장 인기 있는 LLM


최근 대규모 언어 모델의 폭발적인 성장을 촉발한 것은 2017년 발표된 “필요한 것은 주의 집중(Attention is All You Need)”이라는 논문이다. 이 논문은 “순환과 컨볼루션을 완전히 배제하고 오로지 주의 집중 메커니즘에만 기반을 둔 새롭고 단순한 신경망 아키텍처”로 트랜스포머를 소개했다.
 
오늘날 가장 많이 사용되는 대규모 언어 모델 중 몇 가지를 소개하면 다음과 같다.

엘모(ELMo)
엘모는 2018년에 나온 앨런NLP(AllenNLP)의 심층 맥락화 단어 표현 LLM으로, 단어 사용의 복잡한 특징, 그리고 언어적 맥락에 따라 그 단어 사용이 어떻게 달라지는지를 모델링한다. 원본 모델은 9,360만 개의 매개변수를 사용하며 1B 워드 벤치마크로 학습됐다.

버트(BERT)
버트는 구글 AI가 자사 트랜스포머 신경망 아키텍처를 기반으로 2018년에 출시한 언어 모델이다. 버트는 모든 레이어에서 왼쪽과 오른쪽의 맥락에 대한 공동 조건화를 통해 레이블 없는 텍스트로부터 심층 양방향 표현을 사전 학습하도록 설계됐다. 초기에 사용된 두 모델의 크기는 각각 매개변수 1억 개와 3억 4,000만 개였다. 버트는 토큰의 최대 15%가 “손상되는” 마스킹된 언어 모델링(MLM)을 학습에 사용한다. 영어 위키피디아와 토론토 북 코퍼스를 사용해 학습됐다.

T5
구글의 2020년 텍스트-투-텍스트 트랜스퍼 트랜스포머(T5) 모델은 GPT, ULMFiT, 엘모, 버트 및 후속 모델에 적용된 최고의 전이 학습 기법을 기반으로 새로운 모델을 합성한다. 오픈소스 콜로설 클린 크롤드 코퍼스(C4)를 사전 학습 데이터 집합으로 사용한다. 영어용 표준 C4는 원본 커먼 크롤 데이터 집합을 기반으로 한 800GB 데이터 집합이다. T5는 모든 NLP 작업을 통합 텍스트-투-텍스트 형식으로 재구성한다. 클래스 레이블 또는 입력의 범위만 출력할 수 있는 버트 스타일 모델과 달리, 이 형식에서는 입력과 출력이 항상 텍스트 문자열이다. 기본 T5 모델에는 총 2억 2,000만 개의 매개변수가 사용된다.

GPT 제품군
AI 연구 및 배포 기업인 오픈AI(OpenAI)의 사명은 “인공 일반 지능(AGI)이 모든 인류에 혜택이 되도록 하는 것”이다. 물론 AGI에는 아직 도달하지 못했고, 머신러닝의 개척자인 메타-FAIR의 얀 르쿤 등 일부 AI 연구자는 AGI에 대한 오픈AI의 현재 접근 방식에는 답이 없다고 생각하기도 한다.
 
오픈AI는 GPT 언어 모델 제품군을 갖추고 있다. GPT 제품군 전체와 2018년 이후의 발전 과정을 간략하게 살펴보자. (참고로 GPT 제품군 전체는 구글의 트랜스포머 신경망 아키텍처를 기반으로 한다. 구글이 트랜스포머를 오픈소스로 공개했으므로 이는 합법적이다.)

GPT(생성형 사전 학습 트랜스포머)는 오픈AI가 2018년에 출시한 모델로, 약 1억 1,700만 개의 매개변수를 사용한다. GPT는 토론토 북 코퍼스를 사용해 사전 학습된 단방향 트랜스포머이며 인과적 언어 모델링(CLM) 목표에 따라, 즉 시퀀스의 다음 토큰을 예측하도록 학습됐다.
 
GPT-2는 2019년에 출시된 GPT 확장 모델로, 매개변수는 15억 개이며 최대 40GB의 텍스트 데이터를 포함한 800만 개의 웹페이지 데이터 집합을 사용해 학습됐다. 오픈AI는 GPT-2가 “너무 뛰어나고” “가짜 뉴스”로 이어질 수 있다는 이유에서 원래는 GPT-2에 대한 접근을 제한했다. 이 조치는 나중에 철회됐지만, GPT-3가 출시되면서 사회적 문제가 생길 가능성이 더 커졌다. 
 
GPT-3는 2020년에 나온 자동 회귀 언어 모델로, 1,750억 개의 매개변수를 사용하며 필터링된 버전의 커먼 크롤과 웹텍스트2(WebText2), 북1(Books1), 북2(Books2), 영어 위키피디아의 조합으로 학습됐다. GPT-3에 사용된 신경망은 GPT-2와 비슷하지만 몇 개의 추가 블록이 있다.
 
GPT-3의 가장 큰 단점은 환각, 즉 명확한 근거 없이 사실을 지어내는 경향이다. GPT-3.5와 GPT-4에도 정도는 덜하지만 같은 문제가 있다.
 
코덱스(CODEX)는 2021년 GPT-3에서 파생된 모델로 코드 생성을 위해 5,400만 개의 오픈소스 깃허브 리포지토리로 미세 조정됐다. 깃허브 코파일럿(Copilot)에 사용되는 모델이다.
 
GPT-3.5는 GPT-3와 코덱스의 2022년 업데이트 집합이다. gpt-3.5-turbo 모델은 채팅에 최적화됐지만 기존의 완성 작업에서도 잘 작동한다.
 
GPT-4는 오픈AI의 주장으로는 일부 전문 및 학술 벤치마크에서 인간 수준의 성능을 발휘하는 2023년 대규모 멀티모달 모델(이미지와 텍스트 입력을 받아서 텍스트 출력을 생성)이다. GPT-4는 미국 변호사 시험, LSAT, GRE 및 여러 AP 주제 시험을 포함한 다양한 시뮬레이션 시험에서 GPT-3.5를 앞섰다.
 
참고로 시간이 지나면서 GPT-3.5와 GPT-4의 성능도 바뀌었다. 2023년 7월 스탠포드 대학 논문에 따르면 2023년 3월부터 2023년 6월 사이에 소수 식별을 포함한 여러 작업에서 모델의 동작이 크게 바뀌었다.

GPT-4 모델의 편향성에 대한 우려

GPT-4의 학습 방법을 오픈AI가 설명하지 않은 것은 심각한 우려 사항이다. 오픈AI 측이 내세우는 이유는 경쟁이다. 마이크로소프트(현재까지 오픈AI에 130억 달러의 자금을 투자함)와 구글 간의 경쟁을 감안하면 어느 정도 납득은 되는 이유다. 그러나 학습 말뭉치의 편향성에 대해 알지 못한다는 것은 모델의 편향성에 대해 알지 못한다는 것을 의미한다. 에밀리 벤더는 2023년 3월 16일 마스토돈에 게시한 GPT-4에 대한 글에서 “#오픈AI가 학습 데이터, 모델 아키텍처 등에 대한 정보를 *공개*하기 전까지 GPT-4는 독성 쓰레기로 간주해야 한다”라고 말했다.

챗GPT와 빙GPT는 원래 gpt-3.5-turbo 기반의 챗봇이었지만 2023년 3월에 GPT-4를 사용하도록 업그레이드됐다. 현재 GPT-4 기반의 챗봇 버전에 액세스하려면 챗GPT 플러스에 가입해야 한다. GPT-3.5 기반의 표준 챗GPT는 2021년 9월까지의 데이터로만 학습됐다.

빙GPT는 “더 뉴 빙”이라고도 하며, 마이크로소프트 엣지 브라우저에서 액세스할 수 있다. 마찬가지로 2021년까지의 데이터로 학습됐다. 이에 대해 빙GPT에 직접 물어보면 지속적으로 학습하면서 웹의 새로운 정보로 지식을 업데이트하고 있다고 주장한다.

홍콩 과학기술대학교 인공 지능 연구 센터의 파스칼 펑 교수는 2023년 3월 초에 챗GPT 평가에 대해 강연했는데, 시간을 투자해서 볼 만한 가치가 충분한 강연이다.

람다(LaMDA)
구글이 2021년에 발표한 “획기적인” 대화 기술인 람다(대화 애플리케이션을 위한 언어 모델)는 트랜스포머 기반 언어 모델로, 대화를 통해 학습되며 응답의 분별력과 구체성을 대폭 개선하도록 미세 조정됐다. 람다의 강점은 사람의 대화에서 흔히 발생하는 주제 표류에 대처할 수 있다는 것이다.

팜(PaLM)
팜(패스웨이 언어 모델)은 구글 리서치가 2022년에 발표한 고밀도 디코더 전용 트랜스포머 모델로 매개변수 수는 5,400억 개이며 패스웨이(Pathways) 시스템을 사용해 학습됐다. 팜은 고품질의 웹 문서와 서적, 위키피디아, 대화, 깃허브 코드를 포함한 여러 영어 및 다국어 데이터 집합의 조합을 사용해 학습됐다. 

또한 구글은 모든 공백(특히 코드에 중요)을 보존하고, 어휘 목록에서 벗어난 유니코드 문자를 바이트로 분할하고, 숫자를 각 자릿수당 하나의 개별 토큰으로 분할하는 “무손실” 어휘 목록도 만들었다.

팜-코더(PaLM-Coder)는 파이썬 전용 데이터 집합으로 미세 조정된 팜 540B 버전이다.

팜-E(PaLM-E)
팜-E는 구글이 로봇공학용으로 2023년에 구체화한 멀티모달 언어 모델이다. 연구진은 팜을 가져와서 로봇 에이전트의 센서 데이터로 보완하여 “구체화(팜-E의 ‘E’는 구체화를 의미)”했다. 또한 팜-E는 팜 외에 ViT 22B 비전 모델도 채택했으므로 일반적인 기능의 비전 및 언어 모델이기도 하다.

바드(Bard)
바드는 구글이 2023년 출시한 람다 기반의 구글 대화형 AI 서비스다. 2023년 3월 21일에 출시된 후 2023년 5월 10일에 일반에 공개됐다.

바드는 출시 이후 여러 번 업데이트됐다. 2023년 4월에는 20개의 프로그래밍 언어로 코드를 생성하는 기능이 추가됐고, 2023년 7월에는 40가지 인간 언어 입력에 대한 지원과 함께 구글 렌즈가 통합되고 40개 이상의 언어를 사용한 텍스트-투-스피치 기능이 추가됐다.

라마(LLaMA)
라마(대규모 언어 모델 메타 AI)는 650억 매개변수를 사용하는 “원시” 대규모 언어 모델로, 메타 AI(전 메타-FAIR)가 2023년 2월에 출시했다. 라마에 대한 메타의 설명은 다음과 같다.

대규모 언어 모델 분야에서는 라마와 같은 비교적 작은 기반 모델을 학습시키는 것이 바람직하다. 훨씬 더 적은 컴퓨팅 성능과 리소스만으로 새 접근 방식을 테스트하고 다른 사람들의 작업을 검증하고 새로운 사용 사례를 탐색할 수 있기 때문이다. 기반 모델은 레이블 없는 대량의 데이터 집합으로 학습되므로 다양한 작업을 위한 미세 조정에 이상적이다.

라마는 여러 크기로 출시됐으며 어떻게 구축되었는지에 대한 자세한 내용이 담긴 모델 카드가 제공된다. 메타 AI의 얀 르쿤에 따르면 원래는 체크포인트와 토크나이저를 요청해야 했지만, 정식으로 요청을 제출해서 모델을 받은 누군가가 4채널 사이트에 다운로드 가능한 토렌트를 게시한 덕분에 지금은 쉽게 구할 수 있다.

라마 2(Llama 2)
라마 2는 차세대 메타 AI 대규모 언어 모델로, 2023년 1월부터 7월 사이에 라마 1에 비해 40% 더 많은 데이터로 학습됐으며(공개적으로 사용 가능한 소스에서 2조 개의 토큰 사용), 컨텍스트 길이는 2배 더 긴 4096이다. 라마 2는 매개변수 70억 개, 130억 개, 700억 개의 여러 크기로 제공되고 사전 학습 및 미세 조정된 변형도 있다. 메타 AI는 라마 2가 오픈소스라고 주장하지만 허용되는 사용에 대한 제약이 포함됐다는 이유로 이 주장에 동의하지 않는 사람들도 있다. 커뮤니티 라이선스 외에 상용 라이선스도 제공된다.

라마 2는 최적화된 트랜스포머 아키텍처를 사용하는 자동 회귀 언어 모델이다. 조정된 버전은 지도 미세 조정(SFT)과 인간 피드백을 통한 강화 학습(RLHF)을 사용해서 유용성과 안전성에 대한 인간의 선호도에 맞게 조정된다. 라마 2는 현재 영어 전용이다. 모델 카드에는 벤치마크 결과와 탄소 발자국 통계가 포함돼 있다. 연구 논문 ‘라마 2: 개방형 기반과 미세 조정된 채팅 모델’에서 더 자세한 내용을 볼 수 있다.

클로드 2(Claude 2)
2023년 7월에 출시된 앤트로픽(Anthropic)의 클로드 2는 단일 프롬프트에서 최대 10만 개의 토큰(약 7만 단어)을 수락하며, 수천 토큰의 스토리를 생성할 수 있다. 클로드는 구조적 데이터를 편집, 재작성, 요약, 분류, 추출할 수 있으며 내용을 기반으로 한 Q&A와 그 외의 다양한 작업이 가능하다. 대부분의 학습은 영어로 이뤄졌지만 다른 여러 일반적인 언어에서도 잘 작동하며, 일반적이지 않은 언어로도 어느 정도의 커뮤니케이션이 가능하다. 프로그래밍 언어에 대한 지식도 방대하다.

클로드는 유용하고 정직하고 무해한(Helpful, Honest, Harmless, HHH) 모델로 학습됐으며 무해함을 강화하고 프롬프트를 통해 공격적이거나 위험한 출력을 생성하기가 더 어렵게 하기 위한 광범위한 레드 팀 과정을 거쳤다. 사용자의 개인 데이터를 학습에 사용하거나 인터넷에서 답을 참조하지 않지만, 사용자가 직접 클로드에 인터넷의 텍스트를 제공해서 그 내용으로 작업을 수행하도록 요청할 수는 있다. 클로드는 미국 및 영국 사용자에게 무료 베타 버전으로 제공되며, 생성형 AI 플랫폼인 재스퍼(Jasper), 코드 AI 플랫폼인 소스그래프 코디(Sourcegraph Cody), 아마존 베드록(Amazon Bedrock)과 같은 상업적 협력업체 채택됐다.

결론

살펴본 바와 같이 대규모 언어 모델은 여러 기업에서 활발하게 개발되는 중이며 오픈AI와 구글 AI, 메타 AI, 앤트로픽에서 거의 매달 새로운 버전이 나오고 있다. 이러한 LLM 중에서 진정한 인공 일반 지능(AGI)을 달성한 모델은 없지만 새 모델이 나올 때마다 대체로 지난 모델에 비해 개선되는 중이다. 다만 대부분의 LLM에서 환각을 비롯한 비정상적인 현상이 자주 발생하며, 경우에 따라 사용자 프롬프트에 대해 부정확하고 편향되거나 불쾌한 응답을 생산하기도 한다. 결국 출력이 정확함을 검증할 수 있는 경우에 한해서만 LLM을 사용해야 한다.
editor@itworld.co.kr 

Martin Heller
Contributing Writer

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

? ??? ?? ???