ãã®èšäºã¯
Reasoning Engine (LangChain on VertexAI)ã§ã埮調æŽããGemma 2 JPNãšãã£ããããAIã¢ããªã€ããããŒã
Google Cloudã§ç§ã§äœãããããããŒããã£ãŠããããšãèšãããããšãããåæã«æ¥œããã§ãèšäºã§ãã
ãšããããšã§ãä»åã¯ããŒãã¯ãã¡ãã
ãReasoning Engine & Cloud Run with GPUã§Gemma 2ãšãã£ããããã
ã©ãã©ãããããã
䜿ããµãŒãã¹ã»ã©ã€ãã©ãªãªã©
ãã®ãŸãã«ãReasoning Engine (LangChain on VertexAI)ã£ãŠãªã«ãïŒ
ãåç¥ããšæããŸãããæçã«ã
Reasoning Engineã¯ã
LangChainã䜿ã£ãAgentãGoogle Cloudäžã«ãããã€ã§ããåªããã®ã§ãã
äœæ3ç§ã§ãããã€ã§ããŸããâ»ãããŸã§äž»èгã§ã
ãŸããVertex AI SDKã«çšæããŠãããŠãããLangchainAgentã¯ã©ã¹ãšãããã®ãç¹ã«äŸ¿å©ã§ãããããLangChain wrapperã¯ã©ã¹ãšãªã£ãŠããŸãã
å
·äœçãªäžèº«ã¯ãRunnableWithMessageHistoryãªã©å®è£
ãããŠããããããã£ããå±¥æŽã管çããŠããããããã«ãã¿ãŒã³ã¯ãã¡ããããã€ãã®LangChainãã®ãŸãŸã®äœ¿ãå¿å°ã§ãã¹ããŒãã£ãŒã«éçºã§ãã¡ãããŸãã
LangchainAgentã®äœ¿çšã«ãããŠå¬ãããã€ã³ãã¯ã
Agentã®ã¡ã€ã³ã§ãããããŒã«ã®å®è£
ãªã©ã«éäžã§ãã
Agentããžãã¯éšåã¯ãã»ãŒã³ãŒããæžããã«Google Cloudå
¬åŒå質ãæ
ä¿ã§ããããšããããšãå¬ãããã€ã³ãã®äžã€ã§ãã
ãŸããLangchainAgentã¯ã©ã¹ã䜿çšãããèªèº«ã§äœæããã«ã¹ã¿ã ã¯ã©ã¹ã§ããããã€ããããšãå¯èœã§ãã
ããã«ãããLangChainã ãã§ãªããLangGraphãLlamaIndexãªã©ä»ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã䜿çšã§ããŸãã
å®éã®ãããã€ãVertex AI SDKã®ReasoningEngineã¯ã©ã¹ã䜿çšããã ãã§ããããšã§ããŸãã
ã€ã³ãã©èšå®ãªããGoogle Cloudã«èº«ãå¿ãå§ããŸãã
ã¡ãªã¿ã«ãçŸç¶ãã¬ãã¥ãŒãµãŒãã¹ã§ãããããããã€ã€GAã倢èŠãŠåŸ ã¡ãŸãããâŠã
ä»åãã£ãŠãããš
ãã£ããä»çµã¿éšå
ããã§ã®ã¡ã€ã³ã¯ãReasoning EngineãšLangChainã§ãã
ä»åã¯ãqueryæã«åŒæ°ã§ã¢ãã«ãéžæã§ããããã«ããããããæãã®LangchainAgentã¯äœ¿çšâŠãããã«ã¹ã¿ã ã¯ã©ã¹ãäœæããŸãã
ïŒåŸè¿°ã®éãè€æ°ã®ã¢ãã«ããã¹ãããããïŒ
åçŽã«ChatOllamaã䜿çšããã ãã§ããã°ãLangchainAgentã«model_builderãæž¡ãã ãã§åããŸãã
ChatOllamaã®ã»ãã«ãLangChainã«çšæãããŠããChatHogeç³»ãªãåãããããã§ããïŒæªæ€èšŒïŒ
ãã£ããå±¥æŽã¯ãã¿ããªå€§å¥œãAlloyDBã«ä¿åãããŠããã ããŸããããã
ãã£ããä¿åçšããŒãã«ã®ã€ãã·ã£ã©ã€ãºããengine.init_chat_history_tableã§ã§ãããããåºæ¬çãªäœ¿ãæ¹ã§ããã°ãã€ã°ã¬ãŒã·ã§ã³ãã¡ã€ã«ãªã©çšæããããã£ãšäœããã®ãå¬ãããã€ã³ãã
ãã£ãããã©ã¡ãŒã¿ã¯ã以äžã®ã³ãŒãã®éãããã©ã«ãã§ãã
äž»èŠãªå€ïŒ
| ãã©ã¡ãŒã¿å | ããã©ã«ãå€ |
|---|---|
| temperature | 0.8 |
| top_k | 40 |
| top_p | 0.9 |
| repeat_penalty | 1.1 |
ã«ã¹ã¿ã ã¯ã©ã¹
class CustomLangchainAgent:
def query(self, input: str, model: str, config: dict):
from langchain_ollama import ChatOllama
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.runnables.history import RunnableWithMessageHistory
def get_session_history(session_id: str):
from langchain_google_alloydb_pg import AlloyDBEngine, AlloyDBChatMessageHistory
engine = AlloyDBEngine.from_instance(
project_id=PROJECT_ID,
region=REGION,
cluster=CLUSTER,
instance=INSTANCE,
database=DATABASE,
)
return AlloyDBChatMessageHistory.create_sync(
engine,
session_id=session_id,
table_name=TABLE_NAME,
)
llm = ChatOllama(
model = model,
base_url=OLLAMA_BASE_URL,
)
prompt = ChatPromptTemplate.from_messages(
[
MessagesPlaceholder(variable_name="history"),
("human", "{input}"),
]
)
chain = prompt | llm
runnable = RunnableWithMessageHistory(
chain,
get_session_history,
input_messages_key="input",
history_messages_key="history",
)
return {"message": runnable.invoke({"input": input}, config=config).content}
ã¢ãã«ãã¹ãéšå
ããã§ã®ã¡ã€ã³ã¯ãGemma 2ãšOllamaã§ãã
äŸã®ããšããGemma 2 JPN (gemma-2-2b-jpn-it)ã®ãã¹ãã¯ãOllamaã䜿çšããŸãã
ä»åã¯ãGemma 2 JPNããã£ããåãã«QLoRAã§ãã¡ã€ã³ãã¥ãŒãã³ã°ããŠã¿ãŸããã
OllamaãªãLoRAã¢ããã¿ãŒã®ãã¹ããç°¡åã§ModelfileãADAPTERæå®ããã ãã§ã§ããããã
ããŒã¹ã¢ãã«ãšLoRAã¢ããã¿ãŒãšãã©ã¡ãããã¹ãããŠããŸãã
ãŸããModelfileã§ã¯ãããã³ãããæå®ã§ãããããã¢ãã«ãšããã³ãããåãåºããŠã³ãŒãå€ã§ä¿åã§ããã®ããã€ã³ããïŒcommitå±¥æŽã®ã«ãªã¹åãé²ããŸããïŒ
éååã¿ã€ãã¯f16ãšããŠGGUFã«å€æããŠããŸãã
詊ããŠã¿ã
Ollamaã®ãããã§ãããããã®ã¢ãã«ã䜿çšããéã«ãmodelåãæå®ããã ãã§ç°¡åã«å©ããŸãããšãŠã䟿å©ã
ãã£ãããªã®ã§ãããŒã¹ã¢ãã«ãšãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«ãGemini 1.5 Flashã䜿çšããŠè©äŸ¡ããŠã¿ãŸãããïŒã·ã³ã°ã«ã¿ãŒã³ã®ã¿ïŒ
è©äŸ¡ã¯ãã¡ããšèª¿æŽããŠããããã§ã¯ãªãããããããŸã§ãåèçšåºŠã«ã芧ãã ããã
ã·ã³ã°ã«ã¿ãŒã³ã®ã¿ãŒã³
æ¯èŒ 1
äœã®å€å²ããªãæç«
input
ããã«ã¡ã¯ïŒä»æ¥ããã倩æ°ã§ãã
ããŒã¹ã¢ãã«
ããã«ã¡ã¯ïŒ ð ããã§ãã仿¥ã¯ãã倩æ°ã§ããïŒ \n\näœãäºå®ã¯ãããŸããïŒ ð\n\n\n\n
ãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«
ããã§ããïŒä»æ¥ã¯ç¹ã«æ°æž©ãæããã倪éœãçŠã ãšç §ã£ãŠããã¿ãããªã®ã§ãå€ã§æ£æ©ã«åºãããããã¹ããŒãããããããŠãäžæ¥ãæºå«ã§ããã§ãããïŒ âïžð³ð\u200dâïžðš
è©äŸ¡(ãã¢ã¯ã€ãº)
{'reasoning': "Both responses acknowledge the user's greeting and comment on the weather. Assistant B goes further by suggesting activities based on the good weather, adding more depth to the response. \n\n[[B]] \n",
'value': 'B',
'score': 0}
æ¯èŒ 2
æèãäžæãªæç«
input
ãããããããããç麊çç±³
ããŒã¹ã¢ãã«
{'message': 'ãããããããããç麊çç±³ïŒ ð \n\nããªãã¯äœãé£ã¹ããæ°åã§ããïŒ\n\n\n\n\n'}
ãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«
{'message': 'ããã§ããïŒç麊çç±³ã£ãŠãããããã§ãããã \n\nãé£¯ã«æ··ãããããã«ããã«ããŠãçŸå³ããã§ãããã \n\nãã²è²ã
ãªæçã«äœ¿ã£ãŠã¿ãŸãããïŒ'}
è©äŸ¡(ãã¢ã¯ã€ãº)
{'reasoning': "Assistant A seems to be simply mimicking the user's input, adding an emoji, and asking a question. This lacks any relevance to the user's input and does not provide any helpful information. \n\nAssistant B, on the other hand, responds in a conversational manner and attempts to interpret the user's input as a phrase related to food. While the interpretation might not be accurate, it demonstrates an attempt to understand and engage with the user's input.\n\n[[B]] \n",
'value': 'B',
'score': 0}
æ¯èŒ 3
éäžãŸã§ã®æç«
input
ããé£ã®è麊å±ããã«ãã£
ããŒã¹ã¢ãã«
{'message': ' äºè§£ããŸããïŒ ãã°å±ããã®åã«åãããŸããïŒð\n\n\n \n\n\n\n'}
ãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«
{'message': 'ã¯ããé£ã«è麊å±ããããããŸãããäœããçšã§ããïŒ'}
è©äŸ¡(ãã¢ã¯ã€ãº)
{'reasoning': 'Assistant B is more helpful, relevant, and correct. It acknowledges the user\'s phrase and asks for clarification, demonstrating understanding. Assistant A simply states it will "go to the soba shop" without any context, making it seem like it\'s not comprehending the situation.\n\n[[B]] \n',
'value': 'B',
'score': 0}
å人çã«ãã®æ¯èŒ 3ã¯ãããŒã¹ã¢ãã«ã®ã¬ã¹ãã³ã¹ã®æ¹ãããã§ããïŒåçªãªèªåèªãïŒ
ãã«ãã¿ãŒã³ã®ã¿ãŒã³
ãã¡ããããã«ãã¿ãŒã³ãã§ããŸããLangChainããŸããŸã
æ¯èŒ 1
ããŒã¹ã¢ãã«
user: ããã«ã¡ã¯ gemma2: ããã«ã¡ã¯ïŒð \n\näœãçšã§ããïŒ \n\n\n\n user: ç§ã®ååã¯ã倪éã§ã gemma2: ããã«ã¡ã¯ã倪éãã ð\n\n piacere di conoscerti! \n\n\näœãã話ãããããšã¯ãããŸããïŒ \n \n\n\n\n user: ããªãã®ååãæããŠãã ãã gemma2: ç§ã®ååã¯ãAiko ã§ãã ð\n\n\n\n \n\n\n\n\n user: ç§ã®ååãæããŠãã ãã gemma2: ç§ã®ååã¯ã倪éã§ãã ð\n\n\n\n\n \n\n\n\n
ãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«
user: ããã«ã¡ã¯ gemma2: ããã«ã¡ã¯ïŒð äœããæäŒãã§ããããšã¯ãããŸããïŒ user: ç§ã®ååã¯ã倪éã§ã gemma2: 倪éãããã¯ãããŸããŠã piacere di conoscerti! ð äœãã話ãããããšãããã°ããæ°è»œã«ã©ããã user: ããªãã®ååãæããŠãã ãã gemma2: ç§ã®ååã¯ãããªã¢ã ã§ãã ããã«ã¡ã¯ïŒð \n\nããªãã®ãååã¯ã倪éã§ããïŒ user: ç§ã®ååãæããŠãã ãã gemma2: ããã«ã¡ã¯ã倪éããïŒð ããªãã®ååã¯ã倪éãã§ããèŠããŠããŸããïŒ äœãã話ãããããšã¯ãããŸããïŒ
ãšããã©ããèŠæãªããŠããšãŠãæãããã§ããã
æäžã«ãããpiacere di conoscerti!ãã¯ãã€ã¿ãªã¢èªã§ãåããŸããŠããšããæå³ã ããã§ããããã«ãªã£ãããã
æ¯èŒ 2
ããŒã¹ã¢ãã«
user: ææ¥ã®å€é£¯ã®ã¡ãã¥ãŒãèããŠãã ãã gemma2: ææ¥ã®å€é£¯ãããã§ããïŒããã€ã質åãããŠãã ããð\n\n* **ã©ããªæçã奜ãã§ããïŒ** (äŸ: åé£ãæŽé£ãäžè¯ãªã©)\n* **ã©ããªé£æãã奜ã¿ã§ããïŒ** (äŸ: éèãèãéãªã©)\n* **æéãæéã¯ã©ã®ããããããããŸããïŒ** \n* **å®¶ææ§æã¯ïŒ** (äŸ: åäŸãããã倧人äºäººã§é£ã¹ããªã©)\n\n\nãããã®æ å ±ãããã°ãããããªãã«åã£ãã¡ãã¥ãŒææ¡ãã§ããŸãïŒ\n\n\n\n\näŸãã°âŠ\n\n* **ãåé£ã奜ãã§ãç°¡åã§ãå®¶æã¿ããªã§é£ã¹ããããã®ã** ã®å ŽåâŠ\n * **é®ã®å¡©çŒããšã飯**: ç°¡åã«äœããå®çªæçã§ãã\n * **è±è ã®å³åç ®**: éèããã£ã·ãå ¥ã£ãŠããŠæ 逿ºç¹ïŒ \n* **ãæŽé£ã奜ãã§ãå°ãæéãããããã®ãããã** ã®å ŽåâŠ\n * **ãã³ããŒã°ãšãµã©ã**: ãã«ã·ãŒã§ãæºè¶³æããå®çªæç\n * **é¶èãšéèã®ã°ãªã«**: è²ã ãªéèããããã䜿ã£ãã圩ããæ¥œããæç\n\n\n \n\n\n\n \n user: ä»ãæ¬ã®é£æã䜿ã£ããã®ãé£ã¹ããã§ã gemma2: ä»ãæ¬ã®é£æã䜿ã£ãã¡ãã¥ãŒããã§ããïŒðã©ããªæçãã奜ã¿ã§ããïŒ\n\nããã€ã質åãããŠãã ããïŒ\n\n1. **ã©ã®ãžã£ã³ã«ã奜ãã§ããïŒ** (äŸ: åé£ãæŽé£ãäžè¯ãªã©)\n2. **ã©ããªæçãæ³åããŸããïŒ** (äŸ: çãç©ãç ®ç©ãã¹ãŒããªã©) \n\n\n\näŸãã°âŠ\n\n* **åé£ã奜ãã§ãã¡ãã£ãšæéããããã** ã®å ŽåâŠ\n * **æ¬ã®éèãšè±è ã䜿ã£ãå³åæ±**: ä»ãæ¬ã®éèã䜿ã£ããæ é€æºç¹ã®äžåã \n * **é®ãšãã®ããšæ¥éšã®çãç©**: é®ã¯ä»ãæ¬ïŒãã®ãããã£ã·ãã§ã颚å³è±ãã§ãã \n\n* **æŽé£ã奜ãã§ãæ¯èŒçç°¡åã«äœãããã®ããã** ã®å ŽåâŠ\n * **æ¬ã®éèã䜿ã£ãã¹ãŒã**: ããããçœèãã»ãããèãªã©ãæ¬ã®éèããã£ã·ã䜿ã£ãŠã¹ãŒããäœã£ãŠã¿ãŸãããïŒ \n\n\n \n\n\n\n \n\n\n\n\n user: æŽé£ãããã§ã gemma2: æŽé£ã§ããïŒð \næ¬ã®é£æã䜿ã£ãæŽé£ãªããããçŸå³ããããã«ã·ãŒãªæçãæ¥œãããŸãã\n\nããã€ã質åãããŠãã ããïŒ\n\n1. **ã©ããªå³ãã奜ã¿ã§ããïŒ** (äŸ: çããå¡©å³ãé žå³ãªã©)\n2. **èã¯ã©ã®çš®é¡ãããã§ããïŒ** (äŸ: çèãè±èãé¶èãªã©) \n3. **éèã¯ã©ããªçš®é¡ã奜ãã§ããïŒ** (äŸ: ãããããã£ãããããŒãã³ãªã©)\n\n\n\n\n \n\n\n \n\n\n\n user: ããªãã¯äœãé£ã¹ããã§ããïŒ gemma2: ç§ãæŽé£ãé£ã¹ããã§ãïŒð\n\nä»ãæ¬ã®éèã䜿ã£ãã**ããããšãã®ããšããŒãºã®ãªã ã©ã€ã¹** ã«ããŸãããð ðð§ \n\n\n\n \n\n\n\n\n \n
ãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«
user: ææ¥ã®å€é£¯ã®ã¡ãã¥ãŒãèããŠãã ãã gemma2: ææ¥ã®å€é£¯ã¯ãé¶èãšéèã®çãç©ã§ãã\n\nææïŒ\n- é¶ããè 200g\n- çãã 1/4å\n-ããŒãã³ 1æ¬\n-ãªã¯ã© 1/2å\n-ãã³ãžã³ 1/2å\n-çå§ 2ãã\n-Aãªã€ã¹ã¿ãŒãœãŒã¹å€§ãã1\n-ç ç³å°ãã1\n-é 倧ãã2\n\näœãæ¹ïŒ\n1. é¶èã«å¡©ã³ã·ã§ãŠãæ¯ã£ãŠã10åçšåºŠæŒ¬ã蟌ã¿ãŸãã\n2. çãããããŒãã³ããªã¯ã©ããã³ãžã³ã1cmå¹ ã«ã«ããããŸãã\n3. ãã©ã€ãã³ã«ããŸæ²¹ãã²ããé¶èãå ããŠåŒ±ç«ã§çããŸãã\n4. é¶èãçŒããããçãããããŒãã³ããªã¯ã©ããã³ãžã³ãå ããããã«çããå¡©ã³ã·ã§ãŠã§å³ã調ããŸãã\n5. Aãªã€ã¹ã¿ãŒãœãŒã¹å€§ãã1ãå ããç ç³å°ãã1ãå ããé 倧ãã2ãå ããŠçããŸãã\n\nããã§å®æïŒ user: ä»ãæ¬ã®é£æã䜿ã£ããã®ãé£ã¹ããã§ã gemma2: ææ¥ã®å€é£¯ã¯ãä»ãæ¬ã®é£æã䜿ã£ãéèçãã§ãã\n\nææïŒ\n- ã€ã¿ãªã¢ã³ã®ããã 3å\n- ããã 10å\n- ãã®ã 5å\n- ããããã 1å\n- è±è 1/2å\n- å¡©ã³ã·ã§ãŠ\n- ãªãªãŒããªã€ã«\n- ç ç³\n- è¡éº»æ²¹\n\näœãæ¹ïŒ\n1. ã€ã¿ãªã¢ã³ã®ãããã¯ãç®ãå¥ããŠãååã«åã£ãŠãå¡©ã³ã·ã§ãŠã§å³ã調ããŸãã\n2. ãããããã®ãã¯ãæ°Žã§æŽã£ãŠãååã«åã£ãŠãå¡©ã³ã·ã§ãŠã§å³ã調ããŸãã\n3. ãããããã¯ãç®ãå¥ããèåãã«ããŸãã\n4. è±èã¯ãäžå£å€§ã«ã«ããããŸãã\n5. ãã©ã€ãã³ã«ããŸæ²¹ãã²ããè±èãå ãã匱ç«ã§çããå¡©ã³ã·ã§ãŠã§å³ã調ããŸãã\n6. ãããããã®ãããããããããã©ã€ãã³ã«å ããŠã匱ç«ã§çããŸãã\n7. ã€ã¿ãªã¢ã³ã®ããããå ããŠãããã«çããŸãã\n8. è¡éº»æ²¹ããããç ç³ãšå¡©ã³ã·ã§ãŠã§å³ã調ããŸãã\n\nããã§å®æïŒ user: æŽé£ãããã§ã gemma2: ææ¥ã®å€é£¯ã¯ãæŽé¢šãªãã³ããŒã°æçã§ãã\n\nææïŒ\n- è±è 200g\n- çãã 1å\n- ããããã 1å\n- ãšãŒã°ã«ã倧ãã1\n- 逿²¹å€§ãã1/2\n- ã¿ãã倧ãã1/2\n- é 倧ãã1\n- å¡©ã³ã·ã§ãŠ\n\näœãæ¹ïŒ\n1. è±èã¯ãäžå£å€§ã«ã«ããããŸãã\n2. çãããšãããããã¯ãèåãã«ããŸãã\n3. ãã©ã€ãã³ã«ããŸæ²¹ãã²ããè±èã®å¡ãçããŸãã\n4. çãããããããããå ããŠã匱ç«ã§çããå¡©ã³ã·ã§ãŠã§å³ã調ããŸãã\n5. ãšãŒã°ã«ã倧ãã1ã逿²¹å€§ãã1/2ãã¿ãã倧ãã1/2ãé 倧ãã1ãå ããããã«çããä»äžãã«å¡©ã³ã·ã§ãŠã§å³ã調ããŸãã\n\nããã§å®æïŒ user: ããªãã¯äœãé£ã¹ããã§ããïŒ gemma2: ç§ã¯æçãäœãããšã¯ã§ããŸããããææ¥ã®å€é£¯ã¡ãã¥ãŒãéžã¶ãšãã«ã¯ããªãã®å¥œã¿ãé£ã¹ãããã®ãèæ ®ããŠãçŸå³ããæçãéžã³ãããšæããŸãã
ã²ããã質åãç¶ããŠãããããŒã¹ã¢ãã«ãšãããã«å®æããããã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«ã2人ãšãæ§æ ŒãèŠããŠæãããã§ããã
ïŒãããã£ãŠä»æãŸã§æ¬ã ã£ããã âŠïŒ
çµæ
çµæçã«ãããŒã¹ã¢ãã«ãšãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«ã«å€§ããªéãã¯åºãŸããã§ããã
ãããçµå±ããŒã¹ã®Gemma 2ãåªç§ã£ãŠããã§ããã
ããšã¯ãéãã軜埮ã ã£ãçç±ãšããŠãããããä»åã®èª¿æŽãå°ãªãã ã£ããšããããšãèãããããšæããŸããïŒãšãŠã倧ãããïŒ
ãã ããããã¯äž»èгããŒã¹ã®è©±ã«ãªããŸããã
æå³äžæãªæç« ããéäžã®æç« ãinputããéã«ã¯å°ãéãããã£ããããªæ°ãããŸãã
ããŒã¹ã¢ãã«ã¯ãåããšããŠè³æ¥µçã£åœãªãããã³ããããã¹ãã®ç¶ããçæãããããããšãå€ãã§ããã
ãã¡ã€ã³ãã¥ãŒãã³ã°ããã¢ãã«ã¯ãããã¹ãããã³ããã«å¯ŸããŠã¬ã¹ãã³ã¹ãçæããŠãããŠããŸããã
ã»ãŒç¶ããçæããããšããŠãããã®ã¯ãªãã£ãããã«æããŸãã
ãŸãããã¡ã€ã³ãã¥ãŒãã³ã°ã«äœ¿çšããããŒã¿ã«ã¯ãçµµæåå°ãªããšæãã®ã§ããã®ãããã®ãã¥ã¢ã³ã¹ïŒçãªãšãããåŠç¿ããŠããããã§ããã
ã»ãã®ã¡ããã£ãšãã¥ãŒãã³ã°ããã ãã§ããããŸã§é 匵ã£ãŠããããšããã®ã¯ãGemma2éçºè æ§ã®èŠåŽã®è³ç©ã§ããã
ãŸããäžèšã®çµæã¯ãçæç¢ºçã®äžã®ã»ãã®äžäŸã§ãããæ³šæãã ããã
ïŒã«ã¹ã¿ã ã¯ã©ã¹éšåã«èšèŒã®éãããã£ãããã©ã¡ãŒã¿ã¯ããã©ã«ãïŒ
ããããããŒã¹ã¢ãã«ã®ãŸãŸã®æ¹ããè©äŸ¡çã«ã奜ã¿çã«ãè¯ãçæã¯ãããããããŸããã
äœè«ã§ããããã«ãã¿ãŒã³ã¯äžææžåœã«çããŠãããå§¿ãã¿ããŠã»ã£ããããã®ã§ãå¿ãèãã ãšãã«ããããã§ãã
ãŸãšã
Reasoning EngineãšCloud Run with GPUã䜿çšããã°ãç°¡åã«å¥œããªã¢ãã«ã䜿çšããAIã¢ããªãéçºã»ãããã€ã§ããŸãã
Gemma2ã¯ãå°ããã¢ãã«ã«ãé¢ããããã®ãŸãŸã®ã¢ãã«ã§ãæç€ºéãã¿ã¹ã¯ãããªããŠãããŸãããŸããå°ãã®ãã¡ã€ã³ãã¥ãŒãã³ã°ããã ãã§ããæç€ºãããŠãããããã«ãªããŸãã
Reasoning Engineã¯ãããããGemma 2ã¯ããããã
以äžã§ãã