ðãGPT-4o miniå®å šæ»ç¥ããGPT-4oã§ãéã«!ãé©ç°ã®ã³ã¹ãã§LLMãã¡ã€ã³ãã¥ãŒãã³ã°!ãAOAIã§ãã§ããããð
ã¯ããã«
2024幎7æ18æ¥ã«OpenAIãçºè¡šãããGPT-4o miniãã¯ãAIæ¥çã«æ¿éããããããŸããããã®çç±ã¯ãé©ç°çãªã³ã¹ãããã©ãŒãã³ã¹ãšGPT-4è²ãã®é«æ§èœãäž¡ç«ãããããŸãã«æ³šç®ãã¹ãçæAIã¢ãã«ã ããã§ãã
åŸæ¥ãé«æ§èœãªAIã¯å°å ¥ã³ã¹ããé«ãã倧äŒæ¥ããå©çšã§ããªãã€ã¡ãŒãžããããŸãããããããGPT-4o miniã®ç»å Žã«ãããäžå°äŒæ¥ãã¹ã¿ãŒãã¢ããäŒæ¥ããäœã³ã¹ãã§AIã®æ©æµãåããããšãã§ããããã«ãªããŸããã 顧客察å¿ã®èªååã«ããæ¥åå¹çåãããŒã±ãã£ã³ã°ã³ã³ãã³ãã®èªåçæã«ããæ°èŠé¡§å®¢ç²åŸã瀟å ææžã®å¹ççãªèŠçŽã«ããæ å ±å ±æã®ä¿é²ãªã©ãGPT-4o miniã¯ããžãã¹ã®ããããåŽé¢ã«å€é©ãããããå¯èœæ§ãç§ããŠããŸãã
GPT-4o miniã掻çšããã°ãããªãã®ããžãã¹ã«ç¹åããAIããé©ãã»ã©äœã³ã¹ãã§å®çŸã§ããŸãã顧客察å¿ã®èªååã瀟å ææžã®å¹ççãªèŠçŽãå€èšèªå¯Ÿå¿ã®åŒ·åãã³ãŒãã£ã³ã°ã®å¹çåãªã©ãããããæ¥åãGPT-4o miniãåçã«å€é©ããå¯èœæ§ãç§ããŠããã®ã§ãã
æ¬èšäºã§ã¯ãGPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ïŒåŸ®èª¿æŽïŒã«ã€ããŠãåºç€ããå®è·µãŸã§åŸ¹åºçã«è§£èª¬ããŸãããã¡ã€ã³ãã¥ãŒãã³ã°ã®æé ã¯ãã¡ãããæåã®ããã®Tipsã泚æç¹ããããŠAzure OpenAIã§ã®ãã¡ã€ã³ãã¥ãŒãã³ã°æ¹æ³ãŸã§ãäœãããšãªããäŒãããŸãã
æºåã¯ããã§ããïŒGPT-4o miniã§AI掻çšã®æªæ¥ãäžç·ã«åãéããŸãããïŒ
GPT-4o miniïŒé©ç°çãªæ§èœãšå§åçãªã³ã¹ãããã©ãŒãã³ã¹
GPT-4o miniã¯ãé«æ§èœãã€äœã³ã¹ããšããç¹ã§ãä»ã®ã¢ãã«ãåé§ããŸãã
以äžã®è¡šãšå³ã¯ãGPT-4o miniãšä»ã®äž»èŠãªGPTã¢ãã«ãæ¯èŒãããã®ã§ãã
ç¹åŸŽ | gpt-4o-mini-2024-07-18 | gpt-4o-2024-08-06 | gpt-4-turbo-2024-04-09 | gpt-3.5-turbo-0125 |
---|---|---|---|---|
MMLUã¹ã³ã¢ | 82.0% | 88.7% | 86.4% | 69.8% |
å ¥åã³ã¹ãïŒ/1MããŒã¯ã³ïŒ | $0.150 | $2.50 | $10.00 | $0.50 |
åºåã³ã¹ãïŒ/1MããŒã¯ã³ïŒ | $0.600 | $10.00 | $30.00 | $1.50 |
ã³ã³ããã¹ããŠã£ã³ã㊠| 128K | 128K | 128K | 16K |
æ倧åºåããŒã¯ã³ | 16K | 16K | 4K | 4K |
ç¥èã®ã«ãããªã | 2023幎10æ | 2023幎10æ | 2023幎12æ | 2021幎9æ |
GPT-4o miniã¯ãGPT-4ãGPT-4oã®é«åºŠãªæ§èœãç¶æãã€ã€ãå€§å¹ ã«ã³ã¹ããåæžããŠããŸããç¹ã«ä»¥äžã®ãããªçšéã«é©ããŠããŸãïŒ
- è€æ°ã®ã¢ãã«åŒã³åºããé£éãŸãã¯äžŠååããã¢ããªã±ãŒã·ã§ã³
- 倧éã®ã³ã³ããã¹ããã¢ãã«ã«æž¡ãå¿ èŠãããå Žå
- ãªã¢ã«ã¿ã€ã ã®ããã¹ãå¿çãå¿ èŠãªå Žå
ãã¡ã€ã³ãã¥ãŒãã³ã°ïŒAIãããžãã¹ã®æŠåšã«å€ãã
ãã¡ã€ã³ãã¥ãŒãã³ã°ãšã¯ãGPT-4o miniãããªãã®ããžãã¹ã«ç¹åãããããã®åŒ·åãªããŒã«ã§ããäºååŠç¿æžã¿ã®GPT-4o miniã¯äžè¬çãªç¥èãèœåãæã£ãŠããŸããããã¡ã€ã³ãã¥ãŒãã³ã°ã«ãã£ãŠãç¹å®ã®æ¥åãåéã«ç¹åããç¥èãã¹ãã«ãåŠç¿ãããããšãã§ããŸãã
äŸãã°ã顧客察å¿ã«ç¹åãããã£ããããããéçºãããå ŽåãGPT-4o miniããã®ãŸãŸäœ¿çšããŠããäžè¬çãªåçããè¿ããŸããããããããã¡ã€ã³ãã¥ãŒãã³ã°ã«ãã£ãŠã顧客察å¿ã«é¢ããããŒã¿ã§åŠç¿ãããããšã§ãããç確ã§å°éçãªåçãçæã§ããããã«ãªããŸãã
ãã¡ã€ã³ãã¥ãŒãã³ã°ã«ãã£ãŠãGPT-4o miniã¯ä»¥äžã®ãããªæ¹åãèŠèŸŒããŸãã
- 粟床åäž: ç¹å®ã¿ã¹ã¯ã«ç¹åããããŒã¿ã§åŠç¿ããããšã§ãããæ£ç¢ºã§ç確ãªå¿çãçæã§ããå¯èœæ§ãé«ãŸããŸãã
- å°éæ§ã®åäž: ç¹å®åéã®ããŒã¿ã§åŠç¿ããããšã§ããã®åéã®å°éçšèªãè¡šçŸãç解ããããèªç¶ã§å°éæ§ã®é«ãã³ãã¥ãã±ãŒã·ã§ã³ãå®çŸã§ããå¯èœæ§ãé«ãŸããŸãã
- è¡šçŸååäž: äŒæ¥ç¬èªã®ããŒã¿ã§åŠç¿ããããšã§ãäŒæ¥ã®ããŒã³ïŒãããŒã«åãããããã芪ãã¿ãããå¿çãçæã§ããå¯èœæ§ãé«ãŸããŸãã
RAGãšã®æ¯èŒïŒãã¡ã€ã³ãã¥ãŒãã³ã°ãæé©ãªã±ãŒã¹ãšã¯ïŒ
倧èŠæš¡èšèªã¢ãã«ã®æŽ»çšã«ã¯ãRAGïŒRetrieval-Augmented GenerationïŒãšããææ³ãååšããŸããRAGã¯ãå€éšã®ç¥èããŒã¹ããæ å ±ãååŸããããããçµã¿åãããŠåçãçæããææ³ã§ãã
以äžã¯ããã¡ã€ã³ãã¥ãŒãã³ã°ãšRAGã®æ¯èŒè¡šã§ãã
é ç® | ãã¡ã€ã³ãã¥ãŒãã³ã° | RAG |
---|---|---|
ããŒã¿ã®æ±ãæ¹ | ã¢ãã«èªäœãååŠç¿ãããå éšã®éã¿ãæŽæ° | ã¢ãã«ã¯ãã®ãŸãŸã§ãå€éšããŒã¿ããŒã¹ããé¢é£æ å ±ãååŸããŠå©çš |
æŽæ°ã®å®¹æã | æ°ããæ å ±ãè¿œå ãããã³ã«ååŠç¿ãå¿ èŠ | å€éšããŒã¿ããŒã¹ã®æŽæ°ã§å¯Ÿå¿å¯èœãã¢ãã«ã®ååŠç¿äžèŠ |
粟床ãšäžè²«æ§ | ç¹å®ãã¡ã€ã³ã§ã®é«ã粟床ãšäžè²«æ§ãæåŸ ã§ãã | ææ°æ å ±ã®åæ ã容æã ããåçã®äžè²«æ§ã«æ¬ ããå Žåããã |
ãªãœãŒã¹èŠä»¶ | 倧éã®èšç®ãªãœãŒã¹ãå¿ èŠ | æ¯èŒçå°ãªããªãœãŒã¹ã§å®è£ å¯èœ |
ã€ãŸããé«ã粟床ãšäžè²«æ§ããããŠããŒã¿ãã©ã€ãã·ãŒãéèŠããå Žåããã¡ã€ã³ãã¥ãŒãã³ã°ãæé©ãªéžæãšèšããã§ãããã
ç¹ã«ã以äžã®ãããªç¶æ³ã§ã¯ããã¡ã€ã³ãã¥ãŒãã³ã°ãå¹æçã§ãã
- ç¹å®ã®ã¹ã¿ã€ã«ãããŒã³ã§å¿çãçæãããå Žå
- è€éãªããã³ãããç解ããããå Žå
- æ°ããã¹ãã«ãã¿ã¹ã¯ãåŠç¿ããããå Žå
ãã ããã¡ã€ã³ãã¥ãŒãã³ã° vs RAGã®äºå è«ãèªãããããã§ã¯ãªãç¶æ³ãèŠä»¶ã«å¿ããŠé©åãªææ³ãéžæãŸãã¯çµã¿åãããããšãèèŠã§ã
ãã¡ã€ã³ãã¥ãŒãã³ã°å®è·µã¬ã€ãïŒ6ã€ã®ã¹ãããã§AIãé²åããããïŒ
GPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ã¯ã以äžã®6ã€ã®ã¹ãããã§å®æœã§ããŸãã
1. ããŒã¿ã»ããã®æºåïŒè³ªã®é«ãããŒã¿ãæåã®ã«ã®ïŒ
ãã¡ã€ã³ãã¥ãŒãã³ã°ã®æåã¯ã質ã®é«ãããŒã¿ã»ããã®æºåããå§ãŸããŸãã以äžã®ç¹ã«æ³šæããŠããŒã¿ã»ãããäœæããŸãã
- é¢é£æ§ã®é«ãé«å質ããŒã¿ãåé: æ£ç¢ºã§ç¶²çŸ çãªããŒã¿ãããé«æ§èœAIã®æºæ³ã§ãã
- JSONL圢åŒã«å€æ: OpenAIã®APIãæ±ãã圢åŒã«å€æããŸãããã
- ã·ã¹ãã ã¡ãã»ãŒãžããŠãŒã¶ãŒã¡ãã»ãŒãžãã¢ã·ã¹ã¿ã³ãã®å¿çãå«ãã: ããã3èŠçŽ ããAIã®åŠç¿ãä¿é²ããŸãã
ããŒã¿ã»ããã®åœ¢åŒ
GPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ã«ã¯ãChatCompletion圢åŒã®ããŒã¿ã»ããã䜿çšããŸããåãã¬ãŒãã³ã°äŸã¯ã以äžã®ãããªåœ¢åŒã®JSON Linesãã¡ã€ã«ã§æäŸããå¿ èŠããããŸãã
{"messages": [{"role": "system", "content": "ã·ã¹ãã ã¡ãã»ãŒãž"}, {"role": "user", "content": "ãŠãŒã¶ãŒã¡ãã»ãŒãž"}, {"role": "assistant", "content": "ã¢ã·ã¹ã¿ã³ãã®å¿ç"}]}
äŸïŒæçã¬ã·ãããææãæœåºããã¿ã¹ã¯ã®ããŒã¿ã»ãã
{"messages": [{"role": "system", "content": "ããªãã¯æ¥æ¬æçã®å°é家ã§ããã¬ã·ãããäž»èŠãªææãæœåºããŠãã ããã"}, {"role": "user", "content": "ã¬ã·ãå: èããã\n\nææ: [\"çè300g\", \"ããããã2å\", \"çãã1å\", \"ã«ããã1/2æ¬\", \"糞ããã«ãã1è¢\", \"é€æ²¹å€§ãã3\", \"ã¿ãã倧ãã2\", \"é
倧ãã2\", \"ç ç³å€§ãã1\", \"ã ãæ±1ã«ãã\"]\n\näž»èŠææ: "}, {"role": "assistant", "content": "[\"çè\", \"ããããã\", \"çãã\", \"ã«ããã\", \"ããã«ãã\", \"é€æ²¹\", \"ã¿ãã\", \"é
\", \"ç ç³\", \"ã ã\"]"}]}
å€æ°åã®å¯Ÿè©±ãå«ãããŒã¿ã»ãã
è€æ°ã®ã¿ãŒã³ãå«ã察話äŸã䜿çšã§ããŸããããã©ã«ãã§ã¯ã1ã€ã®äŸå
ã®ãã¹ãŠã®ã¢ã·ã¹ã¿ã³ãã¡ãã»ãŒãžããã¬ãŒãã³ã°ã®å¯Ÿè±¡ãšãªããŸããç¹å®ã®ã¢ã·ã¹ã¿ã³ãã¡ãã»ãŒãžãã¹ããããããå Žåã¯ãweight
ããŒãè¿œå ããŠãã®ã¡ãã»ãŒãžã®ãã¬ãŒãã³ã°ãç¡å¹ã«ã§ããŸãã
{"messages": [
{"role": "system", "content": "ããªãã¯ç®èãªå£èª¿ã®ãã£ãããããã§ãã"},
{"role": "user", "content": "ãã©ã³ã¹ã®éŠéœã¯ïŒ"},
{"role": "assistant", "content": "ããªã§ãã", "weight": 0},
{"role": "user", "content": "ãã£ãšç®èã£ãœãçããŠãã ããã"},
{"role": "assistant", "content": "ãããããªã§ããããŸãã§èª°ããç¥ããªããã®ããã«ã", "weight": 1}
]}
ããŒã¿ã»ããã®ãµã€ãºãšåå²
å¹æçãªãã¡ã€ã³ãã¥ãŒãã³ã°ã«ã¯ãéåžž100äŸä»¥äžã®é«å質ãªããŒã¿ãå¿ èŠã§ããOpenAIã¯ä»¥äžã®ã¬ã€ãã©ã€ã³ãæäŸããŠããŸãã
- æå°ïŒå°ãªããšã10äŸãå¿ èŠ
- æšå¥šïŒ50ã100ã®è¯è³ªãªäŸããå§ããã¢ãã«ã®æ¹åã確èª
- ã¹ã±ãŒãªã³ã°ïŒäŸã®æ°ãåå¢ãããããšã«ãåæ§ã®æ¹åãæåŸ ã§ãã
ãŸããããŒã¿ã»ãããèšç·Žçšãšæ€èšŒçšã«åå²ããããšããå§ãããŸãïŒäŸïŒ70%èšç·Žã30%æ€èšŒïŒãããã«ãããã¢ãã«ã®éåŠç¿ãé²ããäžè¬åæ§èœãåäžãããããšãã§ããŸãã
ãµã³ãã«ããã°ã©ã ã䜿çšããããŒã¿äœæ
以äžã¯ãWebããŒãžã®å 容ãåºã«GPT-4oã䜿çšããŠQ&AãèªåçæããJSONL圢åŒã§åºåããããã°ã©ã äŸã玹ä»ããŸãã
import asyncio
import json
import os
import random
from typing import Dict, List
import aiohttp
from bs4 import BeautifulSoup
from dotenv import load_dotenv
from openai import AzureOpenAI
# ç°å¢å€æ°ã®ããŒã
load_dotenv()
class Config:
"""
ã¢ããªã±ãŒã·ã§ã³ã®èšå®ã管çããã¯ã©ã¹
ç°å¢å€æ°ããèšå®ãèªã¿èŸŒã¿ãã¢ããªã±ãŒã·ã§ã³å
šäœã§äœ¿çšããå®æ°ãå®çŸ©ããŸãã
"""
AZURE_OPENAI_ENDPOINT: str = os.getenv("AZURE_OPENAI_ENDPOINT", "")
AOAI_API_KEY: str = os.getenv("AOAI_API_KEY", "")
AOAI_DEPLOYMENT_NAME: str = os.getenv("AOAI_DEPLOYMENT_NAME", "gpt-4o")
AOAI_API_VERSION: str = os.getenv("AOAI_API_VERSION", "2024-02-01")
MAX_TOKENS: int = 1000
TEMPERATURE: float = 0.7
MAX_CONTENT_LENGTH: int = 4000 # GPT-4oã®å
¥åå¶éã«å¿ããŠèª¿æŽ
SYSTEM_MESSAGE: str = "ããªãã¯åªç§ã§é«åºŠãªAIã§ãã"
async def get_webpage_content(url: str) -> str:
"""
æå®ãããURLã®WebããŒãžã®å
容ãéåæã«ååŸãã
Args:
url (str): ã¹ã¯ã¬ã€ãã³ã°ããWebããŒãžã®URL
Returns:
str: WebããŒãžã®ããã¹ãã³ã³ãã³ãïŒæ倧é·ã¯Config.MAX_CONTENT_LENGTHã«å¶éïŒ
Raises:
aiohttp.ClientError: HTTPãªã¯ãšã¹ãäžã«ãšã©ãŒãçºçããå Žå
"""
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
html = await response.text()
soup = BeautifulSoup(html, "html.parser")
return soup.get_text()[: Config.MAX_CONTENT_LENGTH]
async def generate_qa(client: AzureOpenAI, content: str, num_qa: int) -> List[Dict[str, List[Dict[str, str]]]]:
"""
GPT-4oã䜿çšããŠQ&Aãçæãã
Args:
client (AzureOpenAI): Azure OpenAI APIã¯ã©ã€ã¢ã³ã
content (str): Q&Açæã®åºãšãªãã³ã³ãã³ã
num_qa (int): çæããQ&Aãã¢ã®æ°
Returns:
List[Dict[str, List[Dict[str, str]]]]: çæãããQ&Aãã¢ã®ãªã¹ãã
åèŠçŽ ã¯{"messages": [...]}ã®åœ¢åŒã®ãã£ã¯ã·ã§ããªã
Raises:
Exception: APIåŒã³åºãäžã«ãšã©ãŒãçºçããå Žå
"""
system_prompt = f"以äžã®å
容ã«åºã¥ããŠã{num_qa}çµã®è³ªåãšåçãçæããŠãã ãããåQ&Aã¯'Q:'ãš'A:'ã§å§ãŸãããã«ããŠãã ããã"
user_prompt = f"# å
容ïŒ\n{content}\n\n#æ瀺:{num_qa}çµã®è³ªåãšåçãçæããŠãã ããã"
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt},
]
try:
response = await asyncio.to_thread(
client.chat.completions.create,
model=Config.AOAI_DEPLOYMENT_NAME,
messages=messages,
max_tokens=Config.MAX_TOKENS,
temperature=Config.TEMPERATURE,
)
qa_text = response.choices[0].message.content
qa_pairs = []
current_question = ""
current_answer = ""
for line in qa_text.split("\n"):
if line.startswith("Q:"):
if current_question and current_answer:
qa_pairs.append(
{
"messages": [
{"role": "system", "content": Config.SYSTEM_MESSAGE},
{"role": "user", "content": current_question.strip()},
{"role": "assistant", "content": current_answer.strip()},
]
}
)
current_question = line[2:].strip()
current_answer = ""
elif line.startswith("A:"):
current_answer = line[2:].strip()
else:
current_answer += " " + line.strip()
if current_question and current_answer:
qa_pairs.append(
{
"messages": [
{"role": "system", "content": Config.SYSTEM_MESSAGE},
{"role": "user", "content": current_question.strip()},
{"role": "assistant", "content": current_answer.strip()},
]
}
)
return qa_pairs
except Exception as e:
print(f"Error generating Q&A: {e}")
return []
def save_jsonl(data: List[Dict], filename: str):
"""
ããŒã¿ãJSONL圢åŒã§ãã¡ã€ã«ã«ä¿åãã
Args:
data (List[Dict]): ä¿åããããŒã¿ã®ãªã¹ããåèŠçŽ ã¯ãã£ã¯ã·ã§ããªã
filename (str): ä¿åå
ã®ãã¡ã€ã«å
Raises:
IOError: ãã¡ã€ã«ã®æžã蟌ã¿äžã«ãšã©ãŒãçºçããå Žå
"""
with open(filename, "w", encoding="utf-8") as f:
for item in data:
json.dump(item, f, ensure_ascii=False)
f.write("\n")
async def main():
"""
ã¡ã€ã³é¢æ°
ãŠãŒã¶ãŒå
¥åãåãåããWebããŒãžã®å
容ãååŸããQ&AãçæããŠ
èšç·ŽããŒã¿ãšæ€èšŒããŒã¿ã«åå²ããJSONL圢åŒã§ä¿åããŸãã
"""
client = AzureOpenAI(
api_key=Config.AOAI_API_KEY,
api_version=Config.AOAI_API_VERSION,
azure_endpoint=Config.AZURE_OPENAI_ENDPOINT,
)
url = input("WebããŒãžã®URLãå
¥åããŠãã ãã: ")
num_qa = int(input("çæããQ&Aã®æ°ãå
¥åããŠãã ãã: "))
try:
# WebããŒãžã®å
容ãååŸ
content = await get_webpage_content(url)
# Q&Aãçæ
qa_pairs = await generate_qa(client, content, num_qa)
# Q&Aãã¢ãã·ã£ããã«
random.shuffle(qa_pairs)
# åå²ã€ã³ããã¯ã¹ãèšç®ïŒ70%ãèšç·ŽããŒã¿ã«ïŒ
split_index = int(len(qa_pairs) * 0.7)
# ããŒã¿ãåå²
training_data = qa_pairs[:split_index]
validation_data = qa_pairs[split_index:]
# ããŒã¿ãä¿å
save_jsonl(training_data, "training_data.jsonl")
save_jsonl(validation_data, "validation_data.jsonl")
print(f"èšç·ŽããŒã¿ã training_data.jsonl ã«ä¿åããŸããïŒ{len(training_data)}件ïŒ")
print(f"æ€èšŒããŒã¿ã validation_data.jsonl ã«ä¿åããŸããïŒ{len(validation_data)}件ïŒ")
except Exception as e:
print(f"ãšã©ãŒãçºçããŸãã: {e}")
if __name__ == "__main__":
asyncio.run(main())
äžèšã¯ãããŸã§äžäŸã§ãã¢ãã«ã«ããããŒã¿äœæã¯ïœ€ã¢ãã«ãããã€ããŒã®å©çšèŠçŽãªã©ç¢ºèªããããã§ããŒã¿ã»ãããäœæããŠãã ãã
ãŸãäžèšã®äŸã§ã¯äœ¿çšããŸããã§ããã以äžã®èšäºã§è§ŠããŸããStrucutred Outputã䜿çšããŠããŒã¿ã»ãããäœæããã®ããããããããŸãã
2. OpenAI APIã®èšå®ïŒAPIããŒãååŸããŠæºåäžç«¯ïŒ
OpenAIã®APIãå©çšããã«ã¯ãAPIããŒãå¿ èŠã§ãã以äžã®æé ã§ååŸããŸãããã
- OpenAIã®ãŠã§ããµã€ãïŒhttps://platform.openai.com/account/api-keysïŒã«ãã°ã€ã³ããŸãã
- ãCreate new secret keyããã¿ã³ãã¯ãªãã¯ããæ°ããAPIããŒãçæããŸãã
- çæãããAPIããŒãå®å šãªå Žæã«ä¿ç®¡ããŸãã
Pythonç°å¢ã«openai
ã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸãã
pip install openai
3. ãã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ãã®äœæãšå®è¡ïŒããããAIãéããïŒ
ãã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ãã®äœæãšå®è¡ã«ã¯ãããã°ã©ã ã䜿çšããæ¹æ³ãšOpenAIã®ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ãŒã¹ïŒGUIïŒã䜿çšããæ¹æ³ã®2ã€ããããŸãã
ããã°ã©ã ã䜿çšãããã¡ã€ã³ãã¥ãŒãã³ã°
Python APIã䜿çšããŠãã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ããäœæããæé ã¯ä»¥äžã®éãã§ãã
- ããŒã¿ãã¡ã€ã«ã®ã¢ããããŒã
- ãã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ãã®äœæ
- ãžã§ãã®é²è¡ç¶æ³ã®ç¢ºèª
以äžã«ãåã¹ãããã®ã³ãŒãäŸã瀺ããŸãã
import openai
import os
# APIããŒã®èšå®
openai.api_key = os.environ.get("OPENAI_API_KEY")
# ããŒã¿ãã¡ã€ã«ã®ã¢ããããŒã
def upload_file(file_name: str, purpose: str) -> str:
with open(file_name, "rb") as file_fd:
response = openai.File.create(file=file_fd, purpose=purpose)
return response.id
training_file_id = upload_file("training_data.jsonl", "fine-tune")
# ãã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ãã®äœæ
response = openai.FineTuningJob.create(
training_file=training_file_id,
model="gpt-4o-mini-2024-07-18",
suffix="custom-model-name"
)
job_id = response.id
print(f"ãã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ãID: {job_id}")
# ãžã§ãã®é²è¡ç¶æ³ã®ç¢ºèª
def check_job_status(job_id):
job = openai.FineTuningJob.retrieve(job_id)
print(f"ã¹ããŒã¿ã¹: {job.status}")
if job.status == "succeeded":
print(f"ãã¡ã€ã³ãã¥ãŒãã³ã°æžã¿ã¢ãã«: {job.fine_tuned_model}")
elif job.status == "failed":
print(f"ãžã§ã倱æããšã©ãŒ: {job.error}")
# å®æçã«ç¶æ
ããã§ãã¯
import time
while True:
check_job_status(job_id)
time.sleep(60) # 60ç§ããšã«ãã§ãã¯
OpenAIã®ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ãŒã¹ïŒGUIïŒã䜿çšãããã¡ã€ã³ãã¥ãŒãã³ã°
OpenAIã¯ããã¡ã€ã³ãã¥ãŒãã³ã°ãç°¡åã«è¡ããGUIãæäŸããŠããŸãã
æé 1ïŒOpenAIã®ããã·ã¥ããŒãã«ãã°ã€ã³
OpenAIã®ããã·ã¥ããŒãïŒhttps://platform.openai.com/account/api-keysïŒã«ãã°ã€ã³ããŸãã
æé 2ïŒFine-tuningããŒãžãžç§»å
å·ŠåŽã®ã¡ãã¥ãŒãããFine-tuningããéžæããŸãã
æé 3ïŒæ°ãããã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ããäœæ
ãCreateããã¿ã³ãã¯ãªãã¯ããŠãæ°ãããã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ããäœæããŸãã
æé 4ïŒããŒã¹ã¢ãã«ãšããŒã¿ãéžæ
ãBase modelãããããããŠã³ãããgpt-4o-mini-2024-07-18ããéžæããŸããèšç·ŽããŒã¿ãšããªããŒã·ã§ã³ããŒã¿ã®JSONLãã¡ã€ã«ãã¢ããããŒãããŸãã
æé 5ïŒãã€ããŒãã©ã¡ãŒã¿ã調æŽïŒä»»æïŒ
å¿ èŠã«å¿ããŠãã€ããŒãã©ã¡ãŒã¿ã調æŽããŸãã
æé 6ïŒãã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ããéå§
ãCreateããã¿ã³ãã¯ãªãã¯ããŠããã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ããéå§ããŸãã
æçµçã«ã¯ïœ€ä»¥äžã®ç»åã®ãããªç¶æ
ãšãªããŸã
GUIã䜿çšããå©ç¹ã¯ãçŽæçãªæäœãå¯èœã§ããã¡ã€ã³ãã¥ãŒãã³ã°ã®é²è¡ç¶æ³ãã¡ããªã¯ã¹ãèŠèŠçã«ç¢ºèªã§ããããšã§ããäžæ¹ã§ãããã°ã©ã ã䜿çšããæ¹æ³ã¯ãèªååã倧èŠæš¡ãªãã¡ã€ã³ãã¥ãŒãã³ã°ã¿ã¹ã¯ã®ç®¡çã«é©ããŠããŸãã
4. é²è¡ç¶æ³ã確èªïŒAIã®æé·ãèŠå®ããïŒ
GUIãŸãã¯APIã䜿çšããŠããã¡ã€ã³ãã¥ãŒãã³ã°ã®é²æç¶æ³ã以äžã®ããã«ã¢ãã¿ãªã³ã°ã§ããŸãã
APIã䜿çšããå Žåã¯ã以äžã®ãããªã³ãŒãã§ç¢ºèªã§ããŸãã
response = openai.FineTuningJob.retrieve(job_id)
print(f"ã¹ããŒã¿ã¹: {response.status}")
print(f"åŠç¿æžã¿ããŒã¯ã³æ°: {response.trained_tokens}")
# ã€ãã³ãã®ç¢ºèª
events = openai.FineTuningJob.list_events(id=job_id, limit=10)
for event in events.data:
print(f"{event.created_at}: {event.message}")
5. ãã¡ã€ã³ãã¥ãŒãã³ã°æžã¿ã¢ãã«ã䜿çšïŒã€ãã«å®æïŒ
ãã¡ã€ã³ãã¥ãŒãã³ã°ãå®äºããããæ©éãã¹ãããŠã¿ãŸãããïŒ
fine_tuned_model = "ft:gpt-4o-mini-2024-07-18:your-org:custom-model-name:unique-id"
response = openai.ChatCompletion.create(
model=fine_tuned_model,
messages=[
{"role": "system", "content": "ããªãã¯ç¹å®ã®ãã¡ã€ã³ã®å°é家ã§ãã"},
{"role": "user", "content": "ãã¡ã€ã³åºæã®è³ªåãããã«å
¥å"}
]
)
print(response.choices[0].message.content)
OpenAIã®Playgroundã§ã¯ïœ€ãã¡ã€ã³ãã¥ãŒãã³ã°ååŸã®ã¢ãã«ãæ¯èŒã§ããUIãåãã£ãŠãããã¡ã€ã³ãã¥ãŒãã³ã°ååŸã§ã®çµæãç°¡æçã«è©Šãããšãå¯èœã§ã以äžã¯äžäŸãšããŠïœ€Azure OpenAIã®ææ°æ å ±ãå ã«ãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«ã§ã®çµæãšãªããŸã
ã¡ãããšïœ€ä»¥äžã®æ
å ±ãåŠç¿ããŠããæš¡æ§ã§ã
å人çãªææãšããŠã¯ãGPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ææ³ã¯ããã©ã¡ãŒã¿å¹çã®è¯ãLoRAïŒLow-Rank AdaptationïŒã®ãããªæè¡ã䜿çšãããŠããã®ã§ã¯ãªãããšæšæž¬ããŠããŸããGPT-4o miniã¯é«ãæ§èœãæã¡ã€ã€ããæ¯èŒçå°ããªã¢ãã«ãµã€ãºãå®çŸããŠãããšèããããããããã¡ã€ã³ãã¥ãŒãã³ã°ã®å¹æãé¡èã«è¡šããå¯èœæ§ããããŸãããã®ããšãããGPT-4o miniã¯æ§ã ãªçšéã«æè»ã«é©å¿ã§ããå¯èœæ§ãé«ããããžãã¹ã«ããã掻çšã®å¹ ãåºãã®ã§ã¯ãªãããšèããŠããŸãã
ãã¡ã€ã³ãã¥ãŒãã³ã°ã®æé©åãšãã¹ããã©ã¯ãã£ã¹ïŒAIãããã«ãã¯ãŒã¢ããïŒ
ãã¡ã€ã³ãã¥ãŒãã³ã°ã®å¹æãæ倧åããããã«ã以äžã®ãã¹ããã©ã¯ãã£ã¹ãèæ ®ããŠãã ããã
- ããŒã¿å質ã®éèŠ: éããã質ãéèŠããæ£ç¢ºã§ä»£è¡šçãªããŒã¿ãçšæããŸãããã
- ããŒã¿ã®å€æ§æ§: ããŸããŸãªã±ãŒã¹ãè¡šçŸãå«ãããã©ã³ã¹ã®åããããŒã¿ã»ãããæºåããŸãããã
- ã·ã¹ãã ã¡ãã»ãŒãžã®æŽ»çš: åãã¬ãŒãã³ã°äŸã«ã·ã¹ãã ã¡ãã»ãŒãžãå«ããã¢ãã«ã®åœ¹å²ãæ¯ãèããæ確ã«æå®ããŸãããã
- 段éçãªã¢ãããŒã: å°èŠæš¡ãªããŒã¿ã»ããããå§ããçµæãè©äŸ¡ããªããåŸã ã«ã¹ã±ãŒã«ã¢ããããŸãããã
- ãã€ããŒãã©ã¡ãŒã¿ã®èª¿æŽ: ãšããã¯æ°ãåŠç¿çãªã©ã®ãã€ããŒãã©ã¡ãŒã¿ãé©åã«èšå®ããŸãããã
- å®æçãªè©äŸ¡: ãã¡ã€ã³ãã¥ãŒãã³ã°ãããã¢ãã«ã®æ§èœãå®æçã«è©äŸ¡ããå¿ èŠã«å¿ããŠåãã¬ãŒãã³ã°ãè¡ããŸãããã
ãã€ããŒãã©ã¡ãŒã¿ã®èª¿æŽ
OpenAIã¯ä»¥äžã®ãã€ããŒãã©ã¡ãŒã¿ã®èª¿æŽãèš±å¯ããŠããŸãã
- ãšããã¯æ°: èšç·ŽããŒã¿ãäœåç¹°ãè¿ããŠåŠç¿ãããã
- åŠç¿çä¹æ°: åŠç¿çã調æŽããããšã§ãã¢ãã«ã®åŠç¿é床ãå¶åŸ¡
- ããããµã€ãº: äžåºŠã«åŠç¿ãããããŒã¿ã®é
ãããã®ãã©ã¡ãŒã¿ã¯ã以äžã®ããã«èšå®ã§ããŸãã
openai.FineTuningJob.create(
training_file="file-abc123",
model="gpt-4o-mini-2024-07-18",
hyperparameters={
"n_epochs": 2,
"learning_rate_multiplier": 0.1,
"batch_size": 4
}
)
äžè¬çã«ã以äžã®ãããªèª¿æŽãå¹æçã§ãã
- ã¢ãã«ãæåŸ éãã«ãã¬ãŒãã³ã°ããŒã¿ã«åŸããªãå Žåããšããã¯æ°ã1ã2å¢ãã
- ã¢ãã«ã®å€æ§æ§ãæåŸ ãããäœãå Žåããšããã¯æ°ã1ã2æžãã
- ã¢ãã«ãåæããªãå ŽåãåŠç¿çä¹æ°ãå¢ãã
å¿çšäŸïŒGPT-4o miniãããžãã¹ã«ããããé©æ°
GPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ã¯ãæ§ã ãªããžãã¹ã·ãŒã³ã§æŽ»èºããŸãã
-
顧客察å¿ã®èªåå: 24æé365æ¥ã顧客ããã®åãåããã«è¿ éãã€ç確ã«å¯Ÿå¿ãã顧客æºè¶³åºŠåäžãšæ¥åå¹çåãäž¡ç«ã
äŸ: 顧客ããã®ãããã質åã«èªåã§åçãããã£ããããããéçºããããšã§ãã³ãŒã«ã»ã³ã¿ãŒã®è² æ ã軜æžãã顧客ã®åŸ ã¡æéãççž®ã§ããŸãã -
瀟å ææžã®å¹ççãªèŠçŽ: é·æéãããè³æèªã¿èŸŒã¿ãAIããµããŒãããéèŠãªæ å ±ã«çŽ æ©ãã¢ã¯ã»ã¹ããŠææ決å®ãå éã
äŸ: èšå€§ãªéã®è°äºé²ãã¬ããŒããèŠçŽããããšã§ãæ åœè ã®æ å ±åéã«ãããæéãå€§å¹ ã«åæžã§ããŸãã -
å°éåéã®ææžåé¡: å°éçãªææžãèªåçã«åé¡ããé©åãªã«ããŽãªãŒãã¿ã°ãå²ãåœãŠãããšã§ãæ å ±ç®¡çãå¹çåã
äŸ: æ³åŸææžãå»çèšé²ãèªååé¡ããããšã§ã倧éã®ææžãå¹ççã«æŽçããå¿ èŠãªæ å ±ãžã®ã¢ã¯ã»ã¹ãè¿ éåã§ããŸãã -
æ³çææžã¬ãã¥ãŒã®å¹çå: å¥çŽæžãªã©ã®æ³çææžã®ã¬ãã¥ãŒããã»ã¹ãèªååãã粟床ãšã¹ããŒããåäžã
äŸ: å¥çŽæžã«å«ãŸããç¹å®ã®æ¡é ããªã¹ã¯ãèªåçã«æ€åºããããéå»ã®å€äŸã«åºã¥ããŠä¿®æ£æ¡ãææ¡ãããããããšã§ãæ³åæ åœè ã®è² æ ã軜æžããã¬ãã¥ãŒã®è³ªãåäžãããããšãã§ããŸãã
å®å šæ§ãšå«çïŒè²¬ä»»ããAI掻çšã«åããŠ
GPT-4o miniã¯ãå®å šæ§ãšå«çã«ãé æ ®ããèšèšãšãªã£ãŠããŸãã
- ã³ã³ãã³ããã£ã«ã¿ãªã³ã°: äžé©åãªã³ã³ãã³ãã®çæãæå¶ã
- 人éã®ãã£ãŒãããã¯ã«ãã匷ååŠç¿ïŒRLHFïŒ: å«ççãªåé¡ãæå°éã«æããããã®å¯Ÿçã
- æ瀺éå±€æ³: æªæã®ãããŠãŒã¶ãŒããã®æäœãé²ãããã®ã»ãã¥ãªãã£å¯Ÿçã
ãã¡ã€ã³ãã¥ãŒãã³ã°ãè¡ãéã«ã¯ã以äžã®ç¹ã«æ³šæããŸãããã
- å人æ å ±ãæ©å¯æ å ±ã®ä¿è·: ããŒã¿ã»ããã«å人æ å ±ãæ©å¯æ å ±ãå«ãŸãªãããã«æ³šæã
- ãã€ã¢ã¹ãåèŠã®æé€: å€æ§æ§ã®ããããŒã¿ã»ãããäœæããå ¬å¹³æ§ã確ä¿ã
- åºåçµæã®å®æçãªç£æ»: å«ççãªåé¡ããªãããå®æçã«ç¢ºèªã
äŸ¡æ Œãšå¯çšæ§ïŒå¹ççãªäŸ¡æ Œã§AIãå°å ¥
OpenAI瀟ãæäŸããGPT-4o miniã®äŸ¡æ Œã¯ãéåžžã«ç«¶äºåããããŸãïŒ
- å ¥åããŒã¯ã³ããã$0.150/1MããŒã¯ã³
- åºåããŒã¯ã³ããã$0.600/1MããŒã¯ã³
ããã«ãOpenAIã¯2024幎9æ23æ¥ãŸã§GPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ãç¡æã§æäŸããŠããŸãããã®æéäžãåçµç¹ã¯24æéããšã«200äžããŒã¯ã³ãŸã§ç¡æã§äœ¿çšã§ããè¶ éåã¯100äžããŒã¯ã³ããã$3.00ã§èª²éãããŸãã
ãã®æ©äŒã«ããã²OpenAI瀟ã®GPT-4o miniãã¡ã€ã³ãã¥ãŒãã³ã°ããè©Šããã ããã
Azure OpenAIã§GPT-4o miniããã¡ã€ã³ãã¥ãŒãã³ã°ïŒãšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®AIæ§ç¯
Azure OpenAIã¯ããšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®ã»ãã¥ãªãã£ãšä¿¡é Œæ§ãåãããã©ãããã©ãŒã ã§ããã2024幎7æãããGPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ããããªãã¯ãã¬ãã¥ãŒãšããŠå©çšå¯èœã«ãªããŸããããã®æ°æ©èœã«ãããäŒæ¥ã¯Azureã®å ç¢ãªã€ã³ãã©ã¹ãã©ã¯ãã£ã掻çšãã€ã€ãGPT-4o miniã®é«åºŠãªæ©èœãã«ã¹ã¿ãã€ãºã§ããããã«ãªããŸããã
ã¡ããã©1ã¶æåã»ã©ã«ä»¥äžã®èšäºãæžããã®ã§ããã¢ããããŒããã»ããšã«çéã§ãã
å©çšå¯èœæ§ãšå°å
GPT-4o miniã¯çŸåš(2024幎8æ16æ¥æç¹)ã§ã¯ã以äžã®Regionã§ãããã€å¯èœã§ãïŒ
- æšæºããã³ã°ããŒãã«æšæºãããã€ã¡ã³ãïŒEast USããã³Sweden Central
- ã°ããŒãã«ããããããã€ã¡ã³ãïŒEast USãSweden CentralãWest US
- ãã¡ã€ã³ãã¥ãŒãã³ã°ïŒãããªãã¯ãã¬ãã¥ãŒïŒïŒNorth Central USããã³Sweden Central
ã¢ãã«ã®ä»æ§
GPT-4o miniïŒ2024-07-18ããŒãžã§ã³ïŒã¯ä»¥äžã®ä»æ§ãæã£ãŠããŸãïŒ
- å ¥åããŒã¯ã³æ°äžéïŒ128,000
- åºåããŒã¯ã³æ°äžéïŒ16,384
- ãã¬ãŒãã³ã°äŸã®ã³ã³ããã¹ãé·ïŒ64,536
- ç¥èã®ã«ãããªãæ¥ïŒ2023幎10æ
Azure OpenAIã§ã®ãã¡ã€ã³ãã¥ãŒãã³ã°æé
-
Azure OpenAI Studioã«ã¢ã¯ã»ã¹ïŒ
Azure portalããAzure OpenAI Studioã«ã¢ã¯ã»ã¹ããŸãã -
ãã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ããäœæïŒ
å·ŠåŽã®ã¡ãã¥ãŒãããFine-tuningããéžæãããCreate fine-tuning jobããã¯ãªãã¯ããŸãã -
ãžã§ãã®è©³çŽ°ãèšå®ïŒ
- Job nameïŒãžã§ãã®ååãæå®ããŸãã
- Base modelïŒãã¡ã€ã³ãã¥ãŒãã³ã°ã®ããŒã¹ãšãªãã¢ãã«ãšããŠããgpt-4o-miniããéžæããŸãã
- Training dataïŒäºåã«çšæããJSONL圢åŒã®èšç·ŽããŒã¿ãã¢ããããŒãããŸãã
- Validation data (optional)ïŒæ€èšŒããŒã¿ãããå Žåã¯ãã¢ããããŒãããŸãã
- Hyperparameters (optional)ïŒå¿ èŠã«å¿ããŠããšããã¯æ°ãåŠç¿çä¹æ°ãããããµã€ãºãªã©ã®ãã€ããŒãã©ã¡ãŒã¿ã調æŽããŸãã
-
ãžã§ããéå§ïŒ
ãCreateããã¿ã³ãã¯ãªãã¯ããŠããã¡ã€ã³ãã¥ãŒãã³ã°ãžã§ããéå§ããŸãã -
é²è¡ç¶æ³ã確èªïŒ
ãžã§ãã®é²è¡ç¶æ³ã¯ãAzure OpenAI Studioã®ãFine-tuningãããŒãžã§ç¢ºèªã§ããŸãã -
ãã¡ã€ã³ãã¥ãŒãã³ã°æžã¿ã¢ãã«ããããã€ïŒ
ãã¡ã€ã³ãã¥ãŒãã³ã°ãå®äºãããããã¡ã€ã³ãã¥ãŒãã³ã°æžã¿ã¢ãã«ããããã€ããŠãAPIçµç±ã§å©çšã§ããããã«ãªããŸãã
å®å šæ§è©äŸ¡ãšResponsible AI
Azureã¯ãGPT-4ããã³GPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ã«é¢ããŠãè¿œå ã®å®å šæ§è©äŸ¡ã¹ããããå®è£ ããŠãããšã®ããšã§ãã詳现ã¯ä»¥äžã®å ¬åŒããã¥ã¡ã³ãã®éãã§ãã
Safety evaluation GPT-4 fine-tuning - public preview
GPT-4 and GPT-4o-mini are our most advanced models that can be fine-tuned to your needs. As with Azure OpenAI models generally, the advanced capabilities of fine-tuned models come with increased responsible AI challenges related to harmful content, manipulation, human-like behavior, privacy issues, and more. Learn more about risks, capabilities, and limitations in the Overview of Responsible AI practices and Transparency Note. To help mitigate the risks associated with GPT-4 and GPT-4o-mini fine-tuned models, we have implemented additional evaluation steps to help detect and prevent harmful content in the training and outputs of fine-tuned models. These steps are grounded in the Microsoft Responsible AI Standard and Azure OpenAI Service content filtering.
Evaluations are conducted in dedicated, customer specific, private workspaces;
Evaluation endpoints are in the same geography as the Azure OpenAI resource;
Training data is not stored in connection with performing evaluations; only the final model assessment (deployable or not deployable) is persisted; and
GPT-4 and GPT-4o-mini fine-tuned model evaluation filters are set to predefined thresholds and cannot be modified by customers; they aren't tied to any custom content filtering configuration you may have created.
以äžã«äžèšå 容ã®èŠçŽã瀺ããŸãã
GPT-4ãGPT-4o miniã®ãã¡ã€ã³ãã¥ãŒãã³ã°ã®äž»ãªèª²é¡ãšå¯Ÿç
- ãªã¹ã¯: æ害ãªã³ã³ãã³ããæäœã人éã®ãããªæ¯ãèãããã©ã€ãã·ãŒã®åé¡ãªã©
- 察ç: Microsoft Responsible AI StandardãšAzure OpenAI Serviceã®ã³ã³ãã³ããã£ã«ã¿ãªã³ã°ã«åºã¥ãè©äŸ¡ã¹ãããã®å®è£
å®å šæ§è©äŸ¡ã®ç¹åŸŽ
- å°çšã¯ãŒã¯ã¹ããŒã¹: è©äŸ¡ã¯é¡§å®¢å°çšã®ãã©ã€ããŒãã¯ãŒã¯ã¹ããŒã¹ã§å®æœãããŸãã
- å°ççäžè²«æ§: è©äŸ¡ãšã³ããã€ã³ãã¯Azure OpenAIãªãœãŒã¹ãšåãå°ççäœçœ®ã«ãããŸãã
- ããŒã¿ä¿è·: ãã¬ãŒãã³ã°ããŒã¿ã¯è©äŸ¡å®è¡ã«é¢é£ããŠä¿åãããŸãããæçµçãªã¢ãã«è©äŸ¡çµæïŒãããã€å¯èœãã©ããïŒã®ã¿ãä¿æãããŸãã
- åºå®ãã£ã«ã¿ãŒèšå®: è©äŸ¡ãã£ã«ã¿ãŒã¯äºåå®çŸ©ãããéŸå€ã«èšå®ãããŠããã顧客ã«ããå€æŽã¯ã§ããŸããããããã¯ãã«ã¹ã¿ã ã³ã³ãã³ããã£ã«ã¿ãªã³ã°èšå®ãšã¯ç¬ç«ããŠããŸãã
ãããã®æªçœ®ã«ãããäŒæ¥ã¯GPT-4o miniã®é«åºŠãªæ©èœã掻çšãã€ã€ã責任ããAIå©çšãå®çŸã§ããŸãããã¡ã€ã³ãã¥ãŒãã³ã°ãæ€èšããéã¯ãAzure OpenAIãµãŒãã¹ã®ææ°ã®ããã¥ã¡ã³ããåç §ãããªã¹ã¯ãæ©èœãå¶éã«ã€ããŠã®è©³çŽ°ãªæ å ±ã確èªããããšããå§ãããŸãã
Azure OpenAIã䜿çšããã¡ãªãã
- ãšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®ã»ãã¥ãªãã£ïŒAzureã®å ç¢ãªã»ãã¥ãªãã£åºç€ã«ãããå®å¿ããŠAIã¢ãã«ãéçšã§ããŸãã
- 倧èŠæš¡ãªããŒã¿ã»ããã®åŠçïŒAzureã®åŒ·åãªèšç®ãªãœãŒã¹ã掻çšããããšã§ã倧èŠæš¡ãªããŒã¿ã»ãããçšãããã¡ã€ã³ãã¥ãŒãã³ã°ãå¯èœã«ãªããŸãã
- æ¢åã·ã¹ãã ãšã®é£æºïŒAzureã®è±å¯ãªãµãŒãã¹ãšé£æºããããšã§ãAIã¢ãã«ãæ¢åã®ããžãã¹ã·ã¹ãã ã«ã¹ã ãŒãºã«çµ±åã§ããŸãã
- å°ççãªæè»æ§ïŒè€æ°ã®å°åã§ã®ãããã€ã¡ã³ããªãã·ã§ã³ã«ãããããŒã¿ã®ããŒã«ã©ã€ãŒãŒã·ã§ã³ãã¬ã€ãã³ã·èŠä»¶ã«å¯Ÿå¿ã§ããŸãã
ãã¡ã€ã³ãã¥ãŒãã³ã°ãæ€èšããéã¯ãAzure OpenAIãµãŒãã¹ã®ææ°ã®ããã¥ã¡ã³ããåç §ããçŸåšã®å©çšå¯èœæ§ãšå®å šæ§ã¬ã€ãã³ã¹ã確èªããããšããå§ãããŸãã
çµè«ïŒGPT-4o miniã§AIã®æªæ¥ãåµé ãããïŒ
GPT-4o miniã¯ããã®é©ç°çãªæ§èœãšäœã³ã¹ãã§ãAI掻çšã®å¯èœæ§ã倧ããåºããŸãããã¡ã€ã³ãã¥ãŒãã³ã°ã掻çšããããšã§ãããªãã®ããžãã¹ã«æé©åãããAIãæã«å ¥ããããšãã§ããŸãã
æªæ¥ãå åãããGPT-4o miniã®åã§ããžãã¹ãé²åãããŸãããïŒ
æŽæ°æ å ±
2024幎8æ21æ¥
OpenAIã¯ããã«ãã¢ãŒãã«AIã¢ãã«ãGPT-4oãã®ãã¡ã€ã³ãã¥ãŒãã³ã°æ©èœã8æ20æ¥ã«æäŸéå§ããŸãããããã«ããããã¹ãŠã®ææãã©ã³ã®éçºè ããç¬èªã®ããŒã¿ã䜿çšããŠã¢ãã«ãã«ã¹ã¿ãã€ãºã§ããããã«ãªããŸããããã¡ã€ã³ãã¥ãŒãã³ã°ã¯Chat-GPTã®ããã·ã¥ããŒãããéå§å¯èœã§ãã³ã¹ãã¯100äžããŒã¯ã³åœãã25ãã«ãæšè«ã®ã³ã¹ãã¯100äžå ¥åããŒã¯ã³åœãã3.75ãã«ãåºåããŒã¯ã³åœãã15ãã«ã§ãã9æ23æ¥ãŸã§ã1æ¥åœãã200äžã®ãã¬ãŒãã³ã°ããŒã¯ã³ãç¡æã§æäŸãããŸãã
äž»ãªãã€ã³ã:
- ãã¡ã€ã³ãã¥ãŒãã³ã°ã®ç®ç: äŒæ¥ç¬èªã®ããŒã¿ã§ã¢ãã«ãã«ã¹ã¿ãã€ãºå¯èœã
- æäŸç¯å²: ãã¹ãŠã®ææãã©ã³ã§å©çšå¯èœã
- ã³ã¹ã: ãã¡ã€ã³ãã¥ãŒãã³ã°ã¯100äžããŒã¯ã³åœãã25ãã«ãæšè«ã¯å ¥å3.75ãã«ãåºå15ãã«ã
- å®å šæ§ãšããŒã¿ãã©ã€ãã·ãŒ: ããŒã¿ã¯ä»ã®ãŠãŒã¶ãŒã«ã¯å ±æããããå®å šæ§ç·©åçãå®è£ ãããŠããŸãã
- ç¡æããŒã¯ã³æäŸ: 9æ23æ¥ãŸã§1æ¥200äžãã¬ãŒãã³ã°ããŒã¯ã³ãç¡æã§æäŸã
ãã®æ©èœã«ãããããé«åºŠã«ã«ã¹ã¿ãã€ãºãããAIã¢ãã«ãéçºå¯èœãšãªããŸãã詳现ã¯ä»¥äžãã芧ãã ããã
2024幎8æ31æ¥
ã€ãã«Azure OpenAIã§ãGPT-4oã®ãã¡ã€ã³ãã¥ãŒãã³ã°ãå¯èœãšãªããŸãã
North Central USãšSweden CentralãªãŒãžã§ã³ã§å¯èœãªæš¡æ§ã§ã
åèè³æ
- OpenAI API ããã¥ã¡ã³ã
- OpenAI Fine-tuning ã¬ã€ã
- GPT-4o mini çºè¡šããã°
- Microsoft Azure OpenAI ææ°æ å ±
- Azure OpenAIã§ã®ãã¡ã€ã³ãã¥ãŒãã³ã°æ¹æ³
- Fine-tuning now available for GPT-4o
ãå
責äºé
ã
æ¬èšäºã®æ
å ±ã¯å·çæç¹ïŒ2024幎8æ16æ¥ïŒã®ãã®ã§ããæ¬èšäºã¯ãå
¬éãããŠããæ
å ±ã«åºã¥ããŠäœæãããŠããŸããã誀ããå«ãŸããŠããå¯èœæ§ããããŸããå
容ã®æ£ç¢ºæ§ã«ã€ããŠã¯ãèªè
ãèªèº«ã®è²¬ä»»ã§å€æããé¡ãããããŸããAIæè¡ã¯æ¥éã«é²åããŠããã補åã®ä»æ§ãäŸ¡æ Œãå¯çšæ§ãªã©ãäºåãªãå€æŽãããå¯èœæ§ããããŸããææ°ãã€æ£ç¢ºãªæ
å ±ã«ã€ããŠã¯ãåžžã«OpenAIã®å
¬åŒããã¥ã¡ã³ãããã³é¢é£ãããµãŒãã¹ãããã€ããŒã®ææ°æ
å ±ãã確èªãã ããããŸããæ¬èšäºã®å
容ã¯äžè¬çãªæ
å ±æäŸãç®çãšããŠãããå°éçãªã¢ããã€ã¹ãšããŠã¯æå³ããŠããŸãããå
·äœçãªå°å
¥ãå©çšã«é¢ããŠã¯ãé©åãªå°é家ã«ãçžè«ãã ããã
Discussion