책임 있는 AI 원칙
- 공정성:
AI 시스템은 모든 사람을 공평하게 대해야 합니다. - 신뢰성 및 안전성:
AI 시스템은 믿을 수 있고 안전하게 작동해야 합니다. - 개인 정보 및 보안:
AI 시스템은 안전하고 개인 정보를 존중해야 합니다. - 포괄성(포용성):
AI 시스템은 모든 사용자를 지원하고 참여를 이끌어야 합니다. AI 시스템을 계획, 테스트 및 빌드해야 한다. - 투명성:
AI 시스템은 이해하기 쉬워야 합니다. - 책임:
사람들은 AI 시스템에 대한 책임을 져야 합니다.
Document Intelligence (From Recognizer)
파일 학습 요구사항
- PDF, 이미지(JPEG/JPG), PNG, BMP, TIFF, HEIF 형식
- 파일 크기는 유료(S0) 계층의 경우 500MB 미만, 무료(F0) 계층의 경우 4MB 미만이어야 합니다.
- 이미지 크기는 50x50 픽셀에서 10,000x10,000 픽셀 사이여야 합니다.
- 학습 데이터 세트의 총 크기는 500페이지 이하여야 합니다.
할당량 | 무료(F0) | Standard(S0) |
초당 트랜잭션 수 제한 | 1 | 15(기본값) |
조정 가능 | 아니요 | 예 2 |
최대 문서 크기 | 4MB | 500 MB |
조정 가능 | 아니요 | 아니요 |
최대 페이지 수(분석) | 2 | 2000 |
조정 가능 | 아니요 | 아니요 |
레이블 파일의 최대 크기 | 10MB | 10MB |
조정 가능 | 아니요 | 아니요 |
OCR json 응답의 최대 크기 | 500 MB | 500 MB |
조정 가능 | 아니요 | 아니요 |
템플릿 모델의 최대 수 | 500 | 5,000 |
조정 가능 | 아니요 | 아니요 |
인공신경망 모델의 최대 수 | 100 | 500 |
조정 가능 | 아니요 | 아니요 |
CMK(고객 관리형 키)
- Azure Key Valut가 필요
- CMK 암호화를 사용하도록 설정하면 인덱스 크기가 증가하고 쿼리 성능이 저하 된다.
(유형에 따라 다르지만 평균적으로 쿼리 시간이 30~60% 증가)
Anomaly Detector
‼️ 2023년 9월 20일부터 새로운 Anomaly Detector 리소스를 만들 수 없습니다.
Anomaly Detector 서비스는 2026년 10월 1일에 사용 중지됩니다.
Anomaly Detector란?
Anomaly Detector는 API 집합이 포함된 AI 서비스로, 일괄 처리 유효성 검사 또는 실시간 유추와 같은 ML(기계 학습) 지식이 거의 없어도 시계열 데이터의 변칙을 모니터링 하고 검색할 수 있습니다.
Anomaly Detecotr 기능
Anomaly Detector에서 Univariate Anomaly Detector를 사용하여 하나의 변수에서 변칙을 검색하거나 다변량 Anomaly Detector를 사용하여 여러 변수에서 변칙을 검색할 수 있습니다.
기능 | 설명 |
단변량 변칙 검색 | 수익, 비용 등과 같은 하나의 변수에서 변칙을 검색합니다. 이 모델은 데이터 패턴에 따라 자동으로 선택되었습니다. |
다변량 변칙 검색 | 일반적으로 장비 또는 기타 복잡한 시스템에서 수집되는 상관 관계가 있는 여러 변수의 변칙을 검색합니다. 사용된 기본 모델은 그래프 주의 네트워크입니다. |
docker run을 사용하여 컨테이너 실행
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
mcr.microsoft.com/azure-cognitive-services/decision/anomaly-detector:latest \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
설명)
컨테이너 이미지에서 Anomaly Detector 컨테이너 실행
1개 CPU 코어 및 4GB 메모리 할당
5000 TCP 포트 표시 및 컨테이너에 의사-TTY 할당
종료 후 자동으로 컨테이너를 제거합니다. 컨테이너 이미지는 호스트 컴퓨터에서 계속 사용할 수 있습니다.
#Univariate Anomaly Detector #temperature #atypical values
Language Understanding
Azure 제작 리소스에 기여자 추가
- Azure Portal에서 LUIS(Language Understanding) 작성 리소스를 찾는다.
(형식은 LUIS.Authoring) - 리소스의 Access Control(IAM) 페이지에서 기여할 사용자에 대한 기여자 역할을 추가한다.
Azure AI Search
Azure AI 검색의 성능 향상을 위한 팁
인덱스 크기 및 스키마
- 스키마와 문서 모두에서 인덱스 구성을 정기적으로 다시 방문하여 콘텐츠를 줄일 수 있는 기회를 얻는 것.
- 인덱스가 적절한 크기인 경우 복제본을 추가
- 서비스 계층을 업그레이드하여 용량을 늘린다.
Azure AI Metrics Advisor
Azure AI Metrics Advisor란
AI를 사용하여 시계열 데이터에서 데이터 모니터링과 변칙 검색을 수행한다. 데이터에 모델을 적용하는 프로세스를 자동화하고, 기계 학습을 알 필요 없이 데이터 수집, 변칙 검색 및 진단 위한 API 집합 및 웹 기반 작업 영역을 제공한다.
- KOR : 여러 데이터 원본에서 다차원 데이터 분석
ENG : Analyze multi-dimensional data from multiple data sources - KOR : 변칙 식별 및 상관 관계 지정
ENG : Identify and correlate anomalies - KOR : 데이터에 사용되는 변칙 검색 모델 구성 및 미세 조정
ENG : Configure and fine-tune the anomaly detection model used on your data - KOR : 변칙 진단 및 근본 원인 분석 도움
ENG : Diagnose anomalies and help with root cause analysis
Computer Vision
DescribeImageInStreamAsync
정의
완전한 문장으로 사람이 읽을 수 있는 언어로 이미지에 대한 설명을 생성한다. 각 이미지에 대해 하나 이상의 설명을 생성할 수 있다. 설명은 신뢰도 점수에 따라 정렬된다.
BoundingRect
이름 | 형식 | 설명 |
h | integer | 영역 왼쪽 상단 지점에서 시작해 측정된 높이(픽셀)입니다. |
w | integer | 영역 왼쪽 상단 지점에서 시작해 측정된 너비(픽셀)입니다. |
x | integer | 영역 왼쪽 위 점의 X 좌표(픽셀)입니다. |
y | integer | 영역의 왼쪽 위 점(픽셀)의 Y 좌표입니다. |
Azure AI Search
Private Endpoint
공용 인터넷 연결이 아닌 가상 네트워크에서 클라이언트의 요청을 허용하도록 할 수 있다.
사용하는 이유
가상 네트워크의 클라이언트가 Private Link를 통해 검색 인덱스의 데이터에 안전하게 액세스할 수 있도록 한다.
클라이언트와 검색 서비스 간의 네트워크 트래픽은 가상 네트워크와 Microsoft 백본 네트워크 프라이빗 링크를 통과하여 퍼블릭 인터넷에서 공개되지 않도록 한다.
- 검색 서비스에 대한 퍼블릭 엔드포인트의 모든 연결 차단
- 가상 네트워크에서의 데이터 반출을 차단하여 가상 네트워크 보안을 강화
- 개인 피어링을 통해 VPN 또는 ExpressRoutes를 사용하여 가상 네트워크에 연결하는 온-프레미스 네트워크에서 검색 서비스에 안전하게 연결한다.
Speech Service
엑세스 제어 및 인증
Microsoft Entra ID를 사용하는 역할 기반 액세스 권한
키 및 토큰을 사용한 인증
- 사용자 지정 하위 도메인
custom subdomain - 프라이빗 엔드포인트
private endpoint
#camera #microphone
음성 목록 가져오기
Endpoint Format : tts.speech.microsoft.com/cognitiveservices/voices/list
음성 목록 엔드포인트를 지역에 접두사로 추가하여 해당 지역의 음성 목록을 얻는다.
ex) westus
https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list
Text to speech
SSML을 사용하여 합성 향상(Improve synthesis with SSML)
말하기 스타일 및 열할 사용(Use speaking styles and roles)
Attribute | Description | Required or Optional |
style | 음성별 말하기 스타일입니다. 명랑함, 공감, 차분함과 같은 감정을 표현할 수 있습니다. 또한 고객 서비스, 뉴스 프로 및 음성 도우미와 같은 다양한 시나리오에 맞게 음성을 최적화할 수 있습니다. 스타일 값이 없거나 잘못된 경우 전체 mstts:express-as 요소가 무시되고 서비스는 기본 중립 음성을 사용합니다. | Required |
styledegree | 말하는 스타일의 강도입니다. 더 강한 스타일 또는 더 부드러운 스타일을 지정하여 음성에 감정을 더 싣거나 더 차분하게 말할 수 있습니다. 허용되는 값의 범위는 0.01에서 2까지입니다. 기본값은 미리 정의된 스타일 강도를 의미하는 1입니다. 최소 단위인 0.01에서는 대상 스타일의 성향이 약간 나타납니다. 값이 2이면 기본 스타일 강도는 두 배가 됩니다. 스타일 정도가 누락되었거나 음성에 지원되지 않는 경우 이 특성은 무시됩니다. | Optional |
role | 말하기 역할 놀이입니다. 음성은 다른 나이와 성별을 흉내낼 수 있지만 음성 이름은 변경되지 않습니다. 예를 들어 남자 음성의 피치를 높이고 억양을 변경하여 여자 음성을 모방할 수 있지만 음성 이름은 변경되지 않습니다. 역할이 없거나 음성에 대해 지원되지 않는 경우 이 특성은 무시됩니다. | Optional |
Azure OpenAI
배포가 만들어지면 할당된 TPM은 유추 요청에 적용되는 분당 토큰 속도 제한에 직접 매핑 된다. RPM(분당 요청) 속도 제한도 적용된다.
(1,000TPM 당 6RPM)
capacity : 배포에 할당하는 할당량의 양을 나타낸다. 값 1은 분당 토큰(TPM) 1,000개와 같다. 값 10은 분당 토큰(TPM) 10,000 개와 같다.
만약, 600 RPM 요청이 필요하다면 6 RPM 은 1,000 TPM 이다. 1,000 TPM 은 capacity 1이므로 capacity 값은 100이 된다.
Bot Framework SDK
사전 준비 사항
Bot Framework Emulator 설치가 되어 있어야 함.
도구
Bot Framework Emulator
- 로컬에서 챗봇을 테스트하고 디버깅할 수 있는 도구
- 챗봇과의 대화를 시뮬레이션하고 로그를 확인할 수 있어 디버깅에 매우 유용
Bot Framework Composer
- 챗봇을 설계, 빌드, 테스트, 배포하는 데 사용되는 도구
- 주로 챗봇의 디자인과 개발에 사용되며 디버깅 용도로는 적합하지 않음
Bot Framework CLI
- 명령줄 인터페이스로, 챗봇 애플리케이션을 관리하고 디버깅하는 데 사용
- 직접적인 디버깅보다는 관리와 배포에 더 적합
로컬 PC에서 원격 디버그시 필요한 도구
- Bot Framework Emulator
로컬 서버를 공용 URL로 노출시켜, 외부에서 접근할 수 있게 해주는 도구. - ngrok
로컬 서버를 공용 URL로 노출시켜, 외부에서 접근할 수 있게 해주는 도구.
로컬에서 실행 중인 챗봇을 외부에서 접근하고 디버깅할 때 유용.
Custom Vision
설정 항목
- Project Types
Classification과 Object Detection 2가지가 있다. 이미지를 구분하는 용도로는 Classification 이 적합함. - Classification Types
Multiclass 와 Multilabel 중에서 선택한다. 하나의 태그(예를들어 고양이 또는 개)만 있을 경우 MultiClass가 적합하다.- Multiclass (Sigle tag per image)
- Multilabel (Multiple tags per image)
- Domains
다양한 도메인 중에서 선택한다. 일반적인 이미지 분류 작업을 위해서는 General을 선택한다. 만약 모델이 iOS 앱 처럼 앱에서 구동된다면 compact 가 있는 모델을 선택한다.
평가 지표 옵션
- Precision(정밀도)
정확한 것으로 식별된 분류 부분을 나타낸다. 예를 들어 모델에서 100개의 이미지를 강아지로 식별했는데 그중 99개가 실제로 강아지 이미지였다면 정밀도는 99% 이다. - Recall(재현율)
정확하게 식별된 실제 분류 부분을 나타낸다. 예를 들어 실제 사과 이미지가 100개인데 모델이 80개를 사과로 식별했다면 재현율은 80%이다.
#evaluate
배포하기 위해 준비하는 과정
- Retrain the model : 모델을 변경하거나 업데이트한 후, 먼저 모델을 재훈련해야 한다. 이는 최신 데이터와 변경 사항을 반영하기 위함이다.
- Test the model : 재훈련된 모델이 예상대로 작동하는지 확인하기 위해 테스트를 수행해야 한다. 이는 모델의 정확성과 신뢰성을 보장한다.
- Export the model : 테스트를 통과한 모델을 앱에 배포할 수 있도록 내보낸다. 내보내기 단계에서는 모델을 최적화된 형식으로 변환한다.
개발환경에서 프로덕션 환경으로 이동 작업 순서
- Use the GetProjects endpoint on devName
개발환경에서 프로젝트를 가져온다. - Use the ExportProject endpoint on devName
개발환경에서 프로젝트를 내보낸다. - Use the ImportProject endpoint on prodName
운영환경에서 프로젝트를 가져온다.
결함을 인식하는 애플리케이션 개발하기 위한 필요 3가지 작업 순서
- Create a project
프로젝트를 생성한다. - Upload and tag images
모델을 학습시키기 위해 이미지 데이터를 업로드하고 태그를 지정한다. - Train the Classifier model.
업로드된 이미지와 태그를 사용하여 분류 모델을 학습시킨다.
Azure Face API (Azure AI Face)
- FaceListId : 최대 1,000명 얼굴
- LargeFaceListId : 최대 1,000,000명 얼굴
- mode
- 'matchFace' 또는 'matchPerson' 중 선택할 수 있다. 얼굴을 매칭하는 것이 목적이면 'matchFace'가 알맞다.
Azure AI Video Indexer
언어 모델 만들기
- Azure AI Video indexer 웹 사이트로 이동하여 로그인 한다.
- 계정에서 모델을 사용자 지정하려면 페이지 왼쪽에서 "콘텐츠 모델 사용자 지정(Model customizations)" 단추를 선택한다.
- 언어 탭을 선택한다.
- 원하는 언어에서 모델 추가를 선택한다.
- 언어 모델의 이름을 입력하고 Enter 를 누른다.
이 단계에서 모델이 생성되고 모델에 텍스트 파일(txt)을 업로드하는 옵션이 제공된다. - 텍스트 파일을 추가하려면 파일 추가를 선택한다.
- 텍스트 파일을 탐색하여 선택한다. 여러 텍스트 파일을 언어 모델에 추가 할 수 있다.
- 텍스트 파일 업로드를 완료했으면 녹색 학습 옵션을 선택한다.
Azure AI Translator Documentation
기준 URL
Service Endpoint | Request processing data center |
Global (recommended): api.cognitive.microsofttranslator.com |
가장 가까운 사용 가능한 데이터 센터 |
Americas: api-nam.cognitive.microsofttranslator.com |
미국 동부2 , 미국 서부 2 |
Asia Pacific: api-apc.cognitive.microsofttranslator.com |
일본 동부, 동남 아시아 |
Europe (except Switzerland): api-eur.cognitive.microsofttranslator.com |
프랑스 중부, 서유럽 |
Switzerland: For more information ex) https://my-swiss-n.cognitiveservices.azure.com |
스위스 북부, 스위스 서부 |
Named Entity Recognition(NER)
텍스트에서 인물, 장소, 조직, 날짜와 같은 고유명사를 식별하고 분류하는 역할을 합니다.
Azure Language Service
매개변수
- loggingOptOut
입력 데이터를 로그에 기록하지 않도록 설정하는 매개변수 이다.
Cognitive Services
Speech
SpeechTranslationConfig Class
Properties
Name | Description |
Authorization Token | 인증 토큰을 가져오거나 설정합니다. |
EndpointId | 음성 인식에 사용할 사용자 지정 음성 모델 또는 음성 합성을 위한 사용자 지정 음성 모델의 엔드포인트 ID를 가져오거나 설정합니다. |
OutputFormat | 음성 인식 출력 형식을 가져오거나 설정합니다(단순 또는 상세). |
Region | Region(지역) |
SpeechRecognitionLanguage | 인식할 음성 언어의 이름을 BCP-47 형식으로 지정합니다. |
SpeechSynthesisLanguage | 음성 합성 언어(예: en-US)를 가져오거나 설정합니다. 1.4.0에 추가됨 |
SpeechSynthesisOutputFormat | 합성된 음성의 출력 형식을 가져옵니다. 1.4.0에 추가됨 예시: riff-16khz-16bit-mono-pcm |
SpeechSynthesisVoiceName | 음성 합성 음성을 가져오거나 설정합니다. 1.4.0에 추가됨 |
SubscriptionKey | 구독 키 |
TargetLanguages | 번역할 언어 모음을 가져옵니다. |
VoiceName | 합성된 오디오 출력을 원하는 경우 음성 태그의 이름을 지정합니다. |
Methods
Name | Description |
AddTargetLanguage(String) | 번역 대상 언어를 추가합니다. |
EnableAudioLogging() | 서비스에서 오디오 및 콘텐츠 로깅을 사용 설정합니다. |
EnableDictation() | 연속 인식 중에 받아쓰기를 활성화합니다. |
FromAuthorizationToken(String, String) | 지정된 인증 토큰과 지역으로 음성 번역 구성의 인스턴스를 만듭니다. |
FromEndpoint(Uri) | 지정된 엔드포인트를 사용하여 음성 번역 구성의 인스턴스를 만듭니다. |
FromEndpoint(Uri, String) | 지정된 엔드포인트와 가입 키를 사용하여 음성 번역 구성의 인스턴스를 만듭니다. |
FromHost(Uri) | 지정된 호스트로 음성 번역 구성의 인스턴스를 만듭니다. |
FromHost(Uri, String) | 지정된 호스트 및 가입 키를 사용하여 음성 번역 구성의 인스턴스를 만듭니다. |
FromSubscription(String, String) | 지정된 구독 키와 지역으로 음성 번역 구성 인스턴스를 생성합니다. |
GetProperty(PropertyId) | 이 PropertyId 열거형으로 명명된 프로퍼티를 검색합니다. |
GetProperty(String) | 이 문자열 이름을 가진 프로퍼티를 검색합니다. |
RemoveTargetLanguage(String) | 번역 대상 언어를 제거합니다. |
RequestWordLevelTimestamps() | 단어 수준 타임스탬프 포함. 오디오 로깅이 활성화된 경우 이 메서드는 각 단어의 시작 시점 및 지속 시간에 대한 시간 세부 정보를 로그에 추가합니다. |
SetProfanity(ProfanityOption) | 욕설 옵션을 설정합니다. 욕설 옵션은 욕설 단어를 제거하거나 해당 글자를 별표로 바꿀 수 있습니다. |
SetProperty(PropertyId, String) | PropertyId 열거형의 값으로 지정된 프로퍼티의 값을 설정합니다. |
SetProperty(String, String) | 문자열 이름을 사용하여 속성을 설정합니다. |
SetProxy(String, Int32) | 프록시를 구성합니다. |
SetProxy(String, Int32, String, String) | 사용자 이름-비밀번호 쌍으로 프록시를 구성합니다. |
SetServiceProperty(String, String, ServicePropertyChannel) | 새로운 서비스 기능의 미리 보기를 활성화합니다. |
SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat) | 음성 합성 출력 형식을 설정합니다. |
Text Moderation
Profanity (욕설)
지원되는 언어의 욕설을 감지하면 해당 용어가 응답에 포함된다.
"Terms": [
{
"Index": 118,
"OriginalIndex": 118,
"ListId": 0,
"Term": "<offensive word>"
}
Classification (분류)
텍스트 분류 기능은 영어만 지원하며, 잠재적으로 원치 않는 콘텐츠를 감지하는데 도움이 된다. 플래그가 지정된 콘텐츠는 컨텍스트에 따라 부적절한 콘텐츠로 평가될 수 있다.
"Classification": {
"ReviewRecommended": true,
"Category1": {
"Score": 1.5113095059859916E-06
},
"Category2": {
"Score": 0.12747249007225037
},
"Category3": {
"Score": 0.98799997568130493
}
}
Personal data (개인 데이터)
아래의 정보들을 감지한다.
- 메일 주소
- 미국 우편 주소
- IP 주소
- 미국 전화 번호
"pii":{
"email":[
{
"detected":"abcdef@abcd.com",
"sub_type":"Regular",
"text":"abcdef@abcd.com",
"index":32
}
],
"ssn":[
],
"ipa":[
{
"sub_type":"IPV4",
"text":"255.255.255.255",
"index":72
}
],
"phone":[
{
"country_code":"US",
"text":"6657789887",
"index":56
}
],
"address":[
{
"text":"1 Microsoft Way, Redmond, WA 98052",
"index":89
}
]
}
Auto-correction (자동 고침)
기본 자동 수정이 적용된 텍스트를 반환할 수 있다. 오타가 된 단어가 수정되어 나온다.
Creating and managing your custom lists of terms (사용자 지정 용어 목록 만들기 및 관리)
대부분의 경우 기본 전역 용어 목록을 사용해도 되지만, 비즈니스 요구와 관련된 용어를 기준으로 심사하는 것이 좋다. 예를 들어 사용자 게시물에서 경쟁 브랜드 이름을 필터링할 수 있다.
"Terms": [
{
"Index": 118,
"OriginalIndex": 118,
"ListId": 231.
"Term": "<offensive word>"
}
댓글