Описание
Я создаю локальное приложение LLM, которое работает нормально, но при ответе останавливается на 170 словах, что соответствует 256 токенам.
На данный момент я пробовал следующие модели: Meta-Llama-3.1-8B-Instruct-Q8_0.gguf и mistral-7b-instruct-v0.2.Q8_0.gguf.
Я перепробовал все, что мог, и использовал Gemini и Chatgpt, чтобы показать решения, но, кажется, ничего не работает.
Ответ прекращается, а агент нет: агент думает...
Я не использую Python для работы с моделью, а вместо этого я использую using:
LLama;
using LLama.Common;
using LLamaSharp.SemanticKernel;
using LLamaSharp.SemanticKernel.ChatCompletion;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Identity.Client;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
Любая помощь приветствуется.
Вопрос
Как правильно настроить модель для генерации более длинных ответов?
Является ли это ограничением LLamaSharp?
Было бы лучше использовать Python? Если да, то как использовать Python вместо LLamaSharp?
Это мой файл appsettings.json:
"AI": {
"Local": {
"Url": "http://localhost:11434/v1",
"ModelName": "llama3",
"ModelPath": "D:/AI/Models/mistral-7b-instruct-v0.2.Q8_0.gguf",
"ContextSize": 8192, // > LOADING LOCAL GGUF MODEL: {Path}", modelPath);
try
{
var modelParams = new ModelParams(modelPath)
{
ContextSize = localConfig.GetValue("ContextSize", 4096),
GpuLayerCount = localConfig.GetValue("GpuLayerCount", 0),
};
var weights = LLamaWeights.LoadFromFile(modelParams);
var context = weights.CreateContext(modelParams);
var inferenceParams = new InferenceParams() { MaxTokens = 4096 };
logger.LogInformation("Applying session-level MaxTokens override of {MaxTokens} to local model executor.", inferenceParams.MaxTokens);
var executor = new InteractiveExecutor(context);
var chatService = new LLamaSharpChatCompletion(executor);
builder.Services.AddSingleton(chatService);
logger.LogInformation(">> GGUF MODEL LOADED SUCCESSFULLY.");
}
catch (Exception ex)
{
logger.LogCritical(ex, "FATAL ERROR INITIALIZING LLAMASHARP. The application cannot start without a valid local model configuration.");
throw;
}
}
else
{
logger.LogCritical("Local model file not found at path specified in AI:Local:ModelPath. Application cannot start.");
throw new FileNotFoundException("Local GGUF model file not found.", localConfig["ModelPath"]);
}
break;
case "Azure":
var azureConfig = config.GetSection("AI:Azure");
var azureDeploymentName = azureConfig["DeploymentName"];
var azureEndpoint = azureConfig["Endpoint"];
var azureApiKey = azureConfig["ApiKey"];
if (string.IsNullOrEmpty(azureDeploymentName) || string.IsNullOrEmpty(azureEndpoint) || string.IsNullOrEmpty(azureApiKey))
{
throw new InvalidOperationException("Azure OpenAI configuration is incomplete. 'DeploymentName', 'Endpoint', and 'ApiKey' are required in the 'AI:Azure' section of appsettings.json.");
}
logger.LogInformation("Configuring LLM with Azure OpenAI. Deployment: {Deployment}", azureDeploymentName);
builder.AddAzureOpenAIChatCompletion(azureDeploymentName, azureEndpoint, azureApiKey);
break;
case "OpenAI":
default:
var openAIConfig = config.GetSection("AI:OpenAI");
var openAIModelId = openAIConfig["ModelId"];
var openAIApiKey = openAIConfig["ApiKey"];
var openAIOrgId = openAIConfig["OrgId"]; // Optional
if (string.IsNullOrEmpty(openAIModelId) || string.IsNullOrEmpty(openAIApiKey))
{
throw new InvalidOperationException("OpenAI configuration is incomplete. 'ModelId' and 'ApiKey' are required in the 'AI:OpenAI' section of appsettings.json.");
}
logger.LogInformation("Configuring LLM with OpenAI. Model: {Model}", openAIModelId);
builder.AddOpenAIChatCompletion(openAIModelId, openAIApiKey, openAIOrgId);
break;
}
return builder;
}
private static string? ResolveModelPath(string? path)
{
if (string.IsNullOrEmpty(path)) return null;
if (File.Exists(path)) return path;
var relative = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path);
if (File.Exists(relative)) return relative;
var projectRoot = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../../../"));
var rootPath = Path.Combine(projectRoot, path);
if (File.Exists(rootPath)) return rootPath;
return null;
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... app-on-net
Как я могу правильно изменить значение maxtoken=256 по умолчанию для LLAMA3 в приложении Blazor на .NET 10.0? ⇐ C#
Место общения программистов C#
1766652744
Anonymous
[b]Описание[/b]
Я создаю локальное приложение LLM, которое работает нормально, но при ответе останавливается на 170 словах, что соответствует 256 токенам.
На данный момент я пробовал следующие модели: Meta-Llama-3.1-8B-Instruct-Q8_0.gguf и mistral-7b-instruct-v0.2.Q8_0.gguf.
Я перепробовал все, что мог, и использовал Gemini и Chatgpt, чтобы показать решения, но, кажется, ничего не работает.
Ответ прекращается, а агент нет: агент думает...
Я не использую Python для работы с моделью, а вместо этого я использую using:
LLama;
using LLama.Common;
using LLamaSharp.SemanticKernel;
using LLamaSharp.SemanticKernel.ChatCompletion;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Identity.Client;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
Любая помощь приветствуется.
[b]Вопрос[/b]
Как правильно настроить модель для генерации более длинных ответов?
Является ли это ограничением LLamaSharp?
Было бы лучше использовать Python? Если да, то как использовать Python вместо LLamaSharp?
Это мой файл appsettings.json:
"AI": {
"Local": {
"Url": "http://localhost:11434/v1",
"ModelName": "llama3",
"ModelPath": "D:/AI/Models/mistral-7b-instruct-v0.2.Q8_0.gguf",
"ContextSize": 8192, // > LOADING LOCAL GGUF MODEL: {Path}", modelPath);
try
{
var modelParams = new ModelParams(modelPath)
{
ContextSize = localConfig.GetValue("ContextSize", 4096),
GpuLayerCount = localConfig.GetValue("GpuLayerCount", 0),
};
var weights = LLamaWeights.LoadFromFile(modelParams);
var context = weights.CreateContext(modelParams);
var inferenceParams = new InferenceParams() { MaxTokens = 4096 };
logger.LogInformation("Applying session-level MaxTokens override of {MaxTokens} to local model executor.", inferenceParams.MaxTokens);
var executor = new InteractiveExecutor(context);
var chatService = new LLamaSharpChatCompletion(executor);
builder.Services.AddSingleton(chatService);
logger.LogInformation(">> GGUF MODEL LOADED SUCCESSFULLY.");
}
catch (Exception ex)
{
logger.LogCritical(ex, "FATAL ERROR INITIALIZING LLAMASHARP. The application cannot start without a valid local model configuration.");
throw;
}
}
else
{
logger.LogCritical("Local model file not found at path specified in AI:Local:ModelPath. Application cannot start.");
throw new FileNotFoundException("Local GGUF model file not found.", localConfig["ModelPath"]);
}
break;
case "Azure":
var azureConfig = config.GetSection("AI:Azure");
var azureDeploymentName = azureConfig["DeploymentName"];
var azureEndpoint = azureConfig["Endpoint"];
var azureApiKey = azureConfig["ApiKey"];
if (string.IsNullOrEmpty(azureDeploymentName) || string.IsNullOrEmpty(azureEndpoint) || string.IsNullOrEmpty(azureApiKey))
{
throw new InvalidOperationException("Azure OpenAI configuration is incomplete. 'DeploymentName', 'Endpoint', and 'ApiKey' are required in the 'AI:Azure' section of appsettings.json.");
}
logger.LogInformation("Configuring LLM with Azure OpenAI. Deployment: {Deployment}", azureDeploymentName);
builder.AddAzureOpenAIChatCompletion(azureDeploymentName, azureEndpoint, azureApiKey);
break;
case "OpenAI":
default:
var openAIConfig = config.GetSection("AI:OpenAI");
var openAIModelId = openAIConfig["ModelId"];
var openAIApiKey = openAIConfig["ApiKey"];
var openAIOrgId = openAIConfig["OrgId"]; // Optional
if (string.IsNullOrEmpty(openAIModelId) || string.IsNullOrEmpty(openAIApiKey))
{
throw new InvalidOperationException("OpenAI configuration is incomplete. 'ModelId' and 'ApiKey' are required in the 'AI:OpenAI' section of appsettings.json.");
}
logger.LogInformation("Configuring LLM with OpenAI. Model: {Model}", openAIModelId);
builder.AddOpenAIChatCompletion(openAIModelId, openAIApiKey, openAIOrgId);
break;
}
return builder;
}
private static string? ResolveModelPath(string? path)
{
if (string.IsNullOrEmpty(path)) return null;
if (File.Exists(path)) return path;
var relative = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path);
if (File.Exists(relative)) return relative;
var projectRoot = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../../../"));
var rootPath = Path.Combine(projectRoot, path);
if (File.Exists(rootPath)) return rootPath;
return null;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79854747/how-can-i-correctly-change-the-llama3-default-maxtoken-256-in-blazor-app-on-net[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия