전체 글 251

[AI 기초개념] LLM, AI Agent, Agent Engine, Function Calling, LangChain 개념 잡기

LLM, AI Agent, Agent Engine, Function Calling, LangChain 개념 잡기 LLM 이란? - 방대한 양의 텍스트 데이터를 학습하여, 인간처럼 자연스러운 언어를 이해하고 생성하는 딥러닝 기반의 인공지능 모델 - Large Language Model의 약자Large : 모델이 학습한 데이터의 양과 모델 자체의 크기가 어마어마하게 크다는 의미입니다. 인터넷의 방대한 텍스트와 책 수백만 권에 달하는 정보를 학습하고, 수천억 개의 파라미터(매개변수)를 통해 미묘한 언어적 패턴을 익힙니다.Language : 인간의 '언어'를 처리하는 데 특화된 모델입니다. 글을 읽고, 쓰고, 요약하고, 번역하는 등 언어와 관련된 모든 작업을 수행할 수 있습니다.Model : 통계적, 수학..

[Imagen 4/4] Build a Multi-Modal GenAI Application: Challenge Lab (멀티모달 생성형 AI 애플리케이션 빌드: 챌린지 실습)

Build a Multi-Modal GenAI Application: Challenge Lab(멀티모달 생성형 AI 애플리케이션 빌드: 챌린지 실습) Challenge scenario시나리오:AI 기반 꽃다발 디자인 회사의 개발자입니다. 고객이 꿈꾸는 꽃다발을 설명하면, 시스템은 고객의 승인을 위해 사실적인 이미지를 생성합니다. 사용자 경험을 더욱 향상시키기 위해 최첨단 이미지 분석 기능을 통합하여 생성된 꽃다발에 대한 설명적 요약을 제공합니다. (...생략...) 작업 1) generate_bouquet_image(prompt)이름의 Python 함수 추가 - 이 함수는 제공된 prompt를 사용하여 imagen-3.0-generate-002 모델을 호출하고 이미지를 생성하여 로컬에 저장 ..

[Imagen 3/4] Build an application to send Chat Prompts using the Gemini model (Gemini 모델을 사용하여 채팅 프롬프트를 보내는 애플리케이션을 구축)

Build an application to send Chat Prompts using the Gemini model (Gemini 모델을 사용하여 채팅 프롬프트를 보내는 애플리케이션을 구축) 목적Vertex AI의 생성 AI(genAI 또는 gen AI라고도 함)를 사용하면 Google의 대규모 생성 AI 모델을 활용하여 AI 기반 애플리케이션에 사용하기 위해 테스트, 조정 및 배포할 수 있습니다. 이 랩에서는 다음을 수행합니다.Vertex AI(Google Cloud AI 플랫폼)에 연결: Vertex AI SDK를 사용하여 Google AI 서비스에 연결하는 방법을 알아보세요.사전 훈련된 생성 AI 모델 로드 - 제미니: 처음부터 모델을 구축하지 않고도 강력하고 사전 훈련된 AI 모델을 사용하는 ..

[Imagen2/4] Build an AI Image Generator app using Imagen on Vertex AI (Vertex AI에서 Imagen을 사용하여 AI 이미지 생성기 앱을 빌드)

Build an AI Image Generator app using Imagen on Vertex AI(Vertex AI에서 Imagen을 사용하여 AI 이미지 생성기 앱을 빌드) 목적Vertex AI의 생성 AI(genAI 또는 gen AI라고도 함)를 사용하면 Google의 대규모 생성 AI 모델을 활용하여 AI 기반 애플리케이션에 사용하기 위해 테스트, 조정 및 배포할 수 있습니다. 이 랩에서는 다음을 수행합니다.Vertex AI(Google Cloud AI 플랫폼)에 연결: Vertex AI SDK를 사용하여 Google AI 서비스에 연결하는 방법을 알아보세요.사전 훈련된 이미지 생성 모델 로드: 처음부터 모델을 구축하지 않고도 강력하고 사전 훈련된 AI 모델을 사용하는 방법을 알아보세요...

[Imagen1/4] 1. Build an AI Image Recognition app using Gemini on Vertex (Vertex AI의 Gemini를 사용하여 AI 이미지 인식 앱 구축)

Build an AI Image Recognition app using Gemini on Vertex AI(Vertex AI의 Gemini를 사용하여 AI 이미지 인식 앱 구축) 목적Vertex AI의 생성 AI(genAI 또는 gen AI라고도 함)를 사용하면 Google의 대규모 생성 AI 모델을 활용하여 AI 기반 애플리케이션에 테스트, 조정 및 배포할 수 있습니다. 이 랩에서는 다음을 수행합니다.Vertex AI(Google Cloud AI 플랫폼)에 연결: Vertex AI SDK를 사용하여 Google AI 서비스에 연결하는 방법을 알아보세요.사전 훈련된 생성 AI 모델 로드 - 제미니: 처음부터 모델을 구축하지 않고도 강력하고 사전 훈련된 AI 모델을 사용하는 방법을 알아보세요.AI 모델..

[RAG-2] Inspect Rich Documents with Gemini Multimodality and Multimodal RAG

Inspect Rich Documents with Gemini Multimodality and Multimodal RAG과정 중 두번째2. Using Gemini for Multimodal Retail Recommendations(소매업을 위한 멀티모달 추천에 Gemini 사용) 개요Gemini는 Google DeepMind에서 개발한 생성형 AI 모델 제품군으로, 멀티모달 사용 사례를 위해 설계되었습니다.소매업체의 경우 추천 시스템을 사용하면 고객 경험을 개선하여 결과적으로 매출 향상을 달성할 수 있습니다. 이 실습에서는 Gemini 모델을 사용하여 멀티모달 추천 시스템을 신속하게 생성하는 방법을 알아봅니다. Gemini 모델은 멀티모달 모델을 사용하여 추천과 설명을 모두 제공할 수 있습니다.이 실습..

[RAG-1] 1. Multimodality with Gemini (Gemini의 멀티모달리티)

Inspect Rich Documents with Gemini Multimodality and Multimodal RAG과정 중 첫번째1. Multimodality with Gemini(Gemini의 멀티모달리티)멀티모달이란?여러 종류의 데이터를 동시에 이해하고 처리하는 능력을 의미합니다.'멀티(multi)'는 '다중'을, '모달(modal)'은 데이터의 종류(양식)를 뜻하며, AI가 인간처럼 텍스트, 이미지, 음성, 영상 등 다양한 정보를 함께 활용해 더 종합적으로 상황을 파악하고 소통하는 방식입니다. 멀티모달 AI란 무엇인가요?여러 모달리티 또는 데이터 유형의 정보를 처리하고 통합할 수 있는 머신 러닝 모델을 말합니다. 이러한 모달리티에는 텍스트, 이미지, 오디오, 비디오 및 기타 형태의 감각적 인풋..

[RAG-0] Inspect Rich Documents with Gemini Multimodality and Multimodal RAG (Gemini 멀티모달 및 멀티모달 RAG로 리치 문서 검사하기)

멀티모달 프롬프트를 사용하여 텍스트 및 시각적 데이터에서 정보 추출, 동영상 설명 생성, Gemini의 멀티모달 기능을 사용하여 동영상은 물론 그 밖의 추가 정보 검색, 텍스트와 이미지가 포함된 문서의 메타데이터 구축, 모든 관련 텍스트 청크 가져오기, Gemini의 멀티모달 검색 증강 생성(RAG)을 사용하여 인용 문구 인쇄 등이 있습니다. 총 실습 4개 1) Multimodality with Gemini (Gemini의 멀티모달리티)실습내용 설명이 실습에서는 결합된 텍스트, 이미지, 기타 데이터 유형을 이해하고 처리하는 Gemini의 기능을 다양한 실제 시나리오에서 적용하는 방법을 알아봅니다. 2) Using Gemini for Multimodal Retail Recommendations ..

topK와 topP의 차이

topK와 topP의 차이공통점 : AI 모델이 다음 단어를 선택하는 방식을 제어하여 답변의 다양성을 조절하는 기술차이점 : 선택 후보를 정하는 기준이 서로 다름 topK (Top-K 샘플링)가장 확률이 높은 K개의 단어만 후보로 놓고, 그중에서 다음 단어를 선택하는 방식낮은 값(예: 1)은 항상 가장 확률 높은 단어만 선택하게 되므로 답변이 매우 결정론적이 됨높은 값(예: 40)은 더 많은 선택지를 주어 답변의 다양성을 높임ex) Top-K: "무조건 판매량 상위 3개 중에서만 고르세요!"Top-K는 "등수(순위)를 기준으로 선택지를 제한하는 방식"만약 top_k=3으로 설정하면, 모델은 다음 단어 후보 중에서 가장 확률이 높은 1, 2, 3등 단어만 보고, 그중에서 하나를 무작위로 고릅니다. 4등..

Android `mutate()` 메소드 : 동일한 Drawable 객체를 사용하고 있을 때 한 요소의 변경이 다른 요소에 영향을 주지 않도록

왜 mutate()를 사용해야 할까?공유되는 Drawable: 여러 UI 요소(예: 버튼, 이미지 뷰 등)가 동일한 Drawable 객체를 사용하고 있을 때, 한 곳에서 Drawable을 수정하면 다른 모든 곳에도 영향을 미칠 수 있습니다.예를 들어, 버튼과 배경이 같은 이미지를 사용하고 있는데, 버튼의 색상을 변경하면 배경도 같이 바뀔 수 있습니다. 이를 방지하기 위해 mutate()를 사용합니다.   mutate() 메소드Android의 Drawable 클래스에서 사용되는 메소드Drawable 객체의 복사본을 생성하고, 원본의 상태와는 독립적으로 변경할 수 있도록 합니다.주로 Drawable의 상태를 변경해야 할 때 유용하게 사용됩니다. 1. 목적mutate() 메소드는 Drawable의 인스턴스를 ..

Android 2024.08.11

Android Application Context

Application Context의 적절한 사용Application의 Context는 애플리케이션이 실행되는 동안 메모리에 유지됩니다.따라서 전역적으로 사용되거나 장기적인 참조가 필요한 객체들에 적합하며, UI와 관계없는 작업에서 안전하게 사용할 수 있습니다.Application 단의 Context를 확장 함수에서 사용하게 되면, 단위 테스트를 수행하기 어려워질 수 있습니다.Context에 의존하는 코드는 테스트에서 모의(Mocking) 처리가 필요하며, 이는 테스트의 복잡성을 높입니다. 1. Application Context를 사용하는 것이 적절한 경우장기적으로 유지되는 객체:장기적으로 유지되거나 전역적으로 사용되는 객체에서 Context가 필요할 때는 Application Context를 사용하는..

Android 2024.08.11

[Compose][Image]맞춤 페인터 (Custom painter), 이미지 성능 최적화

맞춤 페인터 (Custom painter) Painter 객체그릴 수 있는 항목을 나타내고(Android에서 정의된 Drawable API의 대체 API) 객체를 사용하고 있는 컴포저블의 measure 또는 layout 과정에 영향을 미치는 데 사용됩니다. Painter는 지정된 경계 내에서 엄격하게 그려진다.cf) 컴포저블의 measure 또는 layout 과정에 영향을 주지 않는DrawModifier와 다릅니다.painterResource()를 사용하면 애셋에 맞는 올바른 페인터(예: BitmapPainter 또는 VectorPainter)가 반환됩니다. (둘의 차이점에 관한 자세한 내용은 ImageBitmap과 ImageVector 섹션을 참고)BitmapPainter는 ImageBitmap을 사용..

Android/Compose 2024.06.02

[Compose][Image] 이미지 커스터마이징

이미지 커스터마이징 (Customize an image ) `Image 컴포저블`의 속성인 `contentScale` , `colorFilter`들을 사용하여 맞춤설정할 수 있습니다. 위 속성은 Image 컴포저블의 Modifiers를 사용하여 적용가능함(`contentScale` 및 `colorFilter`는 Image 컴포저블의 명시적 매개변수)   1. `contentScale` 옵션 :  콘텐츠 크기 조정 이미지를 자르거나 경계 내에서 이미지의 크기가 조정되는 방식을 변경하는 옵션 (디폴트는 ContentScale.Fit)ex) Image 컴포저블은 테두리가 있는 150dp 크기로 제한되고 배경은 Image 컴포저블에서 노란색으로 설정val imageModifier = Modifier    .s..

Android/Compose 2024.06.02

[Compose][Image] 이미지 표시, ImageBitmap vs ImageVector, Material icons

이 포스팅은 공식문서 를 보고 이해한 내용을 정리 및 번역한 글입니다.     Jetpack Compose에서 이미지 나타내기 1. 기본 이미지 로딩Image 컴포저블 : 화면에 이미지 리소스를 표시함painterResource : painterResource는 이미지 리소스를 불러오기 위해 사용하는 함수이 함수는 리소스 ID를 받아 Painter 객체를 반환합니다. 이를 Image 컴포넌트에 전달하여 이미지를 화면에 표시할 수 있습니다.디스크에서 이미지(예: PNG, JPEG, WEBP) 또는 벡터 리소스를 로드하려면, 이미지 참조와 함께 painterResource API를 사용합니다. 이미지 리소스 유형을 알 필요는 없습니다. Image 또는 paint 수정자에서 painterResource를 사용..

Android/Compose 2024.06.02

Composables Lifecycle (컴포저블 수명 주기)

용어정리Composable - UI 구성 요소를 나타내는 함수 또는 어노테이션Composable 어노테이션 (@Composable) - Composable 함수를 표시하는 어노테이션 Composable 함수- Compose에서 UI 구성을 정의하고, UI 요소의 계층 구조를 형성하며, 화면에 표시되는 뷰를 생성하는 함수 - UI를 선언적으로 정의하는 Compose에서 사용되는 기본 단위- UI 요소를 생성하고, UI 상태를 나타내며, 사용자 입력 및 상호 작용에 응답하는 등의 작업을 수행한다.Composition- UI 구성 요소들이 결합되어 화면에 표시되는 것- Compose에서는 여러 'Composable 함수'가 조합되어 화면에 나타나는 UI 구조를 형성합니다. Composition은 'Compos..

Android/Compose 2024.05.06

Compose 기초 (Compose이해, Composable function, Recomposition)

이전편에 이어 다시보는Compose 란?Jetpack Compose는 Android를 위한 현대적인 선언형 UI 도구 키트사용자 인터페이스의 상태와 레이아웃을 설명하는 구조화된 데이터나 코드를 사용하여 UI를 정의 [동작] 처음부터 화면 전체를 개념적으로 생성한 후 -> 특정 시점에선 필요한 변경사항(UI의 어떤 부분을 다시 그려야 하는지)만 지능적으로 선택하여 화면을 재구성(=Recomposition)한다.[동작 구현] 구성 가능한 함수(=Composable 함수)를 '단순히 호출'하는 형태로 UI 렌더링 및 재구성  ex) `@Composable TextView()`를 호출  Composable function (= 구성 가능한 함수)  개인적으로 '구성 가능한 함수'라는 번역은 매번 부르기 어려워 ..

Android/Compose 2024.05.05

Compose 선행 개념 (#Compose란, #선언형UI, #명령형 UI)

Compose 란?Jetpack Compose는 Android를 위한 현대적인 선언형 UI 도구 키트Compose는 프런트엔드 뷰를 명령형으로 변형하지 않고도 앱 UI를 렌더링할 수 있게 하는 선언형 API를 제공하여 앱 UI를 더 쉽게 작성하고 유지관리할 수 있도록 지원한다.   자꾸 '선언형'이 언급되는데 이에 대해 알아보자!!👇 선언형 전에는 명령형 UI를 사용했었다,, 기존  '명령형? 프로그래밍 패러다임' (= Imperative programming paradigm)뷰 계층 구조는 UI 위젯의 트리 형태사용자 상호작용 등의 이유로 인해 앱의 상태가 변경되면, 현재 데이터를 표시하기 위해 UI 계층 구조를 업데이트해야 하는데 보통 아래처럼 뷰를 찾아 접근하여 위젯 내부 상태를 업데이트 시킨다 ..

Android/Compose 2024.05.05

[Kotlin Coroutine][init] 5. kotlin.coroutines vs kotlinx.coroutines

코루틴은 하나의 라이브러리에 있을 것 같지만 아니다! 1) 코틀린은 언어 차원에서 표준 라이브러리에 최소한의 저수준 API만 제공하고, 2) 다양한 다른 라이브러리에서 코루틴을 활용할 수 있도록 되었다. 1) 코틀린은 언어 차원에서 표준 라이브러리인 kotlinx.coroutines - 자유도를 보장하기 위해 필수 언어 차원에서의 최소한만 지원함 ㄴ> 여기에는 suspendCoroutine, Continuation 등 ㄴ> 라이브러리 개발자에게 적합 2) 다양한 다른 라이브러리 - 별도의 의존성을 추가해야 한다. - 애플리케이션 개발자들에게 적합 - 이 중 JetBrains에서 개발한 kotlinx.coroutines에는 코루틴을 위한 많은 라이브러리가 대표적이다. ㄴ> 여기에는 launch, async..

Android/Coroutine 2024.02.22