๐Ÿ˜ŠAI๋ฅผ ์ด์šฉํ•ด์„œ ์–ด๋‘์šด ์ด๋ฏธ์ง€๋ฅผ ๋ฐ๊ฒŒ ๋งŒ๋“ค์–ด๋ณด์ž

,

WPF ๋ฐ๋ชจ์•ฑ

๋งˆ์ง€๋ง‰์œผ๋กœ WPF App์œผ๋กœ LLE API ๋™์ž‘์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋“œ์™€ ํ”„๋กœ๊ทธ๋žจ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
WPF์ž‘์„ฑ์€ ์ œ๊ฐ€ ์˜ˆ์ „์— ๋งŒ๋“ค์–ด ๋†“์€ ConvMVVM2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ๋ชจ ์˜์ƒ

๋งˆ๋ฌด๋ฆฌ ํ•˜๋ฉด์„œ..

์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๊ณ  nuget ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์˜ฌ๋ฆฌ๊ณ  WPF app์— ์‹ฌ์–ด์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
์‹œ์ž‘ํ•  ๋•Œ์—๋Š” ์‰ฌ์šธ ์ค„ ์•Œ์•˜์œผ๋‚˜.. ๊ธ€๋กœ ๋ณด์ด๋Š” ๊ฒƒ ๋ณด๋‹ค ์‹ค์ œ๋Š” ์ •๋ง ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ใ… ใ… 

  1. ์ฒ˜์ฐธํ•œ onnxruntime c++ nugetโ€ฆ
    onnxruntime nuget์€ ๋ถ„๋ช… include์™€ ๋งํฌ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋‚ด์šฉ์ด ์••์ถ•๋˜์–ด ๋“ค์–ด๊ฐ€์žˆ์ง€๋งŒ.
    targets์™€ propsํŒŒ์ผ์˜ ๊ฒฝ๋กœ๊ฐ€ ์ž˜๋ชป๋˜์–ด ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•ด๋ณด๋ฉด ๋งํฌ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ดˆ๋ณด๊ฐ™์€ ๋ˆ„๊ฒŸ ๋ฒ„๊ทธ๋“ค์ด ๋งŽ๋”๊ตฐ์š”.. (onnxruntime nuget 1.16๋ฒ„์ „ ๋ถ€ํ„ฐ ์žˆ๋˜ ๋ฒ„๊ทธ์ธ๋ฐ C++์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๊ณ .. ๋งˆ์†Œํ˜•๋‹˜๋“ค์ด ์Œฉ๊นŒ์‹œ๋Š”๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ใ…  ๋ถ„๋ช… issue์—๋„ ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š”๋ฐ ์™œ ๊ทธ๋Ÿฌ์‹œ๋Š” ๊ฑธ๊ฐ€์š”.. )
    ์ˆ˜๋™์œผ๋กœ ๋งํฌํ•ด์„œ ๋Œ€์ถฉ ๋„˜๊ฒผ๋Š”๋ฐ ์ •๋ง ํ•œ์ฐธ์„ ๋’ค์กŒ๋„ค์š”โ€ฆ

  2. onnxruntime๊ณผ gpu๊ทธ๋ž˜ํ”ฝ์นด๋“œ์™€์˜ ๋ฒ„์ „ ๋งž์ถ”๊ธฐ
    cuda์™€ ๊ด€๋ จ๋œ ๊ฑด๋ฐโ€ฆ ์™œ zlib.dll์„ zlibwapi.dll ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ฑธ๊ฐ€์š”?
    ํ•œ์ฐธ์„ ๋’ค์ ธ์„œ ์ด๋ฆ„ ๋ฐ”๊ฟ”์„œ ๋Œ๋ ธ์Šต๋‹ˆ๋‹ค. ใ… ใ… 

  3. C++ nuget ๋งŒ๋“ค๊ธฐ์™€ C++ dll๊ณผ C# dll์ด ์„ž์ธ ํ˜ผ์ข… ๋ˆ„๊ฒŸ ๋ฐฐํฌ
    ์ด๊ฑด ๊ธ€๋กœ ์„ค๋ช…ํ•  ๊ธธ์ด ์—†๊ตฐ์š”.. -_- ๋จธ๋ฆฌ๊ฐ€ ๋„ˆ๋ฌด ์•„ํ”ˆ ์ž‘์—…์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ํ•ด๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ.

์Œ.. ์นด๋ฉ”๋ผ ์˜์ƒ์„ ํ†ตํ•œ ํ•ธ๋“œ์ œ์Šค์ณ api๋‚˜ ์–ผ๊ตด ๊ตฌ๋ถ„ํ•˜๋Š” api๋ฅผ ๋งŒ๋“ค์–ด ๋ณผ ์ƒ๊ฐ ์ค‘์ž…๋‹ˆ๋‹ค.
์ง€๊ธˆ๊นŒ์ง€ ํ•ด์™”๋˜ python โ†’ ๋ชจ๋ธ์ƒ์„ฑ โ†’ C++dll โ†’ C++/CLI โ†’ WPF ์ด๋Ÿฐ ํ๋ฆ„์œผ๋กœ ์ญ‰ ์ง„ํ–‰ํ•ด ๋ณผ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.
๊ทธ ์™ธ์—๋„ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์ด๋‚˜ LLM๋„ ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๊ทธ๊ฑด ์ฝ”๋”ฉ์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋…ผ๋ฌธ์„ ํ•œ๋ฒˆ๋„ ๋ณธ์ ์ด ์—†์–ด.. ์—„๋‘๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๊ตฐ์š”. ์ž๊ธฐ ์ „์— ๊ทธ ๋‘๊ฐœ ๋…ผ๋ฌธ์ค‘ ์‰ฌ์šด๊ฑธ ์ฐพ์•„์„œ ์นจ๋Œ€์— ๋ˆ„์›Œ์„œ ์ฝ์–ด ๋ณด๋ฉด์„œ ํ†ต์ฐฐ์„ ์–ป์–ด๋ณผ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

3๊ฐœ์˜ ์ข‹์•„์š”

๊ถ๊ธˆํ•œ๊ฒŒ ์กฐ๋„ ์ƒ๊ด€์—†์ด ์•ผ๊ฐ„์— ํ”Œ๋ž˜์‹œ ์—†์ด ์ฐ์€ ์–ด๋‘์šด ์‚ฌ์ง„๋„ ๊ฐœ์„ ์ด ๋˜๋Š” ๊ฑด๊ฐ€์š” ?

1๊ฐœ์˜ ์ข‹์•„์š”

๋งŒ์•ฝ์— ์–ด๋‘์šด ์ด๋ฏธ์ง€์— ์•„๋ฌด๋Ÿฐ ๋ฐ์ดํ„ฐ์—†์ด 0์œผ๋กœ ์งœ๋ถ€๋˜๋ฒ„๋ฆฐ? ์ด๋ฏธ์ง€๋ฉด ๋‹น์—ฐํžˆ ์•ˆ๋˜๊ตฌ์š” (์ •๋ง๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒ€์ • ์ด๋ฏธ์ง€)

์กฐ๊ธˆ์ด๋ผ๋„ ํ”์ ์ด ์žˆ์œผ๋ฉด ํ”ฝ์…€์— ๋ฐ๊ฒŒ ๋‚˜์˜ต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ œ ์ƒ๊ฐ์ธ๋ฐ ์กฐ๋„ ์—†์ด? (์‚ฌ๋žŒ์ด ๋งŒ๋“  ์กฐ๋ช…?) ๋‹ฌ๋น›์ด๋‚˜ ๋ญ ์ž์—ฐ๊ด‘์œผ๋กœ ํ˜•์ƒ์ด๋‚˜ ํ˜•์ฒด์ •๋ณด๊ฐ€ ์ด๋ฏธ์ง€์— ์žˆ๋‹ค๋ฉด ๋‚˜์˜ค์ง€ ์•Š์„๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค. (ํ•˜์ง€๋งŒ ์•„๊นŒ๋„ ๋ง์”€๋“œ๋ ธ๋‹ค์‹œํ”ผ 0์œผ๋กœ ๋ฐ”๋‹ฅ์— ์™„์ „ํžˆ ๊น”๋ฆฐ๊ฑด ์•ˆ๋ฉ๋‹ˆ๋‹ค)

1๊ฐœ์˜ ์ข‹์•„์š”

๋งˆ์นจ.. ๋ฐค์ธ๋ฐ ๋ฐ–์—๋‚˜๊ฐ€์„œ ์ฐ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•ด์กŒ๊ตฐ์š” ์ €๋„ ํ”Œ๋ž˜์‹œ์—†์ด์ฐ์–ด์„œ

1๊ฐœ์˜ ์ข‹์•„์š”


๊ธˆ๋ฐฉ ์ €ํฌ์ง‘ 1์ธต์—์„œ ํ”Œ๋ž˜์‰ฌ ์•ˆํ„ฐํŠธ๋ฆฌ๊ณ  ์ฐ์€๊ฑด๋ฐ์š” ์ด์ •๋„๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹๊ฐ€์œ  ใ… 

3๊ฐœ์˜ ์ข‹์•„์š”

์™€์šฐ ํ›Œ๋ฅญ ํ•œ๋ฐ์š”โ€ฆ ํ™•์ธ ๊ฐ์‚ฌ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ญ”๊ฐ€ ์žฌ๋ฏธ์žˆ๋Š” ๋ญ”๊ฐ€๊ฐ€โ€ฆ ๋ˆ„๊ฒŸ ๊ฐ์‚ฌ ๋“œ๋ ค์š”

2๊ฐœ์˜ ์ข‹์•„์š”