반응형
반응형

[python] Generate Captcha Using Python

 

 

https://www.geeksforgeeks.org/generate-captcha-using-python/

 

Generate Captcha Using Python - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

In this article, we are going to see how to generate a captcha using Python package captcha to generate our own CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) in picture form. CAPTCHA is a form of challenge-response authentication security mechanism. CAPTCHA prevents automated systems from reading the distorted characters in the picture.

Installation:

pip install captcha

Generating image captcha: 

Here we are going to generate an image captcha:

Stepwise implementation:

Step 1: Import module and create an instance of ImageCaptcha().

image = ImageCaptcha(width = 280, height = 90)

Step 2: Create image object with image.generate(CAPTCHA_Text).

data = image.generate(captcha_text)  

Step 3: Save the image to a file image.write().

image.write(captcha_text, 'CAPTCHA.png')

Below is the full implementation:

  • Python3

 

# Import the following modules
from captcha.image import ImageCaptcha
 
# Create an image instance of the given size
image = ImageCaptcha(width = 280, height = 90)
 
# Image captcha text
captcha_text = 'GeeksforGeeks' 
 
# generate the image of the given text
data = image.generate(captcha_text) 
 
# write the image on the given file and save it
image.write(captcha_text, 'CAPTCHA.png')

Output:

Image CAPTCHA

Generating Audio captcha:

Here we are going to generate an audio captcha:

Stepwise implementation:

Step 1: Import module and create an instance of AudioCaptcha().

image = audioCaptcha(width = 280, height = 90)

Step 2: Create an audio object with audio.generate(CAPTCHA_Text).

data = audio.generate(captcha_text)  

Step 3: Save the image to file audio.write().

audio.write(captcha_text, audio_file)

Below is the full implementation:

  • Python3

 

# Import the following modules
from captcha.audio import AudioCaptcha
 
# Create an audio instance
audio = AudioCaptcha() 
 
# Audio captcha text
captcha_text = "5454"
 
# generate the audio of the given text
audio_data = audio.generate(captcha_text)
 
# Give the name of the audio file
audio_file = "audio"+captcha_text+'.wav'
 
# Finally write the audio file and save it
audio.write(captcha_text, audio_file)

Output:

Video Player
 
 
 
00:00
 
00:13
 
 

 

Ready to dive into the future? Mastering Generative AI and ChatGPT is your gateway to the cutting-edge world of AI. Perfect for tech enthusiasts, this course will teach you how to leverage Generative AI and ChatGPT with hands-on, practical lessons. Transform your skills and create innovative AI applications that stand out. Don't miss out on becoming an AI expert – Enroll now and start shaping the future!

반응형
반응형

생성형 AI가 지루한 작업을 처리하고 오류를 찾는 데 능숙하더라도 프로그래머의 전문성과 직관은 항상 필요할 것이다.

데이터셋(Datasette)의 설립자 사이먼 윌리슨은 “지금이 프로그래밍을 배우기에 더할 나위 없이 좋은 시기”라고 말했다. AI가 코딩을 대신 해줘서가 아니다. 사실 정반대다. 그는 “대규모 언어 모델은 학습 곡선을 평평하게 만들어 젊은 개발자가 더 쉽게 따라잡을 수 있게 해준다”라고 말했다. 코딩하는 방법을 잊어서는 안 되지만, 생성형 AI를 사용해 경력 수준에 관계없이 개발자 경험을 강화할 수 있다.

‘배움에 대한 의지’를 예찬
필자는 생성형 AI에 대한 윌리슨의 견해를 살피는 것을 즐긴다. 그는 이 주제를 사려 깊게 생각하는 개발자다. 오라일리(O'Reilly Media)의 마이크 루키데스 글도 큰 주제에서 핵심을 압축해 설명했기 때문에 읽어볼 만하다. 루키데스는 생성형 AI와 코딩에 대해 “정말 좋은 프롬프트를 작성하기란 생각보다 어렵다”라는 점을 상기시켜 준다. 그는 “프롬프트를 잘 작성하려면 프롬프트의 목적에 대한 전문 지식을 쌓아야 한다”라고 말했다. 다시 말해, 먼저 ‘좋은’ 프로그래머가 돼야 한다.

루키데스는 “AI를 '인간이 얻을 수 없는 전문 지식과 지혜의 보고’로 생각해버리면 이를 생산적으로 사용할 수 없게 된다”라고 조언했다. AWS 코드위스퍼러(CodeWhisperer)나 구글 코디(Codey)와 같은 도구를 효과적으로 사용하기 위해서는 기대하는 결과물을 코칭해야 한다. 그리고 AI에게 개발 문제를 해결하는 방법을 단계별로 알려주려면, 먼저 문제를 깊이 이해하고 AI가 응답하도록 이끌어내야 한다. 

또한 개발자는 AI가 틀렸을 때 이를 평가할 수 있어야 한다. 여기엔 일정 수준의 전문성이 필요하다. 윌리슨이 언급한 것처럼 코딩 어시스턴트가 프로젝트에서 더 활발히 일하고 도와줄 것으로 기대되는 상황이지만, 그렇다고 해서 개발자가 코드를 파악해야 할 필요성까지 없애주진 않을 것이다. 그렇게 되기를 바라는 이도 없을 것이다. 다시 윌리슨의 첫 번째 요점으로 돌아가 본다.

AI를 활용한 코딩 학습
특정 언어, 프레임워크, 데이터베이스 등을 처음 접하는 개발자라면 학습 곡선이 가파를 수 있다. 예를 들어 “세미콜론을 놓쳐서 기이한 오류 메시지가 표시되고, 그 오류를 다시 찾는 데 2시간이 걸리는 경우도 있다”라고 윌리슨은 말했다. 당연히 이러한 점 때문에 학생들은 자신이 프로그래밍을 배울 만큼 똑똑하지 않다고 생각해 배움을 포기할 수 있다.

바로 이 부분에서 AI 어시스턴트가 개입할 수 있다. 윌리슨은 “컴퓨터공학 학위가 없어도 컴퓨터가 지루한 일을 대신 해줄 수 있어야 한다”라고 전했다. 챗GPT 같은 LLM 기반 어시스턴트는 지루한 작업을 자동화할 수 있다. 깃허브(GitHub) 엔지니어 자나 도건은 “사람들은 코드 생성에만 너무 집중한 나머지 LLM이 코드 분석에 유용하다는 사실을 완전히 잊고 있다”라고 강조했다. 모든 작업을 AI가 할 필요는 없다. 윌리슨의 주장에 따르면, 애플리케이션을 만들거나 망치지는 않으나 개발자의 자신감을 떨어뜨릴 수 있는, 개별적이고 지루한 작업을 자동화하는 데 AI를 활용할 수 있다. 코딩 어시스턴트가 지루한 작업을 처리할 수 있음에도 개발자가 프로그래밍의 모든 측면을 배우고 수행할 것을 요구받는 경우에 더 그렇다.

언제나 그렇듯 생성형 AI와 함께 소프트웨어 개발을 시작하는 가장 좋은 방법은, 바로 시작하는 것이다. 이해는 했지만 반복해서 작성할 필요는 없는 간단한 작업부터 자동화해 작게 시작하라. 이렇게 절약한 시간으로 더 까다로운 코딩 문제를 해결하는 방법을 배우는 데 집중할 수 있다. 전문성이 높아지면 이러한 작업도 자동화할 수 있게 될 것이다.

 

https://www.ciokorea.com/news/311336

 

칼럼 | 프로그래밍에서 AI가 대체하지 못하는 것들

생성형 AI가 지루한 작업을 처리하고 오류를 찾는 데 능숙하더라도 프로그래머의 전문성과 직관은 항상 필요할 것이다. ⓒ Getty

www.ciokorea.com

 

반응형
반응형

생성형 AI를 도입한 소프트웨어 개발 작업에 인간 프로그래머와는 근본적으로 다른 실수가 포함된다는 사실은 잘 알려져 있다. 그럼에도 대부분의 기업에서 AI 코딩 실수를 수정하는 계획은 단순히 숙련된 인간 프로그래머를 루프에 투입하는 것에 의존하고 있다. 


숙련된 인간 프로그래머는 인간 프로그래머가 저지르는 실수와 지름길의 종류를 직관적으로 알고 있다. 하지만 소프트웨어가 소프트웨어를 만들 때 발생하는 실수의 종류를 찾아내는 훈련은 별도로 필요하다.

이러한 논의는 이르면 2026년부터 대부분의 개발자가 더 이상 코딩을 하지 않을 것으로 예상한다는 AWS CEO 매트 가먼의 발언으로 더욱 가속화되었다.
 
개발 도구 분야의 많은 업체는 AI 코딩 앱을 관리하기 위해 AI 앱을 사용하면 이 문제를 해결할 수 있다고 주장했다. 2번째 열차 사고의 신호탄이나 마찬가지다. 금융 대기업인 모건 스탠리조차도 AI를 사용해 AI를 관리하는 방법을 고민하고 있다.

현실적으로 안전하고 원격으로 실행 가능한 유일한 접근 방식은 생성형 AI 코딩 오류의 특성을 이해하도록 프로그래밍 관리자를 교육하는 것이다. 사실 AI 코딩 오류의 특성이 매우 다르다는 점을 고려할 때, 인간의 코딩 실수를 발견하는 데 익숙하지 않은 새로운 사람을 AI 코딩 관리자로 교육하는 것이 더 나을 수도 있다.

문제의 일부는 인간의 본성이다. 사람들은 차이를 확대하고 잘못 해석하는 경향이 있다. 관리자는 자신이 절대 하지 않을 실수를 사람이나 AI가 저지르는 것을 보면 그 실수가 코딩 문제에서 관리자보다 열등하다고 생각하는 경향이 있다.

하지만 자율 주행 차량에 비추어 가정해 보자. 통계적으로 자율주행차는 사람이 운전하는 자동차보다 훨씬 더 안전하다. 자동화된 시스템은 피로를 느끼지도 않고, 취하지도 않으며, 고의적으로 난폭해지지도 않는다.

하지만 자율주행차는 완벽하지 않다. 그리고 교통 체증으로 정차한 트럭을 전속력으로 들이받는 등의 실수를 저지르면 인간은 “나라면 저런 멍청한 짓은 절대 하지 않았을 텐데...인공지능을 믿을 수 없어”라고 반문하게 된다. (웨이모 주차 차량 참사는 꼭 봐야 할 동영상이다.)

하지만 자율주행차가 이상한 실수를 한다고 해서 인간 운전자보다 안전하지 않다는 의미는 아니다. 그러나 인간의 본성은 이러한 차이를 조정할 수 없다.

코딩 관리도 마찬가지다. 생성형 AI 코딩 모델은 매우 효율적일 수 있지만, 자칫 잘못하면 엉뚱한 방향으로 흘러갈 수 있다.
 

AI는 미친 외계인 프로그래머

SaaS 기업 쿼리팰(QueryPal) CEO인 데브 내그는 생성형 AI 코딩 작업을 해오면서 많은 기업 IT 경영진이 이 새로운 기술이 얼마나 다른지에 대해 준비가 되어 있지 않다고 느꼈다.

내그는 “마치 다른 행성에서 온 외계인처럼 이상한 실수를 많이 했다. 인간 개발자가 하지 않는 방식으로 코드가 잘못 작동한다. 마치 우리처럼 생각하지 않는 외계 지능처럼 이상한 방향으로 나아간다. AI는 병적으로 시스템을 조작할 방법을 찾아낼 것”이라고 말했다.

올해 ‘AI 보조 프로그래밍’을 포함해 여러 권의 AI 프로그래밍 책을 펴낸 톰 타울리에게 물어보자.

타울리는 “예를 들어 LLM에 코드 작성을 요청할 수 있으며, 때로는 원하는 작업을 수행하기 위해 프레임워크나 가상의 라이브러리 또는 모듈을 구성할 수도 있다”라고 말했다. (타울리는 LLM이 실제로는 새로운 프레임워크를 만드는 것이 아니라 그렇게 하는 척하는 것이라고 설명했다.)

타울리는 “(인간 프로그래머가) 미치지 않는 한, 가상의 라이브러리나 모듈을 만들어서 허공에서 만들어내지는 않을 것”이라고 지적했다.

이런 일이 발생하면 누구든 찾아보면 쉽게 발견할 수 있다. 타울리는 “직접 설치하려고 하면 아무것도 없다는 것을 알 수 있다. 이 경우 IDE와 컴파일러에서 오류가 발생한다"라고 설명했다.

실행 파일의 창의적인 제어를 포함해 애플리케이션 전체 코딩을 주기적으로 환각을 일으키는 시스템에 넘긴다는 생각은 끔찍한 접근 방식인 것 같다.

생성형 AI 코딩의 효율성을 활용하는 훨씬 더 좋은 방법은 프로그래머가 더 많은 작업을 수행할 수 있도록 돕는 도구로 사용하는 것이다. AWS의 가먼이 제안한 것처럼 인간을 배제하는 것은 자살 행위나 다름없다.

만약 생성형 AI 코딩 도구가 마음대로 돌아다니면서 백도어를 만들어 나중에 사람을 귀찮게 하지 않고도 수정할 수 있도록 한다면 공격자들도 사용할 수 있는 백도어를 만들면 어떨까?

기업은 앱, 특히 자체 개발한 앱의 기능을 테스트해 앱이 제대로 작동하는지 확인하는 데 매우 효과적인 경향이 있다. 앱 테스트가 실패하기 쉬운 부분은 앱이 수행해서는 안 되는 작업을 수행할 수 있는지 확인하는 경우이다. 이것이 바로 모의 침투 테스트 사고방식이다.

하지만 생성형 AI 코딩 현실에서는 이러한 펜 테스트 방식이 기본이 되어야 한다. 또한 생성형 AI의 실수라는 엉뚱한 세계에 대해 잘 교육받은 감독자가 이를 관리해야 한다.

기업 IT는 확실히 더 효율적인 코딩 미래를 기대하고 있다. 프로그래머는 앱이 무엇을 해야 하는지, 왜 해야 하는지에 더 집중하고 모든 줄을 힘들게 코딩하는 데 시간을 덜 할애하여 더 전략적인 역할을 맡을 것이다.

하지만 그러한 효율성과 전략적 이득은 막대한 대가를 치러야 한다. AI가 생성한 코드가 올바른 방향으로 나아가도록 하기 위해 더 뛰어나고 다르게 훈련된 인력을 고용해야 하기 때문이다.

 

https://www.itworld.co.kr/topnews/350221

 

AI 코딩 오류, 관리는 인간 프로그래머가 담당해야

생성형 AI를 도입한 소프트웨어 개발 작업에 인간 프로그래머와는 근본적으로 다른 실수가 포함된다는 사실은 잘 알려져 있다. 그럼에도 대부분의 기

www.itworld.co.kr

 

반응형
반응형

IT 프로젝트는 점차 추진력과 지원을 잃을 수 있다. 만약 그런 징후를 감지한다면, 지금 바로 진행 방향을 바로잡거나 중단하기 위한 조치를 취해야 한다.
 
Y2K 날짜 변환은 기록상 최장 IT 프로젝트 중 하나였다. 장기간의 일정과 막대한 자원이 투입된 이 프로젝트가 끝까지 이어질 수 있었던 유일한 이유는 세기 말에 시스템이 중단되지 않도록 모든 날짜 형식을 변경해야 한다는 절대적인 필요성 때문이었다.

다시 말해 Y2K 프로젝트는 시급성 때문에 성공했다. 모두가 무엇이 위험한지, 그리고 프로젝트가 왜 그렇게 오래 걸리는지 알고 있었다.

다른 IT 프로젝트는 그렇지 않다. 프로젝트가 지연되거나 열정이 식어가기 시작하면 CIO와 프로젝트 매니저는 점검해야 한다. 죽어가는 프로젝트를 진행하고 있는 것은 아닌가?

프로젝트 실패로 인한 비용은 상당하다. 생성형 AI 이니셔티브, 소프트웨어 프로젝트 또는 대규모 디지털 트랜스포메이션 등 IT 프로젝트는 여전히 놀라울 정도로 높은 비율로 실패하고 있다. 실패한 프로젝트를 언제 복구할지 알아내는 것은 IT 리더가 개발해야 할 핵심 기술이다. 육감 같은 것이다. 때로는 프로젝트를 중단하는 것이 최선의 방법일 수 있다.

한때 열정적으로 지지받던 프로젝트가 흔들리기 시작하는 데에는 여러 가지 이유가 있다. IT 프로젝트가 위기에 처했음을 나타내는 몇 가지 주요 위험 신호를 소개한다.

벤더가 투자를 철회할 조짐을 보일 때
벤더 기반 시스템에 대한 일련의 자체 보고서를 작성하고 있으며, 이러한 보고서를 작성하기 위해 벤더 도구를 활용하는 경우가 있다. 프로젝트가 진행되고 있을 때 벤더의 수정 및 개선 사항 제공 속도가 느려지기 시작하는 것을 알게 된다. 벤더의 소프트웨어 릴리스 주기는 점점 길어진다. 심지어 벤더에서 감원이 임박했다는 소식도 들린다.

이는 프로젝트 위험 신호가 될 수 있는데, 프로젝트가 벤더의 도구와 플랫폼에 의존하고 있기 때문이다. 벤더의 활동이 서서히 중단되는 것처럼 보인다면, 프로젝트에도 비슷한 종말을 알리는 신호일 수 있다.

주요 벤더의 투자 의욕을 파악하는 것은 IT 이니셔티브가 장기적으로, 때로는 단기적으로 어떻게 진행될지 파악하는 데 필수적이다.

사용자가 프로젝트 플랫폼에 자주 접속하지 않는 경우
사내 시스템을 대폭 개선했지만, 지난 몇 달 동안 사용량이 꾸준히 감소했다는 것을 알게 된다. 사용자들이 이 시스템을 예전만큼 가치 있게 여기지 않는다는 신호일까? 사용자와 상의할 때다.

사용량 지표를 추적하고, 사용자 기반과 협력 관계를 구축해 요구 사항과 관심사를 더 잘 파악하는 것이 사용자 관심 저하를 확인하는 2가지 핵심 방법이다.

프로젝트 마감일이 계속 재협상되는 경우
프로젝트는 시작부터 순조롭게 진행되고 사용자와 IT 부서는 흥분하고 참여한다. 3개월이 지나자, 프로젝트 스폰서가 문을 두드리며 급한 일로 직원을 다른 곳으로 이동시켜야 하니 프로젝트 마감일을 미룰 수 있는지 묻는다. 스폰서는 모든 사람이 여전히 프로젝트를 지지하고 있다면서 일정을 미루게끔 한다. 그러나 프로젝트가 다시 시작될 즈음 스폰서는 또 찾아와 프로젝트 연기를 요청한다. 한때 높았던 프로젝트의 열정이 식어가고 있는 것일까?

잠재적인 비즈니스 이해관계자의 ‘무관심’ 신호를 읽는 법을 배우고, 이해관계자를 프로젝트 파트너로 변화시켜 위험에 처한 프로젝트를 바로잡거나, 다른 IT 우선순위를 방해하거나 더 많은 시간, 예산 및 자원을 소모하지 않고 프로젝트를 보류하기로 상호 결정할 수 있도록 해야 한다.

예산 지원이 축소되거나 연기될 때
지난 예산 편성 과정에서는 모든 사람이 프로젝트를 매우 기대했기 때문에 요청한 자금을 모두 지원받았다. 이제 새로운 예산 회의에서 CEO와 CFO는 초기 프로젝트 자금의 일부를 축소하거나, 적어도 회사가 프로젝트를 추진하기에 더 나은 재정 상태가 될 때까지 연기할 것을 요청한다.

모든 비즈니스 환경에서 긴축은 이해할 만한 일이지만, 프로젝트 긴축 요청이 두 분기 연속 발생하면 프로젝트의 실행 가능성에 의문을 제기할 때다.

CFO와 긴밀한 관계를 구축하면 도움이 될 수 있으며, 프로젝트 예산을 잘 관리하는 것도 중요하다.

프로젝트 지지자가 퇴사할 때
프로젝트의 슈퍼유저, 프로젝트 관리자 또는 기술 전문가 중 한 명 이상이 다른 직장을 위해 회사를 떠나기로 결정하면, 원래 프로젝트를 홍보하고 경영진에게 판매했던 리더의 부재로 타격을 입을 수 있다. 이러한 빈자리를 메울 수 있는 사람이 남아 있지 않다는 것은 프로젝트에 여전히 미래가 있는지 건강 상태를 측정해야 할 중요한 시기라는 의미다.

물론 직원 유지 노력이 도움이 될 수 있으며, 우수한 인재가 떠나는 일반적인 이유를 파악하는 것도 중요하다.

벤더 또는 회사에서 경영진이 바뀔 때
처음에 프로젝트를 지지했던 회사 또는 벤더의 주요 관리자가 떠나면 해당 프로젝트 지원이 그대로 유지될지 확인해야 한다.

벤더 영역에서는 회사가 합병되거나 인수될 때 경영진이 바뀌는 경우가 많다. 이 경우 프로젝트 기반이 되는 벤더 소프트웨어가 폐기 대상이 될 수도 있다.

조직에서 주요 비즈니스 스폰서가 떠나고 새로운 관리자가 들어올 경우, 새로운 사람은 자신이 사용하고 싶은 제품이나 소프트웨어에 대한 자신만의 아이디어를 가질 수 있으며, 여기에는 해당 프로젝트가 포함되지 않을 수 있다. 좋은 방법은 당사자에게 프로젝트를 계속 지원하는지 직접 묻는 것이다. 외부 종속성이 바뀌는 경우 벤더 관리 모범 사례를 참고하는 것도 도움이 될 수 있다.

비즈니스 방향이 변화할 때
고객이 온라인, 전화, 오프라인 매장에서 원활하게 소통할 수 있는 옴니채널 판매 플랫폼으로 전환하려는 기업은 이런 모든 판매 채널을 통합하는 IT 통합 프로젝트를 시작한다. 그러나 프로젝트가 진행됨에 따라 회사는 예상치 못한 극도의 시장 압박을 경험한다. 경영진은 통합이 불가능하더라도 방향을 바꿔 온라인 판매 채널을 즉시 운영해야 한다는 결론을 내린다. 이는 채널 통합 프로젝트에 어떤 영향을 미칠까?

변화를 항상 예측할 수는 없지만, 다른 주요 임원들과 긴밀한 관계를 구축하면 조기 경고 신호와 필요한 방향 전환을 위한 가치 있는 대화를 나누는 데 도움이 될 수 있다.

30여 년 전 하버드 비즈니스 리뷰(Harvard Business Review)는 "전략은 무엇을 할 것인가에 대한 선택만큼이나 무엇을 하지 않을 것인가에 대한 선택도 중요하게 만든다”라고 언급했다. 기술과 프로젝트 접근 방식은 상당히 변화했지만, 이 오래된 격언은 여전히 유효하다.

순조롭게 진행되던 프로젝트가 갑자기 진흙탕에 빠져 움직이지 않거나, 비즈니스 또는 환경 조건이 급변해 프로젝트의 미래가 의심스러울 때는 한 걸음 물러서서 실행 가능성을 고려할 때이자 프로젝트 이해관계자에게도 동일한 질문을 던져야 할 때다. 프로젝트를 갱신, 연기 또는 취소해야 할 수 있지만, 솔직한 대화를 통해 적어도 합의와 명확한 전략적 방향을 얻을 수 있다.

 

https://www.ciokorea.com/news/350137

 

칼럼 | IT 프로젝트가 실패에 이르고 있다는 전조 7가지

IT 프로젝트는 점차 추진력과 지원을 잃을 수 있다. 만약 그런 징후를 감지한다면, 지금 바로 진행 방향을 바로잡거나 중단하기 위한 조치를 취해

www.ciokorea.com

 

반응형
반응형

비영리 AI 기술 연구 기관 AI2(Allen Institute for AI)가 AI 스타트업 컨텍스추얼AI(Contextual AI), 프린스턴대학, 워싱턴대학과 공동으로 개발한 오픈소스 AI 모델 ‘OLMoE’를 4일 공개했다.
 

사진 제공 : AI2 논문
OLMoE는 희소 혼합 전문가(sparse Mixture of Experts, MoE) 구조를 활용한 것이 특징이다. 여기서 말하는 ‘MoE’는 AI 모델의 성능을 높이고 계산 효율성을 극대화하기 위한 구조다. 전통적인 대규모 AI 모델이 주어진 입력에 대해 모델의 모든 매개변수를 사용하여 계산을 수행하는데, 이 과정은 매우 많은 연산 자원을 요구한다. 반면, MoE는 입력 데이터에 맞춰 모델의 일부만 활성화해 연산을 수행하는 방식으로, 불필요한 연산을 피하고 자원을 절약한다. 이때 말하는 ‘전문가(experts)’는 일종의 하위 모델들이며, 희소라는 용어는 이들 중 일부만을 활성화해서 사용하는 방식을 뜻한다.

OLMoE는 70억 개의 매개변수를 보유하고 있으나 실제로 입력되는 데이터(토큰)당 10억 개의 매개변수만 사용한다. 또한 64개의 작은 전문가 네트워크 중 8개만이 각 입력에 대해 활성화된다. 연구진에 따르면, 이러한 구조 덕분에 OLMoE는 성능 저하 없이 연산 자원을 절감하여 효율성을 크게 높인다. 업계에서 공개된 모델 중 제미나이, 미스트랄, 그록 등이 MoE 구조를 활용하고 있다.

개발진은 OLMoE가 MoE 구조를 통해 지연 시간에 민감한 사용 사례에서 더 빠른 RAG 시스템 개발에 유용할 수 있다고 설명했다. 또한 모바일 기기, 차량, IoT 장치 등 상대적으로 성능이 낮은 엣지 디바이스에서도 활용 가능성이 높아 AI 기술의 적용 범위를 확장할 수 있다고 밝혔다. OLMoE는 OLMoE-1B-7B와 OLMoE-1B-7B-Instruct 두 가지 버전으로 제공되며, 각각 범용적 사용과 지시 기반 튜닝을 지원한다.

연구진은 OLMoE가 ‘오픈소스 형태의 AI 모델’이라고 소개했다. 논문을 통해 연구진은 “업계에 공개된 MoE 모델은 폐쇄된 형태이며, 일부 공개된 모델에서도 가중치를 제공하지만, 대부분 훈련 데이터, 코드, 또는 방법론에 대한 정보는 거의 또는 전혀 제공되지 않는다”라며 “MoE는 활성화되는 매개변수 개수, 전문가 수의 규모, 전문가 공유 여부, 라우팅 알고리즘 선정 방식 등 복잡한 설계 질문이 활용되므로, 업계 연구를 위해 더 많은 것이 공개되어야 한다”라며 오픈소스 모델의 필요성을 강조했다.

이번에 공개된 OLMoE는 모델 가중치뿐만 아니라 훈련 데이터, 코드, 로그, 중간 훈련 체크포인트까지 오픈소스 라이선스(Apache 2.0 또는 ODC-By 1.0) 하에 공개됐다. 연구진은 이를 통해 MoE 모델의 과적합 여부, RAG 파이프라인 최적화 등 다양한 연구 질문을 탐구할 수 있을 것으로 기대하고 있다. 연구진은 “완전한 오픈소스 형태인 OLMoE가 다양한 AI 모델 연구에 도움을 줄 수 있을 것”이라고 밝혔다.

한편 AI2는 2014년 마이크로소프트 공동 창립자 폴 앨런이 설립한 비영리 연구 기관이다. 이 기관은 인공지능 기술의 오용 방지와 함께 공정성 및 투명성 강화를 위한 활동을 주도하고 있다. https://www.ciokorea.com/news/349955

 

“저지연·모바일 특화 MoE 모델”··· AI2, AI 모델 ‘OLMoE’ 오픈소스로 공개

비영리 AI 기술 연구 기관 AI2(Allen Institute for AI)가 AI 스타트업 컨텍스추얼AI(Contextual AI), 프린스

www.ciokorea.com

 

반응형
반응형

CxO 또는 기술 전략 담당자라면 지난 몇 달 동안 AI에 대한 태도가 변화했을 가능성이 크다. 거대 기업의 생성형 AI 서비스가 헤밍웨이와 같은 이메일/문자 품질을 만들어줄 것이라고 기대하지 않으며, 이러한 서비스가 전반적인 수익과 주가를 높여줄 것이라고 기대하지도 않는다. GPU 칩도 일개 하드웨어로 무심히 바라보게 됐을 것이다. 그렇다고 해서 AI를 포기했다는 의미는 아니다. 현실을 직시했다는 뜻이다. 그렇다면 실제 행동 측면에서 현실의 기업들은 어떤 모습일까? '현실의' AI란 무엇일까?

일단은 점점 더 사내에서 실행하는 애플리케이션을 향해가고 있다. AI 계획을 공유한 292개 기업 중에서 164개 기업은 자체 호스팅 AI를 통해서 진정한 AI 혜택이을 얻을 수 있을 것으로 예상했다. 또 105개 기업만이 AI에 대해 잘 알고 있다고 답했고, 47개 기업은 확신을 가지고 있다고 답했다. 전반적으로 사내 AI(in-house AI)가 초기 단계에 있다고 말하는 것은 정확한 표현이다. 기업 내 AI 배포에는 많은 영역이 있으며 대부분이 아직 혼란스럽기 때문이다.

이러한 어려움에도 불구하고 벤더들은 셀프 호스팅 옵션을 내세우는 듯하다. 시스코와 주니퍼( HPE의 인수가 순조롭게 진행되고 있음)는 모두 엔터프라이즈 데이터센터에서의 AI에 더 집중하겠다는 의사를 밝혔다. AI 모델 제공업체들도 생성형 AI 도구의 라이선스를 강조한다. 두 그룹 모두 기업들의 구매를 고대하고 있지만, 앞서 언급한 혼란으로 인해 기업 대부분은 어떻게 시작해야 할지조차 모른다.

전반적으로 기업들은 AI 호스팅 계획의 시작으로 GPU와 데이터센터 장비를 생각하곤 한다. 그러나 응답을 분석한 결과 앞선 기업들은 그렇지 않다고 말하고 있었다. “애플리케이션 요구 사항에 대한 예상에 맞춰 하드웨어를 구매하면 안 된다. AI가 수행하기를 원하는 작업부터 시작한 다음 어떤 AI 소프트웨어가 필요한지 물어봐야 한다. 그런 다음 데이터센터 계획을 시작할 수 있다”라고 한 CIO는 말했다.
 


LLM과 SLM 비교
자체 AI 호스팅 경험을 가진 기업 다수는 챗GPT로 시작했다고 전한다. 퍼블릭 AI 서비스 중 하나에서 사용되는 대규모 언어 모델(LLM)의 프라이빗 버전을 호스팅해야 한다고 가정하는 것이다. 기업 3분의 1은 이러한 경로를 밟고 있었다. 그러나 3분의 2는 자체 호스팅하는 AI가 '오픈소스' 모델을 기반으로 해야 한다고 생각하고 있었다. 또 이들 중 대부분은 이제 특정 미션에 '전문화'된 AI 모델을 찾고자 한다고 응답했다. 

오늘날 사내 구현 형태로 제안될 가능성이 가장 큰 AI 프로젝트는 AI 챗봇이었다. 비즈니스 사례로서의 성공 가능성도 크다고 할 수 있다. 이러한 프로젝트는 대개 사전 판매 및 판매 후 미션, 즉 마케팅/영업 및 고객 지원을 목표로 한다. 이러한 애플리케이션을 우선적으로 고려하는 기업은 퍼블릭 AI 서비스나 클라우드 호스팅을 고려할 가능성이 높았다. 즉 독점 모델을 유지하는 기업들인 1/3의 대부분을 차지하고 있었다.

비즈니스 사례를 만들 가능성이 다음으로 높은 AI 애플리케이션 분야는 비즈니스 분석 및 인텔리전스다. 대부분의 기업이 AI를 자체 호스팅해야 한다고 처음부터 생각하는 분야이기도 하다. IBM 고객들은 이 분야에서 IBM의 왓슨X 전략을 이용하는 경향이 있으며, 모든 기업 중에서 모델 선택 방식에 가장 큰 자신감을 보이고 있었다. 다른 기업들 사이에서는 메타의 라마가 블룸과 팔콘 모델을 제치고 가장 선호하는 전략이 됐다. 하지만 이러한 변화는 상당히 최근에 나타났기 때문에 계획 측면에서는 앞서 있지만 구축은 뒤처져 있었다.

한편 고객 대면 업무의 챗봇 사용자, 의료 업계 종사자, 심지어 비즈니스 분석 분야에서 AI를 계획하는 많은 기업들이 소규모 언어 모델(SLM)에 점점 더 많은 관심을 보이고 있다. SLM은 특정 임무에 맞게 학습된다. 덕분에 환각의 위험을 획기적으로 줄이고 전문 영역에서 더 유용한 결과를 생성할 수 있다. 몇몇 SLM은 기본적으로 특수 임무에 맞게 조정된 LLM이기에 적당한 LLM을 선택하면 SLM 선택이 끝난다. AI 전략에 대해 신뢰할 수 있는 공급업체가 있다면 해당 공급업체와 미션별 SLM에 대해 논의하는 것이 현명한 수순이다. 전문 SLM을 사용해 본 기업(총 14개)은 SLM이 현명한 선택이었으며 호스팅 비용을 크게 절감할 수 있다는 데 동의했다.

GPU 및 이더넷 네트워크
하드웨어는 어떨까? 엔비디아 GPU를 떠올리기 쉽지만 기업들이 실제 구매하는 기기는 GPU가 포함된 서버다. 델이나 HPE, 슈퍼마이크로와 같은 벤더들이 기업의 GPU 정책에 영향을 끼친다. 기업들은 AI 호스팅을 위해 약 50개에서 거의 600개까지 다양한 수의 GPU를 보유하고 있었으며, 100개 미만의 GPU를 보유한 기업의 3분의 2가 초기 테스트 중에 추가했다고 보고했다. 500개 이상을 보유한 기업 중 일부는 현재 너무 많다고 생각하고 있었다. 대부분의 엔터프라이즈 셀프 호스팅 계획자는 200~400개 사이를 배포할 것으로 예상했으며, 450개 이상을 사용할 것이라고 답한 기업은 단 두 곳에 그쳤다.

GPU를 직접 설치하려는 기업은 거의 없었다. 즉 표준 서버용 GPU 보드를 구매하려는 경우는 드물었다. 그저 끼운다고 끝이 아님을 잘 알고 있기 때문일 터다. 좋은 GPU에는 빠른 메모리, 빠른 버스 아키텍처, 빠른 I/O 및 네트워크 어댑터가 필요하다.

한편 이더넷을 사용할지 인피니밴드를 사용할지에 대한 오래된 논란은 자체 호스팅 AI를 사용 중이거나 계획 중인 기업들에게 그리 고민거리가 아니었다. 이들은 이더넷이 정답이라는 데 동의하며, 가능한 한 빨라야 한다는 데도 동의했다. 우선순위 흐름 제어와 명시적 혼잡 알림 기능을 모두 갖춘 800G 이더넷은 기업에서 권장하고 있으며, 화이트박스 장치로도 제공되고 있다. 

기업들은 또 AI를 표준 서버와 혼용해서는 안 된다는 데 동의하고 있었다. AI 배포를 자체 고속 클러스터 네트워크를 갖춘 새로운 클러스터로 볼 수 있는 셈이다. 또한 학습이나 프롬프트 등 회사 데이터에 액세스하기 위해 데이터센터에 빠르게 연결하고 사용자 액세스를 위해 VPN에 연결하는 것이 중요하다.

여러 개의 AI 애플리케이션을 사용할 예정이라면 두 개 이상의 AI 클러스터가 필요할 수 있다. 필요에 따라 SLM 또는 LLM을 클러스터에 로드할 수는 있지만, 데이터를 보호하면서 동일한 클러스터에서 여러 모델을 동시에 실행하는 작업은 더 복잡하다. 

일부 기업에서는 하나의 LLM 도구를 선택하여 고객 지원, 재무 분석 및 기타 애플리케이션에 맞게 학습시킨 다음 다른 애플리케이션에 병렬로 사용할 수 있다고 생각하고 있었다. 문제는 응답을 격리하는 것이 어렵다는 점이다. 모델 내에서 미션을 혼합하는 것은 현명하지 않을 가능성이 크다.

그렇다면 최종 권장 사항은 무엇일까? 테스트... 테스트… .테스트다. 시간을 들여 모델 옵션을 평가해야 한다. 시간을 들여 구성을 선택하고, 특히 커밋하기 전에 AI를 시험해 볼 수 있을 때 가능한 한 자주 테스트하라. AI 전략을 수립한 후에는 제품, 비즈니스, 운영 중인 세금 및 규제 프레임워크의 변화에 따라 모델을 최신 상태로 유지할 수 있도록 계속 테스트하라. AI는 인간과 마찬가지로 상황이 변화함에 따라 재교육을 필요로 한다 그리고 인간 또한 AI에 대한 새로운 시각을 지속적으로 업데이트해야 한다. 

 

https://www.ciokorea.com/news/349969

 

칼럼 | 기업들의 현실적 AI 준비 상태를 알아봤다

CxO 또는 기술 전략 담당자라면 지난 몇 달 동안 AI에 대한 태도가 변화했을 가능성이 크다. 거대 기업의 생성형 AI 서비스가 헤밍웨이와 같

www.ciokorea.com

 

반응형

+ Recent posts