Skip to content

latencyspace/kipl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

transparent

AI/빅데이터 기반의 μ˜μœ μ•„ λŒ€μƒ 식단 μΆ”μ²œ μ„œλΉ„μŠ€, ν‚€ν”Œ


πŸ”– μ†Œκ°œ

  • ν‚€ν”Œ(kipl)은 ν‚€μ¦ˆ ν”Œλ ˆμ΄νŠΈ(Kid's Plate)의 μ€„μž„λ§λ‘œ, AI/빅데이터 기반 μ˜μœ μ•„ λŒ€μƒ 식단 μΆ”μ²œ μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.
  • λΉ„μ§€λ„ν•™μŠ΅μœΌλ‘œ κ΅°μ§‘ν™”λœ 데이터λ₯Ό μΉ΄ν…Œκ³ λ¦¬ν™”ν•˜μ—¬ λ§Œλ“  AI λͺ¨λΈμ„ 톡해 μ‚¬μš©μžμ˜ μš”κ΅¬ 사항이 반영된 κ²°κ³Όλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

πŸ’‘ μ„œλΉ„μŠ€ λͺ©μ 

  • μ—°λ ΉλŒ€λ³„ 졜적의 μ„±μž₯ 및 λ°œλ‹¬μ„ μœ„ν•œ μ–‘μ§ˆμ˜ 데이터λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  • AI(λ¨Έμ‹ λŸ¬λ‹ & λ”₯λŸ¬λ‹)을 ν™œμš©ν•œ 졜적의 데이터λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  • κ°€μ •μ—μ„œλŠ” λ¬Όλ‘ , μ–΄λ¦°μ΄μ§‘μ΄λ‚˜ 아동 λ³΄ν˜Έμ†Œ λ“± λ‹€μ–‘ν•œ μž₯μ†Œ 및 λΆ„μ•Όμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν™œμš©λ„ 높은 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

πŸƒπŸ» ν”„λ‘œμ νŠΈ λͺ©ν‘œ

  • Google Cloud Platform의 μ„œλΉ„μŠ€λ“€μ„ μ μž¬μ μ†Œμ— ν™œμš©ν•˜μ—¬ ν”„λ‘œμ νŠΈμ˜ 완성도λ₯Ό λ†’μž…λ‹ˆλ‹€.
  • Google Workspace, Github와 같은 ν˜‘μ—… μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ ν™œλ°œν•œ μ†Œν†΅μ„ λ°”νƒ•μœΌλ‘œ 효율적인 ν˜‘μ—…μ„ 톡해 κ³΅λ™μ˜ λͺ©ν‘œμ— λ‹¬μ„±ν•©λ‹ˆλ‹€.

πŸ“š 기술 μŠ€νƒ

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

πŸ“’ ν”„λ ˆμ  ν…Œμ΄μ…˜

πŸ—“οΈ 개발 일정

πŸ“Œ WBS

πŸ“‘ ERD

Scenario

DB Schema

πŸ”— API

Main Service

  • μ˜μœ μ•„μ˜ κ°œμ›”μˆ˜λ₯Ό κΈ°μ€€μœΌλ‘œ μ„ΈλΆ„ν™”ν•œ 식단 제곡 μ„œλΉ„μŠ€
  • μ•ŒλŸ¬μ§€ 필터링 μ„œλΉ„μŠ€
  • κΈ°μ‘΄ 데이터에 μ—†λ˜ 식단 μΆ”κ°€ 리포트 μš”μ²­

Sub Service

  • μΆ”μ²œλ°›μ€ 식단에 λŒ€ν•œ πŸ‘πŸ»(Good) & πŸ‘ŽπŸ»(Bad) 평가
  • λ”₯λŸ¬λ‹ λͺ¨λΈ 기반 잘λͺ»λœ 데이터 μž…λ ₯에 λŒ€ν•œ λ°©μ–΄

πŸ–₯️ ν”„λ‘œν† νƒ€μž…

πŸ”‘ 기술적 μ΄μŠˆμ™€ ν•΄κ²° κ³Όμ •

Dataflow Runner

  • Dataflow API 이용 μ‹œ Direct RunnerλŠ” λ™μž‘μ΄ κ°€λŠ₯ν•˜λ‚˜, Dataflow RunnerλŠ” λ™μž‘μ΄ μ‹€νŒ¨ν•˜μ˜€μŒ
  • μœ„ 문제λ₯Ό Pcollection 생성 λΆ€λΆ„μ˜ λ‹¨κ³„μ—μ„œ beam.Create λŒ€μ‹  ReadFromText ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄κ²°
  • 2개의 Pcollection을 ν•©μΉ  λ•Œ, μ²˜λ¦¬ν•΄μ•Ό ν•  λ°μ΄ν„°μ˜ μš”μ†Œ ν•©μΉ˜κΈ° 문제 λ°œμƒ
  • Flatten() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•˜λ‚˜λ‘œ λ¬Άμ–΄μ§„ 데이터λ₯Ό, DoFn을 μ΄μš©ν•˜μ—¬ μš”μ†Œλ₯Ό 합쳐 ν•΄κ²°

κ°œμ›” 수 κΈ°μ€€ λΆ„λ₯˜

  • 초/쀑/ν›„κΈ°κ°€ λΆ„λ₯˜κ°€ 잘 μ•ˆλ˜μ—ˆμ„ 경우 잘λͺ»λœ μΆ”μ²œμ„ μœ λ„ν•˜κ²Œ 됨
  • λͺ©μ μ— λ”°λ₯Έ 가섀을 ν† λŒ€λ‘œ μ—¬λŸ¬ κ΅°μ§‘ν™” μ•Œκ³ λ¦¬μ¦˜κ³Ό λΆ„λ₯˜ λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬, 높은 정확도λ₯Ό λ‚΄λŠ” 방법을 택해 문제 ν•΄κ²°

식단 λΆ„λ₯˜μ— ν•„μš”ν•œ 높은 정확도

  • 정확도가 λ†’μ§€ μ•ŠμœΌλ©΄ 초기 λ•ŒλΆ€ν„° 먹을 수 μžˆλŠ” 쀑/ν›„κΈ° 식단을 μΆ”μ²œν•˜λŠ” ν˜„μƒμ΄ λ°œμƒν•¨
  • 기간을 ꡬ별 κ°€λŠ₯ν•œ νŠΉμ§•λ“€μ„ λΆ„μ„ν•˜μ—¬ λͺ¨λΈμ„ ν•™μŠ΅μ‹œμΌœ 일뢀 νŠΉμ§•λ§Œ μ‚¬μš©ν•˜κ²Œ λ˜λŠ” λͺ¨λΈμ„ μ μš©ν•˜μ—¬ 가볍고 정확도가 λ†’μ•„μ§€κ²Œ 됨
  • λͺ¨λΈμ— 측을 μŒ“κ³  Multi-input을 톡해 Inputλ§ˆλ‹€ λͺ©μ μ„ κ°€μ§€κ²Œ ν•˜μ˜€μŒ
  • 예츑 κ²°κ³Όλ₯Ό ν™•μΈν•˜κ³  λͺ¨λΈμ„ κ°œμ„ ν•¨

LSTM

  • λͺ¨λΈμ˜ μΌλ°˜ν™”κ°€ λ–¨μ–΄μ Έ μƒˆλ‘œμš΄ 데이터에 λŒ€ν•΄ μ œλŒ€λ‘œ μ˜ˆμΈ‘ν•˜μ§€ λͺ»ν•˜κ²Œ λ˜λŠ” κ³Όμ ν•©μœΌλ‘œ 인해 정확도에 큰 λ³€ν™”κ°€ μ—†μ—ˆκ³ , 그둜 인해 λͺ¨λΈμ΄ μ œλŒ€λ‘œ ν•™μŠ΅ν•˜μ§€ λͺ»ν–ˆμŒμ„ 확인함
  • λΆˆν•„μš”ν•œ 측을 μ œκ±°ν•˜κ³  λ‹€μ–‘ν•œ Layer ꡬ성을 μ‹œλ„ν•˜μ—¬ 문제λ₯Ό 해결함

필터링 둜직 κ΅¬ν˜„ κ³Όμ •

  • Dataflow: Model의 picklable 문제둜 인해 μ‹€νŒ¨
  • Cloud Function: Model이 Cloud Function 내에 μ—…λ‘œλ“œκ°€ λΆˆκ°€λŠ₯ν•˜μ—¬ μ‹€νŒ¨
  • Vertex AI NLP Model + Prompt(PaLM 2): λͺ¨λΈμ„ μ„œλ²„ λ‹¨μœ„μ—μ„œ λΆˆλŸ¬μ™€μ„œ 싀행에 성곡

❗️ ν”„λ‘œμ νŠΈ μž‘μ—… μ‹œ μœ μ˜μ‚¬ν•­

β˜‘οΈ 컀밋 λ©”μ„Έμ§€ μ»¨λ²€μ…˜

  • Tag: YYMMDD_λ‚΄μš© ν˜•μ‹μœΌλ‘œ 컀밋 λ©”μ„Έμ§€λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”.
  • 컀밋 λ©”μ„Έμ§€ λ‚΄μš©μ€ κ°„κ²°ν•˜κ²Œ μž‘μ„±ν•˜κ³ , Extended description λž€μ— μˆ˜μ •μ‚¬ν•­μ„ μž‘μ„±ν•΄μ£Όμ„Έμš”.
Tag Mean
feature μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€
fix 버그 μˆ˜μ •
docs λ¬Έμ„œ μˆ˜μ •
style μ½”λ“œ 포맷 μˆ˜μ •
test ν…ŒμŠ€νŠΈ μ½”λ“œ μΆ”κ°€
refactoring μ½”λ“œ λ¦¬νŒ©ν† λ§

About

AI and Big-Data Based Diet Recommendation Service for Infant and Toddler 'kipl'

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors