Llm и C#

Долго не писал... Очень увлекся llm ками ) Решил сюда продублировать некоторое саммари о работе с llm в c#. Пока насколько знаю на собеседованиях это не спрашивают. Но как будто было бы здорово ориентировочно разбираться что может c# в контексте llm Semantic Kernel - https://learn.microsoft.com/en-us/semantic-kernel/overview/ по сути http api к большим нейросетям на стероидах. На самом деле по сложнее, но суть в том, что semantic-kernel ничего не запускает, а только удобный интерфейс для взаимодействия с моделями. Из интересного может дать шарповую функцию которую модель сможет запустить. Это называется планинг. Onnx Runtime - унифицированный формат моделей и движок для запуска от Microsoft. https://onnxruntime.ai/docs/get-started/with-csharp.html ML.NET - библиотека машинного обучения от Microsoft. Есть возможность создавать свои нейронки слои и так далее. Удобное обучение этого из коробки. Из больших моделей может работать с Onnx движком. https://dotnet.microsoft.com/en-us/apps/ai/ml-dotnet LlamaSharp - обертка над llama.cpp (ollama и llama.cpp раньше были одним и тем же, теперь два отдельных проекта). Запускает оптимизированно Lllm и работает с ними https://github.com/SciSharp/LLamaSharp Langchain.Net - порт LangChain на .net. Что-то вроде Semantic Kernel тоже запускает раличные апи нейронок. https://tryagi.github.io/LangChain/

Есть еще TesorFlowSharp - но он для TensorFlow моделек, а я таких почти не встречаю. TorchSharp обертка над Pytorch но замучаешься ее поднимать с моделькой.

Глобально - если c# разработчик не планирует поднимать модели - Semantic Kernel (в основном) и LangChain.NET. Если хотим запускать у себя, крутить модельки и обращаться не по апи, то onnx или LlamaSharp. Если хочется попробовать что-то локально прямо сейчас то https://github.com/microsoft/PhiCookBook или LlamaSharp примеры