ObjectverseDiary / docs /02-tech-architecture.md
qqyule's picture
feat: initialize project structure for Objectverse Diary
6f8d8d9
# Objectverse Diary โ€” ๆŠ€ๆœฏๆžถๆž„
## ็ณป็ปŸๆžถๆž„
```text
Gradio UI
โ†“
Image Input
โ†“
MiniCPM-V / lightweight VLM
โ†“
Object Understanding JSON
โ†“
Fine-tuned small LLM via llama.cpp
โ†“
Persona + Diary JSON
โ†“
Renderer
โ†“
Diary View + Share Card + Trace Export
```
## ๆจกๅž‹ๆ–นๆกˆ
| ๆจกๅ— | ๆจกๅž‹ / ๅทฅๅ…ท | ็›ฎ็š„ |
| -------------------- | ---------------------------- | ------------------------------ |
| Vision Understanding | MiniCPM-V | ่ฏ†ๅˆซ็‰ฉๅ“ใ€ๅค–่ง‚ใ€ๅœบๆ™ฏ |
| Persona Writer | Fine-tuned small LLM GGUF | ็”Ÿๆˆไบบๆ ผใ€ๆ—ฅ่ฎฐใ€ๅฏน่ฏ |
| Runtime | llama.cpp / llama-cpp-python | ๅ†ฒ Llama Champion ๅ‹‹็ซ  |
| UI | Gradio Blocks | ๅฎ˜ๆ–น็กฌๆ€ง่ฆๆฑ‚ |
| Hosting | Hugging Face Space | ๅฎ˜ๆ–น็กฌๆ€ง่ฆๆฑ‚ |
| Training / Batch | Modal | $250 Modal credits ๅš่ฎญ็ปƒ/ๆ‰นๅค„็† |
| Demo GPU | HF ZeroGPU / upgraded Space | ๆŒ‰้œ€ๅˆ†้… GPU |
> **ๆณจๆ„**๏ผšMiniCPM-V 4.6 ้ขๅ‘ edge deployment๏ผŒๅŸบไบŽ่ฝป้‡ LLM ๆžถๆž„๏ผŒ้€‚ๅˆๆœฌ้กน็›ฎ้œ€ๆฑ‚ใ€‚
> ZeroGPU ๆ˜ฏ้ขๅ‘ Spaces ็š„ๅŠจๆ€ GPU ๅŸบ็ก€่ฎพๆ–ฝ๏ผŒhackathon org ๆˆๅ‘˜ๆœ‰ๆฏๆ—ฅๅ…่ดน้ขๅบฆใ€‚
## ้™็บงๆ–นๆกˆ
ๅคšๆจกๆ€ + llama.cpp ๆ˜ฏ้ซ˜้ฃŽ้™ฉ็‚น๏ผŒๅฟ…้กปๅ‡†ๅค‡้™็บงใ€‚
| ้ฃŽ้™ฉ | ไธปๆ–นๆกˆ | ้™็บงๆ–นๆกˆ |
| -------------------- | ------------------------------------- | ---------------------------------------------- |
| MiniCPM-V ้ƒจ็ฝฒๆ…ข | MiniCPM-V Space ๆŽจ็† | ้ข„็ฝฎ example gallery + ๆ‰‹ๅŠจ object description |
| VLM llama.cpp ไธ็จณๅฎš | VLM ็”จ transformers๏ผŒๆ–‡ๆœฌ็”จ llama.cpp | ไป็„ถไฟ่ฏๆ ธๅฟƒๆ–‡ๆœฌไบบๆ ผ็”Ÿๆˆ่ตฐ llama.cpp |
| ๅพฎ่ฐƒๆฅไธๅŠ | LoRA ๅพฎ่ฐƒ | ็”จ 100 ๆก้ซ˜่ดจ้‡ SFT ๆ•ฐๆฎ + prompt-tuned style |
| Space ่ต„ๆบไธ่ถณ | HF upgraded Space / ZeroGPU | CPU ๆจกๅผ + ๅฐๆจกๅž‹ + ็คบไพ‹็ผ“ๅญ˜ |
| ่ง†้ข‘ๆ•ˆๆžœไธๅคŸ | ๅฎžๆ—ถ็”Ÿๆˆ | ไฝฟ็”จ 3 ไธช็จณๅฎš็คบไพ‹ๅฝ•ๅˆถ Demo |
## ๆŠ€ๆœฏๆ ˆ
```text
Language: Python
UI: Gradio Blocks
Model Runtime: llama.cpp / llama-cpp-python
VLM: MiniCPM-V or fallback lightweight VLM
Training: LoRA / PEFT / TRL
Hosting: Hugging Face Spaces
Batch/Fine-tune: Modal
Docs: Markdown
Package Manager: uv or pip
```
## ้กน็›ฎ็›ฎๅฝ•็ป“ๆž„
```text
objectverse-diary/
โ”œโ”€ app.py
โ”œโ”€ README.md
โ”œโ”€ AGENTS.md
โ”œโ”€ requirements.txt
โ”œโ”€ pyproject.toml
โ”œโ”€ .env.example
โ”œโ”€ .gitignore
โ”œโ”€ src/
โ”‚ โ”œโ”€ config.py
โ”‚ โ”œโ”€ ui/
โ”‚ โ”‚ โ”œโ”€ layout.py
โ”‚ โ”‚ โ”œโ”€ styles.css
โ”‚ โ”‚ โ””โ”€ copy.py
โ”‚ โ”œโ”€ models/
โ”‚ โ”‚ โ”œโ”€ vision_runner.py
โ”‚ โ”‚ โ”œโ”€ llama_cpp_runner.py
โ”‚ โ”‚ โ””โ”€ schema.py
โ”‚ โ”œโ”€ prompts/
โ”‚ โ”‚ โ”œโ”€ object_understanding.py
โ”‚ โ”‚ โ”œโ”€ persona_generation.py
โ”‚ โ”‚ โ””โ”€ diary_generation.py
โ”‚ โ”œโ”€ renderer/
โ”‚ โ”‚ โ”œโ”€ share_card.py
โ”‚ โ”‚ โ””โ”€ html_templates.py
โ”‚ โ”œโ”€ traces/
โ”‚ โ”‚ โ”œโ”€ logger.py
โ”‚ โ”‚ โ””โ”€ anonymizer.py
โ”‚ โ””โ”€ utils/
โ”‚ โ”œโ”€ json_repair.py
โ”‚ โ””โ”€ image_utils.py
โ”œโ”€ data/
โ”‚ โ”œโ”€ examples/
โ”‚ โ”œโ”€ train/
โ”‚ โ”œโ”€ eval/
โ”‚ โ””โ”€ traces/
โ”œโ”€ scripts/
โ”‚ โ”œโ”€ generate_dataset.py
โ”‚ โ”œโ”€ finetune_lora.py
โ”‚ โ”œโ”€ convert_to_gguf.sh
โ”‚ โ”œโ”€ run_llama_cpp.sh
โ”‚ โ””โ”€ export_traces.py
โ”œโ”€ docs/
โ”‚ โ”œโ”€ PRD.md
โ”‚ โ”œโ”€ FIELD_NOTES.md
โ”‚ โ”œโ”€ SUBMISSION_GUIDE.md
โ”‚ โ””โ”€ MODEL_CARD.md
โ””โ”€ .codex/
โ”œโ”€ project.md
โ””โ”€ skills/
โ”œโ”€ gradio-ui/SKILL.md
โ”œโ”€ model-runtime/SKILL.md
โ”œโ”€ dataset-trace/SKILL.md
โ”œโ”€ hf-space/SKILL.md
โ””โ”€ submission/SKILL.md
```