Ajuste e Implemente um LLM de Código Aberto em GPU usando Ciência de Dados e Ações Rápidas de IA
Introdução
Este tutorial orienta você sobre como usar o serviço Data Science da Oracle Cloud Infrastructure (OCI) para ajustar um LLM de código aberto usando a funcionalidade Ações Rápidas de IA fornecida pelo Data Science. Com a facilidade de apontar e clicar, você usará o AI Quick Actions para ajustar um LLM Mistral fornecido pela Hugging Face, com esse LLM ajustado em uma FAQ publicada pela NVIDIA. O AI Quick Actions é usado para implantar esse modelo ajustado na OCI em uma forma de GPU A10. O código Python em execução em um notebook Jupyter é usado para mostrar que a saída do modelo ajustado tem o estilo e o tom desejados semelhantes aos dados de treinamento da NVIDIA.
Objetivos
- Iniciar uma sessão de notebook do serviço Data Science no OCI.
- Faça o download do FAQ da NVIDIA.
- Use o AI Quick Actions para ajustar um LLM Hugging Face nessas perguntas frequentes, com o ajuste fino executado em uma forma de GPU na OCI.
- Use o AI Quick Actions para verificar a curva de aprendizado do modelo ajustado, a fim de confirmar se o LLM ajustado é adequado para implementação.
- Use o AI Quick Actions para implementar o LLM ajustado na GPU.
- Use o código para chamar o ponto final do modelo implantado.
- Use o log do OCI para monitorar o tráfego no ponto final desse modelo implantado.
- Use o python em um notebook Jupyter no serviço Data Science para avaliar a qualidade do modelo implantado.
Pré-requisitos
- Familiaridade com o OCI Data Science.
- Acesso a uma tenancy da OCI em uma região que tenha formas de GPU A10 ou superiores disponíveis.
- Políticas da OCI que permitem iniciar um notebook do Data Science e usar o AI Quick Actions para ajustar e implantar um LLM em GPU; consulte https://github.com/oracle-samples/oci-data-science-ai-samples/tree/main/ai-quick-actions/policies para obter orientação detalhada sobre políticas.
- Controlador de recursos do OCI ativado para que você possa gravar arquivos em um bucket do OCI Object Storage.
- O controlador de recursos do OCI foi ativado para que você possa interagir com um modelo implantado no OCI.
- Uma conta Hugging Face com um token ativo.
Tarefa 1: Provisionar uma Sessão de Notebook do Serviço Data Science
-
Usar a console do OCI para criar um Projeto do Data Science.
-
Navegue até esse Projeto e crie uma sessão de notebook do Data Science com duas ou mais ECPUs.
-
Abra essa sessão de notebook e clique em Estender.
-
Inicie uma sessão de terminal no Data Science.
-
Use esse terminal para clonar um repositório github contendo os notebooks Jupyter que serão usados por este tutorial:
git clone https://github.com/oracle-nace-dsai/quick-actions-demo-archive.git -
Clonar Perguntas Frequentes sobre NVIDIA:
git clone https://huggingface.co/datasets/ajsbsd/nvidia-qa -
Copiar as Perguntas Frequentes da NVIDIA para o primeiro diretório de dados do repositório
cp nvidia-qa/NvidiaDocumentationQandApairs.csv quick-actions-demo-archive/data/. -
Instale e ative o conda
General Machine Learning for CPUs on Python 3.11:odsc conda install -s generalml_p311_cpu_x86_64_v1 conda activate /home/datascience/conda/generalml_p311_cpu_x86_64_v1 -
Instalar LangChain por https://github.com/oracle-samples/oci-data-science-ai-samples/blob/main/ai-quick-actions/model-deployment-tips.md#using-python-sdk-without-streaming
pip install langgraph "langchain>=0.3" "langchain-community>=0.3" "langchain-openai>=0.2.3" "oracle-ads>2.12"
Tarefa 2: Configurar uma Conta Face de Abertura
-
Crie uma conta Hugging Face em https://huggingface.co.
-
Navegue até sua conta Hugging Face > Tokens de Acesso e crie um novo Token de Acesso do Usuário com estas permissões marcadas:
- Leia o acesso ao conteúdo de todos os repositórios sob seu namespace pessoal
- Leia o acesso ao conteúdo de todos os repositórios de acesso público que você pode acessar
-
Use uma sessão de terminal do Data Science para registrar seu Token de Acesso do Usuário com o Hugging Face:
git config --global credential.helper store huggingface-cli login
Tarefa 3: Criar um Bucket de Armazenamento de Objetos
Crie um bucket do Object Storage na mesma região e compartimento do notebook do Data Science.
- Selecione Ativar Controle de Versão do Objeto
Tarefa 4: Configurar Registro em Log
Crie um Grupo de Logs e, em seguida, Criar Log Personalizado
- Para Criar configuração do agente, escolha
Add configuration later
Tarefa 5: Usar Ações Rápidas de IA do Serviço Data Science para Implantar LLM na Forma da GPU A10, sem Ajuste Detalhado
-
Navegue até Data Science Notebook > Iniciador > Ações Rápidas de IA
a. Procure os modelos
Mistral
b. Clique no blocomistralai/Mistral-7B-Instruct-v0.3
c. Clique em Implantar com o Log acima selecionado -
A implantação do modelo leva cerca de 15 minutos. Você pode monitorar o log de implantação selecionando Abrir logs no terminal.
-
Após a conclusão da implantação do modelo, navegue até Implantações > <seu modelo recém-implantado> > Testar seu modelo e testar esse modelo com perguntas simples, como:
Who wrote the Harry Potter book series? -
Alguns LLMs simples podem não responder às seguintes perguntas de teste corretamente, mas o
Mistral-7B-Instruct-v0.3faz um trabalho bastante bom ao responder a estas perguntas:A bat and a ball cost $1.10 in total. The bat costs $1.00 more than the ball. How much does the ball cost? Every cat has four legs. My pet has four legs. Is my pet a cat? Who is President of the United States?
Tarefa 6: Interagir com o Ponto Final do Modelo Implantado
-
Navegue até Implantações > <seu modelo recém-implantado> Chamar seu modelo para ver o ponto final do modelo implantado. Em seguida, use o terminal do Data Science para armazenar esse ponto final como uma variável de shell. Por exemplo:
endpoint=https://modeldeployment.<region>.oci.customer-oci.com/<model_ocid>/predict -
Envie um prompt para o ponto final do modelo implantado:
prompt="Who is President of the United States?" request_body='{"model":"odsc-llm","prompt":"'$prompt'","max_tokens":100,"temperature":0.1,"top_k":50,"top_p":0.99,"stop":[],"frequency_penalty":0,"presence_penalty":0}' oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal -
Use este loop bash para chamar o ponto final do modelo 100 vezes em dez segundos:
for i in $(seq 1 100); do oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal & echo $i sleep 0.1 done -
Navegue até Implantações > <seu modelo recém-implantado> > Log para exibir esse tráfego recém-enviado para o ponto final do modelo.

Descrição da ilustração log_traffic.png
Tarefa 7: Usar Ações Rápidas de IA para Ajustar um LLM
A tarefa anterior implantou um LLM Mistral sem ajuste fino. Esta Tarefa ajustará e implantará o mesmo LLM. A tarefa 9 comparará as saídas de ambos os modelos, ajustadas e não ajustadas. Esta Tarefa e a próxima também usam dois notebooks Jupyter que foram baixados deste arquivo de código.
-
Use o browser de arquivos do notebook do Data Science para navegar até a pasta
quick-actions-demo-archivee abrir o notebookprep_data.ipynbJupyter. -
Selecione o kernel
generalml_p311_cpu_x86_64_v1. -
Revise o segundo para o último parágrafo do notebook para que ele se refira à sua tenancy/namespace e ao seu bucket do Object Storage.
-
Execute o notebook
prep_data.ipynbJupyter, que executará:- leia as FAQ da NVIDIA no arquivo
data/NvidiaDocumentationQandApairs.csv - reformule as Perguntas mais Frequentes sobre CSV como registros JSON que têm os campos
promptecompletionesperados pelas Ações Rápidas de IA. - realizar uma divisão 90:10 desses dados em amostras de trem:teste.
- enviar a amostra de treinamento para o arquivo
quick_actions/tuning_data/tune_sample.jsonlno Object Storage.
- leia as FAQ da NVIDIA no arquivo
-
Navegue até Ações Rápidas de IA > Modelos >
mistralai/Mistral-7B-Instruct-v0.3. Em seguida, clique em Ajustar com estas definições:- Caminho do Object Storage =
quick_actions/tuning_data/tune_sample.jsonl - divisão de validação =
20% - resultados Caminho do Object Storage =
quick_actions/tuning_results - shape =
BM.GPU.A10.4se houver disponibilidade. Caso contrário, use as formas10.2ou10.1 - selecione seu Grupo de Logs e Log
- Caminho do Object Storage =
-
Ative Mostrar configurações avançadas com estas definições:
batch_size = 64sequence_len = 256learning_rate = 0.000025epochs = 12
-
O ajuste fino leva cerca de 60 minutos em uma A10.2. Portanto, clique em Abrir logs no terminal para monitorar os logs do job de ajuste fino.
-
Exiba a curva de aprendizado do modelo ajustado na seção Métricas. Um modelo bem ajustado terá uma curva de Perda de Validação que desce e depois platôs com época crescente.

Descrição da ilustração learning_curve.png
Tarefa 8: Implantar o LLM Ajustado
-
Navegue até Ações Rápidas de IA > Modelos ajustados > <seu modelo recém-ajustado> > Implantar com estas definições:
- Forma de computação =
VM.GPU.A10.1 - Selecione seu Grupo de Logs e Log
- Forma de computação =
-
Clique em Abrir logs no terminal para monitorar o log de implantação
Tarefa 9: Testar a Implantação do LLM Ajustado
-
Após a conclusão da implantação do modelo, navegue até Implantações > <seu modelo recém-ajustado> > Testar seu modelo e reproduzi-lo usando perguntas das perguntas de amostra de teste exibidas no notebook
prep_data.ipynb, como:What benefits does Unified Memory bring to complex data structures and classes? -
Copie/cole o ponto final do modelo na variável de shell da sua sessão de terminal:
endpoint=https://modeldeployment.<region>.oci.customer-oci.com/<model_ocid>/predict -
Envie um prompt para o ponto final do modelo implantado:
prompt="What benefits does Unified Memory bring to complex data structures and classes?" request_body='{"model":"odsc-llm","prompt":"'$prompt'","max_tokens":100,"temperature":0.1,"top_k":50,"top_p":0.99,"stop":[],"frequency_penalty":0,"presence_penalty":0}' oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal -
Use este loop bash para chamar o ponto final do modelo 100 vezes:
for i in $(seq 1 100); do oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal & echo $i sleep 0.1 done -
Clique no Log do modelo ajustado/implantado para exibir o tráfego recente no ponto final desse modelo
-
Abra o notebook
compare_models.ipynbJupyter e atualize o parágrafo [8] para fazer referência aos pontos finais dos seus dois modelos, ajustados e não ajustados. -
Execute esse notebook, que irá:
- Leia a amostra de teste dos registros de perguntas frequentes.
- Use o python para alimentar cinco perguntas de teste nos pontos finais do modelo ajustado e não ajustado e comparar suas respostas.
-
Observação parágrafo [10] que ilustra como chamar um ponto final de modelo implantado usando python, o que é bastante simples:

-
Revise as principais descobertas deste teste:
- As respostas do LLM ajustadas têm um tom, estilo e comprimento bastante semelhantes às respostas de perguntas frequentes compostas pela NVIDIA.
- As respostas do LLM não ajustadas são muito mais verbosas e incluem muitas declarações estranhas que provavelmente estão incorretas.
- As respostas do LLM ajustado versus não ajustado estão incorretas com mais frequência do que não, e aproximadamente da mesma forma.
- O ajuste fino em um conjunto de dados muito maior provavelmente aumentaria a precisão de suas respostas.
Tarefa 10: Excluir os Recursos
-
Navegue até Ações Rápidas de IA > Implantações e exclua suas implantações de modelo.
-
Navegue até Ações Rápidas de IA > Modelos > Modelos ajustados e exclua.
-
Use a página da console do OCI para navegar até a sessão de notebook do serviço Data Science e Encerrar.
-
Clique em Jobs e exclua seus jobs de ajuste fino.
-
Exclua o Projeto do serviço Data Science.
-
Use a página da console do OCI para navegar até o bucket do Object Storage e excluí-lo.
-
Use a console do OCI para excluir seu Log e Grupo de Logs.
Links Relacionados
- Saiba mais sobre ações rápidas de IA
- Trechos de código úteis de ações rápidas de IA
- Políticas recomendadas para Ações Rápidas de IA
- Notebooks Jupyter associados a este Tutorial
Confirmações
- Autores - Joe Hahn, Cientista de Dados Sênior, joe.hahn@oracle.com
- Contribuidores - Kevin Ortiz, Arquiteto de Nuvem Sênior, kevin.ortiz@oracle.com
Mais Recursos de Aprendizado
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Fine-Tune & Deploy an Open Source LLM on GPU using Data Science and AI Quick Actions
G42935-02