Flutter යෙදුමක 20,000 කට අධික කෙටි ලේඛන සහ ඒවායේ 384‑මාත්රා embedding එකක් තිබුණා. පරිශීලකගේ ප්රශ්න embedding එක ගෙන, cosine similarity අනුව ඉහලම ලේඛන 5ක් තෝරා දර්ශනය කිරීමේදී, සර්වර් යාමක් නොකර උපාංගයේම සිදු කළේය.
මුලින් ලියූ ආකාරය List<List<double>> භාවිතා කර, එක් එක් පේළියට ලූප් එකක් දුවා, ලකුණු ගණනය කර, පසු ඒ ලකුණු අනුව සකස් කිරීමයි. මෙම ක්රමය සත්යයෙහි 15.9 ms කාලයක් ගනී. යතුරු ලියන විටත් මේ වේගය පෙනේ, එබැවින් පරිශීලක අත්දැකීම අඩු වේ.
මෙහි ප්රධාන ගැටළුව algorithm එක නොව, දත්ත ගොඩනැගීමයි. List<List<double>> කියන්නේ වෙන් වෙන් වූ heap objects වලට පointers අඩංගු ලයිස්තුවක්; එක් එක් double එකක් boxed 64‑bit float එකක්. එම නිසා CPU එක pointer chase කරමින් අනුක්රමික නොවන මතකය කියවීමට සිදු වේ.
Vector_Kit ලයිබ්රරිය භාවිතා කර, සම්පූර්ණ index එක Float32List එකක් ලෙස එකම මතක කොටසට පිරවීමෙන් SIMD dot‑product ගණනයක් සිදු කළේය. ඒ නිසා ඒකම linear scan, ඒත් මතක සැකසුම වෙනස් වීමෙන් 1.4 ms කාලයට ඉහළ ලේඛන 5ක් ලබා ගත හැකි විය – 11 ගුණයකින් වේගවත්, අඩුපාඩු රහිත.
දැන් 768‑මාත්රා embedding එකකට dot‑product එක 142 ns වේ, එතැන List<double> ලූප් එක 665 ns. 100,000 පේළි සඳහා top‑10 සෙවීම 13.3 ms, මූලික සෝදිසි‑සැකසුම 82 ms. Vector_Kit තාවකාලික ලැයිස්තු සාදන්නේ නැතිව, top‑k එක රැඳවීමෙන් memory allocation අඩු වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
මෙම තාක්ෂණය ශ්රී ලංකාවේ ඩිවෙලපර්, ආරම්භකයන්, සහ ව්යාපාරිකයන්ට විශාල වාසියක් ගෙන දෙයි:
- ඉහළ වේගය – මොබයිල් යෙදුම්වල real‑time semantic search සිදු කළ හැකි බැවින් පරිශීලක අත්දැකීම වඩාත් සSmooth වේ.
- මතක අවශ්යතා අඩු කිරීම – Float32List භාවිතයෙන් 20k × 384 index එක 29.3 MB, quantized int8 version එක 7.6 MB පමණ. මෙය අඩු‑බැටරි, අඩු‑මතක උපාංගවලද ඉඩ සලසයි.
- AI embedding එකේ සෘජු භාවිතය – model එකෙන් ලැබෙන List<double> සෘජුව topKCosine වෙත ලබා දිය හැකි නිසා conversion overhead නැත.
- වඩාත්ම විශ්වාසනීය ප්රතිඵල – approximation නොකර, exact cosine similarity ගණනය කරයි; එමනිසා ranking quality අඩුවන්නේ නැත.
ඉදිරියට, ශ්රී ලංකාවේ තාක්ෂණික සමාජය මෙවැනි performance‑optimised library‑වලින් ග්රහණය කර, AI‑driven mobile apps, chatbots, සහ recommendation systems ඉදිරිපත් කිරීමේ ගැටළු අඩු කර ගත හැක.
අවසන් වශයෙන්, Dart සහ Flutter පරිසරය SIMD සහ packed memory layout සමඟ සාර්ථකව අඩු latency, අඩු memory footprint සහ high‑quality semantic search ලබා දෙනු ඇත. මෙය ලංකාවේ තාක්ෂණික නවෝත්පාදන වලට නව මට්ටමක් සපයයි.