Skip to content

Instantly share code, notes, and snippets.

View jesuino's full-sized avatar

William Antônio Siqueira jesuino

View GitHub Profile
@jesuino
jesuino / App.java
Created March 24, 2025 20:51
MCP Java SDK: Simple Client
package org.fxapps.ollamamcp;
import java.util.Map;
import io.modelcontextprotocol.client.McpClient;
import io.modelcontextprotocol.client.transport.ServerParameters;
import io.modelcontextprotocol.client.transport.StdioClientTransport;
import io.modelcontextprotocol.spec.McpSchema.CallToolRequest;
import io.modelcontextprotocol.spec.McpSchema.TextContent;
@jesuino
jesuino / Mascara_atencao.md
Created March 19, 2025 16:17
Sobre máscara de atencao

Eu: então além da matriz com os embeddings de um token eu ainda preciso passar essa máscara de entrada para uma LLM? isso é comum em todos os modelos de LLM?

deepseek: Sim, além da matriz de embeddings dos tokens, você geralmente precisa passar uma máscara de atenção (attention mask) para o modelo. Isso é comum na maioria dos modelos de LLM modernos, especialmente aqueles baseados em arquiteturas Transformer, como BERT, GPT, T5, entre outros.

Por que a máscara de atenção é necessária?

  1. Ignorar Tokens de Preenchimento:
    • A máscara de atenção informa ao modelo quais tokens são reais e quais são tokens de preenchimento (padding).
    • Isso é crucial porque os tokens de preenchimento não têm significado semântico e não devem influenciar o processamento do modelo.

Claro! Aqui está uma tabela com alguns dos principais modelos de LLMs (Large Language Models) atuais, suas datas de lançamento, nomes e tamanhos de janela de contexto. Note que os tamanhos de contexto podem variar dependendo da implementação ou atualizações posteriores ao lançamento.

Data de Lançamento Nome do Modelo Tamanho da Janela de Contexto
Junho 2020 GPT-3 2.048 tokens
Novembro 2022 GPT-3.5 4.096 tokens
Março 2023 GPT-4 8.192 tokens (até 32.768 em versões estendidas)
Outubro 2023 LLaMA 2 (Meta) 4.096 tokens
Julho 2023 Claude 2 (Anthropic) 100.000 tokens
Setembro 2023 PaLM 2 (Google) 8.192 tokens

Claro! Vou explicar detalhadamente como a conversão de um token para um vetor de embedding funciona e o que esses números representam. Esse processo é fundamental para que modelos de linguagem como o Transformer possam trabalhar com texto.


1. O que é um Embedding?

Um embedding é uma representação numérica de um token (que pode ser uma palavra, parte de uma palavra ou até um caractere). Em vez de usar palavras diretamente, que são categóricas e difíceis de processar matematicamente, os modelos convertem palavras em vetores numéricos de alta dimensão. Esses vetores capturam informações semânticas e relacionamentos entre as palavras.


2. Como o Token é Convertido em Embedding?

@jesuino
jesuino / tool_call.xml
Created March 8, 2025 02:06
LLM Tool Call example. In this example the LLM is trying to call a tool called get_traffic_info
<tool_call>
{
"action": "call_tool",
"tool_name": "get_traffic_info",
"parameters": {
@jesuino
jesuino / get_plugin.sh
Created September 25, 2024 15:33
running Dynamic Plugins on RHDH (locally)
if [ $1 ]; then
pkg=$1
archive=$(npm pack --silent $pkg )
tar -xzf "$archive" && rm "$archive"
finalName=$(echo $archive | sed -e 's:\.tgz$::')
rm -fr "$finalName"
mv package "$finalName"
else
echo "No package was provided"
-- defines a factorial function
function fact (n)
if n == 0 then
return 1
else
return n * fact(n-1)
end
end
print("enter a number:")
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] ------------------------------------------------------------------------
[INFO] os.detected.name: linux
[INFO] os.detected.arch: x86_64
[INFO] os.detected.bitness: 64
[INFO] os.detected.version: 6.5
[INFO] os.detected.version.major: 6
[INFO] os.detected.version.minor: 5
{
"posts": [
{
"uri": "at://did:plc:xsqyottmupmtgs7q3quar6yx/app.bsky.feed.post/3l36s7n76bv2x",
"cid": "bafyreid43mz5v7lkck3om3wbwlcje2dddv2wsru32x5mqupfke5a7jdg6e",
"author": {
"did": "did:plc:xsqyottmupmtgs7q3quar6yx",
"handle": "wanningcatboy.bsky.social",
"displayName": "sam - ʷᵃⁿⁿⁱⁿᵍ ᵐⁱⁿʰᵃ ᵛⁱᵈᵃ",
"avatar": "https://cdn.bsky.app/img/avatar/plain/did:plc:xsqyottmupmtgs7q3quar6yx/bafkreif7ulgduagwph4jim5y34irfkcwgzfjwktejgvjnvnur4zw4hae7e@jpeg",
@jesuino
jesuino / GroupsCreate.java
Created July 12, 2024 18:07
Generating roles with Keycloak Java client
import static java.lang.System.out;
import org.keycloak.admin.client.KeycloakBuilder;
import org.keycloak.representations.idm.GroupRepresentation;
public class GroupsCreate {
private static final String KEYCLOAK_HOST = "http://localhost:8080";
private static final String USERNAME = "wsiqueir";
private static final String PASSWORD = "test";