aiqtech commited on
Commit
ded8ecf
ยท
verified ยท
1 Parent(s): e807e58

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -348
app.py CHANGED
@@ -276,358 +276,35 @@ class LLMCollaborativeSystem:
276
  # ํ…Œ์ŠคํŠธ ๋ชจ๋“œ
277
  if self.test_mode:
278
  logger.info(f"ํ…Œ์ŠคํŠธ ๋ชจ๋“œ ์ŠคํŠธ๋ฆฌ๋ฐ - Role: {role}")
279
- test_responses = {
280
- "supervisor_initial": """์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๊ฑฐ์‹œ์  ๋ถ„์„์„ ์ œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
281
-
282
- 1. **ํ•ต์‹ฌ ๊ฐœ๋… ํŒŒ์•…**
283
- - ์งˆ๋ฌธ์˜ ๋ณธ์งˆ์  ์š”์†Œ๋ฅผ ์‹ฌ์ธต ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค
284
- - ๊ด€๋ จ๋œ ์ฃผ์š” ์ด๋ก ๊ณผ ์›์น™์„ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค
285
- - ๋‹ค์–‘ํ•œ ๊ด€์ ์—์„œ์˜ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค
286
-
287
- 2. **์ „๋žต์  ์ ‘๊ทผ ๋ฐฉํ–ฅ**
288
- - ์ฒด๊ณ„์ ์ด๊ณ  ๋‹จ๊ณ„๋ณ„ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ˆ˜๋ฆฝํ•ฉ๋‹ˆ๋‹ค
289
- - ์žฅ๋‹จ๊ธฐ ๋ชฉํ‘œ๋ฅผ ๋ช…ํ™•ํžˆ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค
290
- - ๋ฆฌ์Šคํฌ ์š”์ธ๊ณผ ๋Œ€์‘ ๋ฐฉ์•ˆ์„ ๋งˆ๋ จํ•ฉ๋‹ˆ๋‹ค
291
-
292
- 3. **๊ธฐ๋Œ€ ํšจ๊ณผ์™€ ๊ณผ์ œ**
293
- - ์˜ˆ์ƒ๋˜๋Š” ๊ธ์ •์  ์„ฑ๊ณผ๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค
294
- - ์ž ์žฌ์  ๋„์ „ ๊ณผ์ œ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค
295
- - ์ง€์†๊ฐ€๋Šฅํ•œ ๋ฐœ์ „ ๋ฐฉํ–ฅ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค
296
-
297
- [๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ]: machine learning optimization, performance improvement strategies, model efficiency techniques, hyperparameter tuning best practices, latest ML trends 2024""",
298
-
299
- "researcher_initial": """์กฐ์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
300
-
301
- **1. Machine Learning Optimization**
302
- - ์ตœ์‹  ์—ฐ๊ตฌ์— ๋”ฐ๋ฅด๋ฉด ๋ชจ๋ธ ์ตœ์ ํ™”์˜ ํ•ต์‹ฌ์€ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„์™€ ํ›ˆ๋ จ ์ „๋žต์˜ ๊ท ํ˜•์ž…๋‹ˆ๋‹ค
303
- - AutoML ๋„๊ตฌ๋“ค์ด ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์„ ์ž๋™ํ™”ํ•˜์—ฌ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค
304
- - ์ถœ์ฒ˜: ML Conference 2024, Google Research
305
-
306
- **2. Performance Improvement Strategies**
307
- - ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ฐœ์„ ์ด ๋ชจ๋ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์˜ 80%๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค๋Š” ์—ฐ๊ตฌ ๊ฒฐ๊ณผ
308
- - ์•™์ƒ๋ธ” ๊ธฐ๋ฒ•๊ณผ ์ „์ดํ•™์Šต์ด ์ฃผ์š” ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•์œผ๋กœ ์ž…์ฆ๋จ
309
- - ๋ฒค์น˜๋งˆํฌ: ImageNet์—์„œ 95% ์ด์ƒ์˜ ์ •ํ™•๋„ ๋‹ฌ์„ฑ ์‚ฌ๋ก€
310
-
311
- **3. Model Efficiency Techniques**
312
- - ๋ชจ๋ธ ๊ฒฝ๋Ÿ‰ํ™”(Pruning, Quantization)๋กœ ์ถ”๋ก  ์†๋„ 10๋ฐฐ ํ–ฅ์ƒ ๊ฐ€๋Šฅ
313
- - Knowledge Distillation์œผ๋กœ ๋ชจ๋ธ ํฌ๊ธฐ 90% ๊ฐ์†Œ, ์„ฑ๋Šฅ ์œ ์ง€
314
- - ์ตœ์‹  ํŠธ๋ Œ๋“œ: Efficient Transformers, Neural Architecture Search
315
-
316
- **4. ์‹ค์ œ ์ ์šฉ ์‚ฌ๋ก€**
317
- - Netflix: ์ถ”์ฒœ ์‹œ์Šคํ…œ ๊ฐœ์„ ์œผ๋กœ ์‚ฌ์šฉ์ž ๋งŒ์กฑ๋„ 35% ํ–ฅ์ƒ
318
- - Tesla: ์‹ค์‹œ๊ฐ„ ๊ฐ์ฒด ์ธ์‹ ์†๋„ 50% ๊ฐœ์„ 
319
- - OpenAI: GPT ๋ชจ๋ธ ํšจ์œจ์„ฑ ๊ฐœ์„ ์œผ๋กœ ๋น„์šฉ 70% ์ ˆ๊ฐ""",
320
-
321
- "supervisor_research_review": """1์ฐจ ์กฐ์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€ํ† ํ•œ ๊ฒฐ๊ณผ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ‰๊ฐ€์™€ ์ถ”๊ฐ€ ์กฐ์‚ฌ ์ง€์‹œ๋ฅผ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.
322
 
323
  **์กฐ์‚ฌ ๋‚ด์šฉ ํ‰๊ฐ€**
324
  - ๊ฐ•์ : ์ฃผ์š” ๊ธฐ์ˆ ์  ์ ‘๊ทผ๋ฒ•๊ณผ ๋Œ€ํ‘œ์ ์ธ ์„ฑ๊ณต ์‚ฌ๋ก€๊ฐ€ ์ž˜ ์ •๋ฆฌ๋จ
325
- - ๋ถ€์กฑํ•œ ์ :
326
- * ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„ ๋„๊ตฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ ์ •๋ณด ๋ถ€์กฑ
327
- * ์‹คํŒจ ์‚ฌ๋ก€์™€ ํ•จ์ •(pitfalls) ์ •๋ณด ๋ˆ„๋ฝ
328
- * ๋น„์šฉ-ํšจ๊ณผ ๋ถ„์„์˜ ๊ตฌ์ฒด์ ์ธ ์ˆ˜์น˜ ๋ถ€์กฑ
329
- * ์ตœ์‹  ๋…ผ๋ฌธ์ด๋‚˜ ์—ฐ๊ตฌ ๊ฒฐ๊ณผ์˜ ๊ตฌ์ฒด์  ์ธ์šฉ ๋ถ€์กฑ
330
-
331
- **์ถ”๊ฐ€ ์กฐ์‚ฌ ํ•„์š” ์‚ฌํ•ญ**
332
- 1. ์‹ค์ œ ๊ตฌํ˜„ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ์ฒด์ ์ธ ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
333
- 2. ๋ชจ๋ธ ์ตœ์ ํ™” ์‹คํŒจ ์‚ฌ๋ก€์™€ ๊ทธ ์›์ธ ๋ถ„์„
334
- 3. ์‚ฐ์—…๋ณ„ ROI ์ˆ˜์น˜์™€ ํˆฌ์ž ๋Œ€๋น„ ํšจ๊ณผ
335
- 4. 2024๋…„ ์ตœ์‹  ์—ฐ๊ตฌ ๋…ผ๋ฌธ๊ณผ breakthrough ๊ธฐ์ˆ 
336
- 5. ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฆฌ์†Œ์Šค
337
-
338
- [์ถ”๊ฐ€ ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ]: ML optimization tools 2024, model optimization failure cases, ML ROI analysis industry, breakthrough ML papers 2024, open source ML optimization""",
339
-
340
- "researcher_additional": """๊ฐ๋…์ž์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ์ถ”๊ฐ€ ์กฐ์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
341
-
342
- **์ถ”๊ฐ€ ์กฐ์‚ฌ ๊ฒฐ๊ณผ**
343
-
344
- **1. ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„ ๋„๊ตฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ**
345
- - **PyTorch Optimization Toolkit**: torch.optim, torch.nn.utils.prune
346
- - **TensorFlow Model Optimization**: TF-MOT for pruning, quantization
347
- - **ONNX Runtime**: ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์ตœ์ ํ™”, ํ‰๊ท  3๋ฐฐ ์†๋„ ํ–ฅ์ƒ
348
- - **Apache TVM**: ์ž๋™ ์ตœ์ ํ™” ์ปดํŒŒ์ผ๋Ÿฌ, ํ•˜๋“œ์›จ์–ด๋ณ„ ์ตœ์ ํ™”
349
- - ์ถœ์ฒ˜: PyTorch Documentation 2024, TensorFlow Official Guide
350
-
351
- **2. ์‹คํŒจ ์‚ฌ๋ก€ ๋ฐ ๊ตํ›ˆ**
352
- - **Uber์˜ Michelangelo ํ”Œ๋žซํผ**: ๊ณผ๋„ํ•œ ์ตœ์ ํ™”๋กœ ์ธํ•œ ์œ ์ง€๋ณด์ˆ˜ ๋ฌธ์ œ
353
- * ๊ตํ›ˆ: ์ตœ์ ํ™”์™€ ์œ ์ง€๋ณด์ˆ˜์„ฑ์˜ ๊ท ํ˜• ํ•„์š”
354
- - **Twitter์˜ ์ถ”์ฒœ ์‹œ์Šคํ…œ**: ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์‹คํŒจ
355
- * ์›์ธ: ์บ์‹ฑ ์ „๋žต ๋ถ€์žฌ, ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๋ณ‘๋ชฉ
356
- - ์ถœ์ฒ˜: Uber Engineering Blog, Twitter Tech Blog 2024
357
-
358
- **3. ROI ๋ถ„์„ ๋ฐ ๋น„์šฉ ํšจ๊ณผ**
359
- - **๊ธˆ์œต ์‚ฐ์—…**: ํ‰๊ท  ROI 312%, ํˆฌ์ž ํšŒ์ˆ˜ ๊ธฐ๊ฐ„ 4.2๊ฐœ์›”
360
- * JP Morgan: ์‚ฌ๊ธฐ ํƒ์ง€ ๋ชจ๋ธ ์ตœ์ ํ™”๋กœ ์—ฐ๊ฐ„ $150M ์ ˆ๊ฐ
361
- - **๋ฆฌํ…Œ์ผ**: ํ‰๊ท  ROI 245%, ํˆฌ์ž ํšŒ์ˆ˜ ๊ธฐ๊ฐ„ 6๊ฐœ์›”
362
- * Amazon: ์ถ”์ฒœ ์‹œ์Šคํ…œ ์ตœ์ ํ™”๋กœ ๋งค์ถœ 23% ์ฆ๊ฐ€
363
- - **์ œ์กฐ์—…**: ํ‰๊ท  ROI 189%, ํˆฌ์ž ํšŒ์ˆ˜ ๊ธฐ๊ฐ„ 8๊ฐœ์›”
364
- - ์ถœ์ฒ˜: McKinsey AI Report 2024, Gartner Analysis
365
-
366
- **4. 2024๋…„ ์ตœ์‹  ์—ฐ๊ตฌ ๋ฐ Breakthrough**
367
- - **Sparse Mixture of Experts (SMoE)**: ๋ชจ๋ธ ํฌ๊ธฐ 95% ๊ฐ์†Œ, ์„ฑ๋Šฅ ์œ ์ง€
368
- * ๋…ผ๋ฌธ: "Efficient Scaling with Sparse MoE" - Google DeepMind
369
- - **Flash Attention v3**: ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ 80% ๊ฐ์†Œ
370
- * ๋…ผ๋ฌธ: "FlashAttention-3: Fast and Memory-Efficient Exact Attention"
371
- - **Quantization-Aware Training 2.0**: 2-bit ์–‘์žํ™”์—์„œ๋„ ์„ฑ๋Šฅ ์œ ์ง€
372
- - ์ถœ์ฒ˜: NeurIPS 2024, ICML 2024 Proceedings
373
-
374
- **5. ์˜คํ”ˆ์†Œ์Šค ๋ฆฌ์†Œ์Šค**
375
- - **Hugging Face Optimum**: ์›ํด๋ฆญ ๋ชจ๋ธ ์ตœ์ ํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
376
- - **Microsoft DeepSpeed**: ๋Œ€๊ทœ๋ชจ ๋ชจ๋ธ ํ›ˆ๋ จ ๋ฐ ์ถ”๋ก  ์ตœ์ ํ™”
377
- - **NVIDIA TensorRT**: GPU ์ตœ์ ํ™” ์ถ”๋ก  ์—”์ง„
378
- - **Intel OpenVINO**: CPU ์ตœ์ ํ™” ํˆดํ‚ท
379
- - ์ปค๋ฎค๋‹ˆํ‹ฐ: r/MachineLearning, MLOps Community Slack
380
-
381
- **์ข…ํ•ฉ ๋ถ„์„**
382
- ์ดˆ๊ธฐ ์กฐ์‚ฌ์™€ ์ถ”๊ฐ€ ์กฐ์‚ฌ๋ฅผ ์ข…ํ•ฉํ•˜๋ฉด, ์„ฑ๊ณต์ ์ธ ML ๋ชจ๋ธ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด์„œ๋Š”:
383
- 1. ์ ์ ˆํ•œ ๋„๊ตฌ ์„ ํƒ๊ณผ ๋‹จ๊ณ„์  ์ ‘๊ทผ์ด ํ•„์ˆ˜
384
- 2. ์‹คํŒจ ์‚ฌ๋ก€์—์„œ ๋ฐฐ์šด ๊ตํ›ˆ์„ ์‚ฌ์ „์— ๋ฐ˜์˜
385
- 3. ๋ช…ํ™•ํ•œ ROI ๋ชฉํ‘œ์™€ ์ธก์ • ์ง€ํ‘œ ์„ค์ •
386
- 4. ์ตœ์‹  ์—ฐ๊ตฌ ๊ฒฐ๊ณผ์˜ ์„ ๋ณ„์  ์ ์šฉ
387
- 5. ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ ๊ทน์  ํ™œ์šฉ""",
388
-
389
- "supervisor_execution": """์ข…ํ•ฉ๋œ ์กฐ์‚ฌ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹คํ–‰์ž AI์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.
390
-
391
- **์‹คํ–‰ ์ „๋žต ์ˆ˜๋ฆฝ ์ง€์นจ**
392
-
393
- **1๋‹จ๊ณ„: ํ˜„์žฌ ์ƒํƒœ ์ง„๋‹จ ๋ฐ ๋„๊ตฌ ์„ ํƒ (1์ฃผ์ฐจ)**
394
- - ์กฐ์‚ฌ๋œ ๋„๊ตฌ ์ค‘ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•œ ๊ฒƒ ์„ ํƒ:
395
- * PyTorch ๊ธฐ๋ฐ˜: PyTorch Optimization Toolkit ํ™œ์šฉ
396
- * TensorFlow ๊ธฐ๋ฐ˜: TF-MOT ํ™œ์šฉ
397
- * ํฌ๋กœ์Šค ํ”Œ๋žซํผ: ONNX Runtime ๊ณ ๋ ค
398
- - Uber์™€ Twitter์˜ ์‹คํŒจ ์‚ฌ๋ก€๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋ฆฌ์Šคํฌ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑ
399
- - ๊ธˆ์œต์—… ROI 312% ์‚ฌ๋ก€๋ฅผ ๋ฒค์น˜๋งˆํฌ๋กœ ๋ชฉํ‘œ ์„ค์ •
400
-
401
- **2๋‹จ๊ณ„: ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ ์ตœ์ ํ™” (2-3์ฃผ์ฐจ)**
402
- - ์กฐ์‚ฌ ๊ฒฐ๊ณผ์˜ "80% ๊ทœ์น™" ์ ์šฉ
403
- - Twitter ์‚ฌ๋ก€๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์บ์‹ฑ ์ „๋žต ์ˆ˜๋ฆฝ
404
- - ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๋ณ‘๋ชฉ ์ง€์  ์‚ฌ์ „ ์ œ๊ฑฐ
405
-
406
- **3๋‹จ๊ณ„: ๋ชจ๋ธ ์ตœ์ ํ™” ๊ตฌํ˜„ (4-6์ฃผ์ฐจ)**
407
- - ์ตœ์‹  ์—ฐ๊ตฌ ์ ์šฉ:
408
- * Sparse MoE๋กœ ๋ชจ๋ธ ํฌ๊ธฐ 95% ๊ฐ์†Œ ์‹œ๋„
409
- * Flash Attention v3๋กœ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ ๊ฐœ์„ 
410
- * Quantization-Aware Training 2.0 ์ ์šฉ
411
- - ์˜คํ”ˆ์†Œ์Šค ํ™œ์šฉ:
412
- * Hugging Face Optimum์œผ๋กœ ๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ดํ•‘
413
- * DeepSpeed๋กœ ๋Œ€๊ทœ๋ชจ ๋ชจ๋ธ ์ฒ˜๋ฆฌ
414
- * ํ•˜๋“œ์›จ์–ด๋ณ„ ์ตœ์ ํ™” (TensorRT/OpenVINO)
415
-
416
- **4๋‹จ๊ณ„: ๊ฒ€์ฆ ๋ฐ ๋ฐฐํฌ (7-8์ฃผ์ฐจ)**
417
- - JP Morgan ์‚ฌ๋ก€ ์ฐธ๊ณ ํ•˜์—ฌ ๋น„์šฉ ์ ˆ๊ฐ ํšจ๊ณผ ์ธก์ •
418
- - Amazon ์‚ฌ๋ก€์˜ A/B ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•๋ก  ์ ์šฉ
419
- - ํˆฌ์ž ํšŒ์ˆ˜ ๊ธฐ๊ฐ„ 4-6๊ฐœ์›” ๋ชฉํ‘œ๋กœ ROI ๊ณ„์‚ฐ
420
-
421
- **ํŠน๋ณ„ ์ง€์‹œ์‚ฌํ•ญ**
422
- 1. ๊ฐ ๋‹จ๊ณ„์—์„œ ์‹คํŒจ ์‚ฌ๋ก€์˜ ๊ตํ›ˆ ๋ฐ˜์˜ ํ•„์ˆ˜
423
- 2. ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์™€์˜ ํ˜‘์—… ๊ณ„ํš ํฌํ•จ
424
- 3. ์ตœ์‹  ๋…ผ๋ฌธ์˜ ๊ธฐ์ˆ ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ์ ์šฉ
425
- 4. ๊ตฌ์ฒด์ ์ธ ๋น„์šฉ-ํšจ๊ณผ ์ˆ˜์น˜๋ฅผ ํฌํ•จํ•œ ๋ณด๊ณ """,
426
-
427
- "executor": """๊ฐ๋…์ž์˜ ์ง€์‹œ์™€ ์ข…ํ•ฉ ์กฐ์‚ฌ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ฒด์ ์ธ ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•ฉ๋‹ˆ๋‹ค.
428
-
429
- **ML ๋ชจ๋ธ ์ตœ์ ํ™” ์‹คํ–‰ ๊ณ„ํš**
430
-
431
- **1๋‹จ๊ณ„: ํ˜„์žฌ ์ƒํƒœ ์ง„๋‹จ ๋ฐ ๋„๊ตฌ ์„ ํƒ (1์ฃผ์ฐจ)**
432
-
433
- *์›”์š”์ผ-ํ™”์š”์ผ: ํ˜„์žฌ ํ™˜๊ฒฝ ๋ถ„์„ ๋ฐ ๋„๊ตฌ ์„ ์ •*
434
- - ํ˜„์žฌ ๋ชจ๋ธ ์Šคํƒ ํ™•์ธ:
435
- * PyTorch 2.0 ๊ธฐ๋ฐ˜ โ†’ PyTorch Optimization Toolkit ์„ ํƒ
436
- * ๋ชจ๋ธ ํฌ๊ธฐ: 2.5GB, ์ถ”๋ก  ์‹œ๊ฐ„: 45ms, GPU ๋ฉ”๋ชจ๋ฆฌ: 8GB
437
- - ๋ฆฌ์Šคํฌ ์ฒดํฌ๋ฆฌ์ŠคํŠธ (์‹คํŒจ ์‚ฌ๋ก€ ๊ธฐ๋ฐ˜):
438
- โ–ก ์œ ์ง€๋ณด์ˆ˜์„ฑ vs ์ตœ์ ํ™” ๊ท ํ˜• ๊ณ„ํš
439
- โ–ก ์บ์‹ฑ ์ „๋žต ์‚ฌ์ „ ์„ค๊ณ„
440
- โ–ก ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๋ณ‘๋ชฉ ๋ถ„์„
441
- โ–ก ๋กค๋ฐฑ ๊ณ„ํš ์ˆ˜๋ฆฝ
442
-
443
- *์ˆ˜์š”์ผ-๋ชฉ์š”์ผ: ๋ฒค์น˜๋งˆํฌ ์„ค์ • ๋ฐ ROI ๋ชฉํ‘œ*
444
- - ๊ธˆ์œต์—… ROI 312% ์‚ฌ๋ก€ ๋ถ„์„:
445
- * ํ˜„์žฌ ์ถ”๋ก  ๋น„์šฉ: $50,000/์›”
446
- * ๋ชฉํ‘œ ์ ˆ๊ฐ์•ก: $35,000/์›” (70% ์ ˆ๊ฐ)
447
- * ์˜ˆ์ƒ ํˆฌ์ž: $60,000 (์ธ๊ฑด๋น„ + ์ธํ”„๋ผ)
448
- * ๋ชฉํ‘œ ROI: 250% (6๊ฐœ์›” ๋‚ด)
449
-
450
- *๊ธˆ์š”์ผ: ๋„๊ตฌ ํ™˜๊ฒฝ ๊ตฌ์ถ•*
451
- ```python
452
- # environment_setup.py
453
- pip install torch torchvision torchaudio
454
- pip install transformers optimum
455
- pip install onnx onnxruntime
456
- pip install deepspeed
457
- pip install tensorrt # NVIDIA GPU ํ™˜๊ฒฝ
458
- ```
459
-
460
- **2๋‹จ๊ณ„: ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๋ฐ ํŒŒ์ดํ”„๋ผ์ธ ์ตœ์ ํ™” (2-3์ฃผ์ฐจ)**
461
 
462
- *2์ฃผ์ฐจ: ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ฐœ์„  (80% ๊ทœ์น™ ์ ์šฉ)*
463
- ```python
464
- class DataQualityPipeline:
465
- def __init__(self):
466
- self.cache_strategy = RedisCacheStrategy() # Twitter ๊ตํ›ˆ ๋ฐ˜์˜
467
- self.quality_checks = [
468
- MissingValueHandler(threshold=0.05),
469
- OutlierDetector(method='isolation_forest'),
470
- DataDriftMonitor(window_size=1000),
471
- LabelQualityChecker()
472
- ]
473
-
474
- def optimize_pipeline(self, data_loader):
475
- # ๋ณ‘๋ชฉ ์ง€์  ํ”„๋กœํŒŒ์ผ๋ง
476
- profiler = DataPipelineProfiler()
477
- bottlenecks = profiler.identify_bottlenecks(data_loader)
478
-
479
- # ์บ์‹ฑ ์ ์šฉ
480
- for bottleneck in bottlenecks:
481
- self.cache_strategy.apply(bottleneck)
482
-
483
- return self.quality_checks
484
- ```
485
-
486
- *3์ฃผ์ฐจ: ํŒŒ์ดํ”„๋ผ์ธ ๋ณ‘๋ ฌํ™” ๋ฐ ์ตœ์ ํ™”*
487
- - ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ๏ฟฝ๏ฟฝ๏ฟฝ๋ ฌํ™”: num_workers=8
488
- - ํ”„๋ฆฌํŽ˜์นญ ๋ฒ„ํผ ํฌ๊ธฐ ์ตœ์ ํ™”: prefetch_factor=4
489
- - ๋ฉ”๋ชจ๋ฆฌ ๋งคํ•‘ ํ™œ์šฉ์œผ๋กœ I/O ์†๋„ 3๋ฐฐ ํ–ฅ์ƒ
490
-
491
- **3๋‹จ๊ณ„: ๋ชจ๋ธ ์ตœ์ ํ™” ๊ตฌํ˜„ (4-6์ฃผ์ฐจ)**
492
-
493
- *4์ฃผ์ฐจ: Sparse MoE ์ ์šฉ (95% ํฌ๊ธฐ ๊ฐ์†Œ)*
494
- ```python
495
- from transformers import SwitchTransformersModel
496
- import torch.nn.utils.prune as prune
497
-
498
- class SparseMoEOptimizer:
499
- def __init__(self, model):
500
- self.model = model
501
- self.sparsity_target = 0.95
502
-
503
- def apply_sparse_moe(self):
504
- # Google DeepMind ๋…ผ๋ฌธ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„
505
- moe_config = {
506
- 'num_experts': 8,
507
- 'expert_capacity': 128,
508
- 'router_z_loss_coef': 0.01
509
- }
510
-
511
- # ๋ชจ๋ธ ๋ณ€ํ™˜
512
- sparse_model = self.convert_to_moe(self.model, moe_config)
513
-
514
- # ํฌ๊ธฐ ๊ฒ€์ฆ: 2.5GB โ†’ 125MB (95% ๊ฐ์†Œ)
515
- return sparse_model
516
- ```
517
-
518
- *5์ฃผ์ฐจ: Flash Attention v3 ๋ฐ Quantization*
519
- ```python
520
- from flash_attn import flash_attn_func
521
- from transformers import BitsAndBytesConfig
522
-
523
- # Flash Attention v3 ์ ์šฉ
524
- class FlashAttentionOptimizer:
525
- def optimize_attention(self, model):
526
- # ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ 80% ๊ฐ์†Œ
527
- for layer in model.transformer.layers:
528
- layer.attention = FlashAttentionV3(layer.attention)
529
- return model
530
-
531
- # 2-bit Quantization
532
- quantization_config = BitsAndBytesConfig(
533
- load_in_2bit=True,
534
- bnb_2bit_compute_dtype=torch.float16,
535
- bnb_2bit_use_double_quant=True,
536
- bnb_2bit_quant_type="nf2" # NeurIPS 2024 ๋…ผ๋ฌธ ๊ธฐ๋ฒ•
537
- )
538
- ```
539
-
540
- *6์ฃผ์ฐจ: ํ•˜๋“œ์›จ์–ด๋ณ„ ์ตœ์ ํ™” ๋ฐ ํ†ตํ•ฉ*
541
- - NVIDIA GPU: TensorRT ์ตœ์ ํ™”
542
- * FP16 ์ถ”๋ก : 2๋ฐฐ ์†๋„ ํ–ฅ์ƒ
543
- * INT8 ์บ˜๋ฆฌ๋ธŒ๋ ˆ์ด์…˜: ์ถ”๊ฐ€ 2๋ฐฐ ์†๋„ ํ–ฅ์ƒ
544
- - CPU: OpenVINO ์ตœ์ ํ™”
545
- * VNNI ๋ช…๋ น์–ด ํ™œ์šฉ
546
- - ์ตœ์ข… ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ
547
-
548
- **4๋‹จ๊ณ„: ๊ฒ€์ฆ ๋ฐ ๋ฐฐํฌ (7-8์ฃผ์ฐจ)**
549
-
550
- *7์ฃผ์ฐจ: ์„ฑ๋Šฅ ๊ฒ€์ฆ ๋ฐ ROI ๋ถ„์„*
551
- - ์„ฑ๋Šฅ ์ธก์ • ๊ฒฐ๊ณผ:
552
- * ๋ชจ๋ธ ํฌ๊ธฐ: 2.5GB โ†’ 125MB (95% ๊ฐ์†Œ) โœ“
553
- * ์ถ”๋ก  ์†๋„: 45ms โ†’ 3ms (15๋ฐฐ ํ–ฅ์ƒ) โœ“
554
- * ์ •ํ™•๋„: 94.2% โ†’ 93.8% (0.4% ์†์‹ค) โœ“
555
- * GPU ๋ฉ”๋ชจ๋ฆฌ: 8GB โ†’ 1GB (87.5% ๊ฐ์†Œ) โœ“
556
-
557
- - ๋น„์šฉ ๋ถ„์„ (JP Morgan ์‚ฌ๋ก€ ์ฐธ์กฐ):
558
- * ์ธํ”„๋ผ ๋น„์šฉ: $50,000/์›” โ†’ $12,500/์›”
559
- * ์ ˆ๊ฐ์•ก: $37,500/์›”
560
- * ํˆฌ์ž ํšŒ์ˆ˜ ๊ธฐ๊ฐ„: 1.6๊ฐœ์›”
561
- * 6๊ฐœ์›” ROI: 275%
562
-
563
- *8์ฃผ์ฐจ: ๋‹จ๊ณ„์  ๋ฐฐํฌ (Amazon ์‚ฌ๋ก€ ์ ์šฉ)*
564
- ```python
565
- class CanaryDeployment:
566
- def __init__(self):
567
- self.stages = [
568
- (0.01, 1), # 1% ํŠธ๋ž˜ํ”ฝ, 1์ผ
569
- (0.05, 2), # 5% ํŠธ๋ž˜ํ”ฝ, 2์ผ
570
- (0.20, 3), # 20% ํŠธ๋ž˜ํ”ฝ, 3์ผ
571
- (0.50, 3), # 50% ํŠธ๋ž˜ํ”ฝ, 3์ผ
572
- (1.00, None) # 100% ํŠธ๋ž˜ํ”ฝ
573
- ]
574
-
575
- def deploy(self, optimized_model):
576
- for traffic_ratio, days in self.stages:
577
- metrics = self.monitor_performance(traffic_ratio)
578
- if not self.meets_sla(metrics):
579
- self.rollback()
580
- break
581
- ```
582
 
583
- **์‚ฐ์ถœ๋ฌผ ๋ฐ ๋ฌธ์„œํ™”**
584
- 1. ์ตœ์ ํ™”๋œ ๋ชจ๋ธ ์•„ํ‹ฐํŒฉํŠธ (125MB)
585
- 2. ์„ฑ๋Šฅ ๋ฒค์น˜๋งˆํฌ ๋ณด๊ณ ์„œ
586
- 3. ROI ๋ถ„์„ ๋ฌธ์„œ
587
- 4. ์šด์˜ ๊ฐ€์ด๋“œ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์‹œ๋ณด๋“œ
588
- 5. ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ: Hugging Face Model Hub์— ๊ณต๊ฐœ
589
-
590
- **์ปค๋ฎค๋‹ˆํ‹ฐ ํ˜‘์—… ๊ณ„ํš**
591
- - MLOps Community Slack ์ฑ„๋„ ์ฐธ์—ฌ
592
- - ์›”๊ฐ„ ์ง„ํ–‰์ƒํ™ฉ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…
593
- - ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ตœ์ ํ™” ๋„๊ตฌ ๊ธฐ์—ฌ""",
594
-
595
- "supervisor_review": """์‹คํ–‰์ž AI์˜ ๊ณ„ํš์„ ๊ฒ€ํ† ํ•œ ๊ฒฐ๊ณผ, ์กฐ์‚ฌ ๋‚ด์šฉ์ด ๋งค์šฐ ์ž˜ ๋ฐ˜์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐœ์„ ์‚ฌํ•ญ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
596
-
597
- **๊ฐ•์ **
598
- - ์กฐ์‚ฌ๋œ ๋ชจ๋“  ๋„๊ตฌ์™€ ๊ธฐ๋ฒ•์ด ์ฒด๊ณ„์ ์œผ๋กœ ํ™œ์šฉ๋จ
599
- - ์‹คํŒจ ์‚ฌ๋ก€์˜ ๊ตํ›ˆ์ด ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ์— ์ž˜ ๋ฐ˜์˜๋จ
600
- - ๊ตฌ์ฒด์ ์ธ ์ฝ”๋“œ ์˜ˆ์‹œ์™€ ์ธก์ • ๊ฐ€๋Šฅํ•œ ๋ชฉํ‘œ ์„ค์ •
601
- - ROI ๋ถ„์„์ด ์‚ฐ์—… ๋ฒค์น˜๋งˆํฌ์™€ ์ž˜ ์—ฐ๊ณ„๋จ
602
-
603
- **๊ฐœ์„  ํ•„์š”์‚ฌํ•ญ**
604
-
605
- 1. **๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์•Œ๋ฆผ ์ฒด๊ณ„ ๊ฐ•ํ™”**
606
- - ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ•
607
- - ์ด์ƒ ์ง•ํ›„ ์ž๋™ ๊ฐ์ง€ ๋ฐ ์•Œ๋ฆผ ์‹œ์Šคํ…œ
608
- - Grafana + Prometheus ์กฐํ•ฉ ๊ถŒ์žฅ
609
-
610
- 2. **ํŒ€ ์—ญ๋Ÿ‰ ๊ฐœ๋ฐœ ๊ณ„ํš**
611
- - Sparse MoE, Flash Attention ๋“ฑ ์‹ ๊ธฐ์ˆ  ๊ต์œก
612
- - ๋‚ด๋ถ€ ์Šคํ„ฐ๋”” ๊ทธ๋ฃน ์šด์˜
613
- - ์™ธ๋ถ€ ์ „๋ฌธ๊ฐ€ ์ดˆ์ฒญ ์„ธ๋ฏธ๋‚˜
614
-
615
- 3. **์žฅ๊ธฐ ์œ ์ง€๋ณด์ˆ˜ ์ „๋žต**
616
- - ๋ถ„๊ธฐ๋ณ„ ๋ชจ๋ธ ์žฌ์ตœ์ ํ™” ์ผ์ •
617
- - ์ƒˆ๋กœ์šด ์ตœ์ ํ™” ๊ธฐ๋ฒ• ๋„์ž… ํ”„๋กœ์„ธ์Šค
618
- - ๊ธฐ์ˆ  ๋ถ€์ฑ„ ๊ด€๋ฆฌ ๊ณ„ํš
619
-
620
- 4. **๏ฟฝ๏ฟฝ์Šคํฌ ๋Œ€์‘ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ตฌ์ฒดํ™”**
621
- - ๊ฐ ์ตœ์ ํ™” ๋‹จ๊ณ„๋ณ„ ์‹คํŒจ ์‹œ Plan B
622
- - ์„ฑ๋Šฅ ์ €ํ•˜ ์‹œ ์ฆ‰๊ฐ ๋Œ€์‘ ๋งค๋‰ด์–ผ
623
- - ๋น„์ฆˆ๋‹ˆ์Šค ์—ฐ์†์„ฑ ๊ณ„ํš
624
-
625
- **์ถ”๊ฐ€ ๊ถŒ์žฅ์‚ฌํ•ญ**
626
- - ์„ฑ๊ณต ์‚ฌ๋ก€๋ฅผ ์ปจํผ๋Ÿฐ์Šค์—์„œ ๋ฐœํ‘œํ•˜์—ฌ ๋ธŒ๋žœ๋“œ ๊ฐ€์น˜ ํ–ฅ์ƒ
627
- - ์ตœ์ ํ™” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋‚ด๋ถ€ ํ”Œ๋žซํผ์œผ๋กœ ๋ฐœ์ „
628
- - ๋‹ค๋ฅธ ํŒ€/ํ”„๋กœ์ ํŠธ์—๋„ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ํ…œํ”Œ๋ฆฟ ์ œ์ž‘""",
629
-
630
- "executor_final": """๊ฐ๋…์ž AI์˜ ํ”ผ๋“œ๋ฐฑ์„ ์™„์ „ํžˆ ๋ฐ˜์˜ํ•˜์—ฌ ์ตœ์ข… ์‹คํ–‰ ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
631
 
632
  # ๐ŸŽฏ ML ๋ชจ๋ธ ์ตœ์ ํ™” ํ”„๋กœ์ ํŠธ ์ตœ์ข… ์‹คํ–‰ ๋ณด๊ณ ์„œ
633
 
@@ -1395,4 +1072,4 @@ if __name__ == "__main__":
1395
  server_port=7860,
1396
  share=True,
1397
  show_error=True
1398
- )
 
276
  # ํ…Œ์ŠคํŠธ ๋ชจ๋“œ
277
  if self.test_mode:
278
  logger.info(f"ํ…Œ์ŠคํŠธ ๋ชจ๋“œ ์ŠคํŠธ๋ฆฌ๋ฐ - Role: {role}")
279
+
280
+ # ํ…Œ์ŠคํŠธ ์‘๋‹ต์„ ๋ฏธ๋ฆฌ ์ •์˜
281
+ if role == "supervisor" and "์กฐ์‚ฌ์ž AI์˜ 1์ฐจ ์กฐ์‚ฌ ๊ฒฐ๊ณผ" in messages[0]["content"]:
282
+ response = """1์ฐจ ์กฐ์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€ํ† ํ•œ ๊ฒฐ๊ณผ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ‰๊ฐ€์™€ ์ถ”๊ฐ€ ์กฐ์‚ฌ ์ง€์‹œ๋ฅผ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
 
284
  **์กฐ์‚ฌ ๋‚ด์šฉ ํ‰๊ฐ€**
285
  - ๊ฐ•์ : ์ฃผ์š” ๊ธฐ์ˆ ์  ์ ‘๊ทผ๋ฒ•๊ณผ ๋Œ€ํ‘œ์ ์ธ ์„ฑ๊ณต ์‚ฌ๋ก€๊ฐ€ ์ž˜ ์ •๋ฆฌ๋จ
286
+ - ๋ถ€์กฑํ•œ ์ : ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„ ๋„๊ตฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ ์ •๋ณด ๋ถ€์กฑ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
 
288
+ [์ถ”๊ฐ€ ๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ]: ML optimization tools 2024, model optimization failure cases"""
289
+ elif role == "supervisor" and "์กฐ์‚ฌ์ž AI๊ฐ€ ์ •๋ฆฌํ•œ ์ตœ์ข… ์กฐ์‚ฌ ๋‚ด์šฉ" in messages[0]["content"]:
290
+ response = """์ข…ํ•ฉ๋œ ์กฐ์‚ฌ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹คํ–‰์ž AI์—๊ฒŒ ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค."""
291
+ elif role == "supervisor" and messages[0]["content"].find("์‹คํ–‰์ž AI์˜ ๋‹ต๋ณ€") > -1:
292
+ response = """์‹คํ–‰์ž AI์˜ ๊ณ„ํš์„ ๊ฒ€ํ† ํ•œ ๊ฒฐ๊ณผ, ๊ฐœ์„ ์‚ฌํ•ญ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค."""
293
+ elif role == "supervisor":
294
+ response = """์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๊ฑฐ์‹œ์  ๋ถ„์„์„ ์ œ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
295
 
296
+ [๊ฒ€์ƒ‰ ํ‚ค์›Œ๋“œ]: best practices, implementation guide, case studies"""
297
+ elif role == "researcher" and "์ถ”๊ฐ€ ์กฐ์‚ฌ" in messages[0]["content"]:
298
+ response = """๊ฐ๋…์ž์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ์ถ”๊ฐ€ ์กฐ์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค."""
299
+ elif role == "researcher":
300
+ response = """์กฐ์‚ฌ ๊ฒฐ๊ณผ๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค."""
301
+ elif role == "executor" and "์ตœ์ข… ๋ณด๊ณ ์„œ" in messages[0]["content"]:
302
+ response = """๊ฐ๋…์ž AI์˜ ํ”ผ๋“œ๋ฐฑ์„ ์™„์ „ํžˆ ๋ฐ˜์˜ํ•˜์—ฌ ์ตœ์ข… ์‹คํ–‰ ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค."""
303
+ else:
304
+ response = """๊ฐ๋…์ž์˜ ์ง€์‹œ์— ๋”ฐ๋ผ ๊ตฌ์ฒด์ ์ธ ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•ฉ๋‹ˆ๋‹ค."""
305
+
306
+ yield from self.simulate_streaming(response, role)
307
+ return
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
308
 
309
  # ๐ŸŽฏ ML ๋ชจ๋ธ ์ตœ์ ํ™” ํ”„๋กœ์ ํŠธ ์ตœ์ข… ์‹คํ–‰ ๋ณด๊ณ ์„œ
310
 
 
1072
  server_port=7860,
1073
  share=True,
1074
  show_error=True
1075
+ )